Crash fix
This commit is contained in:
parent
e120d5c76d
commit
aa18ac047d
@ -86,10 +86,10 @@ void net_on_read(int fd, short ev, void *arg)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (msglen < user->hub->config->max_recv_buffer)
|
if (msglen < g_hub->config->max_recv_buffer)
|
||||||
{
|
{
|
||||||
// FIXME: hub is not set????
|
// FIXME: hub is not set????
|
||||||
if (hub_handle_message(user->hub, user, &buf[handled], msglen) == -1)
|
if (hub_handle_message(g_hub, user, &buf[handled], msglen) == -1)
|
||||||
{
|
{
|
||||||
flag_close = quit_protocol_error;
|
flag_close = quit_protocol_error;
|
||||||
more = 0;
|
more = 0;
|
||||||
@ -109,7 +109,7 @@ void net_on_read(int fd, short ev, void *arg)
|
|||||||
|
|
||||||
if (handled < buflen)
|
if (handled < buflen)
|
||||||
{
|
{
|
||||||
if ((buflen - handled) > user->hub->config->max_recv_buffer)
|
if ((buflen - handled) > g_hub->config->max_recv_buffer)
|
||||||
{
|
{
|
||||||
user_flag_set(user, flag_maxbuf);
|
user_flag_set(user, flag_maxbuf);
|
||||||
hub_free(user->recv_buf);
|
hub_free(user->recv_buf);
|
||||||
@ -119,7 +119,7 @@ void net_on_read(int fd, short ev, void *arg)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!user->recv_buf)
|
if (!user->recv_buf)
|
||||||
user->recv_buf = hub_malloc(user->hub->config->max_recv_buffer);
|
user->recv_buf = hub_malloc(g_hub->config->max_recv_buffer);
|
||||||
|
|
||||||
if (user->recv_buf)
|
if (user->recv_buf)
|
||||||
{
|
{
|
||||||
|
@ -43,7 +43,7 @@ struct user* user_create(struct hub_info* hub, int sd)
|
|||||||
|
|
||||||
user->sd = sd;
|
user->sd = sd;
|
||||||
user->tm_connected = time(NULL);
|
user->tm_connected = time(NULL);
|
||||||
user->hub = hub;
|
// user->hub = hub;
|
||||||
user->feature_cast = 0;
|
user->feature_cast = 0;
|
||||||
|
|
||||||
user->send_queue = list_create();
|
user->send_queue = list_create();
|
||||||
|
@ -160,7 +160,15 @@ int uman_remove(struct hub_info* hub, struct user* user)
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
list_remove(hub->users->list, user);
|
list_remove(hub->users->list, user);
|
||||||
hub->users->count--;
|
|
||||||
|
if (hub->users->count > 0)
|
||||||
|
{
|
||||||
|
hub->users->count--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
assert(!"negative count!");
|
||||||
|
}
|
||||||
|
|
||||||
hub->users->shared_size -= user->limits.shared_size;
|
hub->users->shared_size -= user->limits.shared_size;
|
||||||
hub->users->shared_files -= user->limits.shared_files;
|
hub->users->shared_files -= user->limits.shared_files;
|
||||||
|
Loading…
Reference in New Issue
Block a user