Blame


1 941e1713 2006-02-15 devnull /*
2 941e1713 2006-02-15 devnull TO DO
3 941e1713 2006-02-15 devnull
4 941e1713 2006-02-15 devnull can get disposition info out of imap extended structure if needed
5 941e1713 2006-02-15 devnull sizes in stat/ls ?
6 941e1713 2006-02-15 devnull translate character sets in =? subjects
7 941e1713 2006-02-15 devnull
8 941e1713 2006-02-15 devnull fetch headers, bodies on demand
9 941e1713 2006-02-15 devnull
10 941e1713 2006-02-15 devnull cache headers, bodies on disk
11 941e1713 2006-02-15 devnull
12 941e1713 2006-02-15 devnull cache message information on disk across runs
13 941e1713 2006-02-15 devnull
14 941e1713 2006-02-15 devnull body.jpg
15 941e1713 2006-02-15 devnull
16 941e1713 2006-02-15 devnull */
17 941e1713 2006-02-15 devnull
18 941e1713 2006-02-15 devnull #include "a.h"
19 941e1713 2006-02-15 devnull
20 941e1713 2006-02-15 devnull Imap *imap;
21 941e1713 2006-02-15 devnull
22 941e1713 2006-02-15 devnull void
23 941e1713 2006-02-15 devnull usage(void)
24 941e1713 2006-02-15 devnull {
25 0c9524b7 2011-11-28 rsc fprint(2, "usage: mailfs [-DVtx] [-m mtpt] [-s srvname] [-r root] [-u user] server\n");
26 941e1713 2006-02-15 devnull threadexitsall("usage");
27 941e1713 2006-02-15 devnull }
28 941e1713 2006-02-15 devnull
29 b3a20a96 2020-12-30 rsc int
30 b3a20a96 2020-12-30 rsc threadmaybackground(void)
31 b3a20a96 2020-12-30 rsc {
32 b3a20a96 2020-12-30 rsc return 1;
33 b3a20a96 2020-12-30 rsc }
34 b3a20a96 2020-12-30 rsc
35 941e1713 2006-02-15 devnull void
36 941e1713 2006-02-15 devnull threadmain(int argc, char **argv)
37 941e1713 2006-02-15 devnull {
38 0c9524b7 2011-11-28 rsc char *server, *srvname, *root, *user;
39 941e1713 2006-02-15 devnull int mode;
40 24726c81 2008-05-10 rsc char *mtpt;
41 941e1713 2006-02-15 devnull
42 25c82339 2006-05-21 devnull srvname = "mail";
43 e84044be 2007-11-05 rsc root = "";
44 941e1713 2006-02-15 devnull mode = Unencrypted;
45 24726c81 2008-05-10 rsc mtpt = nil;
46 0c9524b7 2011-11-28 rsc user = nil;
47 941e1713 2006-02-15 devnull ARGBEGIN{
48 941e1713 2006-02-15 devnull default:
49 941e1713 2006-02-15 devnull usage();
50 941e1713 2006-02-15 devnull case 'D':
51 941e1713 2006-02-15 devnull chatty9p++;
52 941e1713 2006-02-15 devnull break;
53 941e1713 2006-02-15 devnull case 'V':
54 941e1713 2006-02-15 devnull chattyimap++;
55 941e1713 2006-02-15 devnull break;
56 24726c81 2008-05-10 rsc case 'm':
57 24726c81 2008-05-10 rsc mtpt = EARGF(usage());
58 24726c81 2008-05-10 rsc break;
59 25c82339 2006-05-21 devnull case 's':
60 25c82339 2006-05-21 devnull srvname = EARGF(usage());
61 25c82339 2006-05-21 devnull break;
62 941e1713 2006-02-15 devnull case 't':
63 941e1713 2006-02-15 devnull mode = Tls;
64 941e1713 2006-02-15 devnull break;
65 0c9524b7 2011-11-28 rsc case 'u':
66 0c9524b7 2011-11-28 rsc user = EARGF(usage());
67 0c9524b7 2011-11-28 rsc break;
68 941e1713 2006-02-15 devnull case 'x':
69 941e1713 2006-02-15 devnull mode = Cmd;
70 941e1713 2006-02-15 devnull break;
71 e84044be 2007-11-05 rsc case 'r':
72 e84044be 2007-11-05 rsc root = EARGF(usage());
73 e84044be 2007-11-05 rsc break;
74 941e1713 2006-02-15 devnull }ARGEND
75 941e1713 2006-02-15 devnull
76 fa325e9b 2020-01-10 cross quotefmtinstall();
77 941e1713 2006-02-15 devnull fmtinstall('$', sxfmt);
78 941e1713 2006-02-15 devnull
79 941e1713 2006-02-15 devnull if(argc != 1)
80 941e1713 2006-02-15 devnull usage();
81 941e1713 2006-02-15 devnull server = argv[0];
82 fa325e9b 2020-01-10 cross
83 941e1713 2006-02-15 devnull mailthreadinit();
84 941e1713 2006-02-15 devnull boxinit();
85 941e1713 2006-02-15 devnull fsinit0();
86 941e1713 2006-02-15 devnull
87 0c9524b7 2011-11-28 rsc if((imap = imapconnect(server, mode, root, user)) == nil)
88 941e1713 2006-02-15 devnull sysfatal("imapconnect: %r");
89 24726c81 2008-05-10 rsc threadpostmountsrv(&fs, srvname, mtpt, 0);
90 941e1713 2006-02-15 devnull }