mirror of
https://github.com/pikvm/ustreamer.git
synced 2026-03-12 18:43:42 +00:00
Rewrited #44: fixed memory error and leak
This commit is contained in:
@@ -291,31 +291,27 @@ static int _http_preprocess_request(struct evhttp_request *request, struct http_
|
|||||||
static void _http_callback_root(struct evhttp_request *request, void *v_server) {
|
static void _http_callback_root(struct evhttp_request *request, void *v_server) {
|
||||||
struct http_server_t *server = (struct http_server_t *)v_server;
|
struct http_server_t *server = (struct http_server_t *)v_server;
|
||||||
struct evbuffer *buf;
|
struct evbuffer *buf;
|
||||||
// Variables to make mjpg_streamer compatibility
|
struct evkeyvalq params; // For mjpg-streamer compatibility
|
||||||
const char *action;
|
const char *action; // Ditto
|
||||||
struct evkeyvalq args;
|
|
||||||
// End
|
|
||||||
|
|
||||||
PREPROCESS_REQUEST;
|
PREPROCESS_REQUEST;
|
||||||
|
|
||||||
// Variables to make mjpg_streamer compatibility
|
evhttp_parse_query(evhttp_request_get_uri(request), ¶ms);
|
||||||
evhttp_parse_query(evhttp_request_get_uri(request), &args);
|
action = evhttp_find_header(¶ms, "action");
|
||||||
action = evhttp_find_header(&args, "action");
|
|
||||||
if ( strcmp( action, "snapshot" ) == 0 ) {
|
|
||||||
_http_callback_snapshot(request, (void *)v_server);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if ( strcmp( action, "stream" ) == 0 ) {
|
|
||||||
_http_callback_stream(request, (void *)v_server);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// End
|
|
||||||
|
|
||||||
assert((buf = evbuffer_new()));
|
if (action && !strcmp(action, "snapshot")) {
|
||||||
assert(evbuffer_add_printf(buf, "%s", HTML_INDEX_PAGE));
|
_http_callback_snapshot(request, v_server);
|
||||||
ADD_HEADER("Content-Type", "text/html");
|
} else if (action && !strcmp(action, "stream")) {
|
||||||
evhttp_send_reply(request, HTTP_OK, "OK", buf);
|
_http_callback_stream(request, v_server);
|
||||||
evbuffer_free(buf);
|
} else {
|
||||||
|
assert((buf = evbuffer_new()));
|
||||||
|
assert(evbuffer_add_printf(buf, "%s", HTML_INDEX_PAGE));
|
||||||
|
ADD_HEADER("Content-Type", "text/html");
|
||||||
|
evhttp_send_reply(request, HTTP_OK, "OK", buf);
|
||||||
|
evbuffer_free(buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
evhttp_clear_headers(¶ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _http_callback_static(struct evhttp_request *request, void *v_server) {
|
static void _http_callback_static(struct evhttp_request *request, void *v_server) {
|
||||||
|
|||||||
Reference in New Issue
Block a user