Revision 1638
| trunk/nntpgrab_core/download_thread.c (revision 1638) | ||
|---|---|---|
| 364 | 364 |
/* Guard against read timeouts */ |
| 365 | 365 |
if (conn->last_activity_stamp + 30 < curr_time) {
|
| 366 | 366 |
/* No activity happened in the last 30 seconds, disconnect from the server */ |
| 367 |
disconnect_socket(&active_connections, &active_connection_polls, &num_active_connections, conn->poll_fd, DISCONNECT_NORMAL, NULL, __LINE__); |
|
| 367 |
disconnect_socket(&active_connections, &active_connection_polls, &num_active_connections, conn->poll_fd, DISCONNECT_READ_TIMEOUT, NULL, __LINE__); |
|
| 368 | 368 |
|
| 369 | 369 |
/* This socket is ready for re-use, so try again directly */ |
| 370 | 370 |
continue; |
| trunk/nntpgrab_core/nntpconnection.c (revision 1638) | ||
|---|---|---|
| 434 | 434 |
conn->recv_buffer_length = 0; |
| 435 | 435 |
} |
| 436 | 436 |
|
| 437 |
if (!perform_recv(conn, &try_again) && (!try_again || conn->recv_buffer_length == 0)) {
|
|
| 438 |
return FALSE; |
|
| 437 |
/* Only read from the socket when there's no newline in the buffer or when we need |
|
| 438 |
* to read raw data which is already buffered */ |
|
| 439 |
if ((!read_line) || |
|
| 440 |
(read_line && !strstr(conn->recv_buffer, "\n"))) {
|
|
| 441 |
|
|
| 442 |
if (!perform_recv(conn, &try_again) && (!try_again || conn->recv_buffer_length == 0)) {
|
|
| 443 |
return FALSE; |
|
| 444 |
} |
|
| 439 | 445 |
} |
| 440 | 446 |
|
| 447 |
g_return_val_if_fail(conn->recv_buffer_length > 0, FALSE); |
|
| 448 |
|
|
| 441 | 449 |
if (read_line) {
|
| 442 | 450 |
char *newline = strstr(conn->recv_buffer, "\n"); |
| 443 | 451 |
|
| trunk/ChangeLog (revision 1638) | ||
|---|---|---|
| 13 | 13 |
This should also lower the possibility of the error message 'No hostname could be found for servername x' from occuring |
| 14 | 14 |
- Automatically retry connecting to usenet servers when a connection error has occured |
| 15 | 15 |
This should fix a bug where the download queue could hang when the network connection is unstable |
| 16 |
- Very small files could get stuck in the download queue. Fixed |
|
| 16 | 17 |
- In a rare situation, the program could deadlock while trying to remove a file from the download queue. Fixed |
| 17 | 18 |
- Really disable activating the automatic import on Mac OS X |
| 18 | 19 |
- Don't use g_module_close() on Win32/Win64 as it causes a crash when the program is shut down |
| branches/nntpgrab-0.6/nntpgrab_core/download_thread.c (revision 1638) | ||
|---|---|---|
| 364 | 364 |
/* Guard against read timeouts */ |
| 365 | 365 |
if (conn->last_activity_stamp + 30 < curr_time) {
|
| 366 | 366 |
/* No activity happened in the last 30 seconds, disconnect from the server */ |
| 367 |
disconnect_socket(&active_connections, &active_connection_polls, &num_active_connections, conn->poll_fd, DISCONNECT_NORMAL, NULL, __LINE__); |
|
| 367 |
disconnect_socket(&active_connections, &active_connection_polls, &num_active_connections, conn->poll_fd, DISCONNECT_READ_TIMEOUT, NULL, __LINE__); |
|
| 368 | 368 |
|
| 369 | 369 |
/* This socket is ready for re-use, so try again directly */ |
| 370 | 370 |
continue; |
| branches/nntpgrab-0.6/nntpgrab_core/nntpconnection.c (revision 1638) | ||
|---|---|---|
| 432 | 432 |
conn->recv_buffer_length = 0; |
| 433 | 433 |
} |
| 434 | 434 |
|
| 435 |
if (!perform_recv(conn, &try_again) && (!try_again || conn->recv_buffer_length == 0)) {
|
|
| 436 |
return FALSE; |
|
| 435 |
/* Only read from the socket when there's no newline in the buffer or when we need |
|
| 436 |
* to read raw data which is already buffered */ |
|
| 437 |
if ((!read_line) || |
|
| 438 |
(read_line && !strstr(conn->recv_buffer, "\n"))) {
|
|
| 439 |
|
|
| 440 |
if (!perform_recv(conn, &try_again) && (!try_again || conn->recv_buffer_length == 0)) {
|
|
| 441 |
return FALSE; |
|
| 442 |
} |
|
| 437 | 443 |
} |
| 438 | 444 |
|
| 445 |
g_return_val_if_fail(conn->recv_buffer_length > 0, FALSE); |
|
| 446 |
|
|
| 439 | 447 |
if (read_line) {
|
| 440 | 448 |
char *newline = strstr(conn->recv_buffer, "\n"); |
| 441 | 449 |
|
| branches/nntpgrab-0.6/ChangeLog (revision 1638) | ||
|---|---|---|
| 13 | 13 |
This should also lower the possibility of the error message 'No hostname could be found for servername x' from occuring |
| 14 | 14 |
- Automatically retry connecting to usenet servers when a connection error has occured |
| 15 | 15 |
This should fix a bug where the download queue could hang when the network connection is unstable |
| 16 |
- Very small files could get stuck in the download queue. Fixed |
|
| 16 | 17 |
- In a rare situation, the program could deadlock while trying to remove a file from the download queue. Fixed |
| 17 | 18 |
- Really disable activating the automatic import on Mac OS X |
| 18 | 19 |
- Don't use g_module_close() on Win32/Win64 as it causes a crash when the program is shut down |
Also available in: Unified diff
NNTPGrab

