commit b86da5ed9ac5c6f4702a51e5e3c3ff5d431338f1 from: Federico G. Schwindt via: Alexander Barton date: Wed Mar 19 01:07:36 2014 UTC Fix permanent k/gline Reported by Toni Spets (hifi - at - jnz - dot - fi). (cherry picked from commit 9230f2fff1d374ecef93dafeb14099f22c9ef787) commit - d009df909ba78d539bcddfd65e267840a3f1c0ee commit + b86da5ed9ac5c6f4702a51e5e3c3ff5d431338f1 blob - 4ccc76a6d830fdc66ead9139ad316687ea2b050e blob + 2c2ea3c25c7ae896ad93c243b7387e9bd0a58688 --- src/ngircd/irc-oper.c +++ src/ngircd/irc-oper.c @@ -389,6 +389,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); @@ -435,8 +436,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).",