mirror of
https://repo.or.cz/socat.git
synced 2025-06-17 22:46:50 +00:00
Fixed ignoring of explicit socksport in socks5 addresses (regression)
This commit is contained in:
parent
5e56f25285
commit
e7df880af5
4 changed files with 10 additions and 1 deletions
4
CHANGES
4
CHANGES
|
@ -14,6 +14,10 @@ Corrections:
|
||||||
corrected test IGNOREEOF.
|
corrected test IGNOREEOF.
|
||||||
Thanks to Rusty Bird for the precise problem report.
|
Thanks to Rusty Bird for the precise problem report.
|
||||||
|
|
||||||
|
Fixed the regression introduced with version 1.8.0.1 that in socks5
|
||||||
|
addresses the explicit socksport (2nd address parameter) was ignored.
|
||||||
|
Thanks to Jakub Fišer for reporting this bug.
|
||||||
|
|
||||||
Building:
|
Building:
|
||||||
Disabling certain features during configure could break build process.
|
Disabling certain features during configure could break build process.
|
||||||
|
|
||||||
|
|
|
@ -1103,6 +1103,7 @@ label(ADDRESS_SOCKS4A)dit(bf(tt(SOCKS4A:<socks-server>:<host>:<port>)))
|
||||||
Option groups: link(FD)(GROUP_FD),link(SOCKET)(GROUP_SOCKET),link(IP4)(GROUP_IP4),link(IP6)(GROUP_IP6),link(TCP)(GROUP_TCP),link(SOCKS4)(GROUP_SOCKS),link(RETRY)(GROUP_RETRY) nl()
|
Option groups: link(FD)(GROUP_FD),link(SOCKET)(GROUP_SOCKET),link(IP4)(GROUP_IP4),link(IP6)(GROUP_IP6),link(TCP)(GROUP_TCP),link(SOCKS4)(GROUP_SOCKS),link(RETRY)(GROUP_RETRY) nl()
|
||||||
|
|
||||||
label(ADDRESS_SOCKS5_CONNECT)dit(bf(tt(SOCKS5-CONNECT:<socks-server>:<socks-port>:<target-host>:<target-port>)))
|
label(ADDRESS_SOCKS5_CONNECT)dit(bf(tt(SOCKS5-CONNECT:<socks-server>:<socks-port>:<target-host>:<target-port>)))
|
||||||
|
dit(bf(tt(SOCKS5-CONNECT:<socks-server>:<target-host>:<target-port>)))
|
||||||
Connects via <socks-server> [link(IP address)(TYPE_IP_ADDRESS)]
|
Connects via <socks-server> [link(IP address)(TYPE_IP_ADDRESS)]
|
||||||
to <target-host> [link(IPv4 address)(TYPE_IPV4_ADDRESS)]
|
to <target-host> [link(IPv4 address)(TYPE_IPV4_ADDRESS)]
|
||||||
on <target-port> [link(TCP service)(TYPE_TCP_SERVICE)],
|
on <target-port> [link(TCP service)(TYPE_TCP_SERVICE)],
|
||||||
|
@ -1122,6 +1123,7 @@ label(ADDRESS_SOCKS5_CONNECT)dit(bf(tt(SOCKS5-CONNECT:<socks-server>:<socks-port
|
||||||
link(TCP)(ADDRESS_TCP_CONNECT)
|
link(TCP)(ADDRESS_TCP_CONNECT)
|
||||||
|
|
||||||
label(ADDRESS_SOCKS5_LISTEN)dit(bf(tt(SOCKS5-LISTEN:<socks-server>:<socks-port>:<listen-host>:<listen-port>)))
|
label(ADDRESS_SOCKS5_LISTEN)dit(bf(tt(SOCKS5-LISTEN:<socks-server>:<socks-port>:<listen-host>:<listen-port>)))
|
||||||
|
dit(bf(tt(SOCKS5-LISTEN:<socks-server>:<listen-host>:<listen-port>)))
|
||||||
Connects to <socks-server> [link(IP address)(TYPE_IP_ADDRESS)]
|
Connects to <socks-server> [link(IP address)(TYPE_IP_ADDRESS)]
|
||||||
using socks version 5 protocol over TCP
|
using socks version 5 protocol over TCP
|
||||||
and makes it listen for incoming connections on <listen-port> [link(TCP service)(TYPE_TCP_SERVICE)], binding to <-listen-host> [link(IPv4 address)(TYPE_IPV4_ADDRESS)]
|
and makes it listen for incoming connections on <listen-port> [link(TCP service)(TYPE_TCP_SERVICE)], binding to <-listen-host> [link(IPv4 address)(TYPE_IPV4_ADDRESS)]
|
||||||
|
|
|
@ -239,7 +239,8 @@ int _xioopen_opt_socksport(
|
||||||
{
|
{
|
||||||
struct servent *se;
|
struct servent *se;
|
||||||
|
|
||||||
if (retropt_string(opts, OPT_SOCKSPORT, socksport) < 0) {
|
if (retropt_string(opts, OPT_SOCKSPORT, socksport) < 0 &&
|
||||||
|
*socksport == NULL) {
|
||||||
if ((se = getservbyname("socks", "tcp")) != NULL) {
|
if ((se = getservbyname("socks", "tcp")) != NULL) {
|
||||||
Debug1("\"socks/tcp\" resolves to %u", ntohs(se->s_port));
|
Debug1("\"socks/tcp\" resolves to %u", ntohs(se->s_port));
|
||||||
if ((*socksport = Malloc(6)) == NULL) {
|
if ((*socksport = Malloc(6)) == NULL) {
|
||||||
|
|
|
@ -533,6 +533,7 @@ static int xioopen_socks5(
|
||||||
target_name = argv[3];
|
target_name = argv[3];
|
||||||
target_port = argv[4];
|
target_port = argv[4];
|
||||||
} else {
|
} else {
|
||||||
|
socks_port = NULL;
|
||||||
target_name = argv[2];
|
target_name = argv[2];
|
||||||
target_port = argv[3];
|
target_port = argv[3];
|
||||||
}
|
}
|
||||||
|
@ -548,6 +549,7 @@ static int xioopen_socks5(
|
||||||
if (_xioopen_opt_socksport(opts, (char **)&socks_port) < 0) {
|
if (_xioopen_opt_socksport(opts, (char **)&socks_port) < 0) {
|
||||||
return STAT_NORETRY;
|
return STAT_NORETRY;
|
||||||
}
|
}
|
||||||
|
/*! possible memory leak */
|
||||||
|
|
||||||
result = _xioopen_ipapp_prepare(opts, &opts0, socks_server, socks_port,
|
result = _xioopen_ipapp_prepare(opts, &opts0, socks_server, socks_port,
|
||||||
&pf, ipproto,
|
&pf, ipproto,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue