X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/de4636bb664106d9932ae7acb517e471b848f1f3..b4f2851d4:/uip/viamail.c?ds=sidebyside diff --git a/uip/viamail.c b/uip/viamail.c index 82c7db58..7c81079d 100644 --- a/uip/viamail.c +++ b/uip/viamail.c @@ -11,8 +11,6 @@ #include #include #include -#include -#include #include #include #include @@ -183,12 +181,13 @@ static int via_mail (char *mailsw, char *subjsw, char *parmsw, char *descsw, char *cmntsw, int delay, char *fromsw) { - int status, vecp = 1; - char tmpfil[BUFSIZ]; - char *vec[MAXARGS]; + int status, vecp; + char tmpfil[BUFSIZ], *program; + char **vec; struct stat st; FILE *fp; char *tfile = NULL; + char *cp; umask (~m_gmprot ()); @@ -240,11 +239,18 @@ via_mail (char *mailsw, char *subjsw, char *parmsw, char *descsw, splitsw = delay; status = 0; - vec[0] = r1bindex (postproc, '/'); + + vec = argsplit(postproc, &program, &vecp); if (verbsw) vec[vecp++] = "-verbose"; - switch (sendsbr (vec, vecp, tmpfil, &st, 0, (char *)0, 0)) { + if ((cp = context_find ("credentials"))) { + /* post doesn't read context so need to pass credentials. */ + vec[vecp++] = "-credentials"; + vec[vecp++] = cp; + } + + switch (sendsbr (vec, vecp, program, tmpfil, &st, 0, (char *)0, 0)) { case DONE: case NOTOK: status++;