summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-09-02 08:57:01 (UTC)
committer zautrix <zautrix>2004-09-02 08:57:01 (UTC)
commit95e13360d1ef2a7caae121ae526a8a3c1ac12005 (patch) (side-by-side diff)
treec9ca8e5c98a11eb5dd7d2afdc8e69d64cdffad25
parentf255826bda2f95721aec4d6c9ba372d852fb9d0b (diff)
downloadkdepimpi-95e13360d1ef2a7caae121ae526a8a3c1ac12005.zip
kdepimpi-95e13360d1ef2a7caae121ae526a8a3c1ac12005.tar.gz
kdepimpi-95e13360d1ef2a7caae121ae526a8a3c1ac12005.tar.bz2
Added debug putput for program hang when reading pop3 mail data
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--kmicromail/libetpan/include/libetpan/mailstream.h1
-rw-r--r--kmicromail/libetpan/tools/mailstream.c2
-rw-r--r--kmicromail/libetpan/tools/mailstream.h3
-rw-r--r--kmicromail/libetpan/tools/mailstream_socket.c13
4 files changed, 14 insertions, 5 deletions
diff --git a/kmicromail/libetpan/include/libetpan/mailstream.h b/kmicromail/libetpan/include/libetpan/mailstream.h
index a4e35cd..ffb5062 100644
--- a/kmicromail/libetpan/include/libetpan/mailstream.h
+++ b/kmicromail/libetpan/include/libetpan/mailstream.h
@@ -33,8 +33,9 @@
* $Id$
*/
#ifndef MAILSTREAM_H
+#define DEFAULT_NETWORK_TIMEOUT 30
#define MAILSTREAM_H
#include <sys/time.h>
diff --git a/kmicromail/libetpan/tools/mailstream.c b/kmicromail/libetpan/tools/mailstream.c
index 0f55e67..6d1a8cc 100644
--- a/kmicromail/libetpan/tools/mailstream.c
+++ b/kmicromail/libetpan/tools/mailstream.c
@@ -39,9 +39,9 @@
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
-#define DEFAULT_NETWORK_TIMEOUT 300
+
#ifdef LIBETPAN_MAILSTREAM_DEBUG
#define STREAM_DEBUG
diff --git a/kmicromail/libetpan/tools/mailstream.h b/kmicromail/libetpan/tools/mailstream.h
index a4e35cd..8a89a72 100644
--- a/kmicromail/libetpan/tools/mailstream.h
+++ b/kmicromail/libetpan/tools/mailstream.h
@@ -35,9 +35,10 @@
#ifndef MAILSTREAM_H
#define MAILSTREAM_H
-
+//dont forget to change the value in <libetpan/mailstream.h> as well
+#define DEFAULT_NETWORK_TIMEOUT 30
#include <sys/time.h>
#include <libetpan/mailstream_low.h>
#include <libetpan/mailstream_helper.h>
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
@@ -168,10 +168,13 @@ static ssize_t mailstream_low_socket_read(mailstream_low * s,
FD_ZERO(&fds_read);
FD_SET(socket_data->fd, &fds_read);
FD_ZERO(&fds_excp);
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;
if (FD_ISSET(socket_data->fd, &fds_excp))
return -1;
if (!FD_ISSET(socket_data->fd, &fds_read))
@@ -179,9 +182,9 @@ static ssize_t mailstream_low_socket_read(mailstream_low * s,
}
return recv(socket_data->fd,buf,count,MSG_NOSIGNAL);
//return read(socket_data->fd, buf, count);
}
-
+#include <stdio.h>
static ssize_t mailstream_low_socket_write(mailstream_low * s,
const void * buf, size_t count)
{
struct mailstream_socket_data * socket_data;
@@ -199,10 +202,14 @@ static ssize_t mailstream_low_socket_write(mailstream_low * s,
FD_ZERO(&fds_write);
FD_SET(socket_data->fd, &fds_write);
FD_ZERO(&fds_excp);
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;
if (FD_ISSET(socket_data->fd, &fds_excp))
return -1;
if (!FD_ISSET(socket_data->fd, &fds_write))