Ejemplo n.º 1
0
ssize_t _web_server_connection_socket_recieve_callback(socket_p socket, const void* data, size_t data_size, struct sockaddr* remote_end_point, void* ctx) {
    
    struct web_server_connection_t* wc = (struct web_server_connection_t*)ctx;
    
    mutex_lock(wc->mutex);
    
    ssize_t ret = 0;
    
    web_request_p request = web_request_create();
    
    if ((ret = web_request_parse(request, data, data_size)) > 0) {
        
        mutex_unlock(wc->mutex);
        
        if (wc->request_callback != NULL)
            wc->request_callback(wc, request, wc->request_callback_ctx);
        
    } else
        mutex_unlock(wc->mutex);
    
    web_request_destroy(request);
    
    return ret;
        
}
Ejemplo n.º 2
0
void _dacp_client_send_request(struct dacp_client_t* dc, const char* request_name) {
    
    if (dacp_client_is_available(dc)) {
        
        web_request_p request = web_request_create();
        
        char path[strlen(request_name) + 13];
        sprintf(path, "/ctrl-int/1/%s", request_name);
        
        web_request_set_method(request, "GET");
        web_request_set_path(request, path);
        web_request_set_protocol(request, "HTTP/1.1");
        
        web_headers_set_value(web_request_get_headers(request), "Active-Remote", dc->active_remove);
        
        web_client_connection_send_request(dc->web_connection, request);
        
        object_release(request);
        
    }
    
}