]> diplodocus.org Git - nmh/blobdiff - uip/send.c
Replace some "FALLTHRU" comments with control flow.
[nmh] / uip / send.c
index 5dcdce0ef6ce88a42fa9ae5000403198be017054..297b8f043297146283c47d091244743f53f04966 100644 (file)
@@ -1,6 +1,4 @@
-
-/*
- * send.c -- send a composed message
+/* send.c -- send a composed message
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
 #include <h/mh.h>
 #include <fcntl.h>
 #include <h/utils.h>
 #include <h/mh.h>
 #include <fcntl.h>
 #include <h/utils.h>
-
 #ifdef OAUTH_SUPPORT
 # include <h/oauth.h>
 #endif
 #ifdef OAUTH_SUPPORT
 # include <h/oauth.h>
 #endif
+#include "../sbr/m_maildir.h"
+#include "../sbr/m_mktemp.h"
 
 #ifndef CYRUS_SASL
 # define SASLminc(a) (a)
 
 #ifndef CYRUS_SASL
 # define SASLminc(a) (a)
     X("snoop", 5, SNOOPSW) \
     X("sasl", SASLminc(4), SASLSW) \
     X("nosasl", SASLminc(6), NOSASLSW) \
     X("snoop", 5, SNOOPSW) \
     X("sasl", SASLminc(4), SASLSW) \
     X("nosasl", SASLminc(6), NOSASLSW) \
-    X("saslmaxssf", SASLminc(6), SASLMXSSFSW) \
     X("saslmech mechanism", SASLminc(6), SASLMECHSW) \
     X("authservice", SASLminc(0), AUTHSERVICESW) \
     X("user username", SASLminc(-4), USERSW) \
     X("saslmech mechanism", SASLminc(6), SASLMECHSW) \
     X("authservice", SASLminc(0), AUTHSERVICESW) \
     X("user username", SASLminc(-4), USERSW) \
-    X("attach", -6, ATTACHSW) \
-    X("noattach", -8, NOATTACHSW) \
-    X("attachformat", 7, ATTACHFORMATSW) \
     X("port server-port-name/number", 4, PORTSW) \
     X("tls", TLSminc(-3), TLSSW) \
     X("initialtls", TLSminc(-10), INITTLSSW) \
     X("notls", TLSminc(-5), NTLSSW) \
     X("port server-port-name/number", 4, PORTSW) \
     X("tls", TLSminc(-3), TLSSW) \
     X("initialtls", TLSminc(-10), INITTLSSW) \
     X("notls", TLSminc(-5), NTLSSW) \
+    X("certverify", TLSminc(-10), CERTVERSW) \
+    X("nocertverify", TLSminc(-12), NOCERTVERSW) \
     X("sendmail program", 0, MTSSM) \
     X("mts smtp|sendmail/smtp|sendmail/pipe", 2, MTSSW) \
     X("messageid localname|random", 2, MESSAGEIDSW) \
     X("sendmail program", 0, MTSSM) \
     X("mts smtp|sendmail/smtp|sendmail/pipe", 2, MTSSW) \
     X("messageid localname|random", 2, MESSAGEIDSW) \
@@ -242,7 +239,8 @@ main (int argc, char **argv)
                    continue;
 
                case DEBUGSW: 
                    continue;
 
                case DEBUGSW: 
-                   debugsw++;  /* fall */
+                   debugsw++;
+                   /* FALLTHRU */
                case NFILTSW: 
                case FRMTSW: 
                case NFRMTSW: 
                case NFILTSW: 
                case FRMTSW: 
                case NFRMTSW: 
@@ -257,6 +255,8 @@ main (int argc, char **argv)
                case TLSSW:
                case INITTLSSW:
                case NTLSSW:
                case TLSSW:
                case INITTLSSW:
                case NTLSSW:
+               case CERTVERSW:
+               case NOCERTVERSW:
                    vec[vecp++] = --cp;
                    continue;
 
                    vec[vecp++] = --cp;
                    continue;
 
@@ -279,15 +279,14 @@ main (int argc, char **argv)
 
                case SASLMECHSW:
                    if (!(saslmech = *argp) || *saslmech == '-')
 
                case SASLMECHSW:
                    if (!(saslmech = *argp) || *saslmech == '-')
-                       adios (NULL, "missing argument to %s", argp[-2]);
-                   /* Fall through */
+                       adios (NULL, "missing argument to %s", argp[-1]);
+                   /* FALLTHRU */
 
                case ALIASW: 
                case FILTSW: 
                case WIDTHSW: 
                case CLIESW: 
                case SERVSW: 
 
                case ALIASW: 
                case FILTSW: 
                case WIDTHSW: 
                case CLIESW: 
                case SERVSW: 
-               case SASLMXSSFSW:
                case PORTSW:
                case MTSSM:
                case MTSSW:
                case PORTSW:
                case MTSSM:
                case MTSSW:
