To scan the actions in the list's CONTENT_FILTER template you don't need to call listserv_getmail_template and parse the results. You can just rely on listserv_getcontent_filter . Let's check the first action, stored in the CONTENT_FILTER of the list ABC-L:
struct listserv_content_filter** content_filter =
listserv_getcontent_filter (l, "ABC-L");
if (content_filter[0] == NULL)
printf ("No actions in CONTENT_FILTER for ABC-L.\n");
else {
printf ("Scan in 'Text', 'Header' or specific header: %s\n",
content_filter[0]->header);
printf ("Scan for: \"%s\".\n", content_filter[0]->value);
switch (content_filter[0]->action) {
case 'A': printf ("The action is ACCEPT.\n"); break;
case 'R': printf ("The action is REJECT.\n"); break;
case 'M': printf ("The action is MODERATE.\n"); break;
case 'D': printf ("The action is DISCARD.\n");
}
if (content_filter[0]->text)
printf ("The provided action parameter is \"%s\".\n",
content_filter[0]->text);
if (content_filter[1])
printf ("There is a second action in CONTENT_FILTER for ABC-L.\n");
}