]> git.tdb.fi Git - libs/net.git/blobdiff - source/client.cpp
Socket::close was removed
[libs/net.git] / source / client.cpp
index 6801ad2a3fc73cae566170577ad03b20f0182dc3..48cd291664b26ad659aff9919f028311e5d48f4d 100644 (file)
@@ -111,7 +111,6 @@ void Client::connect_finished(int err)
        {
                signal_socket_error.emit(err);
 
-               sock->close();
                delete request;
                request = 0;
        }
@@ -122,7 +121,19 @@ void Client::connect_finished(int err)
 void Client::data_available()
 {
        char rbuf[4096];
-       unsigned len = sock->read(rbuf, sizeof(rbuf));
+       unsigned len;
+       try
+       {
+               len = sock->read(rbuf, sizeof(rbuf));
+       }
+       catch(const SystemError &e)
+       {
+               signal_socket_error.emit(e.get_error_code());
+               return;
+       }
+
+       if(!len)
+               return;
        in_buf.append(rbuf, len);
 
        if(!response)
@@ -144,7 +155,6 @@ void Client::data_available()
        {
                signal_response_complete.emit(*response);
 
-               sock->close();
                delete request;
                request = 0;
        }