Update list item, if it already exists

This updates the "validity" (timeout) as well as the "reason" text,
if given.
This commit is contained in:
Alexander Barton 2011-12-25 19:43:00 +01:00
parent 1e4a00f94f
commit 15fec92ed7
1 changed files with 12 additions and 1 deletions

View 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);