10 void post(char*, int);
11 void mountfs(char*, int);
17 fprint(2, "usage: %s [-abcCm] [net!]host [srvname [mtpt]]\n", argv0);
18 fprint(2, " or %s -e [-abcCm] command [srvname [mtpt]]\n", argv0);
24 ignore(void *a, char *c)
27 if(strcmp(c, "alarm") == 0){
28 fprint(2, "srv: timeout establishing connection to %s\n", dest);
31 if(strstr(c, "write on closed pipe") == 0){
32 fprint(2, "write on closed pipe\n");
47 fprint(2, "fork failed: %r\n");
55 execl("/bin/rc", "rc", "-c", cmd, nil);
56 fprint(2, "exec failed: %r\n");
65 main(int argc, char *argv[])
72 int domount, reallymount, try, sleeptime;
117 /* deprecated -r flag; ignored for compatibility */
120 sleeptime = atoi(EARGF(usage()));
127 if((mountflag&MAFTER)&&(mountflag&MBEFORE))
131 case 1: /* calculate srv and mtpt from address */
132 p = strrchr(argv[0], '/');
133 p = p ? p+1 : argv[0];
134 srv = smprint("/srv/%s", p);
137 mtpt = smprint("/n/%s", p2);
139 case 2: /* calculate mtpt from address, srv given */
140 srv = smprint("/srv/%s", argv[1]);
141 p = strrchr(argv[0], '/');
142 p = p ? p+1 : argv[0];
145 mtpt = smprint("/n/%s", p2);
147 case 3: /* srv and mtpt given */
150 srv = smprint("/srv/%s", argv[1]);
151 mtpt = smprint("%s", argv[2]);
163 if(access(srv, 0) == 0){
165 fd = open(srv, ORDWR);
171 fprint(2, "srv: %s already exists\n", srv);
178 fd = connectcmd(dest);
180 dest = netmkaddr(dest, 0, "9fs");
181 fd = dial(dest, 0, dir, 0);
184 fprint(2, "srv: dial %s: %r\n", dest);
190 fprint(2, "sleep...");
191 sleep(sleeptime*1000);
197 if(domount == 0 || reallymount == 0)
200 if((!doauth && mount(fd, -1, mtpt, mountflag, "") < 0)
201 || (doauth && amount(fd, mtpt, mountflag, "") < 0)){
203 errstr(err, sizeof err);
204 if(strstr(err, "Hangup") || strstr(err, "hungup") || strstr(err, "timed out")){
209 fprint(2, "srv %s: mount failed: %s\n", dest, err);
216 post(char *srv, int fd)
221 fprint(2, "post...\n");
222 f = create(srv, OWRITE, 0666);
224 sprint(buf, "create(%s)", srv);
227 sprint(buf, "%d", fd);
228 if(write(f, buf, strlen(buf)) != strlen(buf))
235 fprint(2, "srv %s: %s: %r\n", dest, s);