diff options
| author | Mike Buland <eichlan@xagasoft.com> | 2006-09-26 19:53:41 +0000 |
|---|---|---|
| committer | Mike Buland <eichlan@xagasoft.com> | 2006-09-26 19:53:41 +0000 |
| commit | 4a2cacc7975b635b32c7cd7c6ac274639477ed8c (patch) | |
| tree | ac95ac3855ce5df7c7ddbd231107e5ae84143deb /src/connection.cpp | |
| parent | 25ba18d85897e69cafcf2e2f4772ec693d46c9a0 (diff) | |
| download | libbu++-4a2cacc7975b635b32c7cd7c6ac274639477ed8c.tar.gz libbu++-4a2cacc7975b635b32c7cd7c6ac274639477ed8c.tar.bz2 libbu++-4a2cacc7975b635b32c7cd7c6ac274639477ed8c.tar.xz libbu++-4a2cacc7975b635b32c7cd7c6ac274639477ed8c.zip | |
Fixed some whackiness in the connection class, -1 from readInput means nothing
there, but there might be later. 0 means death.
Diffstat (limited to 'src/connection.cpp')
| -rw-r--r-- | src/connection.cpp | 8 |
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 | ||
| 15 | Connection::Connection() | 16 | Connection::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 ); |
