Bug 418954 - Add a separate entry combo for port numbers
authorDan Vráti <dvratil@redhat.com>
Fri, 18 Mar 2011 15:34:37 +0000 (11:34 -0400)
committerMatthew Barnes <mbarnes@redhat.com>
Wed, 23 Mar 2011 14:08:08 +0000 (10:08 -0400)
Adds a new field to CamelProvider for listing standard port numbers with
descriptions.  Evolution uses this information in its EPortEntry widget.

This breaks ABI in CamelProvider and requires a soname bump.

12 files changed:
camel/camel-provider.c
camel/camel-provider.h
camel/providers/groupwise/camel-groupwise-provider.c
camel/providers/imap/camel-imap-provider.c
camel/providers/imapx/camel-imapx-provider.c
camel/providers/local/camel-local-provider.c
camel/providers/nntp/camel-nntp-provider.c
camel/providers/pop3/camel-pop3-provider.c
camel/providers/sendmail/camel-sendmail-provider.c
camel/providers/smtp/camel-smtp-provider.c
configure.ac
docs/reference/camel/tmpl/camel-provider.sgml

index a444d69..3340474 100644 (file)
@@ -64,6 +64,10 @@ static CamelProvider vee_provider = {
        CAMEL_PROVIDER_IS_STORAGE,
        CAMEL_URL_NEED_PATH | CAMEL_URL_PATH_IS_ABSOLUTE | CAMEL_URL_FRAGMENT_IS_PATH,
 
+       NULL,   /* extra conf */
+
+       NULL,   /* port providers */
+
        /* ... */
 };
 
index 330bd9b..e98dd8c 100644 (file)
@@ -157,6 +157,12 @@ typedef struct {
        const gchar *text, *value;
 } CamelProviderConfEntry;
 
+typedef struct {
+       gint port;
+       const gchar *desc;
+       gboolean is_ssl;
+} CamelProviderPortEntry;
+
 /* Some defaults */
 #define CAMEL_PROVIDER_CONF_DEFAULT_USERNAME \
        { CAMEL_PROVIDER_CONF_LABEL, "username", NULL, N_("User_name:"), NULL }
