Added --approved command line parameter, which is treated as a

boolean. Whether it is set or not will be passed through to
listserv_main() and to hermes_main(). The parameter will be used by
the spooling mechanism.
This commit is contained in:
Peter Simons 2001-01-15 16:27:52 +00:00
parent 8625cea8e4
commit 40c7ea336b
3 changed files with 6 additions and 8 deletions

View File

@ -25,7 +25,7 @@
#include "petidomo.h"
int
hermes_main(char * incoming_mail, const char * listname)
hermes_main(char * incoming_mail, const char * listname, char is_approved)
{
const struct PD_Config * MasterConfig;
const struct List_Config * ListConfig;

View File

@ -26,7 +26,7 @@
char * g_currLine; /* pointer to the line currently parsed */
int
listserv_main(char * incoming_mail, char * default_list)
listserv_main(char * incoming_mail, char * default_list, char is_approved)
{
const struct List_Config * ListConfig;
struct Mail * MailStruct;

10
main.c
View File

@ -33,6 +33,7 @@
static char* listname = NULL;
static char* mode = NULL;
static char* masterconfig_path = SYSCONFDIR "/petidomo.conf";
static char is_approved = ARGV_FALSE;
int
main(int argc, char * argv[])
@ -44,6 +45,7 @@ main(int argc, char * argv[])
{ARGV_MAND, "mode", ARGV_CHAR_P, &mode, "mode", "listserv, deliver, or approve."},
{ARGV_MAYBE, "listname", ARGV_CHAR_P, &listname, "listname", "Default mailing list."},
{ARGV_MAYBE, "masterconf", ARGV_CHAR_P, &masterconfig_path, "masterconf", "Path to petidomo.conf."},
{ARGV_MAYBE, "approved", ARGV_BOOL, &is_approved, "approved", "approved flag."},
{ARGV_LAST}
};
@ -78,21 +80,17 @@ main(int argc, char * argv[])
/* Now decide what we actually do with the mail. */
if (strcasecmp("listserv", mode) == 0)
listserv_main(incoming_mail, listname);
listserv_main(incoming_mail, listname, is_approved);
else if (strcasecmp("deliver", mode) == 0)
{
if (listname != NULL)
hermes_main(incoming_mail, listname);
hermes_main(incoming_mail, listname, is_approved);
else
{
syslog(LOG_ERR, "Wrong command line syntax; deliver mode requires a parameter.");
exit(1);
}
}
else if (strcasecmp("petidomo", mode) == 0)
{
/* do nothing */
}
else
{
syslog(LOG_ERR, "I don't know anything about mode \"%s\".", mode);