X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/af81d5a0b09446188fd6f9c292b51519f2c1cedd..90a3c35b295b07ebe3793bf5d3b882c3c1a5dc7c:/src/client.c diff --git a/src/client.c b/src/client.c index 80b35c6..c4ade72 100644 --- a/src/client.c +++ b/src/client.c @@ -27,11 +27,9 @@ #include "stdinc.h" #include "config.h" -#include "tools.h" #include "client.h" #include "class.h" #include "common.h" -#include "event.h" #include "hash.h" #include "irc_string.h" #include "sprintf_irc.h" @@ -40,7 +38,6 @@ #include "numeric.h" #include "packet.h" #include "s_auth.h" -#include "commio.h" #include "s_conf.h" #include "s_newconf.h" #include "s_log.h" @@ -49,11 +46,8 @@ #include "send.h" #include "whowas.h" #include "s_user.h" -#include "linebuf.h" #include "hash.h" -#include "memory.h" #include "hostmask.h" -#include "balloc.h" #include "listener.h" #include "hook.h" #include "msg.h" @@ -126,9 +120,9 @@ init_client(void) client_heap = BlockHeapCreate(sizeof(struct Client), CLIENT_HEAP_SIZE); lclient_heap = BlockHeapCreate(sizeof(struct LocalUser), LCLIENT_HEAP_SIZE); pclient_heap = BlockHeapCreate(sizeof(struct PreClient), PCLIENT_HEAP_SIZE); - eventAddIsh("check_pings", check_pings, NULL, 30); - eventAddIsh("free_exited_clients", &free_exited_clients, NULL, 4); - eventAddIsh("exit_aborted_clients", exit_aborted_clients, NULL, 1); + rb_event_addish("check_pings", check_pings, NULL, 30); + rb_event_addish("free_exited_clients", &free_exited_clients, NULL, 4); + rb_event_addish("exit_aborted_clients", exit_aborted_clients, NULL, 1); nd_dict = irc_dictionary_create(irccmp); } @@ -223,19 +217,19 @@ free_local_client(struct Client *client_p) } if(client_p->localClient->F) - rb_close(client_p->localClient->F->fd); + rb_close(client_p->localClient->F); if(client_p->localClient->passwd) { memset(client_p->localClient->passwd, 0, strlen(client_p->localClient->passwd)); - MyFree(client_p->localClient->passwd); + rb_free(client_p->localClient->passwd); } - MyFree(client_p->localClient->challenge); - MyFree(client_p->localClient->fullcaps); - MyFree(client_p->localClient->opername); - MyFree(client_p->localClient->mangledhost); + rb_free(client_p->localClient->challenge); + rb_free(client_p->localClient->fullcaps); + rb_free(client_p->localClient->opername); + rb_free(client_p->localClient->mangledhost); BlockHeapFree(lclient_heap, client_p->localClient); client_p->localClient = NULL; @@ -300,7 +294,7 @@ check_pings_list(rb_dlink_list * list) int ping = 0; /* ping time value from client */ rb_dlink_node *ptr, *next_ptr; - DLINK_FOREACH_SAFE(ptr, next_ptr, list->head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, list->head) { client_p = ptr->data; @@ -366,7 +360,7 @@ check_unknowns_list(rb_dlink_list * list) struct Client *client_p; int timeout; - DLINK_FOREACH_SAFE(ptr, next_ptr, list->head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, list->head) { client_p = ptr->data; @@ -451,7 +445,7 @@ check_banned_lines(void) struct ConfItem *aconf = NULL; rb_dlink_node *ptr, *next_ptr; - DLINK_FOREACH_SAFE(ptr, next_ptr, lclient_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, lclient_list.head) { client_p = ptr->data; @@ -539,7 +533,7 @@ check_banned_lines(void) } /* also check the unknowns list for new dlines */ - DLINK_FOREACH_SAFE(ptr, next_ptr, unknown_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, unknown_list.head) { client_p = ptr->data; @@ -581,7 +575,7 @@ check_klines(void) rb_dlink_node *ptr; rb_dlink_node *next_ptr; - DLINK_FOREACH_SAFE(ptr, next_ptr, lclient_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, lclient_list.head) { client_p = ptr->data; @@ -622,7 +616,7 @@ check_glines(void) rb_dlink_node *ptr; rb_dlink_node *next_ptr; - DLINK_FOREACH_SAFE(ptr, next_ptr, lclient_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, lclient_list.head) { client_p = ptr->data; @@ -671,7 +665,7 @@ check_dlines(void) rb_dlink_node *ptr; rb_dlink_node *next_ptr; - DLINK_FOREACH_SAFE(ptr, next_ptr, lclient_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, lclient_list.head) { client_p = ptr->data; @@ -693,7 +687,7 @@ check_dlines(void) } /* dlines need to be checked against unknowns too */ - DLINK_FOREACH_SAFE(ptr, next_ptr, unknown_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, unknown_list.head) { client_p = ptr->data; @@ -721,7 +715,7 @@ check_xlines(void) rb_dlink_node *ptr; rb_dlink_node *next_ptr; - DLINK_FOREACH_SAFE(ptr, next_ptr, lclient_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, lclient_list.head) { client_p = ptr->data; @@ -797,8 +791,8 @@ release_client_state(struct Client *client_p) if(client_p->serv->user != NULL) free_user(client_p->serv->user, client_p); if(client_p->serv->fullcaps) - MyFree(client_p->serv->fullcaps); - MyFree(client_p->serv); + rb_free(client_p->serv->fullcaps); + rb_free(client_p->serv); } } @@ -1064,7 +1058,7 @@ free_exited_clients(void *unused) rb_dlink_node *ptr, *next; struct Client *target_p; - DLINK_FOREACH_SAFE(ptr, next, dead_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next, dead_list.head) { target_p = ptr->data; @@ -1074,7 +1068,7 @@ free_exited_clients(void *unused) rb_dlink_node *aptr; int found = 0; - DLINK_FOREACH(aptr, abort_list.head) + RB_DLINK_FOREACH(aptr, abort_list.head) { abt = aptr->data; if(abt->client == target_p) @@ -1111,7 +1105,7 @@ free_exited_clients(void *unused) } #ifdef DEBUG_EXITED_CLIENTS - DLINK_FOREACH_SAFE(ptr, next, dead_remote_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next, dead_remote_list.head) { target_p = ptr->data; @@ -1156,12 +1150,12 @@ recurse_send_quits(struct Client *client_p, struct Client *source_p, } else { - DLINK_FOREACH_SAFE(ptr, ptr_next, source_p->serv->users.head) + RB_DLINK_FOREACH_SAFE(ptr, ptr_next, source_p->serv->users.head) { target_p = ptr->data; sendto_one(to, ":%s QUIT :%s", target_p->name, comment1); } - DLINK_FOREACH_SAFE(ptr, ptr_next, source_p->serv->servers.head) + RB_DLINK_FOREACH_SAFE(ptr, ptr_next, source_p->serv->servers.head) { target_p = ptr->data; recurse_send_quits(client_p, target_p, to, comment1, comment); @@ -1194,7 +1188,7 @@ recurse_remove_clients(struct Client *source_p, const char *comment) /* this is very ugly, but it saves cpu :P */ if(ConfigFileEntry.nick_delay > 0) { - DLINK_FOREACH_SAFE(ptr, ptr_next, source_p->serv->users.head) + RB_DLINK_FOREACH_SAFE(ptr, ptr_next, source_p->serv->users.head) { target_p = ptr->data; target_p->flags |= FLAGS_KILLED; @@ -1206,7 +1200,7 @@ recurse_remove_clients(struct Client *source_p, const char *comment) } else { - DLINK_FOREACH_SAFE(ptr, ptr_next, source_p->serv->users.head) + RB_DLINK_FOREACH_SAFE(ptr, ptr_next, source_p->serv->users.head) { target_p = ptr->data; target_p->flags |= FLAGS_KILLED; @@ -1216,7 +1210,7 @@ recurse_remove_clients(struct Client *source_p, const char *comment) } } - DLINK_FOREACH_SAFE(ptr, ptr_next, source_p->serv->servers.head) + RB_DLINK_FOREACH_SAFE(ptr, ptr_next, source_p->serv->servers.head) { target_p = ptr->data; recurse_remove_clients(target_p, comment); @@ -1237,7 +1231,7 @@ remove_dependents(struct Client *client_p, struct Client *to; rb_dlink_node *ptr, *next; - DLINK_FOREACH_SAFE(ptr, next, serv_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next, serv_list.head) { to = ptr->data; @@ -1256,7 +1250,7 @@ exit_aborted_clients(void *unused) { struct abort_client *abt; rb_dlink_node *ptr, *next; - DLINK_FOREACH_SAFE(ptr, next, abort_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next, abort_list.head) { abt = ptr->data; @@ -1289,7 +1283,7 @@ exit_aborted_clients(void *unused) */ abt->client->flags &= ~FLAGS_CLOSING; exit_client(abt->client, abt->client, &me, abt->notice); - MyFree(abt); + rb_free(abt); } } @@ -1342,7 +1336,7 @@ exit_generic_client(struct Client *client_p, struct Client *source_p, struct Cli s_assert(source_p->user->channel.head == NULL); /* Clean up invitefield */ - DLINK_FOREACH_SAFE(ptr, next_ptr, source_p->user->invited.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, source_p->user->invited.head) { del_invite(ptr->data, source_p); } @@ -1404,7 +1398,6 @@ exit_unknown_client(struct Client *client_p, struct Client *source_p, struct Cli const char *comment) { delete_auth_queries(source_p); - client_flush_input(source_p); del_unknown_ip(source_p); rb_dlinkDelete(&source_p->localClient->tnode, &unknown_list); @@ -1592,7 +1585,6 @@ exit_local_client(struct Client *client_p, struct Client *source_p, struct Clien clear_monitor(source_p); s_assert(IsPerson(source_p)); - client_flush_input(source_p); rb_dlinkDelete(&source_p->localClient->tnode, &lclient_list); rb_dlinkDelete(&source_p->lnode, &me.serv->users); @@ -1772,7 +1764,7 @@ del_all_accepts(struct Client *client_p) /* clear this clients accept list, and remove them from * everyones on_accept_list */ - DLINK_FOREACH_SAFE(ptr, next_ptr, client_p->localClient->allow_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, client_p->localClient->allow_list.head) { target_p = ptr->data; rb_dlinkFindDestroy(client_p, &target_p->on_allow_list); @@ -1781,7 +1773,7 @@ del_all_accepts(struct Client *client_p) } /* remove this client from everyones accept list */ - DLINK_FOREACH_SAFE(ptr, next_ptr, client_p->on_allow_list.head) + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, client_p->on_allow_list.head) { target_p = ptr->data; rb_dlinkFindDestroy(client_p, &target_p->localClient->allow_list); @@ -1917,7 +1909,7 @@ free_user(struct User *user, struct Client *client_p) if(--user->refcnt <= 0) { if(user->away) - MyFree((char *) user->away); + rb_free((char *) user->away); /* * sanity check */ @@ -2074,9 +2066,9 @@ close_connection(struct Client *client_p) { /* attempt to flush any pending dbufs. Evil, but .. -- adrian */ if(!IsIOError(client_p)) - send_queued_write(client_p->localClient->F->fd, client_p); + send_queued(client_p); - rb_close(client_p->localClient->F->fd); + rb_close(client_p->localClient->F); client_p->localClient->F = NULL; } @@ -2086,8 +2078,8 @@ close_connection(struct Client *client_p) client_p->localClient->ctrlfd = -1; } - linebuf_donebuf(&client_p->localClient->buf_sendq); - linebuf_donebuf(&client_p->localClient->buf_recvq); + rb_linebuf_donebuf(&client_p->localClient->buf_sendq); + rb_linebuf_donebuf(&client_p->localClient->buf_recvq); detach_conf(client_p); /* XXX shouldnt really be done here. */ @@ -2113,7 +2105,7 @@ error_exit_client(struct Client *client_p, int error) * for reading even though it ends up being an EOF. -avalon */ char errmsg[255]; - int current_error = rb_get_sockerr(client_p->localClient->F->fd); + int current_error = rb_get_sockerr(client_p->localClient->F); SetIOError(client_p);