]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/client.c
Clarify connection setup.
[irc/rqf/shadowircd.git] / src / client.c
index a1fd820f523bed4c539195c0484e12fcdd6bdde8..ac45624f0f180842cd14a4f181f0edecb211a562 100644 (file)
@@ -235,8 +235,14 @@ free_local_client(struct Client *client_p)
        rb_free(client_p->localClient->fullcaps);
        rb_free(client_p->localClient->opername);
        rb_free(client_p->localClient->mangledhost);
+       if (client_p->localClient->privset)
+               privilegeset_unref(client_p->localClient->privset);
 
-       ssld_decrement_clicount(client_p->localClient->ssl_ctl);
+       if(IsSSL(client_p))
+           ssld_decrement_clicount(client_p->localClient->ssl_ctl);
+           
+       if(IsCapable(client_p, CAP_ZIP))
+           ssld_decrement_clicount(client_p->localClient->z_ctl);
 
        rb_bh_free(lclient_heap, client_p->localClient);
        client_p->localClient = NULL;
@@ -1280,7 +1286,6 @@ exit_unknown_client(struct Client *client_p, struct Client *source_p, struct Cli
                delete_resolver_queries(source_p->localClient->dnsquery);
                rb_free(source_p->localClient->dnsquery);
        }
-       del_unknown_ip(source_p);
        rb_dlinkDelete(&source_p->localClient->tnode, &unknown_list);
 
        if(!IsIOError(source_p))
@@ -1362,15 +1367,12 @@ static int
 qs_server(struct Client *client_p, struct Client *source_p, struct Client *from, 
                  const char *comment)
 {
-       struct Client *target_p;
-
        if(source_p->servptr && source_p->servptr->serv)
                rb_dlinkDelete(&source_p->lnode, &source_p->servptr->serv->servers);
        else
                s_assert(0);
 
        rb_dlinkFindDestroy(source_p, &global_serv_list);
-       target_p = source_p->from;
        
        if(has_id(source_p))
                del_from_id_hash(source_p->id, source_p);
@@ -1488,10 +1490,11 @@ exit_local_client(struct Client *client_p, struct Client *source_p, struct Clien
 
        on_for = rb_current_time() - source_p->localClient->firsttime;
 
-       ilog(L_USER, "%s (%3lu:%02lu:%02lu): %s!%s@%s %d/%d",
+       ilog(L_USER, "%s (%3lu:%02lu:%02lu): %s!%s@%s %s %d/%d",
                rb_ctime(rb_current_time(), tbuf, sizeof(tbuf)), on_for / 3600,
                (on_for % 3600) / 60, on_for % 60,
                source_p->name, source_p->username, source_p->host,
+               source_p->sockhost,
                source_p->localClient->sendK, source_p->localClient->receiveK);
 
        sendto_one(source_p, "ERROR :Closing Link: %s (%s)", source_p->host, comment);
@@ -1885,7 +1888,7 @@ close_connection(struct Client *client_p)
                ServerStats.is_sv++;
                ServerStats.is_sbs += client_p->localClient->sendB;
                ServerStats.is_sbr += client_p->localClient->receiveB;
-               ServerStats.is_sti += rb_current_time() - client_p->localClient->firsttime;
+               ServerStats.is_sti += (unsigned long long)(rb_current_time() - client_p->localClient->firsttime);
 
                /*
                 * If the connection has been up for a long amount of time, schedule
@@ -1911,7 +1914,7 @@ close_connection(struct Client *client_p)
                ServerStats.is_cl++;
                ServerStats.is_cbs += client_p->localClient->sendB;
                ServerStats.is_cbr += client_p->localClient->receiveB;
-               ServerStats.is_cti += rb_current_time() - client_p->localClient->firsttime;
+               ServerStats.is_cti += (unsigned long long)(rb_current_time() - client_p->localClient->firsttime);
        }
        else
                ServerStats.is_ni++;