Browse Source

Set BCLog::LIBEVENT correctly for old libevent versions.

0.15
John Newbery 8 years ago
parent
commit
4d9950d3bc
  1. 28
      src/httpserver.cpp
  2. 4
      src/httpserver.h

28
src/httpserver.cpp

@ -384,15 +384,13 @@ bool InitHTTPServer()
// Redirect libevent's logging to our own log // Redirect libevent's logging to our own log
event_set_log_callback(&libevent_log_cb); event_set_log_callback(&libevent_log_cb);
#if LIBEVENT_VERSION_NUMBER >= 0x02010100 // Update libevent's log handling. Returns false if our version of
// If -debug=libevent, set full libevent debugging. // libevent doesn't support debug logging, in which case we should
// Otherwise, disable all libevent debugging. // clear the BCLog::LIBEVENT flag.
if (LogAcceptCategory(BCLog::LIBEVENT)) { if (!UpdateHTTPServerLogging(logCategories & BCLog::LIBEVENT)) {
event_enable_debug_logging(EVENT_DBG_ALL); logCategories &= ~BCLog::LIBEVENT;
} else {
event_enable_debug_logging(EVENT_DBG_NONE);
} }
#endif
#ifdef WIN32 #ifdef WIN32
evthread_use_windows_threads(); evthread_use_windows_threads();
#else #else
@ -435,6 +433,20 @@ bool InitHTTPServer()
return true; return true;
} }
bool UpdateHTTPServerLogging(bool enable) {
#if LIBEVENT_VERSION_NUMBER >= 0x02010100
if (enable) {
event_enable_debug_logging(EVENT_DBG_ALL);
} else {
event_enable_debug_logging(EVENT_DBG_NONE);
}
return true;
#else
// Can't update libevent logging if version < 02010100
return false;
#endif
}
std::thread threadHTTP; std::thread threadHTTP;
std::future<bool> threadResult; std::future<bool> threadResult;

4
src/httpserver.h

@ -32,6 +32,10 @@ void InterruptHTTPServer();
/** Stop HTTP server */ /** Stop HTTP server */
void StopHTTPServer(); void StopHTTPServer();
/** Change logging level for libevent. Removes BCLog::LIBEVENT from logCategories if
* libevent doesn't support debug logging.*/
bool UpdateHTTPServerLogging(bool enable);
/** Handler for requests to a certain HTTP path */ /** Handler for requests to a certain HTTP path */
typedef std::function<bool(HTTPRequest* req, const std::string &)> HTTPRequestHandler; typedef std::function<bool(HTTPRequest* req, const std::string &)> HTTPRequestHandler;
/** Register handler for prefix. /** Register handler for prefix.

Loading…
Cancel
Save