#include <h/mh.h>
#include <fcntl.h>
-#include <signal.h>
#include <h/mime.h>
#include <h/utils.h>
* Build a command line that causes the user's shell to list the file name
* arguments. This handles and wildcard expansion, tilde expansion, etc.
*/
- writelscmd(buf, sizeof(buf), "-d", argp);
+ writelscmd(buf, sizeof(buf), "-d --", argp);
/*
* Read back the response from the shell, which contains a number of lines
* We feed all the file names to the shell at once, otherwise you can't
* provide a file name with a space in it.
*/
- writelscmd(buf, sizeof(buf), "-d", argp);
+ writelscmd(buf, sizeof(buf), "-d --", argp);
if ((f = popen_in_dir(cwd, buf, "r")) != (FILE *)0) {
while (fgets(shell, sizeof (shell), f) != (char *)0) {
*(strchr(shell, '\n')) = '\0';
static void
writelscmd(char *buf, int bufsz, char *lsoptions, char **argp)
{
- char *lscmd = concat ("ls ", lsoptions, " --", NULL);
+ char *lscmd = concat ("ls ", lsoptions, NULL);
writesomecmd(buf, bufsz, lscmd, "", argp);
free (lscmd);
}
X("attachformat", 7, SNDATTACHFORMAT) \
X("port server-port-name/number", 4, PORTSW) \
X("tls", TLSminc(-3), TLSSW) \
+ X("initialtls", TLSminc(-10), INITTLSSW) \
X("notls", TLSminc(-5), NTLSSW) \
X("mts smtp|sendmail/smtp|sendmail/pipe", 2, MTSSW) \
X("messageid localname|random", 2, MESSAGEIDSW) \
vec[vecp++] = getcpy (m_maildir (""));
if ((cp = context_find ("fileproc"))) {
- vec[vecp++] = "-fileproc";
- vec[vecp++] = cp;
+ vec[vecp++] = "-fileproc";
+ vec[vecp++] = cp;
}
if ((cp = context_find ("mhlproc"))) {
- vec[vecp++] = "-mhlproc";
- vec[vecp++] = cp;
+ vec[vecp++] = "-mhlproc";
+ vec[vecp++] = cp;
+ }
+
+ if ((cp = context_find ("credentials"))) {
+ /* post doesn't read context so need to pass credentials. */
+ vec[vecp++] = "-credentials";
+ vec[vecp++] = cp;
}
while ((cp = *argp++)) {
case SASLSW:
case NOSASLSW:
case TLSSW:
+ case INITTLSSW:
case NTLSSW:
vec[vecp++] = --cp;
continue;