aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/jabber/s5bytestream.c
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/jabber/s5bytestream.c')
-rw-r--r--protocols/jabber/s5bytestream.c16
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 ) ||