tmailfs: small fixes and plan 9 support - plan9port - [fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port
Log
Files
Refs
README
LICENSE
---
commit 2fc68b6d8ebc0479318fa9764bfaa7ff58165fc3
parent bd51695c9278f9321d420a43a16f575471f32476
Author: David du Colombier <0intro@gmail.com>
Date:   Tue, 22 Nov 2011 14:09:52 -0500

mailfs: small fixes and plan 9 support

R=rsc
CC=plan9port.codebot
http://codereview.appspot.com/5429044

Diffstat:
  M src/cmd/upas/nfs/a.h                |       3 +++
  M src/cmd/upas/nfs/box.c              |       4 ++++
  M src/cmd/upas/nfs/fs.c               |      10 +++++++---
  M src/cmd/upas/nfs/imap.c             |      21 +++++++++++++++++++--
  M src/cmd/upas/nfs/imap.h             |       1 +
  M src/cmd/upas/nfs/thread.c           |       1 +

6 files changed, 35 insertions(+), 5 deletions(-)
---
diff --git a/src/cmd/upas/nfs/a.h b/src/cmd/upas/nfs/a.h
t@@ -6,6 +6,7 @@
 #include 
 #include 
 #include <9p.h>
+#include 
 
 enum
 {
t@@ -44,3 +45,5 @@ extern Imap *imap;
 #define erealloc realloc
 #define estrdup strdup
 
+#pragma varargck type "$" Sx*
+#pragma varargck type "Z" char*
diff --git a/src/cmd/upas/nfs/box.c b/src/cmd/upas/nfs/box.c
t@@ -208,7 +208,11 @@ msgplumb(Msg *m, int delete)
         a[ai].next = nil;
         
         p.attr = a;
+#ifdef PLAN9PORT
         snprint(buf, sizeof buf, "Mail/%s/%ud", m->box->name, m->id);
+#else
+        snprint(buf, sizeof buf, "/mail/fs/%s/%ud", m->box->name, m->id);
+#endif
         p.ndata = strlen(buf);
         p.data = buf;
         
diff --git a/src/cmd/upas/nfs/fs.c b/src/cmd/upas/nfs/fs.c
t@@ -93,6 +93,7 @@ Srv fs;
 Qid rootqid;
 ulong t0;
 
+#ifdef PLAN9PORT
 void
 responderror(Req *r)
 {
t@@ -101,6 +102,7 @@ responderror(Req *r)
         rerrstr(e, sizeof e);
         respond(r, e);
 }
+#endif
 
 int
 qtype(Qid q)
t@@ -378,7 +380,8 @@ mkbody(Part *p, Qid q)
 {
         char *t;
         int len;
-        
+
+        USED(q);
         if(p->msg->part[0] == p)
                 t = p->rawbody;
         else
t@@ -571,7 +574,7 @@ filedata(int type, Box *box, Msg *msg, Part *part, char **pp, int *len, int *fre
                 fmtstrinit(&fmt);
                 if(part == msg->part[0]){
                         if(msg->date)
-                                fmtprint(&fmt, "unixdate %lud %s", msg->date, ctime(msg->date));
+                                fmtprint(&fmt, "unixdate %ud %s", msg->date, ctime(msg->date));
                         if(msg->flags){
                                 filedata(Qflags, box, msg, part, pp, nil, freeme, 0, ZQ);
                                 fmtprint(&fmt, "flags %s\n", buf);
t@@ -1202,7 +1205,8 @@ static void
 fsrecv(void *v)
 {
         Req *r;
-        
+
+        USED(v);
         while((r = recvp(fsreqchan)) != nil){
                 switch(r->ifcall.type){
                 case Tattach:
diff --git a/src/cmd/upas/nfs/imap.c b/src/cmd/upas/nfs/imap.c
t@@ -754,12 +754,16 @@ imapdial(char *server, int mode)
                 fd[0] = dup(p[0], -1);
                 fd[1] = dup(p[0], -1);
                 fd[2] = dup(2, -1);
+#ifdef PLAN9PORT
                 tmp = esmprint("%s:993", server);
-                if(threadspawnl(fd, "tlsclient", "tlsclient", tmp, nil) < 0
-                    && threadspawnl(fd, "/usr/sbin/stunnel3", "stunnel3", "-c", "-r", tmp, nil) < 0
+                if(threadspawnl(fd, "/usr/sbin/stunnel3", "stunnel3", "-c", "-r", tmp, nil) < 0
                     && threadspawnl(fd, "/usr/bin/stunnel3", "stunnel3", "-c", "-r", tmp, nil) < 0
                     && threadspawnl(fd, "/usr/sbin/stunnel", "stunnel", "-c", "-r", tmp, nil) < 0
                     && threadspawnl(fd, "/usr/bin/stunnel", "stunnel", "-c", "-r", tmp, nil) < 0){
+#else
+                tmp = esmprint("tcp!%s!993", server);
+                if(threadspawnl(fd, "/bin/tlsclient", "tlsclient", tmp, nil) < 0){
+#endif
                         free(tmp);
                         close(p[0]);
                         close(p[1]);
t@@ -1300,6 +1304,8 @@ xexists(Imap *z, Sx *sx)
 static void
 xflags(Imap *z, Sx *sx)
 {
+        USED(z);
+        USED(sx);
         /*
          * This response contains in sx->sx[2] the list of flags
          * that can be validly attached to messages in z->box.
t@@ -1311,6 +1317,7 @@ xflags(Imap *z, Sx *sx)
 static void
 xbye(Imap *z, Sx *sx)
 {
+        USED(sx);
         close(z->fd);
         z->fd = -1;
         z->connected = 0;
t@@ -1496,6 +1503,7 @@ copyaddrs(Sx *v)
 static void
 xmsgenvelope(Msg *msg, Sx *k, Sx *v)
 {
+        USED(k);
         hdrfree(msg->part[0]->hdr);
         msg->part[0]->hdr = parseenvelope(v);
         msgplumb(msg, 0);
t@@ -1601,6 +1609,7 @@ parsestructure(Part *part, Sx *v)
 static void
 xmsgbody(Msg *msg, Sx *k, Sx *v)
 {
+        USED(k);
         if(v->type != SxList){
                 warn("bad body: %$", v);
                 return;
t@@ -1742,24 +1751,32 @@ xokuidvalidity(Imap *z, Sx *sx)
 static void
 xokpermflags(Imap *z, Sx *sx)
 {
+        USED(z);
+        USED(sx);
 /*        z->permflags = parseflags(sx); */
 }
 
 static void
 xokunseen(Imap *z, Sx *sx)
 {
+        USED(z);
+        USED(sx);
 /*        z->unseen = sx->number; */
 }
 
 static void
 xokreadwrite(Imap *z, Sx *sx)
 {
+        USED(z);
+        USED(sx);
 /*        z->boxmode = ORDWR; */
 }
 
 static void
 xokreadonly(Imap *z, Sx *sx)
 {
+        USED(z);
+        USED(sx);
 /*        z->boxmode = OREAD; */
 }
 
diff --git a/src/cmd/upas/nfs/imap.h b/src/cmd/upas/nfs/imap.h
t@@ -1,4 +1,5 @@
 typedef struct Imap Imap;
+#pragma incomplete Imap
 
 void                imapcheckbox(Imap *z, Box *b);
 Imap*                imapconnect(char *server, int mode, char *root);
diff --git a/src/cmd/upas/nfs/thread.c b/src/cmd/upas/nfs/thread.c
t@@ -24,6 +24,7 @@ mailproc(void *v)
 {
         New n;
         
+        USED(v);
         while(recv(mailthreadchan, &n) == 1)
                 threadcreate(n.fn, n.arg, STACK);
 }