new patch, I think this addresses your issues with both this patch and the myhints compile warning patch. Jeff -- Jeffrey Stedfast Evolution Hacker - Novell, Inc. fejj ximian com - www.novell.com
? 67028.patch
? camel-tls.patch
? getaddrinfo-ex.patch
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/camel/ChangeLog,v
retrieving revision 1.2251.2.12
diff -u -r1.2251.2.12 ChangeLog
--- ChangeLog 29 Sep 2004 01:57:11 -0000 1.2251.2.12
+++ ChangeLog 5 Oct 2004 17:43:56 -0000
@@ -1,3 +1,15 @@
+2004-10-05 Jeffrey Stedfast <fejj novell com>
+
+ * camel-service.c (camel_getaddrinfo): Check msg->result for error
+ and set an exception if appropriate.
+ (camel_getnameinfo): Same.
+
+2004-10-04 Jeffrey Stedfast <fejj novell com>
+
+ * camel-service.c (camel_getaddrinfo): Add a non-const cast for
+ hints when changing the ai_family member in the IPv6-disabled
+ case. Fixes bug #67028.
+
2004-09-28 Not Zed <NotZed Ximian com>
** See bug #66509.
Index: camel-service.c
===================================================================
RCS file: /cvs/gnome/evolution/camel/camel-service.c,v
retrieving revision 1.90.14.1
diff -u -r1.90.14.1 camel-service.c
--- camel-service.c 23 Sep 2004 04:12:29 -0000 1.90.14.1
+++ camel-service.c 5 Oct 2004 17:43:56 -0000
@@ -32,6 +32,7 @@
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
+#include <netdb.h>
#include <errno.h>
#include <sys/poll.h>
@@ -739,7 +740,7 @@
d(printf("child done\n"));
}
} else {
- camel_exception_setv(ex, CAMEL_EXCEPTION_SYSTEM, "%s: %s: %s", _("cannot create thread"), g_strerror(err));
+ camel_exception_setv(ex, CAMEL_EXCEPTION_SYSTEM, "%s: %s: %s", error, _("cannot create thread"), g_strerror(err));
}
e_msgport_destroy(reply_port);
@@ -879,7 +880,7 @@
struct _addrinfo_msg *msg;
struct addrinfo *res = NULL;
#ifndef ENABLE_IPv6
- struct addrinfo *myhints;
+ struct addrinfo myhints;
#endif
g_return_val_if_fail(name != NULL, NULL);
@@ -892,12 +893,13 @@
/* force ipv4 addresses only */
#ifndef ENABLE_IPv6
- if (hints == NULL) {
+ if (hints == NULL)
memset(&myhints, 0, sizeof(myhints));
- hints = &myhints;
- }
-
- hints->ai_family = AF_INET;
+ else
+ memcpy (&myhints, hints, sizeof (myhints));
+
+ myhints.ai_faimily = AF_INET;
+ hints = &myhints;
#endif
msg = g_malloc0(sizeof(*msg));
@@ -909,9 +911,13 @@
msg->hostbuflen = 1024;
msg->hostbufmem = g_malloc(msg->hostbuflen);
#endif
- if (cs_waitinfo(cs_getaddrinfo, msg, _("Host lookup failed"), ex) == 0)
+ if (cs_waitinfo(cs_getaddrinfo, msg, _("Host lookup failed"), ex) == 0) {
+ if (msg->result != 0)
+ camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM, _("Host lookup failed: %s: %s"),
+ name, gai_strerror (msg->result));
+
cs_freeinfo(msg);
- else
+ } else
res = NULL;
camel_operation_end(NULL);
@@ -1038,7 +1044,9 @@
#endif
cs_waitinfo(cs_getnameinfo, msg, _("Name lookup failed"), ex);
- result = msg->result;
+ if ((result = msg->result) != 0)
+ camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM, _("Name lookup failed: %s"),
+ gai_strerror (result));
if (host)
*host = g_strdup(msg->host);
Attachment:
smime.p7s
Description: S/MIME cryptographic signature