Hi, I have tried to embed libevent as a static library with my C++ application and would like to get http requests in my c++ application. Seems it works fine normally. I have use the following code.. ______________________________________________ void WebServer::ProcessHandler(struct evhttp_request *req, void *arg) { struct evbuffer *buf; buf = evbuffer_new(); if (buf == NULL) cout << "failed to create response buffer"; char* uriInput = NULL; if (req->type == EVHTTP_REQ_GET) { uriInput = (char*)evhttp_request_uri(req); } else if (req->type == EVHTTP_REQ_POST) { struct evbuffer *input_headers = evbuffer_new(); input_headers = req->input_buffer; uriInput = (char*)input_headers->buffer; } evbuffer_add_printf(buf, "Requested: %s\n", evhttp_request_uri(req)); evhttp_send_reply(req, HTTP_OK, "OK", buf); evhttp_connection_free(req->evcon); free(uriInput); evbuffer_free(buf); return; }; void webserver::ThreadProcess() { struct evhttp *httpd; event_init(); httpd = evhttp_start("0.0.0.0", 8080); evhttp_set_cb(httpd, "/", &WebServer::ProcessHandler, NULL); event_dispatch(); evhttp_free(httpd); } __________________________________________________ But seems, the above code does not work as a threaded function. ie, call the same functions from different thread , when a first call is in progress I want to try a second call synchronously. Is there a way to enable the function as a multithread callback function.. Thanks in Advance for your reply. |