Use the SOCKS proxy in the pop3 store
authorFederico Mena Quintero <federico@novell.com>
Thu, 13 May 2010 18:55:59 +0000 (13:55 -0500)
committerFederico Mena Quintero <federico@novell.com>
Wed, 2 Jun 2010 22:13:34 +0000 (17:13 -0500)
Signed-off-by: Federico Mena Quintero <federico@novell.com>
camel/providers/pop3/camel-pop3-store.c

index 78d4be6..29d9df2 100644 (file)
@@ -150,6 +150,9 @@ connect_to_server (CamelService *service,
                    CamelException *ex)
 {
        CamelPOP3Store *store = CAMEL_POP3_STORE (service);
+       CamelSession *session;
+       gchar *socks_host;
+       gint socks_port;
        CamelStream *tcp_stream;
        CamelPOP3Command *pc;
        guint32 flags = 0;
@@ -175,6 +178,14 @@ connect_to_server (CamelService *service,
        } else
                tcp_stream = camel_tcp_stream_raw_new ();
 
+       session = camel_service_get_session (service);
+       camel_session_get_socks_proxy (session, &socks_host, &socks_port);
+
+       if (socks_host) {
+               camel_tcp_stream_set_socks_proxy ((CamelTcpStream *) tcp_stream, socks_host, socks_port);
+               g_free (socks_host);
+       }
+
        if ((ret = camel_tcp_stream_connect ((CamelTcpStream *) tcp_stream, ai)) == -1) {
                if (errno == EINTR)
                        camel_exception_set (