-/* 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
#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;
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;
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