]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/numeric.c
x-Line synchronization: Don't send negative durations
[ngircd-alex.git] / src / ngircd / numeric.c
index 82e0cf0155a0cf32c939c9078731e9d09623c18f..380b9078b210deb9a6853cf2c966357efec75481 100644 (file)
@@ -176,6 +176,7 @@ Synchronize_Lists(CLIENT * Client)
        CHANNEL *c;
        struct list_head *head;
        struct list_elem *elem;
+       time_t t;
 
        assert(Client != NULL);
 
@@ -183,9 +184,10 @@ Synchronize_Lists(CLIENT * Client)
        head = Class_GetList(CLASS_GLINE);
        elem = Lists_GetFirst(head);
        while (elem) {
+               t = Lists_GetValidity(elem) - time(NULL);
                if (!IRC_WriteStrClient(Client, "GLINE %s %ld :%s",
                                        Lists_GetMask(elem),
-                                       (long)(Lists_GetValidity(elem) - time(NULL)),
+                                       t > 0 ? (long)t : 0,
                                        Lists_GetReason(elem)))
                        return DISCONNECTED;
                elem = Lists_GetNext(elem);