Switched httpserver.cpp to use RAII wrapped libevents.
This commit is contained in:
parent
02d64bd929
commit
fd369d267b
1 changed files with 8 additions and 16 deletions
|
@ -21,13 +21,13 @@
|
|||
#include <signal.h>
|
||||
#include <future>
|
||||
|
||||
#include <event2/event.h>
|
||||
#include <event2/http.h>
|
||||
#include <event2/thread.h>
|
||||
#include <event2/buffer.h>
|
||||
#include <event2/util.h>
|
||||
#include <event2/keyvalq_struct.h>
|
||||
|
||||
#include "support/events.h"
|
||||
|
||||
#ifdef EVENT__HAVE_NETINET_IN_H
|
||||
#include <netinet/in.h>
|
||||
#ifdef _XOPEN_SOURCE_EXTENDED
|
||||
|
@ -369,9 +369,6 @@ static void libevent_log_cb(int severity, const char *msg)
|
|||
|
||||
bool InitHTTPServer()
|
||||
{
|
||||
struct evhttp* http = 0;
|
||||
struct event_base* base = 0;
|
||||
|
||||
if (!InitHTTPAllowList())
|
||||
return false;
|
||||
|
||||
|
@ -398,17 +395,13 @@ bool InitHTTPServer()
|
|||
evthread_use_pthreads();
|
||||
#endif
|
||||
|
||||
base = event_base_new(); // XXX RAII
|
||||
if (!base) {
|
||||
LogPrintf("Couldn't create an event_base: exiting\n");
|
||||
return false;
|
||||
}
|
||||
raii_event_base base_ctr = obtain_event_base();
|
||||
|
||||
/* Create a new evhttp object to handle requests. */
|
||||
http = evhttp_new(base); // XXX RAII
|
||||
raii_evhttp http_ctr = obtain_evhttp(base_ctr.get());
|
||||
struct evhttp* http = http_ctr.get();
|
||||
if (!http) {
|
||||
LogPrintf("couldn't create evhttp. Exiting.\n");
|
||||
event_base_free(base);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -419,8 +412,6 @@ bool InitHTTPServer()
|
|||
|
||||
if (!HTTPBindAddresses(http)) {
|
||||
LogPrintf("Unable to bind any endpoint for RPC server\n");
|
||||
evhttp_free(http);
|
||||
event_base_free(base);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -429,8 +420,9 @@ bool InitHTTPServer()
|
|||
LogPrintf("HTTP: creating work queue of depth %d\n", workQueueDepth);
|
||||
|
||||
workQueue = new WorkQueue<HTTPClosure>(workQueueDepth);
|
||||
eventBase = base;
|
||||
eventHTTP = http;
|
||||
// tranfer ownership to eventBase/HTTP via .release()
|
||||
eventBase = base_ctr.release();
|
||||
eventHTTP = http_ctr.release();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue