X-Git-Url: http://git.tdb.fi/?p=libs%2Fnet.git;a=blobdiff_plain;f=source%2Fnet%2Fclientsocket.cpp;h=04d07000a7bb1286c105a1697fdc71f0bc880901;hp=cbf18e593bdadc458ed862ab9aba326025df0bd1;hb=88bbb4039aa274c7f41ebe3a18085b63427e5475;hpb=6f6845971a21c2d7e04b87925f5e657f0f20ca0d diff --git a/source/net/clientsocket.cpp b/source/net/clientsocket.cpp index cbf18e5..04d0700 100644 --- a/source/net/clientsocket.cpp +++ b/source/net/clientsocket.cpp @@ -1,9 +1,4 @@ -#ifdef _WIN32 -#include -#else -#include -#include -#endif +#include "platform_api.h" #include #include "clientsocket.h" #include "socket_private.h" @@ -74,16 +69,7 @@ unsigned ClientSocket::do_write(const char *buf, unsigned size) if(size==0) return 0; - int ret = ::send(priv->handle, buf, size, 0); - if(ret<0) - { - if(errno==EAGAIN) - return 0; - else - throw system_error("send"); - } - - return ret; + return check_sys_error(::send(priv->handle, buf, size, 0), "send"); } unsigned ClientSocket::do_read(char *buf, unsigned size) @@ -95,19 +81,12 @@ unsigned ClientSocket::do_read(char *buf, unsigned size) if(size==0) return 0; - int ret = ::recv(priv->handle, buf, size, 0); - if(ret<0) - { - if(errno==EAGAIN) - return 0; - else - throw system_error("recv"); - } - else if(ret==0 && !eof_flag) + unsigned ret = check_sys_error(::recv(priv->handle, buf, size, 0), "recv"); + if(ret==0 && !eof_flag) { eof_flag = true; signal_end_of_file.emit(); - set_events(IO::P_NONE); + set_socket_events(S_NONE); } return ret;