summaryrefslogtreecommitdiff
path: root/src/connection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/connection.cpp')
-rw-r--r--src/connection.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/connection.cpp b/src/connection.cpp
index d66ff97..3d3c094 100644
--- a/src/connection.cpp
+++ b/src/connection.cpp
@@ -10,6 +10,7 @@
10#include <netinet/in.h> 10#include <netinet/in.h>
11#include <netdb.h> 11#include <netdb.h>
12#include <arpa/inet.h> 12#include <arpa/inet.h>
13#include <errno.h>
13#include "exceptions.h" 14#include "exceptions.h"
14 15
15Connection::Connection() 16Connection::Connection()
@@ -208,15 +209,16 @@ int Connection::readInput()
208 //memset( buffer, 0, 2048 ); 209 //memset( buffer, 0, 2048 );
209 210
210 nbytes = read( nSocket, buffer, 2048 ); 211 nbytes = read( nSocket, buffer, 2048 );
211 if (nbytes < 0) 212 if( nbytes < 0 && errno != 0 && errno != EAGAIN )
212 { 213 {
214 printf("errno: %d, %s\n", errno, strerror( errno ) );
213 /* Read error. */ 215 /* Read error. */
214 //perror("readInput"); 216 //perror("readInput");
215 throw ConnectionException( excodeReadError, "Read error"); 217 throw ConnectionException( excodeReadError, "Read error: %s", strerror( errno ) );
216 } 218 }
217 else 219 else
218 { 220 {
219 if( nbytes == 0 ) 221 if( nbytes <= 0 )
220 break; 222 break;
221 nTotalRead += nbytes; 223 nTotalRead += nbytes;
222 appendInput( buffer, nbytes ); 224 appendInput( buffer, nbytes );