add EPRT and EPSV

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6630 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
1999-07-28 13:36:20 +00:00
parent 4baaa97d33
commit 4bc7ce877b

View File

@@ -98,6 +98,7 @@ static int yylex (void);
ABOR DELE CWD LIST NLST SITE ABOR DELE CWD LIST NLST SITE
sTAT HELP NOOP MKD RMD PWD sTAT HELP NOOP MKD RMD PWD
CDUP STOU SMNT SYST SIZE MDTM CDUP STOU SMNT SYST SIZE MDTM
EPRT EPSV
UMASK IDLE CHMOD UMASK IDLE CHMOD
@@ -151,9 +152,23 @@ cmd
} }
reply(200, "PORT command successful."); reply(200, "PORT command successful.");
} }
| EPRT SP STRING CRLF
{
eprt ($3);
free ($3);
}
| PASV CRLF | PASV CRLF
{ {
passive(); pasv ();
}
| EPSV CRLF
{
epsv (NULL);
}
| EPSV SP STRING CRLF
{
epsv ($3);
free ($3);
} }
| TYPE SP type_code CRLF | TYPE SP type_code CRLF
{ {
@@ -696,9 +711,11 @@ host_port
: NUMBER COMMA NUMBER COMMA NUMBER COMMA NUMBER COMMA : NUMBER COMMA NUMBER COMMA NUMBER COMMA NUMBER COMMA
NUMBER COMMA NUMBER NUMBER COMMA NUMBER
{ {
data_dest.sin_family = AF_INET; struct sockaddr_in *sin = (struct sockaddr_in *)data_dest;
data_dest.sin_port = htons($9 * 256 + $11);
data_dest.sin_addr.s_addr = sin->sin_family = AF_INET;
sin->sin_port = htons($9 * 256 + $11);
sin->sin_addr.s_addr =
htonl(($1 << 24) | ($3 << 16) | ($5 << 8) | $7); htonl(($1 << 24) | ($3 << 16) | ($5 << 8) | $7);
} }
; ;
@@ -901,7 +918,9 @@ struct tab cmdtab[] = { /* In order defined in RFC 765 */
{ "REIN", REIN, ARGS, 0, "(reinitialize server state)" }, { "REIN", REIN, ARGS, 0, "(reinitialize server state)" },
{ "QUIT", QUIT, ARGS, 1, "(terminate service)", }, { "QUIT", QUIT, ARGS, 1, "(terminate service)", },
{ "PORT", PORT, ARGS, 1, "<sp> b0, b1, b2, b3, b4" }, { "PORT", PORT, ARGS, 1, "<sp> b0, b1, b2, b3, b4" },
{ "EPRT", EPRT, STR1, 1, "<sp> string" },
{ "PASV", PASV, ARGS, 1, "(set server in passive mode)" }, { "PASV", PASV, ARGS, 1, "(set server in passive mode)" },
{ "EPSV", EPSV, OSTR, 1, "[<sp> foo]" },
{ "TYPE", TYPE, ARGS, 1, "<sp> [ A | E | I | L ]" }, { "TYPE", TYPE, ARGS, 1, "<sp> [ A | E | I | L ]" },
{ "STRU", STRU, ARGS, 1, "(specify file structure)" }, { "STRU", STRU, ARGS, 1, "(specify file structure)" },
{ "MODE", MODE, ARGS, 1, "(specify transfer mode)" }, { "MODE", MODE, ARGS, 1, "(specify transfer mode)" },