Commit Diff
Diff:
bd33bd770decd470577487fa4bd399cb1d8426fc
9230f2fff1d374ecef93dafeb14099f22c9ef787
Commit:
9230f2fff1d374ecef93dafeb14099f22c9ef787
Tree:
3cfe5d9c0ab3200ad88833179b22da66cf7e72da
Author:
Federico G. Schwindt <fgsch@lodoss.net>
Committer:
Federico G. Schwindt <fgsch@lodoss.net>
Date:
Sun Dec 29 00:14:28 2013 UTC
Message:
Fix permanent k/gline Reported by Toni Spets (hifi - at - jnz - dot - fi).
blob - ab4023ac9c964471aa4e6b025d80a19221978c93
blob + 49768bc7e8f2b7974b0dd9c0048155bfdf7432c5
--- src/ngircd/irc-oper.c
+++ src/ngircd/irc-oper.c
@@ -387,6 +387,7 @@ IRC_xLINE(CLIENT *Client, REQUEST *Req)
CLIENT *from, *c, *c_next;
char reason[COMMAND_LEN], class_c;
struct list_head *list;
+ time_t timeout;
int class;
assert(Client != NULL);
@@ -431,8 +432,11 @@ IRC_xLINE(CLIENT *Client, REQUEST *Req)
}
} else {
/* Add new mask to list */
+ timeout = atol(Req->argv[1]);
+ if (timeout > 0)
+ timeout += time(NULL);
if (Class_AddMask(class, Req->argv[0],
- time(NULL) + atol(Req->argv[1]),
+ timeout,
Req->argv[2])) {
Log(LOG_NOTICE|LOG_snotice,
"\"%s\" added \"%s\" to %c-Line list: \"%s\" (%ld seconds).",
IRCNow