static void gnutls_setup_listen_cb(liServer *srv, int fd, gpointer data) { mod_context *ctx = data; liServerSocket *srv_sock; UNUSED(data); if (-1 == fd) { mod_gnutls_context_release(ctx); return; } srv_sock = li_server_listen(srv, fd); srv_sock->data = ctx; /* transfer ownership, no refcount change */ srv_sock->new_cb = mod_gnutls_con_new; srv_sock->release_cb = mod_gnutls_sock_release; }
static void openssl_setup_listen_cb(liServer *srv, int fd, gpointer data) { openssl_context *ctx = data; liServerSocket *srv_sock; UNUSED(data); if (-1 == fd) { SSL_CTX_free(ctx->ssl_ctx); g_slice_free(openssl_context, ctx); return; } srv_sock = li_server_listen(srv, fd); srv_sock->data = ctx; srv_sock->new_cb = openssl_con_new; srv_sock->release_cb = openssl_sock_release; }