mailfs: small fixes and plan 9 support

R=rsc
CC=plan9port.codebot
http://codereview.appspot.com/5429044
diff --git a/src/cmd/upas/nfs/a.h b/src/cmd/upas/nfs/a.h
index f30e51c..bca2c96 100644
--- a/src/cmd/upas/nfs/a.h
+++ b/src/cmd/upas/nfs/a.h
@@ -6,6 +6,7 @@
 #include <fcall.h>
 #include <plumb.h>
 #include <9p.h>
+#include <ctype.h>
 
 enum
 {
@@ -44,3 +45,5 @@
 #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
index f7a52bc..202111f 100644
--- a/src/cmd/upas/nfs/box.c
+++ b/src/cmd/upas/nfs/box.c
@@ -208,7 +208,11 @@
 	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
index fd44c96..ee5c2b9 100644
--- a/src/cmd/upas/nfs/fs.c
+++ b/src/cmd/upas/nfs/fs.c
@@ -93,6 +93,7 @@
 Qid rootqid;
 ulong t0;
 
+#ifdef PLAN9PORT
 void
 responderror(Req *r)
 {
@@ -101,6 +102,7 @@
 	rerrstr(e, sizeof e);
 	respond(r, e);
 }
+#endif
 
 int
 qtype(Qid q)
@@ -378,7 +380,8 @@
 {
 	char *t;
 	int len;
-	
+
+	USED(q);
 	if(p->msg->part[0] == p)
 		t = p->rawbody;
 	else
@@ -571,7 +574,7 @@
 		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);
@@ -1202,7 +1205,8 @@
 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
index e5b8e5c..7523a44 100644
--- a/src/cmd/upas/nfs/imap.c
+++ b/src/cmd/upas/nfs/imap.c
@@ -754,12 +754,16 @@
 		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]);
@@ -1300,6 +1304,8 @@
 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.
@@ -1311,6 +1317,7 @@
 static void
 xbye(Imap *z, Sx *sx)
 {
+	USED(sx);
 	close(z->fd);
 	z->fd = -1;
 	z->connected = 0;
@@ -1496,6 +1503,7 @@
 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);
@@ -1601,6 +1609,7 @@
 static void
 xmsgbody(Msg *msg, Sx *k, Sx *v)
 {
+	USED(k);
 	if(v->type != SxList){
 		warn("bad body: %$", v);
 		return;
@@ -1742,24 +1751,32 @@
 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
index 3f3d2aa..e5d9954 100644
--- a/src/cmd/upas/nfs/imap.h
+++ b/src/cmd/upas/nfs/imap.h
@@ -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
index 710a33d..bb40def 100644
--- a/src/cmd/upas/nfs/thread.c
+++ b/src/cmd/upas/nfs/thread.c
@@ -24,6 +24,7 @@
 {
 	New n;
 	
+	USED(v);
 	while(recv(mailthreadchan, &n) == 1)
 		threadcreate(n.fn, n.arg, STACK);
 }