| 722 |
|
|
| 723 |
|
if (IsServer(source_p)) |
| 724 |
|
{ |
| 725 |
< |
dlinkDelete(&source_p->lnode, &source_p->servptr->serv->servers); |
| 725 |
> |
dlinkDelete(&source_p->lnode, &source_p->servptr->serv->server_list); |
| 726 |
|
|
| 727 |
|
if ((lp = dlinkFindDelete(&global_serv_list, source_p)) != NULL) |
| 728 |
|
free_dlink_node(lp); |
| 729 |
– |
|
| 730 |
– |
if (!MyConnect(source_p)) |
| 731 |
– |
{ |
| 732 |
– |
source_p->from->serv->dep_servers--; |
| 733 |
– |
assert(source_p->from->serv->dep_servers > 0); |
| 734 |
– |
} |
| 729 |
|
} |
| 730 |
|
else if (IsClient(source_p)) |
| 731 |
|
{ |
| 732 |
|
if (source_p->servptr->serv != NULL) |
| 733 |
< |
dlinkDelete(&source_p->lnode, &source_p->servptr->serv->users); |
| 733 |
> |
dlinkDelete(&source_p->lnode, &source_p->servptr->serv->client_list); |
| 734 |
|
|
| 735 |
|
/* If a person is on a channel, send a QUIT notice |
| 736 |
|
** to every client (person) on the same channel (so |
| 748 |
|
|
| 749 |
|
watch_check_hash(source_p, RPL_LOGOFF); |
| 750 |
|
|
| 751 |
< |
if (!MyConnect(source_p)) |
| 758 |
< |
{ |
| 759 |
< |
source_p->from->serv->dep_users--; |
| 760 |
< |
assert(source_p->from->serv->dep_users >= 0); |
| 761 |
< |
} |
| 762 |
< |
else |
| 751 |
> |
if (MyConnect(source_p)) |
| 752 |
|
{ |
| 753 |
|
/* Clean up invitefield */ |
| 754 |
|
DLINK_FOREACH_SAFE(lp, next_lp, source_p->localClient->invited.head) |
| 811 |
|
* hidden behind fakename. If so, send out the QUITs -adx |
| 812 |
|
*/ |
| 813 |
|
if (hidden || !IsCapable(to, CAP_QS)) |
| 814 |
< |
DLINK_FOREACH_SAFE(ptr, next, source_p->serv->users.head) |
| 814 |
> |
DLINK_FOREACH_SAFE(ptr, next, source_p->serv->client_list.head) |
| 815 |
|
{ |
| 816 |
|
target_p = ptr->data; |
| 817 |
|
sendto_one(to, ":%s QUIT :%s", target_p->name, splitstr); |
| 818 |
|
} |
| 819 |
|
|
| 820 |
< |
DLINK_FOREACH_SAFE(ptr, next, source_p->serv->servers.head) |
| 820 |
> |
DLINK_FOREACH_SAFE(ptr, next, source_p->serv->server_list.head) |
| 821 |
|
recurse_send_quits(original_source_p, ptr->data, from, to, |
| 822 |
|
comment, splitstr, myname); |
| 823 |
|
|
| 841 |
|
{ |
| 842 |
|
dlink_node *ptr, *next; |
| 843 |
|
|
| 844 |
< |
DLINK_FOREACH_SAFE(ptr, next, source_p->serv->users.head) |
| 844 |
> |
DLINK_FOREACH_SAFE(ptr, next, source_p->serv->client_list.head) |
| 845 |
|
exit_one_client(ptr->data, quitmsg); |
| 846 |
|
|
| 847 |
< |
DLINK_FOREACH_SAFE(ptr, next, source_p->serv->servers.head) |
| 847 |
> |
DLINK_FOREACH_SAFE(ptr, next, source_p->serv->server_list.head) |
| 848 |
|
{ |
| 849 |
|
recurse_remove_clients(ptr->data, quitmsg); |
| 850 |
|
exit_one_client(ptr->data, quitmsg); |
| 851 |
|
} |
| 863 |
– |
|
| 864 |
– |
assert(source_p->serv->dep_servers == 1); |
| 865 |
– |
assert(source_p->serv->dep_users == 0); |
| 852 |
|
} |
| 853 |
|
|
| 854 |
|
/* |