added new multi log system
[NeonServV5.git] / src / ClientSocket.c
index 9112b850e942a828ea1250260feacc1944cdd898..d8faf26d4a0ec7c56ae3475f083b300300517df3 100644 (file)
@@ -14,7 +14,7 @@
  * You should have received a copy of the GNU General Public License 
  * along with this program. If not, see <http://www.gnu.org/licenses/>. 
  */
-
+#include "main.h"
 #include "ClientSocket.h"
 #include "IRCParser.h"
 #include "UserNode.h"
@@ -25,6 +25,7 @@
 #include "version.h"
 #include "IOHandler.h"
 #include "IRCEvents.h"
+#include "log.h"
 
 struct socket_list {
     struct ClientSocket *data;
@@ -54,7 +55,7 @@ void init_sockets() {
     sockets = malloc(sizeof(*sockets));
     if (!sockets)
     {
-        perror("malloc() failed");
+        printf_log("main", LOG_ERROR, "%s:%d malloc() failed", __FILE__, __LINE__);
         return;
     }
     sockets->data = NULL;
@@ -156,9 +157,9 @@ int write_socket_force(struct ClientSocket *client, char* msg, int len) {
     if(!(client && (client->flags & SOCKET_FLAG_CONNECTED))) return 0;
     SYNCHRONIZE(synchronized);
     #ifdef HAVE_THREADS
-    putlog(LOGLEVEL_RAW, "[%d send %d] %s", getCurrentThreadID(), len, msg);
+    printf_log("main", LOG_IRCRAW, "[%d send %d] %s", getCurrentThreadID(), len, msg);
     #else
-    putlog(LOGLEVEL_RAW, "[send %d] %s", len, msg);
+    printf_log("main", LOG_IRCRAW, "[send %d] %s", len, msg);
     #endif
        iohandler_send(client->iofd, msg, len);
     client->traffic_out += len;
@@ -222,6 +223,8 @@ static IOHANDLER_CALLBACK(socket_callback) {
     #ifdef HAVE_THREADS
     unsigned int tid;
     #endif
+    if(process_state.running == 0)
+        return; //just ignore the event (shutdown sequence)
     switch(event->type) {
     case IOEVENT_CONNECTED:
         client->flags |= SOCKET_FLAG_CONNECTED;
@@ -296,7 +299,8 @@ void free_sockets(int close_only) {
         } else
             destroy_socket(client);
     }
-    if(!close_only)
+    if(!close_only) {
         free(sockets);
-    sockets = NULL;
+        sockets = NULL;
+    }
 }