866 |
source_p->localClient->auth = NULL; |
source_p->localClient->auth = NULL; |
867 |
} |
} |
868 |
|
|
869 |
/* This source_p could have status of one of STAT_UNKNOWN, STAT_CONNECTING |
/* |
870 |
|
* This source_p could have status of one of STAT_UNKNOWN, STAT_CONNECTING |
871 |
* STAT_HANDSHAKE or STAT_UNKNOWN |
* STAT_HANDSHAKE or STAT_UNKNOWN |
872 |
* all of which are lumped together into unknown_list |
* all of which are lumped together into unknown_list |
873 |
* |
* |
886 |
Count.local--; |
Count.local--; |
887 |
|
|
888 |
if (HasUMode(source_p, UMODE_OPER)) |
if (HasUMode(source_p, UMODE_OPER)) |
|
{ |
|
889 |
if ((m = dlinkFindDelete(&oper_list, source_p)) != NULL) |
if ((m = dlinkFindDelete(&oper_list, source_p)) != NULL) |
890 |
free_dlink_node(m); |
free_dlink_node(m); |
|
} |
|
891 |
|
|
892 |
assert(dlinkFind(&local_client_list, source_p)); |
assert(dlinkFind(&local_client_list, source_p)); |
893 |
dlinkDelete(&source_p->localClient->lclient_node, &local_client_list); |
dlinkDelete(&source_p->localClient->lclient_node, &local_client_list); |
914 |
source_p->localClient->send.bytes>>10, |
source_p->localClient->send.bytes>>10, |
915 |
source_p->localClient->recv.bytes>>10); |
source_p->localClient->recv.bytes>>10); |
916 |
} |
} |
917 |
|
else if (IsServer(source_p)) |
|
/* As soon as a client is known to be a server of some sort |
|
|
* it has to be put on the serv_list, or SJOIN's to this new server |
|
|
* from the connect burst will not be seen. |
|
|
* XXX - TBV. This is not true. The only place where we put a server on |
|
|
* serv_list is in server_estab right now after registration process. |
|
|
* And only after this, a burst is sent to the remote server, i.e. we never |
|
|
* send a burst to STAT_CONNECTING, or STAT_HANDSHAKE. This will need |
|
|
* more investigation later on, but for now, it's not a problem after all. |
|
|
*/ |
|
|
if (IsServer(source_p) || IsConnecting(source_p) || |
|
|
IsHandshake(source_p)) |
|
918 |
{ |
{ |
919 |
if (dlinkFind(&serv_list, source_p)) |
assert(Count.myserver > 0); |
920 |
{ |
--Count.myserver; |
|
dlinkDelete(&source_p->localClient->lclient_node, &serv_list); |
|
|
unset_chcap_usage_counts(source_p); |
|
|
} |
|
921 |
|
|
922 |
if (IsServer(source_p)) |
assert(dlinkFind(&serv_list, source_p)); |
923 |
Count.myserver--; |
dlinkDelete(&source_p->localClient->lclient_node, &serv_list); |
924 |
|
unset_chcap_usage_counts(source_p); |
925 |
} |
} |
926 |
|
|
927 |
if (!IsDead(source_p)) |
if (!IsDead(source_p)) |