Automated merge with http://angelforce.ru:8000
This commit is contained in:
commit
4f14b4b7bc
|
@ -929,6 +929,7 @@ dnl AC_DEFINE([HASHSIZE], 4096, [Max number of buckets in hash tables.])
|
||||||
AC_DEFINE([ND_HEAP_SIZE], 128, [Size of the nick delay heap.])
|
AC_DEFINE([ND_HEAP_SIZE], 128, [Size of the nick delay heap.])
|
||||||
AC_DEFINE([CONFITEM_HEAP_SIZE], 128, [Size of the confitem heap.])
|
AC_DEFINE([CONFITEM_HEAP_SIZE], 128, [Size of the confitem heap.])
|
||||||
AC_DEFINE([MONITOR_HEAP_SIZE], 128, [Size of the monitor heap.])
|
AC_DEFINE([MONITOR_HEAP_SIZE], 128, [Size of the monitor heap.])
|
||||||
|
AC_DEFINE([AWAY_HEAP_SIZE], 128, [Size of away heap.])
|
||||||
else
|
else
|
||||||
dnl These settings are for a large network like efnet..they will use lots of memory
|
dnl These settings are for a large network like efnet..they will use lots of memory
|
||||||
dnl so enable small net unless you really need this much support
|
dnl so enable small net unless you really need this much support
|
||||||
|
@ -946,6 +947,7 @@ dnl so enable small net unless you really need this much support
|
||||||
AC_DEFINE([ND_HEAP_SIZE], 512, [Size of the nick delay heap.])
|
AC_DEFINE([ND_HEAP_SIZE], 512, [Size of the nick delay heap.])
|
||||||
AC_DEFINE([CONFITEM_HEAP_SIZE], 256, [Size of the confitem heap.])
|
AC_DEFINE([CONFITEM_HEAP_SIZE], 256, [Size of the confitem heap.])
|
||||||
AC_DEFINE([MONITOR_HEAP_SIZE], 1024, [Size of the monitor heap.])
|
AC_DEFINE([MONITOR_HEAP_SIZE], 1024, [Size of the monitor heap.])
|
||||||
|
AC_DEFINE([AWAY_HEAP_SIZE], 512, [Size of away heap.])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_ARG_WITH(nicklen,
|
AC_ARG_WITH(nicklen,
|
||||||
|
|
29
src/client.c
29
src/client.c
|
@ -76,6 +76,7 @@ static EVH check_pings;
|
||||||
extern rb_bh *client_heap;
|
extern rb_bh *client_heap;
|
||||||
extern rb_bh *lclient_heap;
|
extern rb_bh *lclient_heap;
|
||||||
extern rb_bh *pclient_heap;
|
extern rb_bh *pclient_heap;
|
||||||
|
static rb_bh *away_heap = NULL;
|
||||||
|
|
||||||
extern char current_uid[IDLEN];
|
extern char current_uid[IDLEN];
|
||||||
|
|
||||||
|
@ -117,9 +118,11 @@ init_client(void)
|
||||||
* start off the check ping event .. -- adrian
|
* start off the check ping event .. -- adrian
|
||||||
* Every 30 seconds is plenty -- db
|
* Every 30 seconds is plenty -- db
|
||||||
*/
|
*/
|
||||||
client_heap = rb_bh_create(sizeof(struct Client), CLIENT_HEAP_SIZE);
|
client_heap = rb_bh_create(sizeof(struct Client), CLIENT_HEAP_SIZE, "client_heap");
|
||||||
lclient_heap = rb_bh_create(sizeof(struct LocalUser), LCLIENT_HEAP_SIZE);
|
lclient_heap = rb_bh_create(sizeof(struct LocalUser), LCLIENT_HEAP_SIZE, "lclient_heap");
|
||||||
pclient_heap = rb_bh_create(sizeof(struct PreClient), PCLIENT_HEAP_SIZE);
|
pclient_heap = rb_bh_create(sizeof(struct PreClient), PCLIENT_HEAP_SIZE, "pclient_heap");
|
||||||
|
away_heap = rb_bh_create(AWAYLEN, AWAY_HEAP_SIZE, "away_heap");
|
||||||
|
|
||||||
rb_event_addish("check_pings", check_pings, NULL, 30);
|
rb_event_addish("check_pings", check_pings, NULL, 30);
|
||||||
rb_event_addish("free_exited_clients", &free_exited_clients, NULL, 4);
|
rb_event_addish("free_exited_clients", &free_exited_clients, NULL, 4);
|
||||||
rb_event_addish("exit_aborted_clients", exit_aborted_clients, NULL, 1);
|
rb_event_addish("exit_aborted_clients", exit_aborted_clients, NULL, 1);
|
||||||
|
@ -1553,10 +1556,10 @@ exit_local_server(struct Client *client_p, struct Client *source_p, struct Clien
|
||||||
|
|
||||||
sendto_realops_snomask(SNO_GENERAL, L_ALL, "%s was connected"
|
sendto_realops_snomask(SNO_GENERAL, L_ALL, "%s was connected"
|
||||||
" for %ld seconds. %d/%d sendK/recvK.",
|
" for %ld seconds. %d/%d sendK/recvK.",
|
||||||
source_p->name, rb_current_time() - source_p->localClient->firsttime, sendk, recvk);
|
source_p->name, (long) rb_current_time() - source_p->localClient->firsttime, sendk, recvk);
|
||||||
|
|
||||||
ilog(L_SERVER, "%s was connected for %ld seconds. %d/%d sendK/recvK.",
|
ilog(L_SERVER, "%s was connected for %ld seconds. %d/%d sendK/recvK.",
|
||||||
source_p->name, rb_current_time() - source_p->localClient->firsttime, sendk, recvk);
|
source_p->name, (long) rb_current_time() - source_p->localClient->firsttime, sendk, recvk);
|
||||||
|
|
||||||
if(has_id(source_p))
|
if(has_id(source_p))
|
||||||
del_from_id_hash(source_p->id, source_p);
|
del_from_id_hash(source_p->id, source_p);
|
||||||
|
@ -1709,8 +1712,8 @@ void
|
||||||
count_local_client_memory(size_t * count, size_t * local_client_memory_used)
|
count_local_client_memory(size_t * count, size_t * local_client_memory_used)
|
||||||
{
|
{
|
||||||
size_t lusage;
|
size_t lusage;
|
||||||
rb_bh_usage(lclient_heap, count, NULL, &lusage);
|
rb_bh_usage(lclient_heap, count, NULL, &lusage, NULL);
|
||||||
*local_client_memory_used = lusage + (*count * (sizeof(MemBlock) + sizeof(struct Client)));
|
*local_client_memory_used = lusage + (*count * (sizeof(void *) + sizeof(struct Client)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1720,10 +1723,10 @@ void
|
||||||
count_remote_client_memory(size_t * count, size_t * remote_client_memory_used)
|
count_remote_client_memory(size_t * count, size_t * remote_client_memory_used)
|
||||||
{
|
{
|
||||||
size_t lcount, rcount;
|
size_t lcount, rcount;
|
||||||
rb_bh_usage(lclient_heap, &lcount, NULL, NULL);
|
rb_bh_usage(lclient_heap, &lcount, NULL, NULL, NULL);
|
||||||
rb_bh_usage(client_heap, &rcount, NULL, NULL);
|
rb_bh_usage(client_heap, &rcount, NULL, NULL, NULL);
|
||||||
*count = rcount - lcount;
|
*count = rcount - lcount;
|
||||||
*remote_client_memory_used = *count * (sizeof(MemBlock) + sizeof(struct Client));
|
*remote_client_memory_used = *count * (sizeof(void *) + sizeof(struct Client));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1845,9 +1848,9 @@ static rb_bh *user_heap;
|
||||||
void
|
void
|
||||||
initUser(void)
|
initUser(void)
|
||||||
{
|
{
|
||||||
user_heap = rb_bh_create(sizeof(struct User), USER_HEAP_SIZE);
|
user_heap = rb_bh_create(sizeof(struct User), USER_HEAP_SIZE, "user_heap");
|
||||||
if(!user_heap)
|
if(!user_heap)
|
||||||
outofmemory();
|
rb_outofmemory();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1906,6 +1909,8 @@ make_server(struct Client *client_p)
|
||||||
void
|
void
|
||||||
free_user(struct User *user, struct Client *client_p)
|
free_user(struct User *user, struct Client *client_p)
|
||||||
{
|
{
|
||||||
|
free_away(client_p);
|
||||||
|
|
||||||
if(--user->refcnt <= 0)
|
if(--user->refcnt <= 0)
|
||||||
{
|
{
|
||||||
if(user->away)
|
if(user->away)
|
||||||
|
|
Loading…
Reference in New Issue