]> diplodocus.org Git - nmh/blobdiff - uip/send.c
Reverted commit 9a4b4a3d3b27fe4a7ff6d0b8724ce1c06b5917eb.
[nmh] / uip / send.c
index a9d48420d368f4d77ad664ce80bb468aafcfaa84..2d162a7a829f7d8a5fd6f59d735801375f11acdc 100644 (file)
     X("server host", 6, SERVSW) \
     X("snoop", 5, SNOOPSW) \
     X("sasl", SASLminc(4), SASLSW) \
-    X("nosasl", SASLminc(-6), NOSASLSW) \
-    X("saslmaxssf", SASLminc(-10), SASLMXSSFSW) \
-    X("saslmech mechanism", SASLminc(-5), SASLMECHSW) \
-    X("authservice", SASLminc(-11), AUTHSERVICESW) \
+    X("nosasl", SASLminc(6), NOSASLSW) \
+    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) \
@@ -74,6 +73,8 @@
     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) \
@@ -257,6 +258,8 @@ main (int argc, char **argv)
                case TLSSW:
                case INITTLSSW:
                case NTLSSW:
+               case CERTVERSW:
+               case NOCERTVERSW:
                    vec[vecp++] = --cp;
                    continue;
 
@@ -268,11 +271,6 @@ main (int argc, char **argv)
                     user = cp;
                    continue;
 
-               case SASLMECHSW:
-                   if (!(saslmech = *argp++) || *saslmech == '-')
-                       adios (NULL, "missing argument to %s", argp[-2]);
-                   continue;
-
                case AUTHSERVICESW:
 #ifdef OAUTH_SUPPORT
                    if (!(auth_svc = *argp++) || *auth_svc == '-')
@@ -282,12 +280,16 @@ main (int argc, char **argv)
 #endif
                    continue;
 
+               case SASLMECHSW:
+                   if (!(saslmech = *argp) || *saslmech == '-')
+                       adios (NULL, "missing argument to %s", argp[-1]);
+                   /* Fall through */
+
                case ALIASW: 
                case FILTSW: 
                case WIDTHSW: 
                case CLIESW: 
                case SERVSW: 
-               case SASLMXSSFSW:
                case PORTSW:
                case MTSSM:
                case MTSSW:
@@ -320,7 +322,7 @@ main (int argc, char **argv)
     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;
        }
@@ -333,7 +335,7 @@ main (int argc, char **argv)
                adios (msgs[0], "unable to stat draft file");
            cp = concat ("Use \"", msgs[0], "\"? ", NULL);
            for (status = LISTDSW; status != YESW;) {
-               if (!(argp = getans (cp, anyl)))
+               if (!(argp = read_switch_multiword (cp, anyl)))
                    done (1);
                switch (status = smatch (*argp, anyl)) {
                    case NOSW: 
@@ -379,7 +381,7 @@ main (int argc, char **argv)
 
        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);
            }
        }
@@ -416,7 +418,7 @@ go_to_it:
            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. */
@@ -431,7 +433,7 @@ go_to_it:
                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;
@@ -459,13 +461,6 @@ go_to_it:
         if (user == NULL) {
             adios (NULL, "must specify -user with -saslmech xoauth2");
         }
-
-        vec[vecp++] = "-authservice";
-        if (saslmech  &&  ! strcasecmp(saslmech, "xoauth2")) {
-            vec[vecp++] = mh_oauth_do_xoauth (user, auth_svc, snoop ? stderr : NULL);
-        } else {
-            vec[vecp++] = auth_svc;
-        }
     }
 #else
     NMH_UNUSED(auth_svc);
@@ -485,7 +480,7 @@ go_to_it:
     closefds (3);
 
     for (msgnum = 0; msgnum < msgp; msgnum++) {
-       switch (sendsbr (vec, vecp, program, msgs[msgnum], &st, 1)) {
+        switch (sendsbr (vec, vecp, program, msgs[msgnum], &st, 1, auth_svc)) {
            case DONE: 
                done (++status);
            case NOTOK: