protocol parsers
[NextIRCd.git] / src / ircd_sock.c
index 602282a35302caa16242da44181b0dee38c44329..5e750082ca75ab57fb46a865ac15a53d7f3e43b0 100644 (file)
@@ -18,6 +18,7 @@
 #include "ircd_config.h"
 #include "ircd_sock.h"
 #include "ircd_client.h"
+#include "ircd_parse.h"
 #include "struct_connection.h"
 
 #include "IOHandler/IOSockets.h"
@@ -196,11 +197,12 @@ static IOSOCKET_CALLBACK(sockets_iohandler_callback) {
         break;
     
     case IOSOCKETEVENT_RECV:
-        if(connection->server) {
-            
-        } else {
-            client_recv(connection, event->data.recv_str);
-        }
+               if(!connection->authed)
+                       parse_unauth_data(connection->data.auth, event->data.recv_str);
+        else if(connection->server)
+            parse_server_data(connection->data.server, event->data.recv_buf);
+        else
+            parse_client_data(connection->data.client, event->data.recv_str);
         break;
     
     default:
@@ -212,3 +214,8 @@ void socket_send(struct Connection *conn, char *data, int len) {
     iosocket_send(conn->socket, data, len);
 }
 
+void socket_set_server(struct Connection *conn) {
+       struct IOSocket *iosock = conn->socket;
+       iosock->parse_delimiter = 0;
+       conn->server = 1;
+}