X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilcutil%2Fwin32%2Fsilcwin32sockconn.c;h=55f37e56fa6307f6feab57c5471fb9ed4d3a35e8;hp=c63a77eabd8a80ff0f0bf7f83f07213be576225e;hb=382d15d447b7a95390decfa783836ae4fe255b3d;hpb=d47a87b03b846e2333ef57b2c0d81f1644992964 diff --git a/lib/silcutil/win32/silcwin32sockconn.c b/lib/silcutil/win32/silcwin32sockconn.c index c63a77ea..55f37e56 100644 --- a/lib/silcutil/win32/silcwin32sockconn.c +++ b/lib/silcutil/win32/silcwin32sockconn.c @@ -33,6 +33,8 @@ int silc_socket_write(SilcSocketConnection sock) SOCKET fd = sock->sock; SilcBuffer src = sock->outbuf; + if (!src) + return -2; if (SILC_IS_DISABLED(sock)) return -1; @@ -51,6 +53,13 @@ int silc_socket_write(SilcSocketConnection sock) return -1; } + if (ret < src->len) { + SILC_LOG_DEBUG(("Wrote data %d of %d bytes, will write rest later", + ret, src->len)); + silc_buffer_pull(src, ret); + return -2; + } + silc_buffer_pull(src, ret); } @@ -122,7 +131,7 @@ int silc_socket_read(SilcSocketConnection sock) /* Returns human readable socket error message */ bool silc_socket_get_error(SilcSocketConnection sock, char *error, - uint32 error_len) + SilcUInt32 error_len) { /* XXX TODO */ return FALSE;