Просмотр исходного кода

* Add './wraith -V' which will display the packconfig that the bot is using.

Bryan Drewery 14 лет назад
Родитель
Сommit
cb6522c63e
4 измененных файлов с 31 добавлено и 2 удалено
  1. 2 0
      doc/UPDATES
  2. 21 0
      src/binary.c
  3. 1 0
      src/binary.h
  4. 7 2
      src/main.c

+ 2 - 0
doc/UPDATES

@@ -1,3 +1,5 @@
+* Add './wraith -V' which will display the packconfig that the bot is using.
+
 1.3.3 - http://wraith.botpack.net/milestone/1.3.3
   * Fix --disable-ipv6 compiling
   * Update cmd_mop to support console channel (so it works via Auth commands better)

+ 21 - 0
src/binary.c

@@ -38,6 +38,8 @@
 #include "botnet.h"
 #include "net.h"
 #include "userrec.h"
+#include <bdlib/src/Array.h>
+#include <bdlib/src/String.h>
 
 #include <sys/wait.h>
 #include <sys/types.h>
@@ -431,6 +433,25 @@ readcfg(const char *cfgfile, bool read_stdin)
   return 1;
 }
 
+void writecfg() {
+  const char salt1[] = SALT1;
+  const char salt2[] = SALT2;
+  bd::Array<bd::String> owners(bd::String(settings.owners).split(","));
+  bd::Array<bd::String> hubs(bd::String(settings.hubs).split(","));
+
+  printf("PACKNAME %s\n", settings.packname);
+  printf("BINARYPASS %s\n", settings.shellhash);
+  printf("DCCPREFIX %s\n", settings.dcc_prefix);
+  for (size_t i = 0; i < owners.length(); ++i) {
+    printf("OWNER %s\n", static_cast<bd::String>(owners[i]).c_str());
+  }
+  for (size_t i = 0; i < hubs.length(); ++i) {
+    printf("HUB %s\n", static_cast<bd::String>(hubs[i]).c_str());
+  }
+  printf("SALT1 %s\n", salt1);
+  printf("SALT2 %s\n", salt2);
+}
+
 static void edpack(settings_t *incfg, const char *in_hash, int what)
 {
   char *tmp = NULL, *hash = (char *) in_hash, nhash[51] = "";

+ 1 - 0
src/binary.h

@@ -17,4 +17,5 @@ int check_bin_initialized(const char *fname);
 bool check_bin_compat(const char *fname);
 void conf_to_bin(conf_t *, bool, int);
 void reload_bin_data();
+void writecfg();
 #endif /* !_BINARY_H */

+ 7 - 2
src/main.c

@@ -320,12 +320,13 @@ static void show_help()
   printf(format, STR("-u <binary>"), STR("Update binary, Automatically kill/respawn bots"));
   printf(format, STR("-U <binary>"), STR("Update binary"));
   printf(format, STR("-v"), STR("Displays bot version"));
+  printf(format, STR("-V"), STR("Displays the pack.cfg being used"));
   exit(0);
 }
 
 // leaf: BkLP
-#define PARSE_FLAGS STR("0234:aB:cCd:De:EH:k:hnr:tu:U:v")
-#define FLAGS_CHECKPASS STR("cCdDeEknrtuU")
+#define PARSE_FLAGS STR("0234:aB:cCd:De:EH:k:hnr:tu:U:vV")
+#define FLAGS_CHECKPASS STR("cCdDeEknrtuUV")
 static void dtx_arg(int& argc, char *argv[])
 {
   int i = 0, checked_pass = 0;
@@ -436,6 +437,10 @@ static void dtx_arg(int& argc, char *argv[])
         }
 	exit(0);
       }
+      case 'V':
+        writecfg();
+        exit(0);
+        break;
       case '?':
       default:
         break;