#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"
#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"
#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"
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);
}
}
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;
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;
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;
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;
}
/* 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;
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;
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;
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;
}
/* 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;
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;
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);
}
}
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;
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)
}
#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;
}
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);
/* 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;
}
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;
}
}
- 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);
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;
{
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;
*/
abt->client->flags &= ~FLAGS_CLOSING;
exit_client(abt->client, abt->client, &me, abt->notice);
- MyFree(abt);
+ rb_free(abt);
}
}
if(IsDead(client_p) || IsClosing(client_p) || IsMe(client_p))
return;
- abt = (struct abort_client *) MyMalloc(sizeof(struct abort_client));
+ abt = (struct abort_client *) rb_malloc(sizeof(struct abort_client));
if(client_p->flags & FLAGS_SENDQEX)
strlcpy(abt->notice, "Max SendQ exceeded", sizeof(abt->notice));
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);
}
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);
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);
/* 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);
}
/* 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);
if(!serv)
{
- serv = (server_t *) MyMalloc(sizeof(server_t));
+ serv = (server_t *) rb_malloc(sizeof(server_t));
client_p->serv = serv;
}
return client_p->serv;
if(--user->refcnt <= 0)
{
if(user->away)
- MyFree((char *) user->away);
+ rb_free((char *) user->away);
/*
* sanity check
*/
}
}
+void\r
+allocate_away(struct Client *client_p)\r
+{\r
+ if(client_p->user->away == NULL)\r
+ client_p->user->away = rb_bh_alloc(away_heap); \r
+}\r
+\r
+\r
+void\r
+free_away(struct Client *client_p)\r
+{\r
+ if(client_p->user->away != NULL) {\r
+ rb_bh_free(away_heap, client_p->user->away);\r
+ client_p->user->away = NULL;\r
+ }\r
+}
+
void
init_uid(void)
{
{
/* 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;
}
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. */
* 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);