From 821f184e823e86877d9034c0d4280ccbd492ebb8 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Mon, 15 Aug 2005 04:40:55 +0000 Subject: ** See #271985. 2005-08-10 Not Zed ** See #271985. * evolution-mail-session.c (is_storage): check for uri "" and pass exception to provider get. Disable lots of debug output. svn path=/trunk/; revision=30119 --- plugins/mail-remote/ChangeLog | 7 +++++ plugins/mail-remote/e-corba-utils.c | 2 +- plugins/mail-remote/e-corba-utils.h | 5 ++++ plugins/mail-remote/em-message-stream.c | 4 +-- plugins/mail-remote/evolution-mail-folder.c | 4 +-- .../mail-remote/evolution-mail-folderlistener.c | 9 +++--- .../mail-remote/evolution-mail-messageiterator.c | 4 ++- plugins/mail-remote/evolution-mail-messagestream.c | 2 +- plugins/mail-remote/evolution-mail-session.c | 34 +++++++++++++--------- .../mail-remote/evolution-mail-sessionlistener.c | 11 +++---- plugins/mail-remote/evolution-mail-store.c | 6 ++-- plugins/mail-remote/evolution-mail-storelistener.c | 9 +++--- plugins/mail-remote/mail-remote.c | 4 ++- 13 files changed, 64 insertions(+), 37 deletions(-) diff --git a/plugins/mail-remote/ChangeLog b/plugins/mail-remote/ChangeLog index de7ef43631..0011da3bdc 100644 --- a/plugins/mail-remote/ChangeLog +++ b/plugins/mail-remote/ChangeLog @@ -1,3 +1,10 @@ +2005-08-10 Not Zed + + ** See #271985. + + * evolution-mail-session.c (is_storage): check for uri "" and pass + exception to provider get. + 2005-08-02 Not Zed * org-gnome-evolution-mail-remote.eplug.xml: How strange, this was diff --git a/plugins/mail-remote/e-corba-utils.c b/plugins/mail-remote/e-corba-utils.c index bd08ac0502..0b4aae19a4 100644 --- a/plugins/mail-remote/e-corba-utils.c +++ b/plugins/mail-remote/e-corba-utils.c @@ -246,7 +246,7 @@ gboolean e_mail_listener_emit(struct _EDList *list, EMailListenerChanged emit, C while (n) { emit(l->listener, source, changes, &ev); if (ev._major != CORBA_NO_EXCEPTION) { - printf("emit changed failed '%s', removing listener\n", ev._id); + e(printf("emit changed failed '%s', removing listener\n", ev._id)); CORBA_exception_free(&ev); eml_remove(l); } diff --git a/plugins/mail-remote/e-corba-utils.h b/plugins/mail-remote/e-corba-utils.h index ba70976882..43fef0c474 100644 --- a/plugins/mail-remote/e-corba-utils.h +++ b/plugins/mail-remote/e-corba-utils.h @@ -4,6 +4,11 @@ #include "Evolution-DataServer-Mail.h" +/* Debug, warning debug, error debug, global for whole plugin to make it easier to enable/disable */ +#define d(x) +#define w(x) +#define e(x) + struct _EvolutionMailStore; struct _EvolutionMailFolder; struct _CamelMessageInfo; diff --git a/plugins/mail-remote/em-message-stream.c b/plugins/mail-remote/em-message-stream.c index 77f6300cb5..48fb6613b2 100644 --- a/plugins/mail-remote/em-message-stream.c +++ b/plugins/mail-remote/em-message-stream.c @@ -30,7 +30,7 @@ #include #include "em-message-stream.h" -#define d(x) +#include "e-corba-utils.h" #define EMSS_CLASS(x) ((EMMessageStreamClass *)(((CamelObject *)(x))->klass)) @@ -83,7 +83,7 @@ em_message_stream_finalize (CamelObject *object) { EMMessageStream *emms = (EMMessageStream *)object; - printf("EMMessageStream.finalise()\n"); + d(printf("EMMessageStream.finalise()\n")); if (emms->source) { CORBA_Environment ev = { 0 }; diff --git a/plugins/mail-remote/evolution-mail-folder.c b/plugins/mail-remote/evolution-mail-folder.c index f25ef44e35..0b2c78a940 100644 --- a/plugins/mail-remote/evolution-mail-folder.c +++ b/plugins/mail-remote/evolution-mail-folder.c @@ -311,7 +311,7 @@ emf_set_change(Evolution_Mail_FolderChange *change, Evolution_Mail_ChangeType ho camel_message_info_free(info); total++; } else { - printf("couldn't get info for changed uid '%s'?\n", (char *)uids->pdata[i]); + w(printf("couldn't get info for changed uid '%s'?\n", (char *)uids->pdata[i])); } } @@ -411,7 +411,7 @@ evolution_mail_folder_changed(EvolutionMailFolder *emf, Evolution_Mail_FolderCha if (!e_mail_listener_emit(&p->listeners, (EMailListenerChanged)Evolution_Mail_FolderListener_changed, bonobo_object_corba_objref((BonoboObject *)emf), changes)) { - printf("No more listeners for folder, could dispose store object now\n"); + d(printf("No more listeners for folder, could dispose store object now\n")); evolution_mail_folder_close_folder(emf); } } diff --git a/plugins/mail-remote/evolution-mail-folderlistener.c b/plugins/mail-remote/evolution-mail-folderlistener.c index ba758d9483..8d897bd6fb 100644 --- a/plugins/mail-remote/evolution-mail-folderlistener.c +++ b/plugins/mail-remote/evolution-mail-folderlistener.c @@ -30,6 +30,7 @@ #include "evolution-mail-folderlistener.h" #include "evolution-mail-marshal.h" +#include "e-corba-utils.h" #define PARENT_TYPE bonobo_object_get_type () @@ -63,7 +64,7 @@ impl_dispose (GObject *object) static void impl_finalize (GObject *object) { - printf("EvolutionMailFolderListener finalised!\n"); + d(printf("EvolutionMailFolderListener finalised!\n")); (* G_OBJECT_CLASS (parent_class)->finalize) (object); } @@ -95,11 +96,11 @@ impl_changed(PortableServer_Servant _servant, EvolutionMailFolderListener *eml = (EvolutionMailFolderListener *)bonobo_object_from_servant(_servant); int i, j; - printf("folder changed!\n"); + d(printf("folder changed!\n")); for (i=0;i_length;i++) { - printf(" %d %s", changes->_buffer[i].messages._length, change_type_name(changes->_buffer[i].type)); + d(printf(" %d %s", changes->_buffer[i].messages._length, change_type_name(changes->_buffer[i].type))); for (j=0;j_buffer[i].messages._length;j++) { - printf(" %s %s\n", changes->_buffer[i].messages._buffer[j].uid, changes->_buffer[i].messages._buffer[j].subject); + d(printf(" %s %s\n", changes->_buffer[i].messages._buffer[j].uid, changes->_buffer[i].messages._buffer[j].subject)); } } diff --git a/plugins/mail-remote/evolution-mail-messageiterator.c b/plugins/mail-remote/evolution-mail-messageiterator.c index 2a039f7e9a..94f9c7c830 100644 --- a/plugins/mail-remote/evolution-mail-messageiterator.c +++ b/plugins/mail-remote/evolution-mail-messageiterator.c @@ -34,6 +34,8 @@ #include "e-corba-utils.h" +#define d(x) + #define PARENT_TYPE bonobo_object_get_type () static BonoboObjectClass *parent_class = NULL; @@ -60,7 +62,7 @@ impl_finalize (GObject *object) { struct _EvolutionMailMessageIteratorPrivate *p = _PRIVATE(object); - printf("EvolutionMailMessageIterator: finalise\n"); + d(printf("EvolutionMailMessageIterator: finalise\n")); if (*p->expr) camel_folder_search_free(p->folder, p->search); diff --git a/plugins/mail-remote/evolution-mail-messagestream.c b/plugins/mail-remote/evolution-mail-messagestream.c index f00e904e5f..1be4ff2e8e 100644 --- a/plugins/mail-remote/evolution-mail-messagestream.c +++ b/plugins/mail-remote/evolution-mail-messagestream.c @@ -49,7 +49,7 @@ impl_finalize (GObject *object) { EvolutionMailMessageStream *emms = (EvolutionMailMessageStream *)object; - printf("EvolutionMailMessageStream: finalise\n"); + d(printf("EvolutionMailMessageStream: finalise\n")); if (emms->source) camel_object_unref(emms->source); diff --git a/plugins/mail-remote/evolution-mail-session.c b/plugins/mail-remote/evolution-mail-session.c index e670e40f50..b5a508b91d 100644 --- a/plugins/mail-remote/evolution-mail-session.c +++ b/plugins/mail-remote/evolution-mail-session.c @@ -60,11 +60,19 @@ static int is_storage(EAccount *ea) { const char *uri; - CamelProvider *prov; + int ok = FALSE; - return(uri = e_account_get_string(ea, E_ACCOUNT_SOURCE_URL)) - && (prov = camel_provider_get(uri, NULL)) - && (prov->flags & CAMEL_PROVIDER_IS_STORAGE); + uri = e_account_get_string(ea, E_ACCOUNT_SOURCE_URL); + if (uri && uri[0]) { + CamelProvider *prov; + CamelException ex = { 0 }; + + prov = camel_provider_get(uri, &ex); + camel_exception_clear(&ex); + ok = prov && (prov->flags & CAMEL_PROVIDER_IS_STORAGE); + } + + return ok; } /* GObject methods */ @@ -163,10 +171,10 @@ impl_removeListener(PortableServer_Servant _servant, EvolutionMailSession *ems = (EvolutionMailSession *)bonobo_object_from_servant(_servant); struct _EvolutionMailSessionPrivate *p = _PRIVATE(ems); - printf("Removing listener from session\n"); + d(printf("Removing listener from session\n")); if (!e_mail_listener_remove(&p->listeners, listener)) { - printf("no more listeners, could shut down session?\n"); + d(printf("no more listeners, could shut down session?\n")); } } @@ -231,7 +239,7 @@ ems_account_added(EAccountList *eal, EAccount *ea, EvolutionMailSession *ems) if (ea->enabled && is_storage(ea)) { EvolutionMailStore *store; - printf("Account added %s\n", ea->uid); + d(printf("Account added %s\n", ea->uid)); store = evolution_mail_store_new(ems, ea); p->stores = g_list_append(p->stores, store); ems_listener_session_event(ems, Evolution_Mail_ADDED, store); @@ -255,16 +263,16 @@ ems_account_changed(EAccountList *eal, EAccount *ea, EvolutionMailSession *ems) if (store) { /* account has been disabled? */ if (!ea->enabled) { - printf("Account changed, now disabled %s\n", ea->uid); + d(printf("Account changed, now disabled %s\n", ea->uid)); p->stores = g_list_remove(p->stores, store); ems_listener_session_event(ems, Evolution_Mail_REMOVED, store); g_object_unref(store); } else { - printf("Account changed, dont know how %s\n", ea->uid); + d(printf("Account changed, dont know how %s\n", ea->uid)); ems_listener_session_event(ems, Evolution_Mail_CHANGED, store); } } else if (ea->enabled && is_storage(ea)) { - printf("Account changed, now added %s\n", ea->uid); + d(printf("Account changed, now added %s\n", ea->uid)); store = evolution_mail_store_new(ems, ea); p->stores = g_list_append(p->stores, store); ems_listener_session_event(ems, Evolution_Mail_ADDED, store); @@ -283,7 +291,7 @@ ems_account_removed(EAccountList *eal, EAccount *ea, EvolutionMailSession *ems) EvolutionMailStore *store = l->data; if (store->account == ea) { - printf("Account removed %s\n", ea->uid); + d(printf("Account removed %s\n", ea->uid)); p->stores = g_list_remove(p->stores, store); ems_listener_session_event(ems, Evolution_Mail_REMOVED, store); g_object_unref(store); @@ -299,7 +307,7 @@ evolution_mail_session_init (EvolutionMailSession *ems, EvolutionMailSessionClas struct _EvolutionMailSessionPrivate *p = _PRIVATE(ems); EIterator *iter; - printf("EvolutionMailSession.init\n"); + d(printf("EvolutionMailSession.init\n")); e_dlist_init(&p->listeners); @@ -339,7 +347,7 @@ evolution_mail_session_changed(EvolutionMailSession *ems, Evolution_Mail_Session if (!e_mail_listener_emit(&p->listeners, (EMailListenerChanged)Evolution_Mail_SessionListener_changed, bonobo_object_corba_objref((BonoboObject *)ems), changes)) { - printf("No more listeners for store, could dispose session object now?\n"); + w(printf("No more listeners for store, could dispose session object now?\n")); } } diff --git a/plugins/mail-remote/evolution-mail-sessionlistener.c b/plugins/mail-remote/evolution-mail-sessionlistener.c index addbe1a820..8e75f1df1e 100644 --- a/plugins/mail-remote/evolution-mail-sessionlistener.c +++ b/plugins/mail-remote/evolution-mail-sessionlistener.c @@ -30,6 +30,7 @@ #include "evolution-mail-sessionlistener.h" #include "evolution-mail-marshal.h" +#include "e-corba-utils.h" #define PARENT_TYPE bonobo_object_get_type () @@ -64,7 +65,7 @@ impl_dispose (GObject *object) static void impl_finalize (GObject *object) { - printf("EvolutionMailSessionListener finalised!\n"); + d(printf("EvolutionMailSessionListener finalised!\n")); (* G_OBJECT_CLASS (parent_class)->finalize) (object); } @@ -96,11 +97,11 @@ impl_changed(PortableServer_Servant _servant, EvolutionMailSessionListener *eml = (EvolutionMailSessionListener *)bonobo_object_from_servant(_servant); int i, j; - printf("session changed!\n"); + d(printf("session changed!\n")); for (i=0;i_length;i++) { - printf(" %d %s", changes->_buffer[i].stores._length, change_type_name(changes->_buffer[i].type)); + d(printf(" %d %s", changes->_buffer[i].stores._length, change_type_name(changes->_buffer[i].type))); for (j=0;j_buffer[i].stores._length;j++) { - printf(" %s %s\n", changes->_buffer[i].stores._buffer[j].uid, changes->_buffer[i].stores._buffer[j].name); + d(printf(" %s %s\n", changes->_buffer[i].stores._buffer[j].uid, changes->_buffer[i].stores._buffer[j].name)); } } @@ -114,7 +115,7 @@ impl_shutdown(PortableServer_Servant _servant, { EvolutionMailSessionListener *eml = (EvolutionMailSessionListener *)bonobo_object_from_servant(_servant); - printf("session shutdown?\n"); + d(printf("session shutdown?\n")); g_signal_emit(eml, eml_signals[EML_SHUTDOWN], 0, session); } diff --git a/plugins/mail-remote/evolution-mail-store.c b/plugins/mail-remote/evolution-mail-store.c index c5025900cb..0bd3624c6c 100644 --- a/plugins/mail-remote/evolution-mail-store.c +++ b/plugins/mail-remote/evolution-mail-store.c @@ -134,7 +134,7 @@ impl_getProperties(PortableServer_Servant _servant, const CORBA_char *name = names->_buffer[i]; Evolution_Mail_Property *prop = &props->_buffer[i]; - printf("getting property '%s'\n", name); + d(printf("getting property '%s'\n", name)); if (!strcmp(name, "name")) { e_mail_property_set_string(prop, name, evolution_mail_store_get_name(ems)); @@ -548,7 +548,7 @@ evolution_mail_store_new(struct _EvolutionMailSession *s, struct _EAccount *ea) struct _EvolutionMailStorePrivate *p; static PortableServer_POA poa = NULL; - printf("EvolutionMailStore.new(\"%s\")\n", ea?ea->name:"local"); + d(printf("EvolutionMailStore.new(\"%s\")\n", ea?ea->name:"local")); if (poa == NULL) poa = bonobo_poa_get_threaded (ORBIT_THREAD_HINT_PER_REQUEST, NULL); @@ -660,6 +660,6 @@ evolution_mail_store_changed(EvolutionMailStore *ems, Evolution_Mail_StoreChange if (!e_mail_listener_emit(&p->listeners, (EMailListenerChanged)Evolution_Mail_StoreListener_changed, bonobo_object_corba_objref((BonoboObject *)ems), changes)) { evolution_mail_store_close_store(ems); - printf("No more listeners for store, could dispose store object now?\n"); + w(printf("No more listeners for store, could dispose store object now?\n")); } } diff --git a/plugins/mail-remote/evolution-mail-storelistener.c b/plugins/mail-remote/evolution-mail-storelistener.c index 3d859383c0..c19c7b4b85 100644 --- a/plugins/mail-remote/evolution-mail-storelistener.c +++ b/plugins/mail-remote/evolution-mail-storelistener.c @@ -30,6 +30,7 @@ #include "evolution-mail-storelistener.h" #include "evolution-mail-marshal.h" +#include "e-corba-utils.h" #define PARENT_TYPE bonobo_object_get_type () @@ -63,7 +64,7 @@ impl_dispose (GObject *object) static void impl_finalize (GObject *object) { - printf("EvolutionMailStoreListener finalised!\n"); + d(printf("EvolutionMailStoreListener finalised!\n")); (* G_OBJECT_CLASS (parent_class)->finalize) (object); } @@ -95,11 +96,11 @@ impl_changed(PortableServer_Servant _servant, EvolutionMailStoreListener *eml = (EvolutionMailStoreListener *)bonobo_object_from_servant(_servant); int i, j; - printf("store changed!\n"); + d(printf("store changed!\n")); for (i=0;i_length;i++) { - printf(" %d %s", changes->_buffer[i].folders._length, change_type_name(changes->_buffer[i].type)); + d(printf(" %d %s", changes->_buffer[i].folders._length, change_type_name(changes->_buffer[i].type))); for (j=0;j_buffer[i].folders._length;j++) { - printf(" %s %s\n", changes->_buffer[i].folders._buffer[j].full_name, changes->_buffer[i].folders._buffer[j].name); + d(printf(" %s %s\n", changes->_buffer[i].folders._buffer[j].full_name, changes->_buffer[i].folders._buffer[j].name)); } } diff --git a/plugins/mail-remote/mail-remote.c b/plugins/mail-remote/mail-remote.c index 7d082d3465..3c8eb7c988 100644 --- a/plugins/mail-remote/mail-remote.c +++ b/plugins/mail-remote/mail-remote.c @@ -5,6 +5,8 @@ #include "evolution-mail-session.h" #include +#include "e-corba-utils.h" + struct _EPlugin; struct _ESEventTargetUpgrade; @@ -47,7 +49,7 @@ int e_plugin_lib_enable(int enable) to retrieve it */ bonobo_object_add_interface((BonoboObject *)component, (BonoboObject *)sess); - printf(" ** Added mail interface to mail component\n"); + w(printf(" ** Added mail interface to mail component\n")); } else { /* can't easily disable this until restart? */ /* can we just destroy it? */ -- cgit v1.2.3