]> jfr.im git - irc/quakenet/newserv.git/commitdiff
newsearch: Make the age function usable with nicksearch.
authorGunnar Beutner <redacted>
Sat, 8 Feb 2014 18:07:34 +0000 (19:07 +0100)
committerGunnar Beutner <redacted>
Sat, 8 Feb 2014 18:07:34 +0000 (19:07 +0100)
newsearch/newsearch.c
newsearch/ns-age.c

index f48e6e9b62addd198e1486efcd4ff552b70982ea..969a45938bd434dbe591ce6554004c54a493d190 100644 (file)
@@ -214,12 +214,14 @@ void _init() {
   registersearchterm(reg_nicksearch, "ipvsix",ipv6_parse, 0, "IPv6 user");
   registersearchterm(reg_whowassearch, "ipvsix",ipv6_parse, 0, "IPv6 user");
   registersearchterm(reg_nicksearch, "message",message_parse, 0, "Last message");
+  registersearchterm(reg_nicksearch, "age",age_parse, 0, "Nick record age in seconds");
+  registersearchterm(reg_whowassearch, "age",age_parse, 0, "Whowas record age in seconds");
+
 
   /* Whowas operations */
   registersearchterm(reg_whowassearch, "quit",quit_parse, 0, "User quit");
   registersearchterm(reg_whowassearch, "killed",killed_parse, 0, "User was killed");
   registersearchterm(reg_whowassearch, "renamed",renamed_parse, 0, "User changed nick");
-  registersearchterm(reg_whowassearch, "age",age_parse, 0, "Whowas record age in seconds");
   registersearchterm(reg_whowassearch, "newnick",newnick_parse, 0, "New nick (for rename whowas records)");
   registersearchterm(reg_whowassearch, "reason",reason_parse, 0, "Quit/kill reason");
 
index 7a0b5a4e4d2a95cbf057a1faa89ecd439c9fa7ab..9b318371a769fdaf5d11c5110889f7c28e78fd5a 100644 (file)
@@ -29,9 +29,17 @@ struct searchNode *age_parse(searchCtx *ctx, int argc, char **argv) {
 
 void *age_exe(searchCtx *ctx, struct searchNode *thenode, void *theinput) {
   nick *np = (nick *)theinput;
-  whowas *ww = (whowas *)np->next;
+  whowas *ww;
+  time_t ts;
+
+  if (ctx->searchcmd == reg_nicksearch)
+    ts = np->timestamp;
+  else {
+    ww = (whowas *)np->next;
+    ts = ww->timestamp;
+  }
 
-  return (void *)(getnettime() - ww->timestamp);
+  return (void *)(getnettime() - ts);
 }
 
 void age_free(searchCtx *ctx, struct searchNode *thenode) {