char *user; /* the name of the invoking user */
char *home; /* invoking user's home directory */
char *fmhome; /* fetchmail's home directory */
-char *program_name; /* the name to prefix error messages with */
+const char *program_name; /* the name to prefix error messages with */
flag configdump; /* dump control blocks for configurator */
-char *fetchmailhost; /* either `localhost' or the host's FQDN */
+const char *fetchmailhost; /* either `localhost' or the host's FQDN */
static int quitonly; /* if we should quit after killing the running daemon */
fprintf(fp, GT_("Copyright (C) 2002, 2003 Eric S. Raymond\n"
"Copyright (C) 2004 Matthias Andree, Eric S. Raymond,\n"
" Robert M. Funk, Graham Wilson\n"
- "Copyright (C) 2005 - 2006, 2010 Sunil Shetye\n"
- "Copyright (C) 2005 - 2010 Matthias Andree\n"
+ "Copyright (C) 2005 - 2006, 2010 - 2012 Sunil Shetye\n"
+ "Copyright (C) 2005 - 2012 Matthias Andree\n"
));
fprintf(fp, GT_("Fetchmail comes with ABSOLUTELY NO WARRANTY. This is free software, and you\n"
"are welcome to redistribute it under certain conditions. For details,\n"
"please see the file COPYING in the source or documentation directory.\n"));
+#ifdef SSL_ENABLE
+ /* Do not translate this */
+ fprintf(fp, "This product includes software developed by the OpenSSL Project\nfor use in the OpenSSL Toolkit. (http://www.openssl.org/)\n");
+#endif
}
const char *iana_charset;
}
else if (kill(pid, SIGTERM) < 0)
{
- fprintf(stderr,GT_("fetchmail: error killing %s fetchmail at %d; bailing out.\n"),
- bkgd ? GT_("background") : GT_("foreground"), pid);
+ fprintf(stderr,GT_("fetchmail: error killing %s fetchmail at %ld; bailing out.\n"),
+ bkgd ? GT_("background") : GT_("foreground"), (long)pid);
exit(PS_EXCLUDE);
}
else
int maxwait;
if (outlevel > O_SILENT)
- fprintf(stderr,GT_("fetchmail: %s fetchmail at %d killed.\n"),
- bkgd ? GT_("background") : GT_("foreground"), pid);
+ fprintf(stderr,GT_("fetchmail: %s fetchmail at %ld killed.\n"),
+ bkgd ? GT_("background") : GT_("foreground"), (long)pid);
/* We used to nuke the other process's lock here, with
* fm_lock_release(), which is broken. The other process
* needs to clear its lock by itself. */
else if (!implicitmode)
{
fprintf(stderr,
- GT_("fetchmail: can't poll specified hosts with another fetchmail running at %d.\n"),
- pid);
+ GT_("fetchmail: can't poll specified hosts with another fetchmail running at %ld.\n"),
+ (long)pid);
return(PS_EXCLUDE);
}
else if (!bkgd)
{
fprintf(stderr,
- GT_("fetchmail: another foreground fetchmail is running at %d.\n"),
- pid);
+ GT_("fetchmail: another foreground fetchmail is running at %ld.\n"),
+ (long)pid);
return(PS_EXCLUDE);
}
else if (getpid() == pid)
else if (kill(pid, SIGUSR1) == 0)
{
fprintf(stderr,
- GT_("fetchmail: background fetchmail at %d awakened.\n"),
- pid);
+ GT_("fetchmail: background fetchmail at %ld awakened.\n"),
+ (long)pid);
return(0);
}
else
* SIGUSR1/SIGHUP transmission.
*/
fprintf(stderr,
- GT_("fetchmail: elder sibling at %d died mysteriously.\n"),
- pid);
+ GT_("fetchmail: elder sibling at %ld died mysteriously.\n"),
+ (long)pid);
return(PS_UNDEFINED);
}
}
FLAG_MERGE(sslcert);
FLAG_MERGE(sslproto);
FLAG_MERGE(sslcertck);
+ FLAG_MERGE(sslcertfile);
FLAG_MERGE(sslcertpath);
FLAG_MERGE(sslcommonname);
FLAG_MERGE(sslfingerprint);
}
/* note the parse time, so we can pick up on modifications */
- parsetime = 0; /* foil compiler warnings */
- if (strcmp(rcfile, "-") == 0 || stat(rcfile, &rcstat) != -1)
- parsetime = rcstat.st_mtime;
- else if (errno != ENOENT)
- report(stderr, GT_("couldn't time-check the run-control file\n"));
+ if (strcmp(rcfile, "-") == 0)
+ parsetime = time(NULL);
+ else {
+ if (stat(rcfile, &rcstat) != -1)
+ parsetime = rcstat.st_mtime;
+ else if (errno != ENOENT)
+ report(stderr, GT_("couldn't time-check the run-control file\n"));
+ }
/* this builds the host list */
if ((st = prc_parse_file(rcfile, !versioninfo)) != 0)
/*
* If there's a defaults record, merge it and lose it.
+ * FIXME: we don't currently free all entries that might be in struct query.
*/
if (querylist && strcmp(querylist->server.pollname, "defaults") == 0)
{
+ struct query *tmpq;
+
for (ctl = querylist->next; ctl; ctl = ctl->next)
optmerge(ctl, querylist, FALSE);
+ tmpq = querylist;
querylist = querylist->next;
+ free(tmpq->server.pollname);
+ free(tmpq);
}
/* don't allow a defaults record after the first */
if (cmd_run.poll_interval >= 0)
run.poll_interval = cmd_run.poll_interval;
if (cmd_run.invisible)
- run.invisible = cmd_run.invisible;
+ run.invisible = (cmd_run.invisible == FLAG_TRUE);
if (cmd_run.showdots)
- run.showdots = cmd_run.showdots;
+ run.showdots = (cmd_run.showdots == FLAG_TRUE);
if (cmd_run.use_syslog)
run.use_syslog = (cmd_run.use_syslog == FLAG_TRUE);
if (cmd_run.postmaster)
run.postmaster = cmd_run.postmaster;
if (cmd_run.bouncemail)
- run.bouncemail = cmd_run.bouncemail;
+ run.bouncemail = (cmd_run.bouncemail == FLAG_TRUE);
if (cmd_run.softbounce)
- run.softbounce = cmd_run.softbounce;
+ run.softbounce = (cmd_run.softbounce == FLAG_TRUE);
/* check and daemon options are not compatible */
if (check_only && run.poll_interval)
printf(GT_(" OTP authentication will be forced.\n"));
break;
case A_CRAM_MD5:
- printf(GT_(" CRAM-Md5 authentication will be forced.\n"));
+ printf(GT_(" CRAM-MD5 authentication will be forced.\n"));
break;
case A_GSSAPI:
printf(GT_(" GSSAPI authentication will be forced.\n"));
printf(GT_(" SSL protocol: %s.\n"), ctl->sslproto);
if (ctl->sslcertck) {
printf(GT_(" SSL server certificate checking enabled.\n"));
- if (ctl->sslcertpath != NULL)
- printf(GT_(" SSL trusted certificate directory: %s\n"), ctl->sslcertpath);
}
+ if (ctl->sslcertfile != NULL)
+ printf(GT_(" SSL trusted certificate file: %s\n"), ctl->sslcertfile);
+ if (ctl->sslcertpath != NULL)
+ printf(GT_(" SSL trusted certificate directory: %s\n"), ctl->sslcertpath);
if (ctl->sslcommonname != NULL)
printf(GT_(" SSL server CommonName: %s\n"), ctl->sslcommonname);
if (ctl->sslfingerprint != NULL)
if (ctl->server.akalist)
{
- struct idlist *idp;
-
printf(GT_(" Predeclared mailserver aliases:"));
for (idp = ctl->server.akalist; idp; idp = idp->next)
printf(" %s", idp->id);
putchar('\n');
}
+
if (ctl->server.localdomains)
{
- struct idlist *idp;
-
printf(GT_(" Local domains:"));
for (idp = ctl->server.localdomains; idp; idp = idp->next)
printf(" %s", idp->id);