X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fpost.c;h=6ce328075ab7e44a5b89f62620d1d704e7c47d9f;hb=8a87f7b5fd5622dcde0fc4b48d93157616b496f0;hp=2449d5f5dd58fd9cb50e699df671f6fd9655cfe1;hpb=4548981fb45fbc917cc2c26b7c96b31cfa14bc9b;p=mmh diff --git a/uip/post.c b/uip/post.c index 2449d5f..6ce3280 100644 --- a/uip/post.c +++ b/uip/post.c @@ -131,17 +131,21 @@ static struct swit switches[] = { { "queued", -6 }, #define SASLSW 37 { "sasl", SASLminc(-4) }, -#define SASLMECHSW 38 +#define NOSASLSW 38 + { "nosasl", SASLminc(-6) }, +#define SASLMXSSFSW 39 + { "saslmaxssf", SASLminc(-10) }, +#define SASLMECHSW 40 { "saslmech", SASLminc(-5) }, -#define USERSW 39 +#define USERSW 41 { "user", SASLminc(-4) }, -#define PORTSW 40 +#define PORTSW 42 { "port server port name/number", 4 }, -#define TLSSW 41 +#define TLSSW 43 { "tls", TLSminc(-3) }, -#define FILEPROCSW 42 +#define FILEPROCSW 44 { "fileproc", -4 }, -#define MHLPROCSW 43 +#define MHLPROCSW 45 { "mhlproc", -3 }, { NULL, 0 } }; @@ -239,6 +243,7 @@ static int checksw = 0; /* whom -check */ static int linepos=0; /* putadr()'s position on the line */ static int nameoutput=0; /* putadr() has output header name */ static int sasl=0; /* Use SASL auth for SMTP */ +static int saslssf=-1; /* Our maximum SSF for SASL */ static char *saslmech=NULL; /* Force use of particular SASL mech */ static char *user=NULL; /* Authenticate as this user */ static char *port="smtp"; /* Name of server port for SMTP */ @@ -515,6 +520,16 @@ main (int argc, char **argv) case SASLSW: sasl++; continue; + + case NOSASLSW: + sasl = 0; + continue; + + case SASLMXSSFSW: + if (!(cp = *argp++) || *cp == '-') + adios (NULL, "missing argument to %s", argp[-2]); + saslssf = atoi(cp); + continue; case SASLMECHSW: if (!(saslmech = *argp++) || *saslmech == '-') @@ -868,8 +883,8 @@ start_headers (void) mygid = getgid (); time (&tclock); - strncpy (from, adrsprintf (NULL, NULL), sizeof(from)); - strncpy (myhost, LocalName (), sizeof(myhost)); + strncpy (from, getlocaladdr(), sizeof(from)); + strncpy (myhost, LocalName (0), sizeof(myhost)); for (cp = myhost; *cp; cp++) *cp = uptolow (*cp); @@ -877,7 +892,7 @@ start_headers (void) if ((cp = getfullname ()) && *cp) { strncpy (sigbuf, cp, sizeof(sigbuf)); snprintf (signature, sizeof(signature), "%s <%s>", - sigbuf, adrsprintf (NULL, NULL)); + sigbuf, getlocaladdr()); if ((cp = getname (signature)) == NULL) adios (NULL, "getname () failed -- you lose extraordinarily big"); if ((mp = getm (cp, NULL, 0, AD_HOST, NULL)) == NULL) @@ -886,7 +901,7 @@ start_headers (void) while (getname ("")) continue; } else { - strncpy (signature, adrsprintf (NULL, NULL), sizeof(signature)); + strncpy (signature, getlocaladdr(), sizeof(signature)); } } @@ -908,7 +923,7 @@ finish_headers (FILE *out) fprintf (out, "Date: %s\n", dtime (&tclock, 0)); if (msgid) fprintf (out, "Message-ID: <%d.%ld@%s>\n", - (int) getpid (), (long) tclock, LocalName ()); + (int) getpid (), (long) tclock, LocalName (1)); if (msgflags & MFRM) { /* There was already a From: in the draft. Don't add one. */ if (!draft_from_masquerading) @@ -943,7 +958,7 @@ finish_headers (FILE *out) fprintf (out, "Resent-Date: %s\n", dtime (&tclock, 0)); if (msgid) fprintf (out, "Resent-Message-ID: <%d.%ld@%s>\n", - (int) getpid (), (long) tclock, LocalName ()); + (int) getpid (), (long) tclock, LocalName (1)); if (msgflags & MRFM) { /* There was already a Resent-From: in draft. Don't add one. */ if (!draft_from_masquerading) @@ -1197,7 +1212,7 @@ make_bcc_file (int dashstuff) fprintf (out, "Date: %s\n", dtime (&tclock, 0)); if (msgid) fprintf (out, "Message-ID: <%d.%ld@%s>\n", - (int) getpid (), (long) tclock, LocalName ()); + (int) getpid (), (long) tclock, LocalName (1)); if (msgflags & MFRM) { /* There was already a From: in the draft. Don't add one. */ if (!draft_from_masquerading) @@ -1431,8 +1446,8 @@ post (char *file, int bccque, int talk) sigon (); if (rp_isbad (retval = sm_init (clientsw, serversw, port, watch, verbose, - snoop, onex, queued, sasl, saslmech, - user, tls)) + snoop, onex, queued, sasl, saslssf, + saslmech, user, tls)) || rp_isbad (retval = sm_winit (smtpmode, from))) die (NULL, "problem initializing server; %s", rp_string (retval)); @@ -1471,7 +1486,7 @@ verify_all_addresses (int talk) if (!whomsw || checksw) if (rp_isbad (retval = sm_init (clientsw, serversw, port, watch, verbose, snoop, 0, queued, sasl, - saslmech, user, tls)) + saslssf, saslmech, user, tls)) || rp_isbad (retval = sm_winit (smtpmode, from))) die (NULL, "problem initializing server; %s", rp_string (retval));