|
@@ -132,43 +132,27 @@ static void cmd_setkey(int idx, char *par) {
|
|
|
putlog(LOG_CMDS, "*", "#%s# setkey %s", dcc[idx].nick, par);
|
|
putlog(LOG_CMDS, "*", "#%s# setkey %s", dcc[idx].nick, par);
|
|
|
|
|
|
|
|
if (!par[0]) {
|
|
if (!par[0]) {
|
|
|
- dprintf(idx, "Usage: setkey <nick|channel> [key|rand]\n");
|
|
|
|
|
|
|
+ dprintf(idx, "Usage: setkey <nick> [key|rand]\n");
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
char *target = newsplit(&par);
|
|
char *target = newsplit(&par);
|
|
|
char *newkey = newsplit(&par);
|
|
char *newkey = newsplit(&par);
|
|
|
bool have_key = FishKeys.contains(target);
|
|
bool have_key = FishKeys.contains(target);
|
|
|
- fish_data_t* fishData = NULL;
|
|
|
|
|
|
|
|
|
|
if (!newkey[0]) {
|
|
if (!newkey[0]) {
|
|
|
// Clear the key
|
|
// Clear the key
|
|
|
if (have_key) {
|
|
if (have_key) {
|
|
|
- fishData = FishKeys[target];
|
|
|
|
|
- FishKeys.remove(target);
|
|
|
|
|
- delete fishData;
|
|
|
|
|
|
|
+ set_fish_key(target, "");
|
|
|
dprintf(idx, "Key cleared for '%s'\n", target);
|
|
dprintf(idx, "Key cleared for '%s'\n", target);
|
|
|
} else {
|
|
} else {
|
|
|
dprintf(idx, "No key found for '%s'\n", target);
|
|
dprintf(idx, "No key found for '%s'\n", target);
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
// Set a new key
|
|
// Set a new key
|
|
|
- fishData = new fish_data_t;
|
|
|
|
|
-
|
|
|
|
|
- if (!strcmp(newkey, "rand")) {
|
|
|
|
|
- // Set a RANDOM key
|
|
|
|
|
- rand_key = (char*)my_calloc(1, 32+1);
|
|
|
|
|
- make_rand_str(rand_key, 32);
|
|
|
|
|
- fishData->sharedKey = rand_key;
|
|
|
|
|
- free(rand_key);
|
|
|
|
|
- } else {
|
|
|
|
|
- fishData->sharedKey = newkey;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // Set the key
|
|
|
|
|
- fishData->timestamp = now;
|
|
|
|
|
- FishKeys[target] = fishData;
|
|
|
|
|
- dprintf(idx, "Set key for '%s' to: %s", target, fishData->sharedKey);
|
|
|
|
|
|
|
+ set_fish_key(target, newkey);
|
|
|
|
|
+ fish_data_t* fishData = FishKeys[target];
|
|
|
|
|
+ dprintf(idx, "Set key for '%s' to: %s", target, fishData->sharedKey.c_str());
|
|
|
}
|
|
}
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|