commit 0c9524b72197871c435464d064fdcc3dd5437581 from: David du Colombier <0intro@gmail.com> via: Russ Cox date: Mon Nov 28 14:21:01 2011 UTC mailfs: add -u user argument R=rsc CC=plan9port.codebot http://codereview.appspot.com/5435052 commit - 2fc68b6d8ebc0479318fa9764bfaa7ff58165fc3 commit + 0c9524b72197871c435464d064fdcc3dd5437581 blob - 7523a4478a2e3ef69ee7c1f9d7958a80a2bcd47f blob + c2aed9a554884bd2f1e0b830886347227273a7bb --- src/cmd/upas/nfs/imap.c +++ src/cmd/upas/nfs/imap.c @@ -18,6 +18,7 @@ struct Imap int ticks; /* until boom! */ char* server; char* root; + char* user; int mode; int fd; Biobuf b; @@ -91,7 +92,7 @@ static Sx* zBrdsx(Imap*); */ Imap* -imapconnect(char *server, int mode, char *root) +imapconnect(char *server, int mode, char *root, char *user) { Imap *z; @@ -101,6 +102,7 @@ imapconnect(char *server, int mode, char *root) z = emalloc(sizeof *z); z->server = estrdup(server); z->mode = mode; + z->user = user; if(root) if(root[0] != 0 && root[strlen(root)-1] != '/') z->root = smprint("%s/", root); @@ -200,7 +202,11 @@ imaplogin(Imap *z) Sx *sx; UserPasswd *up; - if((up = auth_getuserpasswd(auth_getkey, "proto=pass role=client service=imap server=%q", z->server)) == nil){ + if(z->user != nil) + up = auth_getuserpasswd(auth_getkey, "proto=pass role=client service=imap server=%q user=%q", z->server, z->user); + else + up = auth_getuserpasswd(auth_getkey, "proto=pass role=client service=imap server=%q", z->server); + if(up == nil){ werrstr("getuserpasswd - %r"); return -1; } blob - e5d9954ee54a38a4755b8a18615ce8b4831e4d68 blob + 774964a5eb9fe79c06511aee7e0edb266105a51b --- src/cmd/upas/nfs/imap.h +++ src/cmd/upas/nfs/imap.h @@ -2,7 +2,7 @@ typedef struct Imap Imap; #pragma incomplete Imap void imapcheckbox(Imap *z, Box *b); -Imap* imapconnect(char *server, int mode, char *root); +Imap* imapconnect(char *server, int mode, char *root, char *user); int imapcopylist(Imap *z, char *nbox, Msg **m, uint nm); void imapfetchraw(Imap *z, Part *p); void imapfetchrawbody(Imap *z, Part *p); blob - 68792dc266667324f04015ee304f5512c34cd889 blob + ebcf701cab1116697b005a439a55f9319405d3f4 --- src/cmd/upas/nfs/main.c +++ src/cmd/upas/nfs/main.c @@ -22,14 +22,14 @@ Imap *imap; void usage(void) { - fprint(2, "usage: mailfs [-DVtx] [-m mtpt] [-s srvname] [-r root] server\n"); + fprint(2, "usage: mailfs [-DVtx] [-m mtpt] [-s srvname] [-r root] [-u user] server\n"); threadexitsall("usage"); } void threadmain(int argc, char **argv) { - char *server, *srvname, *root; + char *server, *srvname, *root, *user; int mode; char *mtpt; @@ -37,6 +37,7 @@ threadmain(int argc, char **argv) root = ""; mode = Unencrypted; mtpt = nil; + user = nil; ARGBEGIN{ default: usage(); @@ -55,6 +56,9 @@ threadmain(int argc, char **argv) case 't': mode = Tls; break; + case 'u': + user = EARGF(usage()); + break; case 'x': mode = Cmd; break; @@ -74,7 +78,7 @@ threadmain(int argc, char **argv) boxinit(); fsinit0(); - if((imap = imapconnect(server, mode, root)) == nil) + if((imap = imapconnect(server, mode, root, user)) == nil) sysfatal("imapconnect: %r"); threadpostmountsrv(&fs, srvname, mtpt, 0); }