X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fsend.c;h=8409654d1a0d6072877812c458dfcda907a24add;hp=514f0731ea5e251c624c66804238918772904096;hb=2f689a1cb907a5de04e6d39ffd217a69af3216c7;hpb=4885712264980e6cbc2039f9158027bee9213475 diff --git a/uip/send.c b/uip/send.c index 514f073..8409654 100644 --- a/uip/send.c +++ b/uip/send.c @@ -93,17 +93,21 @@ static struct swit switches[] = { #define CLIESW 34 { "client host", -6 }, #define SERVSW 35 - { "server host", -6 }, + { "server host", 6 }, #define SNOOPSW 36 - { "snoop", -5 }, + { "snoop", 5 }, #define SASLSW 37 - { "sasl", SASLminc(-4) }, + { "sasl", SASLminc(4) }, #define SASLMECHSW 38 - { "saslmech", SASLminc(-5) }, + { "saslmech mechanism", SASLminc(-5) }, #define USERSW 39 - { "user", SASLminc(-4) }, + { "user username", SASLminc(-4) }, #define ATTACHSW 40 { "attach", 6 }, +#define ATTACHFORMATSW 41 + { "attachformat", 7 }, +#define PORTSW 42 + { "port server-port-name/number" , 4 }, { NULL, 0 } }; @@ -142,6 +146,7 @@ main (int argc, char **argv) struct msgs *mp; struct stat st; char *attach = (char *)0; /* header field name for attachments */ + int attachformat = 0; /* mhbuild format specifier for attachments */ #ifdef UCI FILE *fp; #endif /* UCI */ @@ -270,6 +275,7 @@ main (int argc, char **argv) case SERVSW: case SASLMECHSW: case USERSW: + case PORTSW: vec[vecp++] = --cp; if (!(cp = *argp++) || *cp == '-') adios (NULL, "missing argument to %s", argp[-2]); @@ -280,6 +286,21 @@ main (int argc, char **argv) if (!(attach = *argp++) || *attach == '-') adios (NULL, "missing argument to %s", argp[-2]); continue; + + case ATTACHFORMATSW: + if (! *argp || **argp == '-') + adios (NULL, "missing argument to %s", argp[-1]); + else { + attachformat = atoi (*argp); + if (attachformat < 0 || + attachformat > ATTACHFORMATS - 1) { + advise (NULL, "unsupported attachformat %d", + attachformat); + continue; + } + } + ++argp; + continue; } } else { msgs[msgp++] = cp; @@ -402,7 +423,7 @@ go_to_it: && (distsw = atoi (cp)) && altmsg) { vec[vecp++] = "-dist"; - distfile = getcpy (m_scratch (altmsg, invo_name)); + distfile = getcpy (m_mktemp2 (altmsg, invo_name, NULL, NULL)); if (link (altmsg, distfile) == NOTOK) { if (errno != EXDEV #ifdef EISREMOTE @@ -411,7 +432,7 @@ go_to_it: ) adios (distfile, "unable to link %s to", altmsg); free (distfile); - distfile = getcpy (m_tmpfil (invo_name)); + distfile = getcpy (m_mktemp2(NULL, invo_name, NULL, NULL)); { int in, out; struct stat st; @@ -443,7 +464,8 @@ go_to_it: closefds (3); for (msgnum = 0; msgnum < msgp; msgnum++) { - switch (sendsbr (vec, vecp, msgs[msgnum], &st, 1, attach)) { + switch (sendsbr (vec, vecp, msgs[msgnum], &st, 1, attach, + attachformat)) { case DONE: done (++status); case NOTOK: @@ -454,5 +476,6 @@ go_to_it: } context_save (); /* save the context file */ - return done (status); + done (status); + return 1; }