libt2n: (tomj) small fix to support data transfers over 2GB
[libt2n] / src / socket_handler.cpp
index 532c7f8..91d5899 100644 (file)
@@ -94,6 +94,7 @@ void socket_handler::set_socket_options(int sock)
 /// by the connection class you are using.
 void socket_handler::close()
 {
+    LOGSTREAM(debug,"close connection");
     // graceful shutdown
     shutdown(sock,SHUT_RDWR);
     ::close(sock);
@@ -158,6 +159,7 @@ void socket_handler::set_write_timeout(long long new_write_timeout)
     @param[in,out] usec_timeout wait until new data is found, max timeout usecs.
             -1: wait endless
             0: return instantly
+    @param[out] usec_timeout_remaining microseconds from the timeout that were not used
 */
 bool socket_handler::data_waiting(long long usec_timeout,long long* usec_timeout_remaining)
 {
@@ -199,11 +201,12 @@ bool socket_handler::data_waiting(long long usec_timeout,long long* usec_timeout
     @param[in,out] usec_timeout wait until new data is found, max timeout usecs.
             -1: wait endless
             0: return instantly
+    @param[out] usec_timeout_remaining microseconds from the timeout that were not used
 */
-bool socket_handler::fill_buffer(std::string& buffer, long long usec_timeout, long long *timeout_remaining)
+bool socket_handler::fill_buffer(std::string& buffer, long long usec_timeout, long long *usec_timeout_remaining)
 {
     // fast path for timeout==0
-    if (usec_timeout==0 || data_waiting(usec_timeout,timeout_remaining))
+    if (usec_timeout==0 || data_waiting(usec_timeout,usec_timeout_remaining))
         return fill_buffer(buffer);
     else
         return false;
@@ -220,6 +223,7 @@ bool socket_handler::fill_buffer(std::string& buffer)
     char socket_buffer[recv_buffer_size];
 
     int nbytes = read (sock, socket_buffer, recv_buffer_size);
+
     if (nbytes < 0)
     {
         if (errno == EAGAIN)
@@ -263,7 +267,7 @@ bool socket_handler::fill_buffer(std::string& buffer)
 /// connection because it encapsulates the data.
 void socket_handler::socket_write(const std::string& data)
 {
-    int offset = 0;
+    unsigned int offset = 0;
     while (offset < data.size())
     {
         unsigned int write_size=write_block_size;