info message during socks connect showed bad port number on little endian systems

This commit is contained in:
Gerhard Rieger 2012-07-21 15:42:44 +02:00
parent 0c8f8a7fc0
commit 27eb0a30b6
2 changed files with 8 additions and 3 deletions

View file

@ -15,6 +15,10 @@ corrections:
Debian bug 531078: socat execs children with SIGCHLD ignored; corrected
to default. Thanks to Martin Dorey for reporting this bug.
info message during socks connect showed bad port number on little
endian systems due to wrong byte order (thanks to Peter M. Galbavy for
bug report and patch)
docu mentions option so-bindtodev but correct name is so-bindtodevice.
Thanks to Jim Zimmerman for reporting.

View file

@ -1,5 +1,5 @@
/* source: xio-socks.c */
/* Copyright Gerhard Rieger 2001-2009 */
/* Copyright Gerhard Rieger 2001-2012 */
/* Published under the GNU General Public License V.2, see file COPYING */
/* this file contains the source for opening addresses of socks4 type */
@ -257,7 +257,8 @@ int _xioopen_socks4_prepare(const char *targetport, struct opt *opts, char **soc
/* generate socks header - points to final target */
sockhead->version = 4;
sockhead->action = 1;
sockhead->port = parseport(targetport, IPPROTO_TCP);
sockhead->port = parseport(targetport, IPPROTO_TCP); /* network byte
order */
if (retropt_string(opts, OPT_SOCKSPORT, socksport) < 0) {
if ((se = getservbyname("socks", "tcp")) != NULL) {
@ -358,7 +359,7 @@ int _xioopen_socks4_connect(struct single *xfd,
}
Info11("sending socks4%s request VN=%d DC=%d DSTPORT=%d DSTIP=%d.%d.%d.%d USERID=%s%s%s",
destdomname?"a":"",
sockhead->version, sockhead->action, sockhead->port,
sockhead->version, sockhead->action, ntohs(sockhead->port),
((unsigned char *)&sockhead->dest)[0],
((unsigned char *)&sockhead->dest)[1],
((unsigned char *)&sockhead->dest)[2],