fixed path of mysql/errmsg.h (OSX compilation fix)
[NeonServV5.git] / src / ClientSocket.c
index cb40cc7dc9eb1afe311919d685ca16de153846e7..3be703765123bcbe931f7dd5c03ffa2f174da235 100644 (file)
@@ -1,4 +1,4 @@
-/* ClientSocket.c - NeonServ v5.5
+/* ClientSocket.c - NeonServ v5.6
  * Copyright (C) 2011-2012  Philipp Kreil (pk910)
  * 
  * This program is free software: you can redistribute it and/or modify
@@ -24,6 +24,7 @@
 #include "ConfigParser.h"
 #include "version.h"
 #include "IOHandler.h"
+#include "IRCEvents.h"
 
 struct socket_list {
     struct ClientSocket *data;
@@ -136,6 +137,7 @@ int destroy_socket(struct ClientSocket *client) {
         } else
             last_sock = sock;
     }
+    event_freeclient(client);
     free(client->host);
     if(client->bind)
         free(client->bind);
@@ -217,14 +219,16 @@ int clientsocket_parseorder_top(unsigned int tid) {
 
 static IOHANDLER_CALLBACK(socket_callback) {
     struct ClientSocket *client = event->iofd->data;
+    #ifdef HAVE_THREADS
     unsigned int tid;
+    #endif
     switch(event->type) {
     case IOEVENT_CONNECTED:
         client->flags |= SOCKET_FLAG_CONNECTED;
         if(client->pass && strcmp(client->pass, ""))
-            iohandler_printf(event->iofd, "PASS :%s", client->pass);
-        iohandler_printf(event->iofd, "USER %s 0 0 :%s", client->ident, client->realname);
-        iohandler_printf(event->iofd, "NICK %s", client->nick);
+            putsock(client, "PASS :%s", client->pass);
+        putsock(client, "USER %s 0 0 :%s", client->ident, client->realname);
+        putsock(client, "NICK %s", client->nick);
         break;
     case IOEVENT_NOTCONNECTED:
     case IOEVENT_CLOSED:
@@ -245,6 +249,7 @@ static IOHANDLER_CALLBACK(socket_callback) {
         tid = (unsigned int) pthread_self_tid();
         clientsocket_start_of_recv(tid);
         #endif
+        client->traffic_in += strlen(event->data.recv_str);
         parse_line(client, event->data.recv_str);
         #ifdef HAVE_THREADS
         clientsocket_end_of_recv(tid);