static void request_data_release (HTTPServer *http_server, RequestData **request_data_pointer) { gint i; RequestData *request_data; struct sockaddr in_addr; request_data = *request_data_pointer; in_addr = request_data->client_addr; GST_INFO ("release request from %s:%u, sock %d", get_address (in_addr), get_port (in_addr), request_data->sock); for (i = 0; i < request_data->num_headers; i++) { g_free (request_data->headers[i].name); g_free (request_data->headers[i].value); } request_data->num_headers = 0; request_data->status = HTTP_NONE; close_socket_gracefully (request_data->sock); g_mutex_lock (&(http_server->request_data_queue_mutex)); request_data->events = 0; g_queue_push_head (http_server->request_data_queue, request_data_pointer); g_mutex_unlock (&(http_server->request_data_queue_mutex)); }
static void close_connection(struct mg_connection *conn) { if (conn->client.sock != INVALID_SOCKET) { close_socket_gracefully(conn->client.sock); } }