X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=blobdiff_plain;f=src%2FChanUser.c;h=e18ce4dd57590d7a718f13cebfda8edfadd02243;hp=d82fc1de2c3aecc50378da431d2bf075aaee762d;hb=HEAD;hpb=d80ff9e6b878be4f29854f4fe99f59efeb5e6e10 diff --git a/src/ChanUser.c b/src/ChanUser.c index d82fc1d..e18ce4d 100644 --- a/src/ChanUser.c +++ b/src/ChanUser.c @@ -1,4 +1,4 @@ -/* ChanUser.c - NeonServ v5.5 +/* ChanUser.c - NeonServ v5.6 * Copyright (C) 2011-2012 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify @@ -19,12 +19,13 @@ #include "ChanNode.h" #include "ModeNode.h" #include "UserNode.h" +#include "log.h" struct ChanUser* addChanUser(struct ChanNode *chan, struct UserNode *user) { struct ChanUser *chanuser = malloc(sizeof(*chanuser)); if (!chanuser) { - perror("malloc() failed"); + printf_log("main", LOG_ERROR, "%s:%d malloc() failed", __FILE__, __LINE__); return NULL; } chanuser->flags = 0; @@ -53,7 +54,7 @@ struct ChanUser* addInvisibleChanUser(struct ChanNode *chan, struct UserNode *us struct ChanUser *chanuser = malloc(sizeof(*chanuser)); if (!chanuser) { - perror("malloc() failed"); + printf_log("main", LOG_ERROR, "%s:%d malloc() failed", __FILE__, __LINE__); return NULL; } chanuser->flags = CHANUSERFLAG_INVISIBLE; @@ -123,18 +124,16 @@ void delChanUser(struct ChanUser *chanuser, int do_freeChanUser) { SYNCHRONIZE(cache_sync); struct ChanUser *cchanuser, *last; //remove it from the user's channel-list - if(!(chanuser->flags & CHANUSERFLAG_INVISIBLE)) { - last = NULL; - for(cchanuser = chanuser->user->channel; cchanuser; cchanuser = cchanuser->next_chan) { - if(cchanuser == chanuser) { - if(last) - last->next_chan = chanuser->next_chan; - else - chanuser->user->channel = chanuser->next_chan; - break; - } else - last = cchanuser; - } + last = NULL; + for(cchanuser = chanuser->user->channel; cchanuser; cchanuser = cchanuser->next_chan) { + if(cchanuser == chanuser) { + if(last) + last->next_chan = chanuser->next_chan; + else + chanuser->user->channel = chanuser->next_chan; + break; + } else + last = cchanuser; } //remove it from the channel's user-list