strlcpy(newelem->mask, Mask, sizeof(newelem->mask));
if (Reason) {
- newelem->reason = malloc(strlen(Reason) + 1);
- if (newelem->reason)
- strlcpy(newelem->reason, Reason, strlen(Reason) + 1);
- else
+ newelem->reason = strdup(Reason);
+ if (!newelem->reason)
Log(LOG_EMERG,
"Can't allocate memory for new list reason text!");
}
excl = NULL;
if (!at && !excl) {
- /* Neither "!" nor "@" found: use string as nick name */
+ /* Neither "!" nor "@" found: use string as nickname */
strlcpy(TheMask, Pattern, sizeof(TheMask) - 5);
strlcat(TheMask, "!*@*", sizeof(TheMask));
return TheMask;
* @return true if client is listed, false if not.
*/
bool
-Lists_Check( struct list_head *h, CLIENT *Client)
+Lists_Check(struct list_head *h, CLIENT *Client)
+{
+ return Lists_CheckReason(h, Client) != NULL;
+}
+
+/**
+ * Check if a client is listed in a list and return the "reason".
+ *
+ * @param h List head.
+ * @param Client Client to check.
+ * @return true if client is listed, false if not.
+ */
+char *
+Lists_CheckReason(struct list_head *h, CLIENT *Client)
{
struct list_elem *e, *last, *next;
e->mask);
Lists_Unlink(h, last, e);
}
- return true;
+ return e->reason ? e->reason : "";
}
last = e;
e = next;
}
- return false;
+ return NULL;
}
/**