E2kAutoconfig

E2kAutoconfig — Account autoconfiguration

Synopsis

                    E2kAutoconfig;
enum                E2kExchangeVersion;
enum                E2kAutoconfigAuthPref;
enum                E2kAutoconfigResult;
E2kAutoconfig *     e2k_autoconfig_new                  (const gchar *owa_uri,
                                                         const gchar *username,
                                                         const gchar *password,
                                                         E2kAutoconfigAuthPref auth_pref);
void                e2k_autoconfig_free                 (E2kAutoconfig *ac);
void                e2k_autoconfig_set_owa_uri          (E2kAutoconfig *ac,
                                                         const gchar *owa_uri);
void                e2k_autoconfig_set_gc_server        (E2kAutoconfig *ac,
                                                         const gchar *gc_server,
                                                         gint gal_limit,
                                                         E2kAutoconfigGalAuthPref gal_auth);
void                e2k_autoconfig_set_username         (E2kAutoconfig *ac,
                                                         const gchar *username);
void                e2k_autoconfig_set_password         (E2kAutoconfig *ac,
                                                         const gchar *password);
E2kContext *        e2k_autoconfig_get_context          (E2kAutoconfig *ac,
                                                         E2kOperation *op,
                                                         E2kAutoconfigResult *result);
E2kAutoconfigResult  e2k_autoconfig_check_exchange      (E2kAutoconfig *ac,
                                                         E2kOperation *op);
E2kGlobalCatalog *  e2k_autoconfig_get_global_catalog   (E2kAutoconfig *ac,
                                                         E2kOperation *op);
E2kAutoconfigResult  e2k_autoconfig_check_global_catalog
                                                        (E2kAutoconfig *ac,
                                                         E2kOperation *op);
const gchar *       e2k_autoconfig_lookup_option        (const gchar *option);

Description

The E2kAutoconfig object handles trying to automatically configure a user’s account without requiring the user to have to know arcane details about the organization of the company’s Exchange servers.

Details

E2kAutoconfig

typedef struct {
	/* Input data. (gc_server is optional) */
	gchar *owa_uri, *gc_server;
	gchar *username, *password;
	gint gal_limit;
	E2kAutoconfigGalAuthPref gal_auth;

	/* Output data */
	E2kExchangeVersion version;
	gchar *display_name, *email;
	gchar *account_uri, *exchange_server;
	gchar *timezone;

	/* Private-ish members */
	gchar *nt_domain, *w2k_domain;
	gchar *home_uri, *exchange_dn;
	gchar *pf_server;
	E2kAutoconfigAuthPref auth_pref;
	gboolean require_ntlm, use_ntlm;
	gboolean saw_basic, saw_ntlm;
	gboolean nt_domain_defaulted, gc_server_autodetected;
} E2kAutoconfig;


enum E2kExchangeVersion

typedef enum {
	E2K_EXCHANGE_UNKNOWN,
	E2K_EXCHANGE_2000,
	E2K_EXCHANGE_2003,

	E2K_EXCHANGE_FUTURE
} E2kExchangeVersion;


enum E2kAutoconfigAuthPref

typedef enum {
	E2K_AUTOCONFIG_USE_BASIC,
	E2K_AUTOCONFIG_USE_NTLM,
	E2K_AUTOCONFIG_USE_EITHER
} E2kAutoconfigAuthPref;


enum E2kAutoconfigResult

typedef enum {
	E2K_AUTOCONFIG_OK,
	E2K_AUTOCONFIG_REDIRECT,
	E2K_AUTOCONFIG_TRY_SSL,
	E2K_AUTOCONFIG_AUTH_ERROR,
	E2K_AUTOCONFIG_AUTH_ERROR_TRY_DOMAIN,
	E2K_AUTOCONFIG_AUTH_ERROR_TRY_BASIC,
	E2K_AUTOCONFIG_AUTH_ERROR_TRY_NTLM,
	E2K_AUTOCONFIG_EXCHANGE_5_5,
	E2K_AUTOCONFIG_NOT_EXCHANGE,
	E2K_AUTOCONFIG_NO_OWA,
	E2K_AUTOCONFIG_NO_MAILBOX,
	E2K_AUTOCONFIG_CANT_BPROPFIND,
	E2K_AUTOCONFIG_CANT_RESOLVE,
	E2K_AUTOCONFIG_CANT_CONNECT,
	E2K_AUTOCONFIG_CANCELLED,
	E2K_AUTOCONFIG_FAILED
} E2kAutoconfigResult;


e2k_autoconfig_new ()

E2kAutoconfig *     e2k_autoconfig_new                  (const gchar *owa_uri,
                                                         const gchar *username,
                                                         const gchar *password,
                                                         E2kAutoconfigAuthPref auth_pref);

Creates an autoconfig context, based on information stored in the config file or provided as arguments.

owa_uri :

the OWA URI, or NULL to (try to) use a default

username :

the username (or DOMAIN\username), or NULL to use a default

password :

the password, or NULL if not yet known

auth_pref :

information about what auth type to use

Returns :

an autoconfig context

e2k_autoconfig_free ()

void                e2k_autoconfig_free                 (E2kAutoconfig *ac);

Frees ac.

ac :

an autoconfig context

e2k_autoconfig_set_owa_uri ()

void                e2k_autoconfig_set_owa_uri          (E2kAutoconfig *ac,
                                                         const gchar *owa_uri);

Sets ac's owa_uri field to owa_uri (or the default if owa_uri is NULL), and resets any fields whose values had been set based on the old value of owa_uri.

ac :

an autoconfig context

owa_uri :

the new OWA URI, or NULL

e2k_autoconfig_set_gc_server ()

void                e2k_autoconfig_set_gc_server        (E2kAutoconfig *ac,
                                                         const gchar *gc_server,
                                                         gint gal_limit,
                                                         E2kAutoconfigGalAuthPref gal_auth);

Sets ac's gc_server field to gc_server (or the default if gc_server is NULL) and the gal_limit field to gal_limit, and resets any fields whose values had been set based on the old value of gc_server.

ac :

an autoconfig context

gc_server :

the new GC server, or NULL

gal_limit :

GAL search size limit, or -1 for no limit

gal_auth :

Preferred authentication method for gal

e2k_autoconfig_set_username ()

void                e2k_autoconfig_set_username         (E2kAutoconfig *ac,
                                                         const gchar *username);

Sets ac's username field to username (or the default if username is NULL), and resets any fields whose values had been set based on the old value of username.

ac :

an autoconfig context

username :

the new username (or DOMAIN\username), or NULL

e2k_autoconfig_set_password ()

void                e2k_autoconfig_set_password         (E2kAutoconfig *ac,
                                                         const gchar *password);

Sets or clears ac's password field.

ac :

an autoconfig context

password :

the new password, or NULL to clear

e2k_autoconfig_get_context ()

E2kContext *        e2k_autoconfig_get_context          (E2kAutoconfig *ac,
                                                         E2kOperation *op,
                                                         E2kAutoconfigResult *result);

ac :

op :

result :

Returns :


e2k_autoconfig_check_exchange ()

E2kAutoconfigResult  e2k_autoconfig_check_exchange      (E2kAutoconfig *ac,
                                                         E2kOperation *op);

ac :

op :

Returns :


e2k_autoconfig_get_global_catalog ()

E2kGlobalCatalog *  e2k_autoconfig_get_global_catalog   (E2kAutoconfig *ac,
                                                         E2kOperation *op);

Tries to connect to the global catalog associated with ac (trying to figure it out from the domain name if the server name is not yet known).

ac :

an autoconfig context

op :

an E2kOperation, for cancellation

Returns :

the global catalog, or NULL if the GC server name wasn't provided and couldn't be autodetected.

e2k_autoconfig_check_global_catalog ()

E2kAutoconfigResult  e2k_autoconfig_check_global_catalog
                                                        (E2kAutoconfig *ac,
                                                         E2kOperation *op);

ac :

op :

Returns :


e2k_autoconfig_lookup_option ()

const gchar *       e2k_autoconfig_lookup_option        (const gchar *option);

Looks up an autoconfiguration hint in the config file (if present)

option :

option name to look up

Returns :

the string value of the option, or NULL if it is unset.