X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/104becbf7f746273cd431f0aed3b23688abb0dd2..2498a1b577ac3901abbff2612d3647f8aef038b7:/modules/core/m_kick.c diff --git a/modules/core/m_kick.c b/modules/core/m_kick.c index 7255ba1..3029ca6 100644 --- a/modules/core/m_kick.c +++ b/modules/core/m_kick.c @@ -68,7 +68,7 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p char *comment; const char *name; char *p = NULL; - char *text = rb_strdup(""); + char text[10]; const char *user; static char buf[BUFSIZE]; int is_override = 0; @@ -115,7 +115,7 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p is_override = 1; else { - sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), + sendto_one(source_p, ":%s 482 %s %s :You do not have the proper privledges to kick this user", me.name, source_p->name, name); return 0; } @@ -205,9 +205,14 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p comment[REASONLEN] = '\0'; if(is_override) - sendto_realops_snomask(SNO_GENERAL, L_NETWIDE, + { + sendto_wallops_flags(UMODE_WALLOP, &me, "%s is overriding KICK [%s] on [%s] [%s]", get_oper_name(source_p), who->name, chptr->chname, comment); + sendto_server(NULL, chptr, NOCAPS, NOCAPS, + ":%s WALLOPS :%s is overriding KICK [%s] on [%s] [%s]", + me.name, get_oper_name(source_p), who->name, chptr->chname, comment); + } /* jdc * - In the case of a server kicking a user (i.e. CLEARCHAN), @@ -230,11 +235,11 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p use_id(source_p), chptr->chname, use_id(who), comment); remove_user_from_channel(msptr); - rb_sprintf(text, "K%s",who->name); + rb_snprintf(text, sizeof(text), "K%s", who->id); - /* we don't need to track NOKICK stuff unless it's our client being kicked */ - if(MyClient(source_p) && chptr->mode.mode & MODE_NOREJOIN) - channel_metadata_time_add(chptr, text, rb_current_time()); + /* we don't need to track NOREJOIN stuff unless it's our client being kicked */ + if(MyClient(who) && chptr->mode.mode & MODE_NOREJOIN) + channel_metadata_time_add(chptr, text, rb_current_time(), "KICKNOREJOIN"); } else if (MyClient(source_p)) sendto_one_numeric(source_p, ERR_USERNOTINCHANNEL,