X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Finc.c;h=a2ecb4406c987053ee428a4f600d702cf88ff0d9;hp=864574b50fa5fd7beb7335a031c09b08ce0c8bd2;hb=0569d6d1631dc90d4f2f2df6bdd0599c7ecc7814;hpb=24414198cc168516126761a3040b71087c5778bc diff --git a/uip/inc.c b/uip/inc.c index 864574b..a2ecb44 100644 --- a/uip/inc.c +++ b/uip/inc.c @@ -29,6 +29,7 @@ #endif #include +#include #include #ifdef POP @@ -131,6 +132,8 @@ static struct swit switches[] = { { "sasl", SASLminc(-4) }, #define SASLMECHSW 25 { "saslmech", SASLminc(-8) }, +#define PROXYSW 26 + { "proxy command", POPminc(-5) }, { NULL, 0 } }; @@ -237,7 +240,7 @@ main (int argc, char **argv) int kpop = 0, sasl = 0; char *cp, *maildir, *folder = NULL; char *format = NULL, *form = NULL; - char *host = NULL, *user = NULL; + char *host = NULL, *user = NULL, *proxy = NULL; char *audfile = NULL, *from = NULL, *saslmech = NULL; char buf[BUFSIZ], **argp, *nfs, **arguments; struct msgs *mp; @@ -444,13 +447,17 @@ main (int argc, char **argv) if (!(saslmech = *argp++) || *saslmech == '-') adios (NULL, "missing argument to %s", argp[-2]); continue; + case PROXYSW: + if (!(proxy = *argp++) || *proxy == '-') + adios (NULL, "missing argument to %s", argp[-2]); + continue; } } if (*cp == '+' || *cp == '@') { if (folder) adios (NULL, "only one folder at a time!"); else - folder = path (cp + 1, *cp == '+' ? TFOLDER : TSUBCWF); + folder = pluspath (cp); } else { adios (NULL, "usage: %s [+folder] [switches]", invo_name); } @@ -500,7 +507,7 @@ main (int argc, char **argv) /* * initialize POP connection */ - if (pop_init (host, user, pass, snoop, kpop ? 1 : rpop, kpop, + if (pop_init (host, user, pass, proxy, snoop, kpop ? 1 : rpop, kpop, sasl, saslmech) == NOTOK) adios (NULL, "%s", response); @@ -556,16 +563,10 @@ main (int argc, char **argv) if ((maildir_copy = strdup(maildir)) == (char *)0) adios (maildir, "error allocating memory to copy maildir"); - if (stat (maildir, &st) == NOTOK) { - if (errno != ENOENT) - adios (maildir, "error on folder"); - cp = concat ("Create folder \"", maildir, "\"? ", NULL); - if (noisy && !getanswer (cp)) - done (1); - free (cp); - if (!makedir (maildir)) - adios (NULL, "unable to create folder %s", maildir); - } + if (noisy) + create_folder(maildir, 0, done); + else + done (1); if (chdir (maildir) == NOTOK) adios (maildir, "unable to change directory to");