1*9a747e4fSDavid du Colombier #include <u.h> 2*9a747e4fSDavid du Colombier #include <libc.h> 3*9a747e4fSDavid du Colombier #include <bio.h> 4*9a747e4fSDavid du Colombier #include <ip.h> 5*9a747e4fSDavid du Colombier #include <plumb.h> 6*9a747e4fSDavid du Colombier #include <thread.h> 7*9a747e4fSDavid du Colombier #include <fcall.h> 8*9a747e4fSDavid du Colombier #include <9p.h> 9*9a747e4fSDavid du Colombier #include "dat.h" 10*9a747e4fSDavid du Colombier #include "fns.h" 11*9a747e4fSDavid du Colombier 12*9a747e4fSDavid du Colombier char *cookiefile; 13*9a747e4fSDavid du Colombier char *mtpt = "/mnt/web"; 14*9a747e4fSDavid du Colombier char *service; 15*9a747e4fSDavid du Colombier 16*9a747e4fSDavid du Colombier Ctl globalctl = 17*9a747e4fSDavid du Colombier { 18*9a747e4fSDavid du Colombier 1, /* accept cookies */ 19*9a747e4fSDavid du Colombier 1, /* send cookies */ 20*9a747e4fSDavid du Colombier 10, /* redirect limit */ 21*9a747e4fSDavid du Colombier "webfs/2.0 (plan 9)" /* user agent */ 22*9a747e4fSDavid du Colombier }; 23*9a747e4fSDavid du Colombier 24*9a747e4fSDavid du Colombier void 25*9a747e4fSDavid du Colombier usage(void) 26*9a747e4fSDavid du Colombier { 27*9a747e4fSDavid du Colombier fprint(2, "usage: webfs [-c cookies] [-m mtpt] [-s service]\n"); 28*9a747e4fSDavid du Colombier threadexitsall("usage"); 29*9a747e4fSDavid du Colombier } 30*9a747e4fSDavid du Colombier 31*9a747e4fSDavid du Colombier void 32*9a747e4fSDavid du Colombier threadmain(int argc, char **argv) 33*9a747e4fSDavid du Colombier { 34*9a747e4fSDavid du Colombier rfork(RFNOTEG); 35*9a747e4fSDavid du Colombier ARGBEGIN{ 36*9a747e4fSDavid du Colombier case 'D': 37*9a747e4fSDavid du Colombier chatty9p++; 38*9a747e4fSDavid du Colombier break; 39*9a747e4fSDavid du Colombier case 'c': 40*9a747e4fSDavid du Colombier cookiefile = EARGF(usage()); 41*9a747e4fSDavid du Colombier break; 42*9a747e4fSDavid du Colombier case 'm': 43*9a747e4fSDavid du Colombier mtpt = EARGF(usage()); 44*9a747e4fSDavid du Colombier break; 45*9a747e4fSDavid du Colombier case 's': 46*9a747e4fSDavid du Colombier service = EARGF(usage()); 47*9a747e4fSDavid du Colombier break; 48*9a747e4fSDavid du Colombier }ARGEND 49*9a747e4fSDavid du Colombier 50*9a747e4fSDavid du Colombier quotefmtinstall(); 51*9a747e4fSDavid du Colombier if(argc != 0) 52*9a747e4fSDavid du Colombier usage(); 53*9a747e4fSDavid du Colombier 54*9a747e4fSDavid du Colombier plumbinit(); 55*9a747e4fSDavid du Colombier globalctl.useragent = estrdup(globalctl.useragent); 56*9a747e4fSDavid du Colombier initcookies(cookiefile); 57*9a747e4fSDavid du Colombier initurl(); 58*9a747e4fSDavid du Colombier initfs(); 59*9a747e4fSDavid du Colombier threadpostmountsrv(&fs, service, mtpt, MREPL); 60*9a747e4fSDavid du Colombier threadexits(nil); 61*9a747e4fSDavid du Colombier } 62