mirror of
https://repo.or.cz/socat.git
synced 2025-05-22 13:02:40 +00:00
Added options setsockopt-socket and setsockopt-connected
This commit is contained in:
parent
e6aa3d1787
commit
c8aec28b82
6 changed files with 19 additions and 0 deletions
3
CHANGES
3
CHANGES
|
@ -110,6 +110,9 @@ Features:
|
|||
Socat now prints an info message when implicitely setting SO_REUSEADDR.
|
||||
Thanks to Michael Renner for this suggestion.
|
||||
|
||||
Added generic options setsockopt-socket and setsockopt-connected that
|
||||
are applied after socket() or when connected.
|
||||
|
||||
Building:
|
||||
Disabling certain features during configure could break build process.
|
||||
|
||||
|
|
|
@ -2408,6 +2408,12 @@ label(OPTION_SETSOCKOPT_STRING)dit(bf(tt(setsockopt-string=<level>:<optname>:<op
|
|||
Like tt(setsockopt), but <optval> is a link(string)(TYPE_STRING).
|
||||
This string is passed to the function with trailing null character, and the
|
||||
length parameter is automatically derived from the data.
|
||||
label(OPTION_SETSOCKOPT_SOCKET)dit(bf(tt(setsockopt-socket=<level>:<optname>:<optval>)))
|
||||
Like tt(setsockopt), but is applied to the socket before other operations
|
||||
(code(bind()), code(connect()), code(accept()), ...)
|
||||
label(OPTION_SETSOCKOPT_CONNECTED)dit(bf(tt(setsockopt-connected=<level>:<optname>:<optval>)))
|
||||
Like tt(setsockopt), but is applied only when the socket has been connected
|
||||
by a code(connect()) or code(listen()) call.
|
||||
enddit()
|
||||
|
||||
startdit()enddit()nl()
|
||||
|
|
|
@ -191,6 +191,8 @@ const struct optdesc opt_setsockopt_int = { "setsockopt-int", "sockopt-int
|
|||
const struct optdesc opt_setsockopt_bin = { "setsockopt-bin", "sockopt-bin", OPT_SETSOCKOPT_BIN, GROUP_SOCKET,PH_CONNECTED, TYPE_INT_INT_BIN, OFUNC_SOCKOPT_GENERIC, 0, 0 };
|
||||
const struct optdesc opt_setsockopt_string = { "setsockopt-string", "sockopt-string", OPT_SETSOCKOPT_STRING, GROUP_SOCKET,PH_CONNECTED, TYPE_INT_INT_STRING, OFUNC_SOCKOPT_GENERIC, 0, 0 };
|
||||
const struct optdesc opt_setsockopt_listen = { "setsockopt-listen", "sockopt-listen", OPT_SETSOCKOPT_LISTEN, GROUP_SOCKET,PH_PREBIND, TYPE_INT_INT_BIN, OFUNC_SOCKOPT_GENERIC, 0, 0 };
|
||||
const struct optdesc opt_setsockopt_socket = { "setsockopt-socket", "sockopt-sock", OPT_SETSOCKOPT_SOCKET, GROUP_SOCKET,PH_PASTSOCKET, TYPE_INT_INT_BIN, OFUNC_SOCKOPT_GENERIC, 0, 0 };
|
||||
const struct optdesc opt_setsockopt_connected = { "setsockopt-connected", "sockopt-conn", OPT_SETSOCKOPT_CONNECTED, GROUP_SOCKET,PH_CONNECTED, TYPE_INT_INT_BIN, OFUNC_SOCKOPT_GENERIC, 0, 0 };
|
||||
|
||||
const struct optdesc opt_null_eof = { "null-eof", NULL, OPT_NULL_EOF, GROUP_SOCKET, PH_OFFSET, TYPE_BOOL, OFUNC_OFFSET, XIO_OFFSETOF(para.socket.null_eof) };
|
||||
|
||||
|
|
|
@ -83,6 +83,8 @@ extern const struct optdesc opt_setsockopt_bin;
|
|||
extern const struct optdesc opt_setsockopt_string;
|
||||
extern const struct optdesc opt_setsockopt_listen;
|
||||
extern const struct optdesc opt_null_eof;
|
||||
extern const struct optdesc opt_setsockopt_socket;
|
||||
extern const struct optdesc opt_setsockopt_connected;
|
||||
|
||||
|
||||
extern
|
||||
|
|
|
@ -1583,8 +1583,10 @@ const struct optname optionnames[] = {
|
|||
#endif
|
||||
IF_SOCKET ("setsockopt", &opt_setsockopt)
|
||||
IF_SOCKET ("setsockopt-bin", &opt_setsockopt_bin)
|
||||
IF_SOCKET ("setsockopt-connected", &opt_setsockopt_connected)
|
||||
IF_SOCKET ("setsockopt-int", &opt_setsockopt_int)
|
||||
IF_SOCKET ("setsockopt-listen", &opt_setsockopt_listen)
|
||||
IF_SOCKET ("setsockopt-socket", &opt_setsockopt_socket)
|
||||
IF_SOCKET ("setsockopt-string", &opt_setsockopt_string)
|
||||
IF_ANY ("setuid", &opt_setuid)
|
||||
IF_ANY ("setuid-early", &opt_setuid_early)
|
||||
|
@ -1719,8 +1721,10 @@ const struct optname optionnames[] = {
|
|||
#endif /* SO_USELOOPBACK */
|
||||
IF_SOCKET ("sockopt", &opt_setsockopt)
|
||||
IF_SOCKET ("sockopt-bin", &opt_setsockopt_bin)
|
||||
IF_SOCKET ("sockopt-conn", &opt_setsockopt_connected)
|
||||
IF_SOCKET ("sockopt-int", &opt_setsockopt_int)
|
||||
IF_SOCKET ("sockopt-listen", &opt_setsockopt_listen)
|
||||
IF_SOCKET ("sockopt-sock", &opt_setsockopt_socket)
|
||||
IF_SOCKET ("sockopt-string", &opt_setsockopt_string)
|
||||
IF_SOCKS4 ("socksport", &opt_socksport)
|
||||
IF_SOCKS4 ("socksuser", &opt_socksuser)
|
||||
|
|
|
@ -663,8 +663,10 @@ enum e_optcode {
|
|||
OPT_SETPGID,
|
||||
OPT_SETSID,
|
||||
OPT_SETSOCKOPT_BIN,
|
||||
OPT_SETSOCKOPT_CONNECTED,
|
||||
OPT_SETSOCKOPT_INT,
|
||||
OPT_SETSOCKOPT_LISTEN,
|
||||
OPT_SETSOCKOPT_SOCKET,
|
||||
OPT_SETSOCKOPT_STRING,
|
||||
OPT_SETUID,
|
||||
OPT_SETUID_EARLY,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue