diff options
author | ulim <a.sporto+bee@gmail.com> | 2008-05-04 15:32:15 +0200 |
---|---|---|
committer | ulim <a.sporto+bee@gmail.com> | 2008-05-04 15:32:15 +0200 |
commit | 4358b10c11410a27af9458c92067549cafbc4c0b (patch) | |
tree | d60712a886fe6e54b76204dd1362b6fe71e9c805 /protocols/jabber/s5bytestream.c | |
parent | 0cab3888888c7c6b58af9560a0ae2c74a795727f (diff) |
ulibc support, fixes "Invalid SOCKS5 Connect message" problem
Diffstat (limited to 'protocols/jabber/s5bytestream.c')
-rw-r--r-- | protocols/jabber/s5bytestream.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/protocols/jabber/s5bytestream.c b/protocols/jabber/s5bytestream.c index 1008f162..15696501 100644 --- a/protocols/jabber/s5bytestream.c +++ b/protocols/jabber/s5bytestream.c @@ -25,6 +25,16 @@ #include "sha1.h" #include <poll.h> +/* Some ifdefs for ulibc (Thanks to Whoopie) */ +#ifndef HOST_NAME_MAX +#include <sys/param.h> +#ifdef MAXHOSTNAMELEN +#define HOST_NAME_MAX MAXHOSTNAMELEN +#else +#define HOST_NAME_MAX 255 +#endif +#endif + struct bs_transfer { struct jabber_transfer *tf; @@ -1047,10 +1057,14 @@ gboolean jabber_bs_send_handshake( gpointer data, gint fd, b_input_condition con { struct socks5_message socks5_connect; int msgsize = sizeof( struct socks5_message ); + int ret; - if( !jabber_bs_peek( bt, &socks5_connect, msgsize ) ) + if( !( ret = jabber_bs_peek( bt, &socks5_connect, msgsize ) ) ) return FALSE; + if( ret < msgsize ) + return TRUE; + if( !( socks5_connect.ver == 5) || !( socks5_connect.cmdrep.cmd == 1 ) || !( socks5_connect.atyp == 3 ) || |