void h2o_socket_dispose_export(h2o_socket_export_t *info) { assert(info->fd != -1); if (info->ssl != NULL) destroy_ssl(info->ssl); h2o_buffer_dispose(&info->input); close(info->fd); info->fd = -1; }
static void dispose_socket(h2o_socket_t *sock, int status) { void (*close_cb)(void *data); void *close_cb_data; if (sock->ssl != NULL) destroy_ssl(sock->ssl); h2o_buffer_dispose(&sock->input); close_cb = sock->on_close.cb; close_cb_data = sock->on_close.data; do_dispose_socket(sock); if (close_cb != NULL) close_cb(close_cb_data); }
static void dispose_socket(h2o_socket_t *sock, int status) { void (*close_cb)(void *data); void *close_cb_data; if (sock->ssl != NULL) { destroy_ssl(sock->ssl); sock->ssl = NULL; } h2o_buffer_dispose(&sock->input); if (sock->_peername != NULL) { free(sock->_peername); sock->_peername = NULL; } close_cb = sock->on_close.cb; close_cb_data = sock->on_close.data; do_dispose_socket(sock); if (close_cb != NULL) close_cb(close_cb_data); }