}
/* send mail to moderators about request pending */
- listdelim = getlistdelim(listdir);
listfqdn = genlistfqdn(listaddr);
listname = genlistname(listaddr);
}
void generate_subscribed(const char *listdir, const char *subaddr,
- const char *mlmmjsend, enum subtype typesub, const char *listaddr)
+ const char *mlmmjsend, enum subtype typesub, const char *listaddr,
+ const char *listdelim)
{
text *txt;
char *queuefilename, *fromaddr, *listname, *listfqdn;
- char *listdelim = getlistdelim(listdir);
listname = genlistname(listaddr);
listfqdn = genlistfqdn(listaddr);
fromaddr = concatstr(4, listname, listdelim, "bounces-help@", listfqdn);
- free(listdelim);
txt = open_text(listdir,
"deny", "sub", "subbed", subtype_strs[typesub],
if(subbed == typesub) {
if(!nogensubscribed)
generate_subscribed(listdir, address, mlmmjsend,
- typesub, listaddr);
+ typesub, listaddr, listdelim);
return EXIT_SUCCESS;
} else if(subbed != SUB_NONE) {
reasonsub = SUB_SWITCH;
}
}
- listdelim = getlistdelim(listdir);
+ listdelim = fgetlistdelim(ctrlfd);
if(subbed == SUB_NONE && subconfirm)
generate_subconfirm(listdir, listaddr, listdelim,
}
static void generate_notsubscribed(const char *listdir, const char *subaddr,
- const char *mlmmjsend, enum subtype typesub, const char *listaddr)
+ const char *mlmmjsend, enum subtype typesub, const char *listaddr,
+ const char *listdelim)
{
text *txt;
char *queuefilename, *fromaddr, *listname, *listfqdn;
- char *listdelim = getlistdelim(listdir);
listname = genlistname(listaddr);
listfqdn = genlistfqdn(listaddr);
fromaddr = concatstr(4, listname, listdelim, "bounces-help@", listfqdn);
- free(listdelim);
txt = open_text(listdir,
"deny", "unsub", "unsubbed", subtype_strs[typesub],
/* Make the address lowercase */
address = lowercase(address);
listaddr = fgetlistaddr(ctrlfd);
- listdelim = getlistdelim(listdir);
+ listdelim = fgetlistdelim(ctrlfd);
if(changeuid) {
uid = getuid();
/* Address is not subscribed */
if(!nogennotsubscribed) {
generate_notsubscribed(listdir, address, mlmmjsend,
- typesub, listaddr);
+ typesub, listaddr, listdelim);
}
exit(EXIT_SUCCESS);