diff options
| author | Mike Buland <eichlan@xagasoft.com> | 2007-01-24 22:18:51 +0000 |
|---|---|---|
| committer | Mike Buland <eichlan@xagasoft.com> | 2007-01-24 22:18:51 +0000 |
| commit | f587852db92f3a74f16cab04a983158f9baa2c0f (patch) | |
| tree | ed80a871bb3ec8b446dc81809f87fe85ea769c07 | |
| parent | 4e55acc667bbadc104f71e1ee3a50b0fab38aea6 (diff) | |
| download | libbu++-f587852db92f3a74f16cab04a983158f9baa2c0f.tar.gz libbu++-f587852db92f3a74f16cab04a983158f9baa2c0f.tar.bz2 libbu++-f587852db92f3a74f16cab04a983158f9baa2c0f.tar.xz libbu++-f587852db92f3a74f16cab04a983158f9baa2c0f.zip | |
Fixed a bug?
Diffstat (limited to '')
| -rw-r--r-- | src/connection.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/connection.cpp b/src/connection.cpp index cb3c724..dbf2761 100644 --- a/src/connection.cpp +++ b/src/connection.cpp | |||
| @@ -228,6 +228,24 @@ int Connection::readInput() | |||
| 228 | { | 228 | { |
| 229 | break; | 229 | break; |
| 230 | } | 230 | } |
| 231 | |||
| 232 | /* New test, if data is divisible by 2048 bytes on some libs the | ||
| 233 | * read could block, this keeps it from happening. | ||
| 234 | */ | ||
| 235 | { | ||
| 236 | fd_set rfds; | ||
| 237 | FD_ZERO(&rfds); | ||
| 238 | FD_SET(nSocket, &rfds); | ||
| 239 | int retval = select( nSocket+1, &rfds, NULL, NULL, NULL ); | ||
| 240 | if( retval == -1 ) | ||
| 241 | throw ConnectionException( | ||
| 242 | excodeBadReadError, | ||
| 243 | "Bad Read error" | ||
| 244 | ); | ||
| 245 | if( !FD_ISSET( nSocket, &rfds ) ) | ||
| 246 | break; | ||
| 247 | } | ||
| 248 | |||
| 231 | } | 249 | } |
| 232 | } | 250 | } |
| 233 | 251 | ||
