Esempio n. 1
0
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));
}
Esempio n. 2
0
static void close_connection(struct mg_connection *conn) {
  if (conn->client.sock != INVALID_SOCKET) {
    close_socket_gracefully(conn->client.sock);
  }
}