#include <stdio.h>
#include <ctype.h>
-#if defined(STDC_HEADERS)
#include <stdlib.h>
-#endif
-#if defined(HAVE_UNISTD_H)
#include <unistd.h>
-#endif
#include <string.h>
#include <pwd.h>
#include <errno.h>
{
struct query *ctl;
struct idlist *idp;
+ const char *features;
indent_level = 0;
* This should be approximately in sync with the -V option dumping
* in fetchmail.c.
*/
- printf("feature_options = ("
-#ifdef POP2_ENABLE
- "'pop2',"
-#endif /* POP2_ENABLE */
+ features = "feature_options = ("
#ifdef POP3_ENABLE
"'pop3',"
#endif /* POP3_ENABLE */
#ifdef GSSAPI
"'gssapi',"
#endif /* GSSAPI */
-#if defined(KERBEROS_V4)
- "'kerberos',"
-#endif /* defined(IMAP4) */
#ifdef RPA_ENABLE
"'rpa',"
#endif /* RPA_ENABLE */
#ifdef OPIE_ENABLE
"'opie',"
#endif /* OPIE_ENABLE */
-#ifdef INET6_ENABLE
- "'inet6',"
-#endif /* INET6_ENABLE */
- ")\n");
+#ifdef HAVE_SOCKS
+ "'socks',"
+#endif /* HAVE_SOCKS */
+ ")\n";
+ fputs(features, stdout);
fputs("# Start of configuration initializer\n", stdout);
fputs("fetchmailrc = ", stdout);
stringdump("postmaster", runp->postmaster);
booldump("bouncemail", runp->bouncemail);
booldump("spambounce", runp->spambounce);
+ booldump("softbounce", runp->softbounce);
stringdump("properties", runp->properties);
booldump("invisible", runp->invisible);
booldump("showdots", runp->showdots);
using_kpop =
(ctl->server.protocol == P_POP3 &&
-#ifndef INET6_ENABLE
- ctl->server.port == KPOP_PORT &&
-#else
ctl->server.service && !strcmp(ctl->server.service, KPOP_PORT ) &&
-#endif
- ctl->server.authenticate == A_KERBEROS_V4);
+ ctl->server.authenticate == A_KERBEROS_V5);
stringdump("pollname", ctl->server.pollname);
booldump("active", !ctl->server.skip);
stringdump("via", ctl->server.via);
stringdump("protocol",
using_kpop ? "KPOP" : showproto(ctl->server.protocol));
-#ifndef INET6_ENABLE
- numdump("port", ctl->server.port);
-#else
- stringdump("port", ctl->server.service);
-#endif
+ stringdump("service", ctl->server.service);
numdump("timeout", ctl->server.timeout);
numdump("interval", ctl->server.interval);
numdump("envskip", ctl->server.envskip);
stringdump("qvirtual", ctl->server.qvirtual);
- if (ctl->server.authenticate == A_ANY)
- stringdump("auth", "any");
- else if (ctl->server.authenticate == A_PASSWORD)
- stringdump("auth", "password");
- else if (ctl->server.authenticate == A_OTP)
- stringdump("auth", "otp");
- else if (ctl->server.authenticate == A_NTLM)
- stringdump("auth", "ntlm");
- else if (ctl->server.authenticate == A_CRAM_MD5)
- stringdump("auth", "cram-md5");
- else if (ctl->server.authenticate == A_GSSAPI)
- stringdump("auth", "gssapi");
- else if (ctl->server.authenticate == A_KERBEROS_V4)
- stringdump("auth", "kerberos_v4");
- else if (ctl->server.authenticate == A_KERBEROS_V5)
- stringdump("auth", "kerberos_v5");
- else if (ctl->server.authenticate == A_SSH)
- stringdump("auth", "ssh");
- else if (ctl->server.authenticate == A_OTP)
- stringdump("auth", "otp");
-
-#if defined(HAVE_GETHOSTBYNAME) && defined(HAVE_RES_SEARCH)
- booldump("dns", ctl->server.dns);
-#endif /* HAVE_GETHOSTBYNAME && HAVE_RES_SEARCH */
- booldump("uidl", ctl->server.uidl);
+ switch (ctl->server.authenticate) {
+ case A_ANY:
+ stringdump("auth", "any"); break;
+ case A_PASSWORD:
+ stringdump("auth", "password"); break;
+ case A_OTP:
+ stringdump("auth", "otp"); break;
+ case A_NTLM:
+ stringdump("auth", "ntlm"); break;
+ case A_CRAM_MD5:
+ stringdump("auth", "cram-md5"); break;
+ case A_GSSAPI:
+ stringdump("auth", "gssapi"); break;
+ case A_KERBEROS_V5:
+ stringdump("auth", "kerberos_v5"); break;
+ case A_SSH:
+ stringdump("auth", "ssh"); break;
+ case A_MSN:
+ stringdump("auth", "msn"); break;
+ default: abort();
+ }
+#ifdef HAVE_RES_SEARCH
+ booldump("dns", ctl->server.dns);
+#endif /* HAVE_RES_SEARCH */
listdump("aka", ctl->server.akalist);
listdump("localdomains", ctl->server.localdomains);
-#if defined(linux) || defined(__FreeBSD__)
+#ifdef CAN_MONITOR
stringdump("interface", ctl->server.interface);
stringdump("monitor", ctl->server.monitor);
-#endif /* linux || __FreeBSD__ */
+#endif
stringdump("plugin", ctl->server.plugin);
stringdump("plugout", ctl->server.plugout);
if (ctl->server.esmtp_password)
stringdump("esmtppassword",ctl->server.esmtp_password);
booldump("tracepolls", ctl->server.tracepolls);
+ indent(0);
+ switch(ctl->server.badheader) {
+ /* this is a hack - we map this to a boolean option for
+ * fetchmailconf purposes */
+ case BHREJECT: puts("'badheader': FALSE,"); break;
+ case BHACCEPT: puts("'badheader': TRUE,"); break;
+ }
+
+ switch (ctl->server.retrieveerror) {
+ case RE_ABORT: stringdump("retrieveerror", "abort"); break;
+ case RE_CONTINUE: stringdump("retrieveerror", "continue"); break;
+ case RE_MARKSEEN: stringdump("retrieveerror", "markseen"); break;
+ }
indent(0);
fputs("'users': ", stdout);
booldump("fetchall", ctl->fetchall);
booldump("keep", ctl->keep);
booldump("flush", ctl->flush);
+ booldump("limitflush", ctl->limitflush);
booldump("rewrite", ctl->rewrite);
booldump("stripcr", ctl->stripcr);
booldump("forcecr", ctl->forcecr);
stringdump("sslproto", ctl->sslproto);
booldump("sslcertck", ctl->sslcertck);
stringdump("sslcertpath", ctl->sslcertpath);
+ stringdump("sslcommonname", ctl->sslcommonname);
stringdump("sslfingerprint", ctl->sslfingerprint);
#endif /* SSL_ENABLE */
numdump("expunge", ctl->expunge);