{
char *server;
char *port;
+ int ssl;
};
static HCConn *
-server_conn_new (char *server, char *port)
+server_conn_new (char *server, char *port, int ssl)
{
int fd;
HCConn *conn;
return NULL;
}
conn = hc_conn_new (NULL, NULL);
- ssl_conn = hc_conn_new (NULL, NULL);
r = hc_conn_set_driver_channel (conn, fd);
if (r != 0)
{
- hc_conn_close (ssl_conn);
hc_conn_close (conn);
close (fd);
return NULL;
}
+ if (!ssl)
+ return conn;
+ ssl_conn = hc_conn_new (NULL, NULL);
r = hc_conn_set_driver_ssl_client (ssl_conn, conn);
if (r != 0)
{
g_message ("Received connection from %s.",
inet_ntoa (((struct sockaddr_in *) addr)->sin_addr));
- server_conn = server_conn_new (address->server, address->port);
+ server_conn = server_conn_new (address->server, address->port,
+ address->ssl);
if (server_conn == NULL)
{
return;
gchar *port;
gchar *server_address;
gchar *server_port;
+ int server_ssl;
gchar *certfile;
gchar *ssl_keyfile;
struct pop_address pop_address;
server_port = g_strdup ("995");
g_error_free (error);
}
+ error = NULL;
+ server_ssl = g_key_file_get_boolean (keyfile, "global", "server_ssl",
+ &error);
+ if (server_ssl == 0 && error != NULL)
+ {
+ server_ssl = 0;
+ g_error_free (error);
+ }
+
pop_address.server = server_address;
pop_address.port = server_port;
+ pop_address.ssl = server_ssl;
server_fd = hc_tcp_server (port);
if (server_fd < 0)