summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-08-02 14:23:01 +0500
committerilotterytea <iltsu@alright.party>2025-08-02 14:23:01 +0500
commit29804aca7c87efd1d67c7fb278ac64f9a879107f (patch)
treea61393984d82f92d632d3f00a3146426c7c952a6
parentcbe415e8fc05a41cb9b0a6f67ac15d5ae4b21a2d (diff)
feat: client id
-rw-r--r--internal/client.go14
1 files changed, 9 insertions, 5 deletions
diff --git a/internal/client.go b/internal/client.go
index 287650d..c6a3704 100644
--- a/internal/client.go
+++ b/internal/client.go
@@ -7,36 +7,40 @@ import (
"strings"
)
+var clientId uint64
+
type Client struct {
+ id uint64
conn net.Conn
server *Server
}
func NewIRCClient(conn net.Conn, server *Server) *Client {
- c := Client{conn: conn, server: server}
+ clientId++
+ c := Client{id: clientId, conn: conn, server: server}
return &c
}
func (c *Client) HandleConnection() {
defer c.conn.Close()
- log.Printf("New client connected from %s\n", c.conn.RemoteAddr())
+ log.Printf("New client (ID %d) connected from %s\n", c.id, c.conn.RemoteAddr())
buffer := make([]byte, 512)
for {
n, err := c.conn.Read(buffer)
if err != nil {
- log.Printf("Error reading from client %s: %v\n", c.conn.RemoteAddr(), err)
+ log.Printf("Error reading from client (ID %d) %s: %v\n", c.id, c.conn.RemoteAddr(), err)
return
}
data := strings.TrimSpace(string(buffer[:n]))
- fmt.Printf("%s sent %s\n", c.conn.RemoteAddr(), data)
+ fmt.Printf("%s (ID %d) sent %s\n", c.conn.RemoteAddr(), c.id, data)
_, err = c.conn.Write([]byte("you said " + data))
if err != nil {
- log.Printf("Error sending to client %s: %v", c.conn.RemoteAddr(), err)
+ log.Printf("Error sending to client (ID %d) %s: %v", c.id, c.conn.RemoteAddr(), err)
return
}