X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-proto.c;h=e92da4eb679d20d141758f8777f3a9b0dc7e97bf;hb=dbce09641769f49a02304326eb137d985211b125;hp=6e8b329115de101f7e9f95c3726e9d6e8d6281fd;hpb=702b748360f6de61e0780c36a98065d19a495c83;p=modest diff --git a/src/modest-proto.c b/src/modest-proto.c index 6e8b329..e92da4e 100644 --- a/src/modest-proto.c +++ b/src/modest-proto.c @@ -31,26 +31,48 @@ #include #include "modest-proto.h" +static const gchar* transport_protos[] = { + MODEST_PROTO_SENDMAIL, + MODEST_PROTO_SMTP, + NULL +}; + +static const gchar* store_protos[] = { + MODEST_PROTO_NONE, + MODEST_PROTO_POP, + MODEST_PROTO_IMAP, + MODEST_PROTO_MAILDIR, + MODEST_PROTO_MBOX, + NULL +}; + + +static const gchar* security_protos[] = { + MODEST_SECURITY_PROTO_NONE, + MODEST_SECURITY_PROTO_SSL, + MODEST_SECURITY_PROTO_TLS, + NULL +}; + +static const gchar* auth_protos[] = { + MODEST_AUTH_PROTO_PASSWORD, + NULL +}; + gboolean -modest_proto_is_valid (const gchar *proto) +modest_proto_is_valid (const gchar *proto, gboolean store_proto) { int i; - static const gchar* protos[] = { - MODEST_PROTO_SENDMAIL, - MODEST_PROTO_SMTP, - MODEST_PROTO_POP, - MODEST_PROTO_IMAP, - NULL - }; - if (!proto) - return FALSE; + g_return_val_if_fail (proto, FALSE); - for (i = 0; protos[i]; ++i) { + const gchar** protos = (const gchar**) + store_proto ? store_protos : transport_protos; + + for (i = 0; protos[i]; ++i) if (strcmp(protos[i], proto) == 0) return TRUE; - } return FALSE; } @@ -59,14 +81,41 @@ modest_proto_is_valid (const gchar *proto) ModestProtoType modest_proto_type (const gchar *proto) { - if (!modest_proto_is_valid(proto)) { - g_warning ("invalid protocol %s", proto); - return -1; - } - - /* trick */ + g_return_val_if_fail (proto, -1); + g_return_val_if_fail (modest_proto_is_valid (proto, TRUE) || + modest_proto_is_valid (proto, FALSE), + -1); + /* trick */ if (proto[0] == 's') return MODEST_PROTO_TYPE_TRANSPORT; else return MODEST_PROTO_TYPE_STORE; } + + + +const gchar** +modest_proto_store_protos (void) +{ + return (const gchar **) store_protos; +} + + +const gchar** +modest_proto_transport_protos (void) +{ + return (const gchar**) transport_protos; +} + +const gchar** +modest_proto_security_protos (void) +{ + return (const gchar**) security_protos; +} + +const gchar** +modest_proto_auth_protos (void) +{ + return (const gchar**) auth_protos; +} +