Diffstat (limited to 'kmicromail/libetpan/tools/mailstream_socket.c') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kmicromail/libetpan/tools/mailstream_socket.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/kmicromail/libetpan/tools/mailstream_socket.c b/kmicromail/libetpan/tools/mailstream_socket.c index 29e50e1..04a6f48 100644 --- a/kmicromail/libetpan/tools/mailstream_socket.c +++ b/kmicromail/libetpan/tools/mailstream_socket.c @@ -171,4 +171,7 @@ static ssize_t mailstream_low_socket_read(mailstream_low * s, FD_SET(socket_data->fd, &fds_excp); + // LUTZ for safety I insert here a max val as well + if ( timeout.tv_sec > DEFAULT_NETWORK_TIMEOUT ) + timeout.tv_sec = DEFAULT_NETWORK_TIMEOUT; r = select(socket_data->fd + 1, &fds_read, NULL, &fds_excp, &timeout); - if (r == 0) + if (r < 1 ) return -1; @@ -182,3 +185,3 @@ static ssize_t mailstream_low_socket_read(mailstream_low * s, } - +#include <stdio.h> static ssize_t mailstream_low_socket_write(mailstream_low * s, @@ -202,4 +205,8 @@ static ssize_t mailstream_low_socket_write(mailstream_low * s, FD_SET(socket_data->fd, &fds_excp); + // LUTZ next line blocks sometimes + if ( timeout.tv_sec > DEFAULT_NETWORK_TIMEOUT ) + timeout.tv_sec = DEFAULT_NETWORK_TIMEOUT; + fprintf(stderr,"fd %d to secs %d \n", socket_data->fd, timeout.tv_sec ); r = select(socket_data->fd + 1, NULL, &fds_write, &fds_excp, &timeout); - if (r == 0) + if (r < 1) return -1; |