X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/9b9d818b321d02faff8aa3a778c7402157bc6f77..40114db23cd832ebaa721a1c6307869eb666d9a0:/src/channel.c diff --git a/src/channel.c b/src/channel.c index 74767f4..39d2f85 100644 --- a/src/channel.c +++ b/src/channel.c @@ -21,7 +21,6 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA * - * $Id: channel.c 3580 2007-11-07 23:45:14Z jilles $ */ #include "stdinc.h" @@ -826,7 +825,7 @@ can_join(struct Client *source_p, struct Channel *chptr, char *key) char src_host[NICKLEN + USERLEN + HOSTLEN + 6]; char src_iphost[NICKLEN + USERLEN + HOSTLEN + 6]; char src_althost[NICKLEN + USERLEN + HOSTLEN + 6]; - char *text = rb_strdup(""); + char text[10]; int use_althost = 0; int i = 0; hook_data_channel moduledata; @@ -857,14 +856,14 @@ can_join(struct Client *source_p, struct Channel *chptr, char *key) if((is_banned(chptr, source_p, NULL, src_host, src_iphost)) == CHFL_BAN) return (ERR_BANNEDFROMCHAN); - rb_sprintf(text, "K%s", source_p->id); + rb_snprintf(text, sizeof(text), "K%s", source_p->id); DICTIONARY_FOREACH(md, &iter, chptr->metadata) { - if(!strcmp(md->value, "KICKNOREJOIN") && !strcmp(md->name, text) && (md->timevalue + ConfigChannel.kick_no_rejoin_time > rb_current_time())) + if(!strcmp(md->value, "KICKNOREJOIN") && !strcmp(md->name, text) && (md->timevalue + 2 > rb_current_time())) return ERR_KICKNOREJOIN; /* cleanup any stale KICKNOREJOIN metadata we find while we're at it */ - if(!strcmp(md->value, "KICKNOREJOIN") && !(md->timevalue + ConfigChannel.kick_no_rejoin_time > rb_current_time())) + if(!strcmp(md->value, "KICKNOREJOIN") && !(md->timevalue + 2 > rb_current_time())) channel_metadata_delete(chptr, md->name, 0); }