aboutsummaryrefslogtreecommitdiffstats
path: root/camel
diff options
context:
space:
mode:
Diffstat (limited to 'camel')
-rw-r--r--camel/ChangeLog10
-rw-r--r--camel/providers/pop3/camel-pop3-provider.c36
-rw-r--r--camel/providers/pop3/camel-pop3-store.c10
-rw-r--r--camel/providers/pop3/libcamelpop3.urls1
4 files changed, 54 insertions, 3 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index 18aa97bac1..534e60f49f 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,5 +1,15 @@
2001-03-14 Jeffrey Stedfast <fejj@ximian.com>
+ * providers/pop3/camel-pop3-store.c (pop3_connect): Check to see
+ if we are using "pops" and then set the appropriate SSL settings.
+
+ * providers/pop3/libcamelpop3.urls: Add "pops"
+
+ * providers/pop3/camel-pop3-provider.c: Defined the pops provider.
+ (camel_provider_module_init): Register the pops provider.
+
+2001-03-14 Jeffrey Stedfast <fejj@ximian.com>
+
* camel-tcp-stream-ssl.c (camel_tcp_stream_ssl_new): Ya know what?
Lets not ref the service because otherwise we'll start having the
same problems we had back with vtrash. Besides, since the store
diff --git a/camel/providers/pop3/camel-pop3-provider.c b/camel/providers/pop3/camel-pop3-provider.c
index 5af0dad73c..e2669fc703 100644
--- a/camel/providers/pop3/camel-pop3-provider.c
+++ b/camel/providers/pop3/camel-pop3-provider.c
@@ -48,13 +48,45 @@ static CamelProvider pop3_provider = {
NULL
};
+#if defined (HAVE_NSS) || defined (HAVE_OPENSSL)
+static CamelProvider pops_provider = {
+ "pops",
+ N_("Secure POP"),
+
+ N_("For connecting to POP servers over an SSL connection. The POP "
+ "protocol can also be used to retrieve mail from certain web "
+ "mail providers and proprietary email systems."),
+
+ "mail",
+
+ CAMEL_PROVIDER_IS_REMOTE | CAMEL_PROVIDER_IS_SOURCE,
+
+ CAMEL_URL_NEED_USER | CAMEL_URL_NEED_HOST | CAMEL_URL_ALLOW_AUTH,
+
+ { 0, 0 },
+
+ NULL
+};
+#endif
+
void
camel_provider_module_init (CamelSession *session)
{
pop3_provider.object_types[CAMEL_PROVIDER_STORE] =
- camel_pop3_store_get_type();
-
+ camel_pop3_store_get_type ();
+#if defined (HAVE_NSS) || defined (HAVE_OPENSSL)
+ pops_provider.object_types[CAMEL_PROVIDER_STORE] =
+ camel_pop3_store_get_type ();
+#endif
+
pop3_provider.service_cache = g_hash_table_new (camel_url_hash, camel_url_equal);
+#if defined (HAVE_NSS) || defined (HAVE_OPENSSL)
+ pops_provider.service_cache = g_hash_table_new (camel_url_hash, camel_url_equal);
+#endif
+
camel_session_register_provider (session, &pop3_provider);
+#if defined (HAVE_NSS) || defined (HAVE_OPENSSL)
+ camel_session_register_provider (session, &pops_provider);
+#endif
}
diff --git a/camel/providers/pop3/camel-pop3-store.c b/camel/providers/pop3/camel-pop3-store.c
index 5fa80b1d87..b58504dcae 100644
--- a/camel/providers/pop3/camel-pop3-store.c
+++ b/camel/providers/pop3/camel-pop3-store.c
@@ -459,7 +459,15 @@ pop3_connect (CamelService *service, CamelException *ex)
service->url->port = KPOP_PORT;
}
#endif
-
+
+ if (!g_strcasecmp (service->url->protocol, "pops")) {
+ CamelRemoteStore *rstore = CAMEL_REMOTE_STORE (service);
+
+ /* FIXME: what should this port be?? */
+ rstore->default_port = 993;
+ rstore->use_ssl = TRUE;
+ }
+
res = CAMEL_SERVICE_CLASS (parent_class)->connect (service, ex);
#ifdef HAVE_KRB4
diff --git a/camel/providers/pop3/libcamelpop3.urls b/camel/providers/pop3/libcamelpop3.urls
index 7fffa4d861..39a0315454 100644
--- a/camel/providers/pop3/libcamelpop3.urls
+++ b/camel/providers/pop3/libcamelpop3.urls
@@ -1 +1,2 @@
pop
+pops