*/
#include "stdinc.h"
-#include "tools.h"
#include "channel.h"
#include "client.h"
#include "common.h"
#include "hash.h"
#include "hook.h"
-#include "irc_string.h"
-#include "sprintf_irc.h"
+#include "match.h"
#include "ircd.h"
#include "numeric.h"
#include "s_serv.h" /* captab */
#include "whowas.h"
#include "s_conf.h" /* ConfigFileEntry, ConfigChannel */
#include "s_newconf.h"
-#include "event.h"
-#include "memory.h"
-#include "balloc.h"
-#include "s_log.h"
+#include "logger.h"
+#include "chmode.h"
/* bitmasks for error returns, so we send once per call */
#define SM_ERR_NOTS 0x00000001 /* No TS on channel */
#define SM_ERR_RPL_Q 0x00000800
#define SM_ERR_RPL_F 0x00001000
-void set_channel_mode(struct Client *, struct Client *,
- struct Channel *, struct membership *, int, const char **);
-
-int add_id(struct Client *source_p, struct Channel *chptr,
- const char *banid, rb_dlink_list * list, long mode_type);
-
static struct ChModeChange mode_changes[BUFSIZE];
static int mode_count;
static int mode_limit;
static int mask_pos;
-int
+static int
get_channel_access(struct Client *source_p, struct membership *msptr)
{
if(!MyClient(source_p) || is_chanop(msptr))
return 0;
}
- DLINK_FOREACH(ptr, list->head)
+ RB_DLINK_FOREACH(ptr, list->head)
{
actualBan = ptr->data;
if(mask_match(actualBan->banstr, realban))
/* dont let remotes set duplicates */
else
{
- DLINK_FOREACH(ptr, list->head)
+ RB_DLINK_FOREACH(ptr, list->head)
{
actualBan = ptr->data;
if(!irccmp(actualBan->banstr, realban))
if(IsPerson(source_p))
rb_sprintf(who, "%s!%s@%s", source_p->name, source_p->username, source_p->host);
else
- strlcpy(who, source_p->name, sizeof(who));
+ rb_strlcpy(who, source_p->name, sizeof(who));
actualBan = allocate_ban(realban, who);
- actualBan->when = CurrentTime;
+ actualBan->when = rb_current_time();
rb_dlinkAdd(actualBan, &actualBan->node, list);
if(EmptyString(banid))
return 0;
- DLINK_FOREACH(ptr, list->head)
+ RB_DLINK_FOREACH(ptr, list->head)
{
banptr = ptr->data;
return;
}
- DLINK_FOREACH(ptr, list->head)
+ RB_DLINK_FOREACH(ptr, list->head)
{
banptr = ptr->data;
sendto_one(source_p, form_str(rpl_list),
}
}
- strlcpy(chptr->mode.forward, forward, sizeof(chptr->mode.forward));
+ rb_strlcpy(chptr->mode.forward, forward, sizeof(chptr->mode.forward));
mode_changes[mode_count].letter = c;
mode_changes[mode_count].dir = MODE_ADD;
return;
s_assert(key[0] != ' ');
- strlcpy(chptr->mode.key, key, sizeof(chptr->mode.key));
+ rb_strlcpy(chptr->mode.key, key, sizeof(chptr->mode.key));
mode_changes[mode_count].letter = c;
mode_changes[mode_count].dir = MODE_ADD;