]> jfr.im git - solanum.git/blobdiff - src/client.c
Reverting some changed related not to moving on libratbox3 but using ratbox3 source!
[solanum.git] / src / client.c
index d84ca3ff45292c4f96c63d0bbdd8e8cecab332da..ecc87224787198a3b05fb05746d2d4f28aff269a 100644 (file)
@@ -456,7 +456,7 @@ check_banned_lines(void)
                        continue;
 
                /* if there is a returned struct ConfItem then kill it */
-               if((aconf = find_dline((struct sockaddr *)&client_p->localClient->ip)))
+               if((aconf = find_dline((struct sockaddr *)&client_p->localClient->ip, client_p->localClient->ip.ss_family)))
                {
                        if(aconf->status & CONF_EXEMPTDLINE)
                                continue;
@@ -540,7 +540,7 @@ check_banned_lines(void)
        {
                client_p = ptr->data;
 
-               if((aconf = find_dline((struct sockaddr *)&client_p->localClient->ip)))
+               if((aconf = find_dline((struct sockaddr *)&client_p->localClient->ip,client_p->localClient->ip.ss_family)))
                {
                        if(aconf->status & CONF_EXEMPTDLINE)
                                continue;
@@ -675,7 +675,7 @@ check_dlines(void)
                if(IsMe(client_p))
                        continue;
 
-               if((aconf = find_dline((struct sockaddr *)&client_p->localClient->ip)) != NULL)
+               if((aconf = find_dline((struct sockaddr *)&client_p->localClient->ip,client_p->localClient->ip.ss_family)) != NULL)
                {
                        if(aconf->status & CONF_EXEMPTDLINE)
                                continue;
@@ -694,7 +694,7 @@ check_dlines(void)
        {
                client_p = ptr->data;
 
-               if((aconf = find_dline((struct sockaddr *)&client_p->localClient->ip)) != NULL)
+               if((aconf = find_dline((struct sockaddr *)&client_p->localClient->ip,client_p->localClient->ip.ss_family)) != NULL)
                {
                        if(aconf->status & CONF_EXEMPTDLINE)
                                continue;
@@ -1401,6 +1401,7 @@ exit_unknown_client(struct Client *client_p, struct Client *source_p, struct Cli
                  const char *comment)
 {
        delete_auth_queries(source_p);
+       del_unknown_ip(source_p);
        rb_dlinkDelete(&source_p->localClient->tnode, &unknown_list);
 
        if(!IsIOError(source_p))
@@ -2025,21 +2026,21 @@ close_connection(struct Client *client_p)
        {
                struct server_conf *server_p;
 
-               ServerStats.is_sv++;
-               ServerStats.is_sbs += client_p->localClient->sendB;
-               ServerStats.is_sbr += client_p->localClient->receiveB;
-               ServerStats.is_sks += client_p->localClient->sendK;
-               ServerStats.is_skr += client_p->localClient->receiveK;
-               ServerStats.is_sti += rb_current_time() - client_p->localClient->firsttime;
-               if(ServerStats.is_sbs > 2047)
+               ServerStats->is_sv++;
+               ServerStats->is_sbs += client_p->localClient->sendB;
+               ServerStats->is_sbr += client_p->localClient->receiveB;
+               ServerStats->is_sks += client_p->localClient->sendK;
+               ServerStats->is_skr += client_p->localClient->receiveK;
+               ServerStats->is_sti += rb_current_time() - client_p->localClient->firsttime;
+               if(ServerStats->is_sbs > 2047)
                {
-                       ServerStats.is_sks += (ServerStats.is_sbs >> 10);
-                       ServerStats.is_sbs &= 0x3ff;
+                       ServerStats->is_sks += (ServerStats->is_sbs >> 10);
+                       ServerStats->is_sbs &= 0x3ff;
                }
-               if(ServerStats.is_sbr > 2047)
+               if(ServerStats->is_sbr > 2047)
                {
-                       ServerStats.is_skr += (ServerStats.is_sbr >> 10);
-                       ServerStats.is_sbr &= 0x3ff;
+                       ServerStats->is_skr += (ServerStats->is_sbr >> 10);
+                       ServerStats->is_sbr &= 0x3ff;
                }
 
                /*
@@ -2063,35 +2064,40 @@ close_connection(struct Client *client_p)
        }
        else if(IsClient(client_p))
        {
-               ServerStats.is_cl++;
-               ServerStats.is_cbs += client_p->localClient->sendB;
-               ServerStats.is_cbr += client_p->localClient->receiveB;
-               ServerStats.is_cks += client_p->localClient->sendK;
-               ServerStats.is_ckr += client_p->localClient->receiveK;
-               ServerStats.is_cti += rb_current_time() - client_p->localClient->firsttime;
-               if(ServerStats.is_cbs > 2047)
+               ServerStats->is_cl++;
+               ServerStats->is_cbs += client_p->localClient->sendB;
+               ServerStats->is_cbr += client_p->localClient->receiveB;
+               ServerStats->is_cks += client_p->localClient->sendK;
+               ServerStats->is_ckr += client_p->localClient->receiveK;
+               ServerStats->is_cti += rb_current_time() - client_p->localClient->firsttime;
+               if(ServerStats->is_cbs > 2047)
                {
-                       ServerStats.is_cks += (ServerStats.is_cbs >> 10);
-                       ServerStats.is_cbs &= 0x3ff;
+                       ServerStats->is_cks += (ServerStats->is_cbs >> 10);
+                       ServerStats->is_cbs &= 0x3ff;
                }
-               if(ServerStats.is_cbr > 2047)
+               if(ServerStats->is_cbr > 2047)
                {
-                       ServerStats.is_ckr += (ServerStats.is_cbr >> 10);
-                       ServerStats.is_cbr &= 0x3ff;
+                       ServerStats->is_ckr += (ServerStats->is_cbr >> 10);
+                       ServerStats->is_cbr &= 0x3ff;
                }
        }
        else
-               ServerStats.is_ni++;
-
-       /* XXX ctrlFd was here!!! */
-       if(client_p->localClient->F != NULL)\r
-       {\r
-               /* attempt to flush any pending linebufs. Evil, but .. -- adrian */\r
-               if(!IsIOError(client_p))\r
-                       send_pop_queue(client_p);\r
-               del_from_cli_fd_hash(client_p);                 \r
-               rb_close(client_p->localClient->F);\r
-               client_p->localClient->F = NULL;\r
+               ServerStats->is_ni++;
+
+       if(client_p->localClient->F)
+       {
+               /* attempt to flush any pending dbufs. Evil, but .. -- adrian */
+               if(!IsIOError(client_p))
+                       send_queued(client_p);
+
+               rb_close(client_p->localClient->F);
+               client_p->localClient->F = NULL;
+       }
+
+       if(-1 < client_p->localClient->ctrlfd)
+       {
+               rb_close(client_p->localClient->ctrlfd);
+               client_p->localClient->ctrlfd = -1;
        }
 
        rb_linebuf_donebuf(&client_p->localClient->buf_sendq);