Re: [Evolution-hackers] Re: the bug about libsoup
- From: Sean Gao <sean gao sun com>
- To: JP Rosevear <jpr ximian com>
- Cc: evolution-hackers lists ximian com
- Subject: Re: [Evolution-hackers] Re: the bug about libsoup
- Date: Wed, 23 Apr 2003 18:25:25 +0800
JP Rosevear wrote:
On Thu, 2003-04-17 at 06:23, Sean Gao wrote:
Hi JP,
I have tested as Joe suggested. The puzzle is that
soup_ssl_hup_waitpid is not entered at all.
However, it does be really called on Linux Platform, that's why I say it
could be the difference
of G_IO_XXX implementation or signal mechanism on different platforms
causes such issue
Are you getting reads of zero length instead?
-JP
Hi JP,
I just added some code in soup_ssl_hup_waitpid() to test if I read
zero length. It really gets zero bytes reading,
but after that it complete the waitpid and following process and exit
this function, hydrogen hangs ... I do not know
if my method is right or there may be some other problems casue the
hanging.
Of course I add G_IO_IN as one of the condition to be watched.
Regards
-Sean
static gboolean
soup_ssl_hup_waitpid (GIOChannel *source, GIOCondition condition,
gpointer user_data)
{
#ifndef RESPONSE_BLOCK_SIZE
#define RESPONSE_BLOCK_SIZE 8192
#endif
SoupSSLInfo *ssl_info = user_data;
gchar read_buf [RESPONSE_BLOCK_SIZE];
gsize bytes_read = 0;
GIOError error;
if (condition&G_IO_IN) {
error = g_io_channel_read (source,
read_buf,
sizeof (read_buf),
&bytes_read);
if (!(error == G_IO_ERROR_NONE && bytes_read == 0))
return TRUE;
}
while (waitpid (ssl_info->ppid, NULL, 0) == -1 && errno == EINTR)
;
g_io_channel_unref (ssl_info->real_sock);
g_free (ssl_info);
return FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]