]> Cypherpunks.ru repositories - goircd.git/blobdiff - client.go
Ability to authenticate users by nickname↔password database
[goircd.git] / client.go
index 07a209b61d0a524653e56714bfa7fe81b10e4ebf..4f48daf90be4f1f0981b96f6e30ca04fa1f438a0 100644 (file)
--- a/client.go
+++ b/client.go
@@ -26,8 +26,8 @@ import (
 )
 
 const (
-       CRLF     = "\x0d\x0a"
-       BUF_SIZE = 1380
+       CRLF    = "\x0d\x0a"
+       BufSize = 1380
 )
 
 type Client struct {
@@ -37,10 +37,11 @@ type Client struct {
        nickname   string
        username   string
        realname   string
+       password   string
 }
 
 type ClientAlivenessState struct {
-       ping_sent bool
+       pingSent  bool
        timestamp time.Time
 }
 
@@ -49,33 +50,32 @@ func (client Client) String() string {
 }
 
 func NewClient(hostname string, conn net.Conn) *Client {
-       return &Client{hostname: hostname, conn: conn, nickname: "*"}
+       return &Client{hostname: hostname, conn: conn, nickname: "*", password: ""}
 }
 
 // Client processor blockingly reads everything remote client sends,
 // splits messages by CRLF and send them to Daemon gorouting for processing
 // it futher. Also it can signalize that client is unavailable (disconnected).
 func (client *Client) Processor(sink chan<- ClientEvent) {
-       var buf_net []byte
+       var bufNet []byte
        buf := make([]byte, 0)
        log.Println(client, "New client")
-       sink <- ClientEvent{client, EVENT_NEW, ""}
+       sink <- ClientEvent{client, EventNew, ""}
        for {
-               buf_net = make([]byte, BUF_SIZE)
-               _, err := client.conn.Read(buf_net)
+               bufNet = make([]byte, BufSize)
+               _, err := client.conn.Read(bufNet)
                if err != nil {
-                       log.Println(client, "connection lost", err)
-                       sink <- ClientEvent{client, EVENT_DEL, ""}
+                       sink <- ClientEvent{client, EventDel, ""}
                        break
                }
-               buf_net = bytes.TrimRight(buf_net, "\x00")
-               buf = append(buf, buf_net...)
+               bufNet = bytes.TrimRight(bufNet, "\x00")
+               buf = append(buf, bufNet...)
                if !bytes.HasSuffix(buf, []byte(CRLF)) {
                        continue
                }
                for _, msg := range bytes.Split(buf[:len(buf)-2], []byte(CRLF)) {
                        if len(msg) > 0 {
-                               sink <- ClientEvent{client, EVENT_MSG, string(msg)}
+                               sink <- ClientEvent{client, EventMsg, string(msg)}
                        }
                }
                buf = []byte{}