From ef8df74bd538a38c2bf837576819f9256a5a72db Mon Sep 17 00:00:00 2001 From: Sergey Linev <S.Linev@gsi.de> Date: Tue, 23 Aug 2016 15:59:17 +0200 Subject: [PATCH] http: adjust to new civetweb API Signed-off-by: Sergey Linev <S.Linev@gsi.de> Signed-off-by: Bertrand Bellenot <bertrand.bellenot@cern.ch> --- net/http/src/TCivetweb.cxx | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/net/http/src/TCivetweb.cxx b/net/http/src/TCivetweb.cxx index 6d384dcb9b8..26a8c4c7a5b 100644 --- a/net/http/src/TCivetweb.cxx +++ b/net/http/src/TCivetweb.cxx @@ -27,15 +27,15 @@ static int log_message_handler(const struct mg_connection *conn, const char *mes } -static int begin_request_handler(struct mg_connection *conn) +static int begin_request_handler(struct mg_connection *conn, void*) { - TCivetweb *engine = (TCivetweb *) mg_get_request_info(conn)->user_data; + const struct mg_request_info *request_info = mg_get_request_info(conn); + + TCivetweb *engine = (TCivetweb *) request_info->user_data; if (engine == 0) return 0; THttpServer *serv = engine->GetServer(); if (serv == 0) return 0; - const struct mg_request_info *request_info = mg_get_request_info(conn); - THttpCallArg arg; TString filename; @@ -242,7 +242,7 @@ Bool_t TCivetweb::Create(const char *args) { fCallbacks = malloc(sizeof(struct mg_callbacks)); memset(fCallbacks, 0, sizeof(struct mg_callbacks)); - ((struct mg_callbacks *) fCallbacks)->begin_request = begin_request_handler; + //((struct mg_callbacks *) fCallbacks)->begin_request = begin_request_handler; ((struct mg_callbacks *) fCallbacks)->log_message = log_message_handler; TString sport = "8080"; TString num_threads = "5"; @@ -315,6 +315,18 @@ Bool_t TCivetweb::Create(const char *args) // Start the web server. fCtx = mg_start((struct mg_callbacks *) fCallbacks, this, options); - return fCtx != 0; + if (fCtx == 0) return kFALSE; + + mg_set_request_handler((struct mg_context *) fCtx, "/", begin_request_handler, 0); + + mg_set_websocket_handler((struct mg_context *) fCtx, + "**root.websocket$", + websocket_connect_handler, + websocket_ready_handler, + websocket_data_handler, + websocket_close_handler, + 0); + + return kTRUE; } -- GitLab