]> arthur.barton.de Git - ngircd.git/commitdiff
Fix permanent k/gline
authorFederico G. Schwindt <fgsch@lodoss.net>
Sun, 8 Dec 2013 01:43:55 +0000 (01:43 +0000)
committerAlexander Barton <alex@barton.de>
Wed, 19 Mar 2014 01:07:36 +0000 (02:07 +0100)
Reported by Toni Spets (hifi - at - jnz - dot - fi).

(cherry picked from commit 9230f2fff1d374ecef93dafeb14099f22c9ef787)

src/ngircd/irc-oper.c

index 4ccc76a6d830fdc66ead9139ad316687ea2b050e..2c2ea3c25c7ae896ad93c243b7387e9bd0a58688 100644 (file)
@@ -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).",