Răsfoiți Sursa

Merge branch 'ducch-fish-for-chans' into next

* ducch-fish-for-chans:
  * Trim key when setting it
  * Use a bd::String for key
Bryan Drewery 14 ani în urmă
părinte
comite
d2534a49bf
3 a modificat fișierele cu 8 adăugiri și 6 ștergeri
  1. 3 3
      src/chanprog.c
  2. 1 1
      src/chanprog.h
  3. 4 2
      src/mod/channels.mod/chanmisc.c

+ 3 - 3
src/chanprog.c

@@ -982,11 +982,11 @@ void keyx(const bd::String &target) {
   FishKeys[target] = fishData;
 }
 
-void set_fish_key(char *target, char *key)
+void set_fish_key(char *target, bd::String key)
 {
   fish_data_t* fishData = FishKeys.contains(target) ? FishKeys[target] : NULL;
 
-  if (!key || !key[0]) { //remove key
+  if (!key.length()) { //remove key
     if (fishData) {
       FishKeys.remove(target);
       delete fishData;
@@ -994,7 +994,7 @@ void set_fish_key(char *target, char *key)
   } else { //set key
     fishData = new fish_data_t;
 
-    if (!strcmp(key, "rand")) {
+    if (key == "rand") {
       // Set a RANDOM key
       const size_t randomKeyLength = 32;
       char *rand_key = (char*)my_calloc(1, randomKeyLength+1);

+ 1 - 1
src/chanprog.h

@@ -35,7 +35,7 @@ void privmsg(bd::String target, bd::String msg, int idx);
 void notice(bd::String target, bd::String msg, int idx);
 void check_removed_server(bool = 1);
 void keyx(const bd::String& target);
-void set_fish_key(char *, char *);
+void set_fish_key(char *, bd::String);
 
 extern struct chanset_t		*chanset, *chanset_default;
 extern char			admin[], origbotnick[HANDLEN + 1], origbotname[NICKLEN], jupenick[NICKLEN], botname[NICKLEN], *def_chanset;

+ 4 - 2
src/mod/channels.mod/chanmisc.c

@@ -394,8 +394,10 @@ int channel_modify(char *result, struct chanset_t *chan, int items, char **item,
           strlcpy(result, "channel fish-key needs argument", RESULT_LEN);
         return ERROR;
       }
-      set_fish_key(chan->dname, item[i]);
-      strlcpy(chan->fish_key, item[i], sizeof(chan->fish_key));
+      bd::String key(item[i]);
+      key.trim();
+      set_fish_key(chan->dname, key);
+      strlcpy(chan->fish_key, key.c_str(), sizeof(chan->fish_key));
 /*
     } else if (!strcmp(item[i], "revenge-mode")) {
       i++;