]> jfr.im git - irc/quakenet/newserv.git/commitdiff
CHANSERV: check reason + wall in delchan
authorChris Porter <redacted>
Sun, 24 Jan 2016 16:05:56 +0000 (16:05 +0000)
committerChris Porter <redacted>
Sun, 24 Jan 2016 16:10:20 +0000 (16:10 +0000)
chanserv/chancmds/delchan.c

index 87c58881e5d798dc0184ec1b4808335bb69e47ef..674b62bf4a9fc80ac71a69547ef7b6276ee63a24 100644 (file)
@@ -7,8 +7,8 @@
  * CMDDESC: Removes a channel from the bot.
  * CMDFUNC: csc_dodelchan
  * CMDPROTO: int csc_dodelchan(void *source, int cargc, char **cargv);
- * CMDHELP: Usage: delchan <channel> [<reason>]
- * CMDHELP: Removes a channel from the bot, reason is optional.
+ * CMDHELP: Usage: delchan <channel> <reason>
+ * CMDHELP: Removes a channel from the bot.
  */
 
 #include "../chanserv.h"
@@ -27,15 +27,21 @@ int csc_dodelchan(void *source, int cargc, char **cargv) {
   reguser *rup=getreguserfromnick(sender);
   chanindex *cip;
   regchan *rcp;
+  char *reason;
+  char buf[512];
 
   if (!rup)
     return CMD_ERROR;
 
-  if (cargc<1) {
+  if (cargc<2) {
     chanservstdmessage(sender, QM_NOTENOUGHPARAMS, "delchan");
     return CMD_ERROR;
   }
 
+  reason = cargv[1];
+  if(!checkreason(sender, reason))
+    return CMD_ERROR;
+
   if (!(cip=findchanindex(cargv[0])) || !(rcp=cip->exts[chanservext])) {
     chanservstdmessage(sender, QM_UNKNOWNCHAN, cargv[0]);
     return CMD_ERROR;
@@ -46,8 +52,10 @@ int csc_dodelchan(void *source, int cargc, char **cargv) {
     return CMD_ERROR;
   }
 
-  cs_log(sender,"DELCHAN %s (%s)",cip->name->content,cargc>1?cargv[1]:"");
-  cs_removechannel(rcp, "Channel deleted.");
+  cs_log(sender,"DELCHAN %s (%s)",cip->name->content,reason);
+  chanservwallmessage("%s (%s) just used DELCHAN on %s (reason: %s)", sender->nick, rup->username, cip->name->content, reason);
+  snprintf(buf, sizeof(buf), "Channel deleted: %s", reason);
+  cs_removechannel(rcp, buf);
   chanservstdmessage(sender, QM_DONE);
 
   return CMD_OK;