LA_SSLCERT,
LA_SSLPROTO,
LA_SSLCERTCK,
+ LA_SSLCERTFILE,
LA_SSLCERTPATH,
+ LA_SSLCOMMONNAME,
LA_SSLFINGERPRINT,
LA_FETCHSIZELIMIT,
LA_FASTUIDL,
LA_LIMITFLUSH,
- LA_IDLE
+ LA_IDLE,
+ LA_NOSOFTBOUNCE,
+ LA_SOFTBOUNCE,
+ LA_BADHEADER
};
/* options still left: CgGhHjJoORTWxXYz */
{"pidfile", required_argument, (int *) 0, LA_PIDFILE },
{"postmaster",required_argument, (int *) 0, LA_POSTMASTER },
{"nobounce", no_argument, (int *) 0, LA_NOBOUNCE },
+ {"nosoftbounce", no_argument, (int *) 0, LA_NOSOFTBOUNCE },
+ {"softbounce", no_argument, (int *) 0, LA_SOFTBOUNCE },
{"protocol", required_argument, (int *) 0, 'p' },
{"proto", required_argument, (int *) 0, 'p' },
{"timeout", required_argument, (int *) 0, 't' },
{"envelope", required_argument, (int *) 0, 'E' },
{"qvirtual", required_argument, (int *) 0, 'Q' },
+ {"bad-header",required_argument, (int *) 0, LA_BADHEADER},
{"user", required_argument, (int *) 0, 'u' },
{"username", required_argument, (int *) 0, 'u' },
{"sslcert", required_argument, (int *) 0, LA_SSLCERT },
{"sslproto", required_argument, (int *) 0, LA_SSLPROTO },
{"sslcertck", no_argument, (int *) 0, LA_SSLCERTCK },
+ {"sslcertfile", required_argument, (int *) 0, LA_SSLCERTFILE },
{"sslcertpath", required_argument, (int *) 0, LA_SSLCERTPATH },
+ {"sslcommonname", required_argument, (int *) 0, LA_SSLCOMMONNAME },
{"sslfingerprint", required_argument, (int *) 0, LA_SSLFINGERPRINT },
#endif
rctl->logfile = prependdir (optarg, currentwd);
break;
case LA_INVISIBLE:
- rctl->invisible = TRUE;
+ rctl->invisible = FLAG_TRUE;
break;
case LA_SHOWDOTS:
rctl->showdots = FLAG_TRUE;
rctl->postmaster = (char *) xstrdup(optarg);
break;
case LA_NOBOUNCE:
- run.bouncemail = FALSE;
+ rctl->bouncemail = FLAG_FALSE;
break;
+ case LA_NOSOFTBOUNCE:
+ rctl->softbounce = FLAG_FALSE;
+ break;
+ case LA_SOFTBOUNCE:
+ rctl->softbounce = FLAG_TRUE;
+ break;
+ case LA_BADHEADER:
+ if (strcasecmp(optarg,"accept") == 0) {
+ ctl->server.badheader = BHACCEPT;
+ } else if (strcasecmp(optarg,"reject") == 0) {
+ ctl->server.badheader = BHREJECT;
+ } else {
+ fprintf(stderr,GT_("Invalid bad-header policy `%s' specified.\n"), optarg);
+ errflag++;
+ }
+ break;
+
case 'p':
/* XXX -- should probably use a table lookup here */
if (strcasecmp(optarg,"auto") == 0)
else if (strcasecmp(optarg,"kpop") == 0)
{
ctl->server.protocol = P_POP3;
- ctl->server.service = KPOP_PORT;
+ ctl->server.service = xstrdup(KPOP_PORT);
#ifdef KERBEROS_V5
ctl->server.authenticate = A_KERBEROS_V5;
#else
ctl->server.authenticate = A_KERBEROS_V4;
else if (strcmp(optarg, "ssh") == 0)
ctl->server.authenticate = A_SSH;
+ else if (strcasecmp(optarg, "external") == 0)
+ ctl->server.authenticate = A_EXTERNAL;
else if (strcmp(optarg, "otp") == 0)
ctl->server.authenticate = A_OTP;
else if (strcmp(optarg, "opie") == 0)
buf = xstrdup(optarg);
cp = strtok(buf, ",");
do {
- struct idlist *idp = save_str(&ctl->antispam, NULL, 0);;
+ struct idlist *idp = save_str(&ctl->antispam, STRING_DUMMY, 0);
idp->val.status.num = xatoi(cp, &errflag);
} while
ctl->sslcertck = FLAG_TRUE;
break;
+ case LA_SSLCERTFILE:
+ ctl->sslcertfile = prependdir(optarg, currentwd);
+ break;
+
case LA_SSLCERTPATH:
ctl->sslcertpath = prependdir(optarg, currentwd);
break;
+ case LA_SSLCOMMONNAME:
+ ctl->sslcommonname = xstrdup(optarg);
+ break;
+
case LA_SSLFINGERPRINT:
ctl->sslfingerprint = xstrdup(optarg);
break;
P(GT_(" --pidfile specify alternate PID (lock) file\n"));
P(GT_(" --postmaster specify recipient of last resort\n"));
P(GT_(" --nobounce redirect bounces from user to postmaster.\n"));
+ P(GT_(" --nosoftbounce fetchmail deletes permanently undeliverable messages.\n"));
+ P(GT_(" --softbounce keep permanently undeliverable messages on server (default).\n"));
#ifdef CAN_MONITOR
P(GT_(" -I, --interface interface required specification\n"));
P(GT_(" -M, --monitor monitor interface for activity\n"));
P(GT_(" --sslkey ssl private key file\n"));
P(GT_(" --sslcert ssl client certificate\n"));
P(GT_(" --sslcertck do strict server certificate check (recommended)\n"));
- P(GT_(" --sslcertpath path to ssl certificates\n"));
+ P(GT_(" --sslcertfile path to trusted-CA ssl certificate file\n"));
+ P(GT_(" --sslcertpath path to trusted-CA ssl certificate directory\n"));
+ P(GT_(" --sslcommonname expect this CommonName from server (discouraged)\n"));
P(GT_(" --sslfingerprint fingerprint that must match that of the server's cert.\n"));
- P(GT_(" --sslproto force ssl protocol (ssl2/ssl3/tls1)\n"));
+ P(GT_(" --sslproto force ssl protocol (SSL2/SSL3/TLS1)\n"));
#endif
P(GT_(" --plugin specify external command to open connection\n"));
P(GT_(" --plugout specify external command to open smtp connection\n"));
+ P(GT_(" --bad-header {reject|accept}\n"
+ " specify policy for handling messages with bad headers\n"));
P(GT_(" -p, --protocol specify retrieval protocol (see man page)\n"));
P(GT_(" -U, --uidl force the use of UIDLs (pop3 only)\n"));