]> Pileus Git - ~andy/fetchmail/blobdiff - conf.c
Merge branch 'legacy_63'
[~andy/fetchmail] / conf.c
diff --git a/conf.c b/conf.c
index 355cc7ca8a71f289a83298d3477e6cb33f938007..167aac118039b8a11cfd0f7c8c66c99516d4a945 100644 (file)
--- a/conf.c
+++ b/conf.c
@@ -9,12 +9,8 @@
 
 #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>
@@ -151,9 +147,6 @@ void dump_config(struct runctl *runp, struct query *querylist)
      * in fetchmail.c.
      */
     features = "feature_options = ("
-#ifdef POP2_ENABLE
-    "'pop2',"
-#endif /* POP2_ENABLE */
 #ifdef POP3_ENABLE
     "'pop3',"
 #endif /* POP3_ENABLE */
@@ -163,9 +156,6 @@ void dump_config(struct runctl *runp, struct query *querylist)
 #ifdef GSSAPI
     "'gssapi',"
 #endif /* GSSAPI */
-#if defined(KERBEROS_V4)
-    "'kerberos',"
-#endif /* defined(IMAP4) */
 #ifdef RPA_ENABLE
     "'rpa',"
 #endif /* RPA_ENABLE */
@@ -184,9 +174,9 @@ void dump_config(struct runctl *runp, struct query *querylist)
 #ifdef OPIE_ENABLE
     "'opie',"
 #endif /* OPIE_ENABLE */
-#ifdef INET6_ENABLE
-    "'inet6',"
-#endif /* INET6_ENABLE */
+#ifdef HAVE_SOCKS
+    "'socks',"
+#endif /* HAVE_SOCKS */
     ")\n";
     fputs(features, stdout);
 
@@ -200,6 +190,7 @@ void dump_config(struct runctl *runp, struct query *querylist)
     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);
@@ -246,23 +237,15 @@ void dump_config(struct runctl *runp, struct query *querylist)
 
            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);
 
@@ -275,39 +258,38 @@ void dump_config(struct runctl *runp, struct query *querylist)
            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);
@@ -317,6 +299,19 @@ void dump_config(struct runctl *runp, struct query *querylist)
            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);
@@ -349,6 +344,7 @@ void dump_config(struct runctl *runp, struct query *querylist)
        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);
@@ -381,6 +377,7 @@ void dump_config(struct runctl *runp, struct query *querylist)
        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);