Forráskód Böngészése

* Suicide will take place through the localhub.

Mark 15 éve
szülő
commit
3f09ebe92a
2 módosított fájl, 26 hozzáadás és 0 törlés
  1. 21 0
      src/botcmd.c
  2. 5 0
      src/shell.c

+ 21 - 0
src/botcmd.c

@@ -1369,11 +1369,32 @@ static void bot_rd(char* botnick, char* code, char* msg)
   }
 }
 
+static void bot_suicide(char* botnick, char* code, char* msg)
+{
+  conf_bot *bot = NULL;
+  bool valid_source = 0;
+
+  for (bot = conf.bots; bot && bot->nick; bot = bot->next) {
+    if (!strcmp(botnick, bot->nick)) {
+      valid_source = 1;
+      break;
+    }
+  }
+  
+  if (!valid_source) {
+    putlog(LOG_WARN, "*", STR("AN INVALID BOT (%s) JUST SENT ME A SUICIDE REQUEST!"), botnick);
+    return;
+  }
+
+  suicide(msg);
+}
+
 static cmd_t my_bot[] = 
 {
   {"rd",	"",	(Function) bot_rd,	NULL, 0},
   {"r-sr",	"",	(Function) bot_rsimr,	NULL, HUB},
   {"r-s",	"",	(Function) bot_rsim,	NULL, 0},
+  {"suicide",	"",	(Function) bot_suicide,	NULL, 0},
   {NULL, 	NULL, 	NULL, 			NULL, 0}
 };
 

+ 5 - 0
src/shell.c

@@ -504,6 +504,11 @@ void suicide(const char *msg)
   putlog(LOG_WARN, "*", STR("Comitting suicide: %s"), msg);
   simple_snprintf(tmp, sizeof(tmp), STR("Suicide: %s"), msg);
   set_user(&USERENTRY_COMMENT, conf.bot->u, tmp);
+  if (!conf.bot->localhub) {
+    //im not a localhub, ask the localhub to suicide
+    simple_snprintf(tmp, sizeof(tmp), STR("suicide %s"), msg);
+    putbot(conf.localhub, tmp);
+  }
   if (!conf.bot->hub) {
     nuke_server(STR("kill the infidels!"));
     sleep(1);