#include "ssl.h"
static struct ssl_data *
-ssl_data_new (char *server)
+ssl_data_new (void)
{
struct ssl_data *ssl;
int kx_prio[] = {GNUTLS_KX_RSA, 0};
gnutls_certificate_credentials cred;
gnutls_certificate_allocate_credentials (&cred);
ssl = g_slice_new (struct ssl_data);
- ssl->server = g_strdup (server);
gnutls_init (&ssl->session, GNUTLS_CLIENT);
gnutls_set_default_priority (ssl->session);
gnutls_set_default_priority (ssl->session);
ssl_data_destroy (struct ssl_data *ssl)
{
gnutls_deinit (ssl->session);
- g_free (ssl->server);
g_string_free (ssl->buffer, TRUE);
g_slice_free (struct ssl_data, ssl);
}
ssl_server_hook_new (net_hook_t *client_hook, char *server, char *port)
{
net_hook_t *hook;
+ int fd;
hook = g_slice_new (net_hook_t);
hook->peer = client_hook;
hook->server = TRUE;
hook->connect = ssl_server_connect;
hook->close = ssl_server_close;
hook->read = ssl_server_read;
- hook->data = ssl_data_new (server);
- hook->conn = hc_conn_new (hc_tcp_connect (server, port), nethook_event, hook);
+ hook->data = ssl_data_new ();
+ hook->conn = hc_conn_new (nethook_event, hook);
+ fd = hc_tcp_connect (server, port);
+ hc_conn_set_driver_channel (hook->conn, fd);
return hook;
}