@@ -198,6 +204,12 @@ typedef struct {
        /* Extra configuration information */
        CamelProviderConfEntry *extra_conf;
 
+       /* The list of CamelProviderPortEntry structs. Each struct contains 
+        * port number and a short string description ("Default IMAP port"
+        * or "POP3 over SSL" etc.
+        */
+       CamelProviderPortEntry *port_entries;
+
        /* auto-detection function */
        CamelProviderAutoDetectFunc auto_detect;
 
index bace758..681d348 100644 (file)
@@ -76,6 +76,11 @@ static CamelProviderConfEntry groupwise_conf_entries[] = {
        { CAMEL_PROVIDER_CONF_END }
 };
 
+CamelProviderPortEntry groupwise_port_entries[] = {
+                                                       { 1677, N_("Default GroupWise port"), FALSE },
+                                                       { 0, NULL, 0 }
+                                                 };
+
 static CamelProvider groupwise_provider = {
        "groupwise",
        N_("Novell GroupWise"),
@@ -91,6 +96,8 @@ static CamelProvider groupwise_provider = {
 
        groupwise_conf_entries,
 
+       groupwise_port_entries,
+
        /* ... */
 };
 
index ab14cb4..bc1d3f7 100644 (file)
@@ -74,6 +74,12 @@ static CamelProviderConfEntry imap_conf_entries[] = {
        { CAMEL_PROVIDER_CONF_END }
 };
 
+CamelProviderPortEntry imap_port_entries[] = {
+                                               { 143, N_("IMAP default port"), FALSE },
+                                               { 993, N_("IMAP over SSL"), TRUE },
+                                               { 0, NULL, 0 }
+                                            };
+
 static CamelProvider imap_provider = {
        "imap",
        N_("IMAP"),
@@ -90,6 +96,8 @@ static CamelProvider imap_provider = {
 
        imap_conf_entries,
 
+       imap_port_entries,
+
        /* ... */
 };
 
@@ -100,6 +108,7 @@ CamelServiceAuthType camel_imap_password_authtype = {
           "plaintext password."),
 
        "",
+
        TRUE
 };
 
index d2ec9b4..e0ded9f 100644 (file)
@@ -82,12 +82,19 @@ CamelProviderConfEntry imapx_conf_entries[] = {
        { CAMEL_PROVIDER_CONF_END }
 };
 
+CamelProviderPortEntry imapx_port_entries[] = {
+                                               { 143, N_("Defalut IMAP port"), FALSE },
+                                               { 993, N_("IMAP over SSL"), TRUE },
+                                               { 0, NULL, 0 }
+                                             };
+
 static CamelProvider imapx_provider = {
        "imapx",
 
        N_("IMAP+"),
 
        N_("For reading and storing mail on IMAP servers."),
+
        "mail",
 
        CAMEL_PROVIDER_IS_REMOTE | CAMEL_PROVIDER_IS_SOURCE |
@@ -97,6 +104,8 @@ static CamelProvider imapx_provider = {
 
        imapx_conf_entries,
 
+       imapx_port_entries,
+
        /* ... */
 };
 
index bbaf97c..e452875 100644 (file)
@@ -54,6 +54,7 @@ static CamelProvider mh_provider = {
        CAMEL_PROVIDER_IS_SOURCE | CAMEL_PROVIDER_IS_STORAGE | CAMEL_PROVIDER_IS_LOCAL,
        CAMEL_URL_NEED_PATH | CAMEL_URL_NEED_PATH_DIR | CAMEL_URL_PATH_IS_ABSOLUTE | CAMEL_URL_FRAGMENT_IS_PATH,
        mh_conf_entries,
+       NULL,
        /* ... */
 };
 
@@ -72,6 +73,7 @@ static CamelProvider mbox_provider = {
        CAMEL_PROVIDER_IS_SOURCE | CAMEL_PROVIDER_IS_STORAGE | CAMEL_PROVIDER_IS_LOCAL,
        CAMEL_URL_NEED_PATH | CAMEL_URL_PATH_IS_ABSOLUTE | CAMEL_URL_FRAGMENT_IS_PATH,
        mbox_conf_entries,
+       NULL,
        /* ... */
 };
 
@@ -94,6 +96,7 @@ static CamelProvider maildir_provider = {
        CAMEL_PROVIDER_IS_SOURCE | CAMEL_PROVIDER_IS_STORAGE | CAMEL_PROVIDER_IS_LOCAL,
        CAMEL_URL_NEED_PATH | CAMEL_URL_NEED_PATH_DIR | CAMEL_URL_PATH_IS_ABSOLUTE | CAMEL_URL_FRAGMENT_IS_PATH,
        maildir_conf_entries,
+       NULL,
        /* ... */
 };
 
@@ -114,6 +117,7 @@ static CamelProvider spool_file_provider = {
        CAMEL_PROVIDER_IS_SOURCE | CAMEL_PROVIDER_IS_STORAGE,
        CAMEL_URL_NEED_PATH | CAMEL_URL_PATH_IS_ABSOLUTE | CAMEL_URL_FRAGMENT_IS_PATH,
        spool_conf_entries,
+       NULL,
        /* ... */
 };
 
@@ -125,6 +129,7 @@ static CamelProvider spool_directory_provider = {
        CAMEL_PROVIDER_IS_SOURCE | CAMEL_PROVIDER_IS_STORAGE,
        CAMEL_URL_NEED_PATH | CAMEL_URL_NEED_PATH_DIR | CAMEL_URL_PATH_IS_ABSOLUTE | CAMEL_URL_FRAGMENT_IS_PATH,
        spool_conf_entries,
+       NULL,
        /* ... */
 };
 
index 6c0acd1..88829f0 100644 (file)
@@ -48,6 +48,12 @@ static CamelProviderConfEntry nntp_conf_entries[] = {
        { CAMEL_PROVIDER_CONF_END }
 };
 
+CamelProviderPortEntry nntp_port_entries[] = {
+                                                 { 119, N_("Default NNTP port"), FALSE },
+                                                 { 563, N_("NNTP over SSL"), TRUE },
+                                                 { 0, NULL, 0 }
+                                            };
+
 static CamelProvider news_provider = {
        "nntp",
        N_("USENET news"),
@@ -63,7 +69,9 @@ static CamelProvider news_provider = {
        CAMEL_URL_NEED_HOST | CAMEL_URL_ALLOW_USER |
        CAMEL_URL_ALLOW_PASSWORD | CAMEL_URL_ALLOW_AUTH,
 
-       nntp_conf_entries
+       nntp_conf_entries,
+
+       nntp_port_entries,
 
        /* ... */
 };
index 0c8633a..1e68c80 100644 (file)
@@ -50,6 +50,12 @@ static CamelProviderConfEntry pop3_conf_entries[] = {
        { CAMEL_PROVIDER_CONF_END }
 };
 
+CamelProviderPortEntry pop3_port_entries[] = {
+                                                 { 110, N_("Default POP3 port"), FALSE },
+                                                 { 995, N_("POP3 over SSL"), TRUE },
+                                                 { 0, NULL, 0 }
+                                            };
+
 static CamelProvider pop3_provider = {
        "pop",
 
@@ -66,6 +72,8 @@ static CamelProvider pop3_provider = {
 
        pop3_conf_entries,
 
+       pop3_port_entries,
+
        /* ... */
 };
 
index 566ea63..4b45fd2 100644 (file)
@@ -44,6 +44,8 @@ static CamelProvider sendmail_provider = {
 
        0, /* url_flags */
 
+       NULL,  /* port entries */
+
        /* ... */
 };
 
index 08649db..7a1df0b 100644 (file)
 static guint smtp_url_hash (gconstpointer key);
 static gint smtp_url_equal (gconstpointer a, gconstpointer b);
 
+CamelProviderPortEntry smtp_port_entries[] = {
+                                                 { 25, N_("Default SMTP port"), FALSE },
+                                                 { 465, N_("SMTP over SSL"), TRUE },
+                                                 { 587, N_("Message submission port"), FALSE },
+                                                 { 0, NULL, 0 }
+                                            };
+
 static CamelProvider smtp_provider = {
        "smtp",
        N_("SMTP"),
@@ -51,6 +58,10 @@ static CamelProvider smtp_provider = {
 
        CAMEL_URL_NEED_HOST | CAMEL_URL_ALLOW_AUTH | CAMEL_URL_ALLOW_USER,
 
+       NULL,
+
+       smtp_port_entries,
+
        /* ... */
 };
 
index ff6d292..2d546d5 100644 (file)
@@ -102,7 +102,7 @@ LIBEGROUPWISE_CURRENT=13
 LIBEGROUPWISE_REVISION=1
 LIBEGROUPWISE_AGE=0
 
-LIBCAMEL_CURRENT=23
+LIBCAMEL_CURRENT=24
 LIBCAMEL_REVISION=0
 LIBCAMEL_AGE=0
 
index 7a0962c..92cd567 100644 (file)
@@ -32,6 +32,7 @@ camel-provider
 @flags: 
 @url_flags: 
 @extra_conf: 
+@port_entries: 
 @auto_detect: 
 @object_types: 
 @authtypes: 
@@ -263,6 +264,7 @@ camel-provider
 @flags: 
 @url_flags: 
 @extra_conf: 
+@port_entries: 
 @auto_detect: 
 @object_types: 
 @authtypes: