* 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
#define __MODEST_PROTOCOL_INFO_H__
#include <modest-pair.h>
+#include <glib.h>
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 <protocol,display-name>-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
- *
- * return the list of <protocol,display-name>-tupels of the given @type.
- * the elements of the returned list are ModestPairs
- * this is a convenience function for use with ModestComboBox
+ * modest_protocol_info_get_auth_protocol_pair_list:
+ *
+ * return the list of <protocol,display-name>-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
+ * 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_auth_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_connection_protocol_pair_list:
+ *
+ * return the list of <protocol,display-name>-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_connection_protocol_pair_list ();
+
+
/**
- * modest_protocol_info_get_protocol_type:
- * @name: the name of the ModestProtocol
+ * 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:
+ * 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 "tls")
+ *
+ * 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
+ */
+
+ModestPairList*
+modest_protocol_info_get_auth_protocol_pair_list ();
+
+/**
+ * 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_protocol_display_name (ModestProtocol proto);
+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);
/**
* 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