diff options
Diffstat (limited to 'camel')
-rw-r--r-- | camel/ChangeLog | 12 | ||||
-rw-r--r-- | camel/camel-folder-summary.h | 1 | ||||
-rw-r--r-- | camel/camel-service.c | 42 |
3 files changed, 38 insertions, 17 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 949e97a542..9649e166bf 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,15 @@ +2003-06-25 Jeffrey Stedfast <fejj@ximian.com> + + * camel-folder-summary.h: Added prototype for + camel_folder_summary_remove_range(). + +2003-06-25 Not Zed <NotZed@Ximian.com> + + ** See bug #45386 + + * camel-service.c (camel_gethostbyname, camel_gethostbyaddr): Make + sure we have an exception that we test against. + 2003-06-20 Not Zed <NotZed@Ximian.com> ** See bug #43887 diff --git a/camel/camel-folder-summary.h b/camel/camel-folder-summary.h index e971faeece..0f92ff6248 100644 --- a/camel/camel-folder-summary.h +++ b/camel/camel-folder-summary.h @@ -255,6 +255,7 @@ void camel_folder_summary_content_info_free(CamelFolderSummary *s, CamelMessageC void camel_folder_summary_remove(CamelFolderSummary *s, CamelMessageInfo *info); void camel_folder_summary_remove_uid(CamelFolderSummary *s, const char *uid); void camel_folder_summary_remove_index(CamelFolderSummary *s, int); +void camel_folder_summary_remove_range(CamelFolderSummary *s, int start, int end); /* remove all items */ void camel_folder_summary_clear(CamelFolderSummary *s); diff --git a/camel/camel-service.c b/camel/camel-service.c index 78c9fe5da6..7ea34d953d 100644 --- a/camel/camel-service.c +++ b/camel/camel-service.c @@ -731,20 +731,22 @@ get_hostbyname(void *data) } struct hostent * -camel_gethostbyname (const char *name, CamelException *ex) +camel_gethostbyname (const char *name, CamelException *exout) { #ifdef ENABLE_THREADS int fdmax, status, fd, cancel_fd; #endif struct _lookup_msg *msg; + CamelException ex; g_return_val_if_fail(name != NULL, NULL); if (camel_operation_cancel_check(NULL)) { - camel_exception_set (ex, CAMEL_EXCEPTION_USER_CANCEL, _("Cancelled")); + camel_exception_set (exout, CAMEL_EXCEPTION_USER_CANCEL, _("Cancelled")); return NULL; } + camel_exception_init(&ex); camel_operation_start_transient(NULL, _("Resolving: %s"), name); msg = g_malloc0(sizeof(*msg)); @@ -778,9 +780,9 @@ camel_gethostbyname (const char *name, CamelException *ex) if (status == -1 || FD_ISSET(cancel_fd, &rdset)) { if (status == -1) - camel_exception_setv(ex, CAMEL_EXCEPTION_SYSTEM, _("Failure in name lookup: %s"), g_strerror(errno)); + camel_exception_setv(&ex, CAMEL_EXCEPTION_SYSTEM, _("Failure in name lookup: %s"), g_strerror(errno)); else - camel_exception_setv(ex, CAMEL_EXCEPTION_USER_CANCEL, _("Cancelled")); + camel_exception_setv(&ex, CAMEL_EXCEPTION_USER_CANCEL, _("Cancelled")); /* We cancel so if the thread impl is decent it causes immediate exit. We detach so we dont need to wait for it to exit if it isn't. @@ -799,7 +801,7 @@ camel_gethostbyname (const char *name, CamelException *ex) d(printf("child done\n")); } } else { - camel_exception_setv(ex, CAMEL_EXCEPTION_SYSTEM, _("Host lookup failed: cannot create thread: %s"), g_strerror(errno)); + camel_exception_setv(&ex, CAMEL_EXCEPTION_SYSTEM, _("Host lookup failed: cannot create thread: %s"), g_strerror(errno)); } e_msgport_destroy(reply_port); } @@ -807,15 +809,15 @@ camel_gethostbyname (const char *name, CamelException *ex) camel_operation_end(NULL); - if (!camel_exception_is_set(ex)) { + if (!camel_exception_is_set(&ex)) { if (msg->result == 0) return &msg->hostbuf; if (msg->herr == HOST_NOT_FOUND || msg->herr == NO_DATA) - camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM, + camel_exception_setv (&ex, CAMEL_EXCEPTION_SYSTEM, _("Host lookup failed: %s: host not found"), name); else - camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM, + camel_exception_setv (&ex, CAMEL_EXCEPTION_SYSTEM, _("Host lookup failed: %s: unknown reason"), name); } @@ -824,6 +826,8 @@ camel_gethostbyname (const char *name, CamelException *ex) g_free(msg); } + camel_exception_xfer(exout, &ex); + return NULL; } @@ -857,20 +861,22 @@ get_hostbyaddr (void *data) struct hostent * -camel_gethostbyaddr (const char *addr, int len, int type, CamelException *ex) +camel_gethostbyaddr (const char *addr, int len, int type, CamelException *exout) { #ifdef ENABLE_THREADS int fdmax, status, fd, cancel_fd; #endif struct _lookup_msg *msg; - + CamelException ex; + g_return_val_if_fail (addr != NULL, NULL); if (camel_operation_cancel_check (NULL)) { - camel_exception_set (ex, CAMEL_EXCEPTION_USER_CANCEL, _("Cancelled")); + camel_exception_set (exout, CAMEL_EXCEPTION_USER_CANCEL, _("Cancelled")); return NULL; } - + + camel_exception_init(&ex); camel_operation_start_transient (NULL, _("Resolving address")); msg = g_malloc0 (sizeof (struct _lookup_msg)); @@ -906,9 +912,9 @@ camel_gethostbyaddr (const char *addr, int len, int type, CamelException *ex) if (status == -1 || FD_ISSET(cancel_fd, &rdset)) { if (status == -1) - camel_exception_setv(ex, CAMEL_EXCEPTION_SYSTEM, _("Failure in name lookup: %s"), g_strerror(errno)); + camel_exception_setv(&ex, CAMEL_EXCEPTION_SYSTEM, _("Failure in name lookup: %s"), g_strerror(errno)); else - camel_exception_setv(ex, CAMEL_EXCEPTION_USER_CANCEL, _("Cancelled")); + camel_exception_setv(&ex, CAMEL_EXCEPTION_USER_CANCEL, _("Cancelled")); /* We cancel so if the thread impl is decent it causes immediate exit. We detach so we dont need to wait for it to exit if it isn't. @@ -934,15 +940,15 @@ camel_gethostbyaddr (const char *addr, int len, int type, CamelException *ex) camel_operation_end (NULL); - if (!camel_exception_is_set(ex)) { + if (!camel_exception_is_set(&ex)) { if (msg->result == 0) return &msg->hostbuf; if (msg->herr == HOST_NOT_FOUND || msg->herr == NO_DATA) - camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM, + camel_exception_setv (&ex, CAMEL_EXCEPTION_SYSTEM, _("Host lookup failed: host not found")); else - camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM, + camel_exception_setv (&ex, CAMEL_EXCEPTION_SYSTEM, _("Host lookup failed: unknown reason")); } @@ -951,6 +957,8 @@ camel_gethostbyaddr (const char *addr, int len, int type, CamelException *ex) g_free(msg); } + camel_exception_xfer(exout, &ex); + return NULL; } |