Update list item, if it already exists
authorAlexander Barton <alex@barton.de>
Sun, 25 Dec 2011 18:43:00 +0000 (19:43 +0100)
committerAlexander Barton <alex@barton.de>
Sun, 25 Dec 2011 18:43:00 +0000 (19:43 +0100)
This updates the "validity" (timeout) as well as the "reason" text,
if given.

src/ngircd/lists.c

index 11f8e888fec5292ff9b169c2fa9cd4954b2fc413..27a51dca1f3a3787932a53283b4308bce8fc3e25 100644 (file)
@@ -126,8 +126,19 @@ Lists_Add(struct list_head *h, const char *Mask, time_t ValidUntil,
        assert(h != NULL);
        assert(Mask != NULL);
 
-       if (Lists_CheckDupeMask(h, Mask))
+       e = Lists_CheckDupeMask(h, Mask);
+       if (e) {
+               e->valid_until = ValidUntil;
+               if (e->reason)
+                       free(e->reason);
+               e->reason = malloc(strlen(Reason) + 1);
+               if (e->reason)
+                       strlcpy(e->reason, Reason, strlen(Reason) + 1);
+               else
+                       Log(LOG_EMERG,
+                           "Can't allocate memory for new list reason text!");
                return true;
+       }
 
        e = Lists_GetFirst(h);