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 ) ||
165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200