add import -z option to skip initial tree negotiation (from mycroftiv)
This commit is contained in:
parent
d645d4d81b
commit
182ed8a2b5
2 changed files with 32 additions and 13 deletions
|
@ -68,6 +68,19 @@ is a directory.
|
|||
Skip the authentication protocol.
|
||||
This is useful for connecting to foreign systems like Inferno.
|
||||
.TP
|
||||
.B -z
|
||||
Bypass the initial protocol request for which remote tree to serve.
|
||||
This is necessary when the remote
|
||||
.IR exportfs (4)
|
||||
is running with the
|
||||
.B -r
|
||||
or
|
||||
.B -S
|
||||
options which pre-select a file tree to serve. The exception is if both sides are
|
||||
operating in the
|
||||
.B -B
|
||||
backwards mode.
|
||||
.TP
|
||||
.B -B
|
||||
Run in ``backwards'' mode, described below.
|
||||
.TP
|
||||
|
|
|
@ -25,6 +25,7 @@ AuthInfo *ai;
|
|||
int debug;
|
||||
int doauth = 1;
|
||||
int timedout;
|
||||
int skiptree;
|
||||
|
||||
int connect(char*, char*, int);
|
||||
int passive(void);
|
||||
|
@ -145,6 +146,9 @@ main(int argc, char **argv)
|
|||
case 'B':
|
||||
backwards = 1;
|
||||
break;
|
||||
case 'z':
|
||||
skiptree = 1;
|
||||
break;
|
||||
default:
|
||||
usage();
|
||||
}ARGEND;
|
||||
|
@ -315,20 +319,22 @@ connect(char *system, char *tree, int oldserver)
|
|||
sysfatal("%r: %s", system);
|
||||
}
|
||||
|
||||
procsetname("writing tree name %s", tree);
|
||||
n = write(fd, tree, strlen(tree));
|
||||
if(n < 0)
|
||||
sysfatal("can't write tree: %r");
|
||||
if(!skiptree){
|
||||
procsetname("writing tree name %s", tree);
|
||||
n = write(fd, tree, strlen(tree));
|
||||
if(n < 0)
|
||||
sysfatal("can't write tree: %r");
|
||||
|
||||
strcpy(buf, "can't read tree");
|
||||
strcpy(buf, "can't read tree");
|
||||
|
||||
procsetname("awaiting OK for %s", tree);
|
||||
n = read(fd, buf, sizeof buf - 1);
|
||||
if(n!=2 || buf[0]!='O' || buf[1]!='K'){
|
||||
if (timedout)
|
||||
sysfatal("timed out connecting to %s", na);
|
||||
buf[sizeof buf - 1] = '\0';
|
||||
sysfatal("bad remote tree: %s", buf);
|
||||
procsetname("awaiting OK for %s", tree);
|
||||
n = read(fd, buf, sizeof buf - 1);
|
||||
if(n!=2 || buf[0]!='O' || buf[1]!='K'){
|
||||
if (timedout)
|
||||
sysfatal("timed out connecting to %s", na);
|
||||
buf[sizeof buf - 1] = '\0';
|
||||
sysfatal("bad remote tree: %s", buf);
|
||||
}
|
||||
}
|
||||
|
||||
if(oldserver)
|
||||
|
@ -366,7 +372,7 @@ void
|
|||
usage(void)
|
||||
{
|
||||
fprint(2, "usage: import [-abcC] [-A] [-E clear|ssl|tls] "
|
||||
"[-e 'crypt auth'|clear] [-k keypattern] [-p] host remotefs [mountpoint]\n");
|
||||
"[-e 'crypt auth'|clear] [-k keypattern] [-p] [-z] host remotefs [mountpoint]\n");
|
||||
exits("usage");
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue