X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-protocol-info.h;h=dc1d2c0ebdab54c02d95b9d74df5b5f051fcbc61;hp=de963ba7cb04329801e68d714eaf6c7d5d4afe54;hb=b87242ddd0027d83a5768f2932f9868a93cd29da;hpb=fd44d68efc59bf8d3f70e70bb1df7e6885228188 diff --git a/src/modest-protocol-info.h b/src/modest-protocol-info.h index de963ba..dc1d2c0 100644 --- a/src/modest-protocol-info.h +++ b/src/modest-protocol-info.h @@ -17,7 +17,7 @@ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +\ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR @@ -31,116 +31,178 @@ #define __MODEST_PROTOCOL_INFO_H__ #include +#include G_BEGIN_DECLS -/* NOTE: be careful to check modest-protocol-info.c - * if you make any changes here */ +/** Transport and Store protocols. */ typedef enum { - MODEST_PROTOCOL_UNKNOWN, - - MODEST_PROTOCOL_TRANSPORT_SENDMAIL, + MODEST_PROTOCOL_TRANSPORT_STORE_UNKNOWN, + MODEST_PROTOCOL_TRANSPORT_SENDMAIL, MODEST_PROTOCOL_TRANSPORT_SMTP, - + MODEST_PROTOCOL_STORE_POP, MODEST_PROTOCOL_STORE_IMAP, MODEST_PROTOCOL_STORE_MAILDIR, - MODEST_PROTOCOL_STORE_MBOX, - - MODEST_PROTOCOL_SECURITY_NONE, - MODEST_PROTOCOL_SECURITY_SSL, - MODEST_PROTOCOL_SECURITY_TLS, - MODEST_PROTOCOL_SECURITY_TLS_OP, - + MODEST_PROTOCOL_STORE_MBOX +} ModestTransportStoreProtocol; + +/** Secure connection methods. */ +typedef enum { + MODEST_PROTOCOL_CONNECTION_NORMAL, + MODEST_PROTOCOL_CONNECTION_SSL, + MODEST_PROTOCOL_CONNECTION_TLS, + MODEST_PROTOCOL_CONNECTION_TLS_OP +} ModestConnectionProtocol; + +/** Secure authentication methods. */ +typedef enum { MODEST_PROTOCOL_AUTH_NONE, MODEST_PROTOCOL_AUTH_PASSWORD, - - MODEST_PROTOCOL_NUM -} ModestProtocol; + MODEST_PROTOCOL_AUTH_CRAMMD5 +} ModestAuthProtocol; -typedef enum { - MODEST_PROTOCOL_TYPE_UNKNOWN, - MODEST_PROTOCOL_TYPE_TRANSPORT, - MODEST_PROTOCOL_TYPE_STORE, - MODEST_PROTOCOL_TYPE_SECURITY, - MODEST_PROTOCOL_TYPE_AUTH, - MODEST_PROTOCOL_TYPE_NUM -} ModestProtocolType; - /** - * modest_protocol_info_get_list: - * @type: the type of list you want, it should NOT be MODEST_PROTOCOL_TYPE_UNKNOWN - * - * return the list of protocols of the given @type. - * the elements of the returned list are ModestProtocols (use GPOINTER_TO_INT to get it) + * modest_protocol_info_get_transport_store_protocol_pair_list: + * + * return the list of -tupels of protocols. + * The elements of the returned list are ModestPairs + * This is a convenience function for use with ModestComboBox * - * Returns: a list of protocols of the given @type; after use, it should be freed - * with g_slist_free. The elements should not be freed, as there is no memory allocated - * for them. + * Returns: a list of protocols. After use, it should be freed + * with modest_pair_list_free */ -GSList* modest_protocol_info_get_protocol_list (ModestProtocolType type); - +ModestPairList* +modest_protocol_info_get_transport_store_protocol_pair_list (); /** - * modest_protocol_info_get_list: - * @type: the type of list you want, it should NOT be MODEST_PROTOCOL_TYPE_UNKNOWN + * modest_protocol_info_get_supported_store_protocol_pair_list: + * + * return the list of -tuples of + * store protocols. + * The elements of the returned list are ModestPairs + * This is a convenience function for use with ModestComboBox * - * return the list of -tupels of the given @type. - * the elements of the returned list are ModestPairs - * this is a convenience function for use with ModestComboBox + * In this case it only returns the UI exposed protocols for + * storage (IMAP, POP3). * - * Returns: a list of protocols of the given @type; after use, it should be freed + * Returns: a list of protocols. After use, it should be freed * with modest_pair_list_free */ -ModestPairList* modest_protocol_info_get_protocol_pair_list (ModestProtocolType type); - +ModestPairList* +modest_protocol_info_get_supported_store_protocol_pair_list (); /** - * modest_protocol_info_get_protocol_type: - * @proto: the ModestProtocol you'd like to query for its type - * - * return ModestProtocolType for the protocol + * modest_protocol_info_get_auth_protocol_pair_list: + * + * return the list of -tupels of protocols. + * The elements of the returned list are ModestPairs + * This is a convenience function for use with ModestComboBox * - * Returns: the protocol type or MODEST_PROTOCOL_TYPE_UNKNOWN + * Returns: a list of protocols. After use, it should be freed + * with modest_pair_list_free */ -ModestProtocolType modest_protocol_info_get_protocol_type (ModestProtocol proto); +ModestPairList* modest_protocol_info_get_auth_protocol_pair_list (void); /** - * modest_protocol_info_get_protocol_type: - * @name: the name of the ModestProtocol + * modest_protocol_info_get_connection_protocol_pair_list: + * + * return the list of -tupels of protocols. + * The elements of the returned list are ModestPairs + * This is a convenience function for use with ModestComboBox + * + * Returns: a list of protocols. After use, it should be freed + * with modest_pair_list_free + */ +ModestPairList* modest_protocol_info_get_connection_protocol_pair_list (void); + + +/** + * modest_protocol_info_get_transport_store_protocol: + * @name: the name of the #ModestTransportStoreProtocol * * return the id of the protocol with the given name * - * Returns: the id of the protocol or MODEST_PROTOCOL_UNKNOWN + * Returns: the id of the protocol or MODEST_PROTOCOL_TRANSPORT_STORE_UNKNOWN */ -ModestProtocol modest_protocol_info_get_protocol (const gchar* name); +ModestTransportStoreProtocol modest_protocol_info_get_transport_store_protocol (const gchar* name); +/** + * modest_protocol_info_get_auth_protocol: + * @name: The name of the #ModestAuthProtocol + * + * Returns the ID of the protocol with the given name + * + * Returns: The ID of the protocol or MODEST_PROTOCOL_AUTH_NONE + */ +ModestAuthProtocol modest_protocol_info_get_auth_protocol (const gchar* name); /** - * modest_protocol_info_get_protocol_name: - * @proto: the protocol you are looking for + * modest_protocol_info_get_connection_protocol: + * @name: The name of the #ModestConnectionProtocol * - * return the string id of the proto (such as "imap", or "tls") + * Returns the ID of the protocol with the given name + * + * Returns: The ID of the protocol or MODEST_CONNECTION_PROTOCOL_NORMAL + */ +ModestConnectionProtocol modest_protocol_info_get_connection_protocol (const gchar* name); + +/** + * modest_protocol_info_get_transport_store_protocol_name: + * @proto: the protocol you are looking for + * + * return the string id of the proto (such as "imap", or "smtp") * * Returns: string id of the proto as a constant string, that should NOT be modified or freed */ -const gchar* modest_protocol_info_get_protocol_name (ModestProtocol proto); +const gchar* modest_protocol_info_get_transport_store_protocol_name (ModestTransportStoreProtocol proto); /** - * modest_protocol_info_get_protocol_display_name: + * modest_protocol_info_get_auth_protocol_name: * @proto: the protocol you are looking for - * - * return the string id of the proto (such as "imap", or "tls") + * + * return the string id of the proto (such as "password", or "cram-md5") * * Returns: string id of the proto as a constant string, that should NOT be modified or freed + */ +const gchar* modest_protocol_info_get_auth_protocol_name (ModestAuthProtocol proto); + +/* + * modest_protocol_get_auth_protocol_pair_list: + * + * Get the list of support authentication methods supported by modest including + * the display names of those. * + * Returns: List of method/display name pairs */ -const gchar* modest_protocol_info_get_protocol_display_name (ModestProtocol proto); +ModestPairList* modest_protocol_info_get_auth_protocol_pair_list (void); +/** + * modest_protocol_info_get_auth_protocol_name: + * @proto: the protocol you are looking for + * + * return the string id of the proto (such as "ssl", or "tls") + * + * Returns: string id of the proto as a constant string, that should NOT be modified or freed + */ +const gchar* +modest_protocol_info_get_connection_protocol_name (ModestAuthProtocol proto); + + +/** + * modest_protocol_info_protocol_is_local_store: + * @proto: the protocol + * + * is this protocol a store protocol? + * + * Returns: TRUE if it is a local store, FALSE otherwise + * + */ +gboolean modest_protocol_info_protocol_is_store (ModestTransportStoreProtocol proto); /** @@ -152,9 +214,30 @@ const gchar* modest_protocol_info_get_protocol_display_name (ModestProtocol prot * Returns: TRUE if it is a local store, FALSE otherwise * */ -gboolean modest_protocol_info_protocol_is_local_store (ModestProtocol proto); +gboolean modest_protocol_info_protocol_is_local_store (ModestTransportStoreProtocol proto); +/** + * modest_protocol_info_is_secure: + * @protocol + * + * is the protocol connection secure (e.g encrypted)? + * + * Returns: TRUE if it is secure, FALSE otherwise + * + */ +gboolean modest_protocol_info_is_secure(ModestConnectionProtocol protocol); + +/** + * modest_protocol_info_auth_is_secure: + * @protocol + * + * is the protocol authentication secure (e.g encrypted)? + * + * Returns: TRUE if it is secure, FALSE otherwise + * + */ +gboolean modest_protocol_info_auth_is_secure(ModestAuthProtocol protocol); G_END_DECLS