nc: don't redirect stderr to network in -e PROG mode
This in incompatible with nc-1.10, but makes a lot of sense. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
bc0ffc0e97
commit
a14f319805
@ -24,7 +24,7 @@
|
|||||||
//config: Allow netcat to act as a server.
|
//config: Allow netcat to act as a server.
|
||||||
//config:
|
//config:
|
||||||
//config:config NC_EXTRA
|
//config:config NC_EXTRA
|
||||||
//config: bool "Netcat extensions (-eiw and filename)"
|
//config: bool "Netcat extensions (-eiw and -f FILE)"
|
||||||
//config: default y
|
//config: default y
|
||||||
//config: depends on NC
|
//config: depends on NC
|
||||||
//config: help
|
//config: help
|
||||||
@ -60,17 +60,18 @@
|
|||||||
//usage:#define nc_full_usage "\n\n"
|
//usage:#define nc_full_usage "\n\n"
|
||||||
//usage: "Open a pipe to IP:PORT" IF_NC_EXTRA(" or FILE")
|
//usage: "Open a pipe to IP:PORT" IF_NC_EXTRA(" or FILE")
|
||||||
//usage: NC_OPTIONS_STR
|
//usage: NC_OPTIONS_STR
|
||||||
//usage: IF_NC_EXTRA(
|
|
||||||
//usage: "\n -e PROG Run PROG after connect"
|
|
||||||
//usage: IF_NC_SERVER(
|
//usage: IF_NC_SERVER(
|
||||||
//usage: "\n -l Listen mode, for inbound connects"
|
//usage: "\n -l Listen mode, for inbound connects"
|
||||||
//usage: IF_NC_EXTRA(
|
//usage: IF_NC_EXTRA(
|
||||||
//usage: "\n (use -l twice with -e for persistent server)")
|
//usage: "\n (use -ll with -e for persistent server)"
|
||||||
|
//usage: )
|
||||||
//usage: "\n -p PORT Local port"
|
//usage: "\n -p PORT Local port"
|
||||||
//usage: )
|
//usage: )
|
||||||
//usage: "\n -w SEC Timeout for connect"
|
//usage: IF_NC_EXTRA(
|
||||||
|
//usage: "\n -w SEC Connect timeout"
|
||||||
//usage: "\n -i SEC Delay interval for lines sent"
|
//usage: "\n -i SEC Delay interval for lines sent"
|
||||||
//usage: "\n -f FILE Use file (ala /dev/ttyS0) instead of network"
|
//usage: "\n -f FILE Use file (ala /dev/ttyS0) instead of network"
|
||||||
|
//usage: "\n -e PROG Run PROG after connect"
|
||||||
//usage: )
|
//usage: )
|
||||||
//usage:
|
//usage:
|
||||||
//usage:#define nc_notes_usage ""
|
//usage:#define nc_notes_usage ""
|
||||||
@ -147,7 +148,7 @@ int nc_main(int argc, char **argv)
|
|||||||
*p++ = argv[optind++];
|
*p++ = argv[optind++];
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
/* optind points to argv[arvc] (NULL) now.
|
/* optind points to argv[argc] (NULL) now.
|
||||||
** FIXME: we assume that getopt will not count options
|
** FIXME: we assume that getopt will not count options
|
||||||
** possibly present on "-e PROG ARGS" and will not
|
** possibly present on "-e PROG ARGS" and will not
|
||||||
** include them into final value of optind
|
** include them into final value of optind
|
||||||
@ -226,10 +227,9 @@ int nc_main(int argc, char **argv)
|
|||||||
/* child, or main thread if only one -l */
|
/* child, or main thread if only one -l */
|
||||||
xmove_fd(cfd, 0);
|
xmove_fd(cfd, 0);
|
||||||
xdup2(0, 1);
|
xdup2(0, 1);
|
||||||
xdup2(0, 2);
|
/*xdup2(0, 2); - original nc 1.10 does this, we don't */
|
||||||
IF_NC_EXTRA(BB_EXECVP(execparam[0], execparam);)
|
IF_NC_EXTRA(BB_EXECVP(execparam[0], execparam);)
|
||||||
/* Don't print stuff or it will go over the wire... */
|
bb_perror_msg_and_die("can't execute '%s'", execparam[0]);
|
||||||
_exit(127);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Select loop copying stdin to cfd, and cfd to stdout */
|
/* Select loop copying stdin to cfd, and cfd to stdout */
|
||||||
|
Loading…
Reference in New Issue
Block a user