@@ -297,17 +296,6 @@ main (int argc, char **argv)
                        adios (NULL, "missing argument to %s", argp[-2]);
                    vec[vecp++] = cp;
                    continue;
                        adios (NULL, "missing argument to %s", argp[-2]);
                    vec[vecp++] = cp;
                    continue;
-               
-               case ATTACHSW:
-                   advise(NULL, "The -attach switch is deprecated");
-                   continue;
-               case NOATTACHSW:
-                   advise(NULL, "The -noattach switch is deprecated");
-                   continue;
-
-               case ATTACHFORMATSW:
-                   advise(NULL, "The -attachformat switch is deprecated");
-                   continue;
            }
        } else {
            msgs[msgp++] = cp;
            }
        } else {
            msgs[msgp++] = cp;
@@ -320,7 +308,7 @@ main (int argc, char **argv)
     if ((cp = context_find ("Aliasfile"))) {
        char *dp = NULL;
 
     if ((cp = context_find ("Aliasfile"))) {
        char *dp = NULL;
 
-       for (ap = brkstring(dp = getcpy(cp), " ", "\n"); ap && *ap; ap++) {
+       for (ap = brkstring(dp = mh_xstrdup(cp), " ", "\n"); ap && *ap; ap++) {
            vec[vecp++] = "-alias";
            vec[vecp++] = *ap;
        }
            vec[vecp++] = "-alias";
            vec[vecp++] = *ap;
        }
@@ -344,7 +332,7 @@ main (int argc, char **argv)
                        showfile (++argp, msgs[0]);
                        break;
                    default:
                        showfile (++argp, msgs[0]);
                        break;
                    default:
-                       advise (NULL, "say what?");
+                       inform("say what?");
                        break;
                }
            }
                        break;
                }
            }
@@ -379,7 +367,7 @@ main (int argc, char **argv)
 
        for (msgp = 0, msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) {
            if (is_selected (mp, msgnum)) {
 
        for (msgp = 0, msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) {
            if (is_selected (mp, msgnum)) {
-               msgs[msgp++] = getcpy (m_name (msgnum));
+               msgs[msgp++] = mh_xstrdup(m_name (msgnum));
                unset_exists (mp, msgnum);
            }
        }
                unset_exists (mp, msgnum);
            }
        }
@@ -394,7 +382,7 @@ go_to_it:
 
     if ((cp = getenv ("SIGNATURE")) == NULL || *cp == 0)
        if ((cp = context_find ("signature")) && *cp)
 
     if ((cp = getenv ("SIGNATURE")) == NULL || *cp == 0)
        if ((cp = context_find ("signature")) && *cp)
-           m_putenv ("SIGNATURE", cp);
+           setenv("SIGNATURE", cp, 1);
 
     for (msgnum = 0; msgnum < msgp; msgnum++)
        if (stat (msgs[msgnum], &st) == NOTOK)
 
     for (msgnum = 0; msgnum < msgp; msgnum++)
        if (stat (msgs[msgnum], &st) == NOTOK)
@@ -416,7 +404,7 @@ go_to_it:
            adios(NULL, "unable to create temporary file in %s",
                  get_temp_dir());
        }
            adios(NULL, "unable to create temporary file in %s",
                  get_temp_dir());
        }
-       distfile = getcpy (cp);
+       distfile = mh_xstrdup(cp);
        (void) m_unlink(distfile);
        if (link (altmsg, distfile) == NOTOK) {
            /* Cygwin with FAT32 filesystem produces EPERM. */
        (void) m_unlink(distfile);
        if (link (altmsg, distfile) == NOTOK) {
            /* Cygwin with FAT32 filesystem produces EPERM. */
@@ -431,7 +419,7 @@ go_to_it:
                adios(NULL, "unable to create temporary file in %s",
                      get_temp_dir());
            }
                adios(NULL, "unable to create temporary file in %s",
                      get_temp_dir());
            }
-           distfile = getcpy (cp);
+           distfile = mh_xstrdup(cp);
            {
                int in, out;
                struct stat st;
            {
                int in, out;
                struct stat st;
@@ -478,11 +466,13 @@ go_to_it:
     closefds (3);
 
     for (msgnum = 0; msgnum < msgp; msgnum++) {
     closefds (3);
 
     for (msgnum = 0; msgnum < msgp; msgnum++) {
-       switch (sendsbr (vec, vecp, program, msgs[msgnum], &st, 1, auth_svc)) {
+        switch (sendsbr (vec, vecp, program, msgs[msgnum], &st, 1, auth_svc)) {
            case DONE: 
                done (++status);
            case DONE: 
                done (++status);
+               /* FALLTHRU */
            case NOTOK: 
            case NOTOK: 
-               status++;       /* fall */
+               status++;
+               /* FALLTHRU */
            case OK:
                break;
        }
            case OK:
                break;
        }