diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2002-04-27 03:52:33 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2002-04-27 03:52:33 +0800 |
commit | 82ac8c3819b5227de647edb28769d03ddf161ec9 (patch) | |
tree | 004f7a1018715bad7b1b87a6c1337f3d9693171c /camel/camel-provider.h | |
parent | 8ee6239978c34f08d83dc8dcd9870b4ab8a2665b (diff) | |
download | gsoc2013-evolution-82ac8c3819b5227de647edb28769d03ddf161ec9.tar.gz gsoc2013-evolution-82ac8c3819b5227de647edb28769d03ddf161ec9.tar.zst gsoc2013-evolution-82ac8c3819b5227de647edb28769d03ddf161ec9.zip |
New function to auto-detect configuration settings.
2002-04-26 Jeffrey Stedfast <fejj@ximian.com>
* camel-provider.c (camel_provider_auto_detect): New function to
auto-detect configuration settings.
svn path=/trunk/; revision=16599
Diffstat (limited to 'camel/camel-provider.h')
-rw-r--r-- | camel/camel-provider.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/camel/camel-provider.h b/camel/camel-provider.h index dd2bd98329..606271050d 100644 --- a/camel/camel-provider.h +++ b/camel/camel-provider.h @@ -36,6 +36,7 @@ extern "C" { #include <camel/camel-types.h> #include <camel/camel-object.h> +#include <camel/camel-exception.h> #define CAMEL_PROVIDER(obj) ((CamelProvider *)(obj)) @@ -128,6 +129,8 @@ typedef struct { #define CAMEL_PROVIDER_CONF_DEFAULT_HOSTNAME { CAMEL_PROVIDER_CONF_LABEL, "hostname", NULL, N_("_Host:"), NULL } #define CAMEL_PROVIDER_CONF_DEFAULT_PATH { CAMEL_PROVIDER_CONF_ENTRY, "path", NULL, N_("_Path:"), "" } +typedef int (*CamelProviderAutoDetectFunc) (GHashTable *settings, GHashTable **auto_detected, CamelException *ex); + typedef struct { /* Provider name used in CamelURLs. */ char *protocol; @@ -155,18 +158,21 @@ typedef struct { /* Extra configuration information */ CamelProviderConfEntry *extra_conf; + /* auto-detection function */ + CamelProviderAutoDetectFunc auto_detect; + /* CamelType(s) of its store and/or transport. If both are * set, then they are assumed to be linked together and the * transport type can only be used in an account that also * uses the store type (eg, Exchange or NNTP). */ CamelType object_types[CAMEL_NUM_PROVIDER_TYPES]; - + /* GList of CamelServiceAuthTypes the provider supports */ GList *authtypes; - + GHashTable *service_cache[CAMEL_NUM_PROVIDER_TYPES]; - + GHashFunc url_hash; GCompareFunc url_equal; } CamelProvider; @@ -177,6 +183,10 @@ void camel_provider_load (CamelSession *session, const char *path, CamelExceptio /* This is defined by each module, not by camel-provider.c. */ void camel_provider_module_init (CamelSession *session); + +int camel_provider_auto_detect (CamelProvider *provider, GHashTable *settings, + GHashTable **auto_detected, CamelException *ex); + #ifdef __cplusplus } #endif /* __cplusplus */ |