repo: ngircd action: commit revision: path_from: revision_from: 15fec92ed75c3de0b32c40d005e93e3f61aef77e: path_to: revision_to:
commit 15fec92ed75c3de0b32c40d005e93e3f61aef77e Author: Alexander BartonDate: Sun Dec 25 19:43:00 2011 +0100 Update list item, if it already exists This updates the "validity" (timeout) as well as the "reason" text, if given. diff --git a/src/ngircd/lists.c b/src/ngircd/lists.c
--- a/src/ngircd/lists.c
+++ b/src/ngircd/lists.c
@@ -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);
-----END OF PAGE-----