diff --git a/CMakeLists.txt b/CMakeLists.txt index e810da75979105512819052f095816b83470584b..05e279e28c28171f8a0f64a58bec8c1758d2178b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -109,9 +109,6 @@ endif () if (Restinio_INCLUDE_DIR) include_directories (SYSTEM "${Restinio_INCLUDE_DIR}") endif () -if (Restbed_INCLUDE_DIR) - include_directories (SYSTEM "${Restbed_INCLUDE_DIR}") -endif () if (Jsoncpp_INCLUDE_DIRS) include_directories (SYSTEM "${Jsoncpp_INCLUDE_DIRS}") endif () @@ -266,7 +263,7 @@ if (OPENDHT_STATIC) target_include_directories(opendht-static SYSTEM PRIVATE ${argon2_INCLUDE_DIRS}) endif () target_link_libraries(opendht-static - PRIVATE ${Restbed_LIBRARY} ${argon2_LIBRARIES} + PRIVATE ${argon2_LIBRARIES} PUBLIC ${CMAKE_THREAD_LIBS_INIT} ${GNUTLS_LIBRARIES} ${Nettle_LIBRARIES} ${Jsoncpp_LIBRARIES} ${FMT_LIBRARY} ${HTTP_PARSER_LIBRARY}) install (TARGETS opendht-static DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT opendht) @@ -288,7 +285,7 @@ if (OPENDHT_SHARED) endif () target_link_libraries(opendht PRIVATE ${CMAKE_THREAD_LIBS_INIT} ${GNUTLS_LIBRARIES} ${Nettle_LIBRARIES} - ${Restbed_LIBRARY} ${Jsoncpp_LIBRARIES} + ${Jsoncpp_LIBRARIES} ${FMT_LIBRARY} ${HTTP_PARSER_LIBRARY}) install (TARGETS opendht DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT opendht) diff --git a/cmake/FindRestbed.cmake b/cmake/FindRestbed.cmake deleted file mode 100644 index bdf58b818e7aad85edf88384bc161072503cd9d5..0000000000000000000000000000000000000000 --- a/cmake/FindRestbed.cmake +++ /dev/null @@ -1,16 +0,0 @@ -if(NOT Restbed_FOUND) - find_path (Restbed_INCLUDE_DIR restbed - HINTS - "/usr/include" - "/usr/local/include" - "/opt/local/include") - find_library(Restbed_LIBRARY restbed - HINTS ${Restbed_ROOT_DIR} PATH_SUFFIXES lib) - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(Restbed DEFAULT_MSG Restbed_LIBRARY Restbed_INCLUDE_DIR) - if (Restbed_INCLUDE_DIR) - set(Restbed_FOUND TRUE) - set(Restbed_LIBRARIES ${Restbed_LIBRARY}) - set(Restbed_INCLUDE_DIRS ${Restbed_INCLUDE_DIR}) - endif() -endif() diff --git a/configure.ac b/configure.ac index f18842e648ed24ce5012245bb7b52f7e7c0d6a69..ea0aa95dbdf2429fe89251130c413e3246970d84 100644 --- a/configure.ac +++ b/configure.ac @@ -142,8 +142,8 @@ AS_IF([test "x$have_jsoncpp" = "xyes"], [ ]) AM_COND_IF([PROXY_CLIENT_OR_SERVER], [ - AC_CHECK_LIB(restbed, exit,, AC_MSG_ERROR([Missing restbed files])) - LDFLAGS="${LDFLAGS} -lrestbed" + #AC_CHECK_LIB(<libname>, exit,, AC_MSG_ERROR([Missing <libname> files])) + #LDFLAGS="${LDFLAGS} -l<libname>" ]) CXXFLAGS="${CXXFLAGS} -DMSGPACK_DISABLE_LEGACY_NIL -DMSGPACK_DISABLE_LEGACY_CONVERT" diff --git a/docker/DockerfileDeps b/docker/DockerfileDeps index 0af9f19684dee39c52a5de22c9e61f289f8fed0a..0f2636073e115e9f562741f5a4a1ecbde3d9a2bd 100644 --- a/docker/DockerfileDeps +++ b/docker/DockerfileDeps @@ -2,13 +2,6 @@ FROM ubuntu:16.04 MAINTAINER Adrien Béraud <adrien.beraud@savoirfairelinux.com> RUN apt-get update && apt-get install -y build-essential cmake git wget libncurses5-dev libreadline-dev nettle-dev libgnutls28-dev libuv1-dev cython3 python3-dev libcppunit-dev libjsoncpp-dev libasio-dev libssl-dev python3-setuptools && apt-get clean -# build restbed from sources -RUN git clone --recursive https://github.com/corvusoft/restbed.git \ - && cd restbed && mkdir build && cd build \ - && cmake -DBUILD_TESTS=NO -DBUILD_EXAMPLES=NO -DBUILD_SSL=NO -DBUILD_SHARED=YES -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib .. \ - && make -j8 install \ - && cd .. && rm -rf restbed - #build msgpack from source RUN wget https://github.com/msgpack/msgpack-c/releases/download/cpp-2.1.5/msgpack-2.1.5.tar.gz \ && tar -xzf msgpack-2.1.5.tar.gz \ diff --git a/src/dht_proxy_client.cpp b/src/dht_proxy_client.cpp index 854cd1b10f83e57d4ad738485d9b8ecff21a4d59..b8b78ddc11e9bf3e68c04b3ab2e88f29351752ff 100644 --- a/src/dht_proxy_client.cpp +++ b/src/dht_proxy_client.cpp @@ -40,13 +40,13 @@ struct DhtProxyClient::Listener OpValueCache cache; ValueCallback cb; Value::Filter filter; - Sp<restbed::Request> req; + //Sp<restbed::Request> req; std::thread thread; unsigned callbackId; Sp<ListenState> state; Sp<Scheduler::Job> refreshJob; - Listener(OpValueCache&& c, const Sp<restbed::Request>& r, Value::Filter&& f) - : cache(std::move(c)), filter(std::move(f)),req(r) {} + Listener(OpValueCache&& c, /*const Sp<restbed::Request>& r*/ Value::Filter&& f) + : cache(std::move(c)), filter(std::move(f))/*,req(r)*/ {} }; struct PermanentPut { @@ -149,6 +149,7 @@ DhtProxyClient::cancelAllListeners() { std::lock_guard<std::mutex> lock(searchLock_); DHT_LOG.w("Cancelling all listeners for %zu searches", searches_.size()); + /* for (auto& s: searches_) { s.second.ops.cancelAll([&](size_t token){ auto l = s.second.listeners.find(token); @@ -159,7 +160,7 @@ DhtProxyClient::cancelAllListeners() l->second.state->cancel = true; if (l->second.req) { try { - restbed::Http::close(l->second.req); + //restbed::Http::close(l->second.req); } catch (const std::exception& e) { DHT_LOG.w("Error closing socket: %s", e.what()); } @@ -170,6 +171,7 @@ DhtProxyClient::cancelAllListeners() s.second.listeners.erase(token); }); } + */ } void @@ -505,6 +507,7 @@ DhtProxyClient::getProxyInfos() } statusThread_ = std::thread([this, serverHost, infoState]{ try { + /* auto endpointStr = serverHost; auto protocol = std::string(proxy::HTTP_PROTO); auto protocolIdx = serverHost.find("://"); @@ -560,6 +563,7 @@ DhtProxyClient::getProxyInfos() for (auto& r : reqs) r.get(); reqs.clear(); + */ } catch (const std::exception& e) { DHT_LOG.e("Error sending proxy info request: %s", e.what()); } @@ -833,6 +837,7 @@ DhtProxyClient::doCancelListen(const InfoHash& key, size_t ltoken) listener.state->cancel = true; if (not deviceKey_.empty()) { // First, be sure to have a token + /* if (listener.thread.joinable()) { listener.thread.join(); } @@ -856,7 +861,9 @@ DhtProxyClient::doCancelListen(const InfoHash& key, size_t ltoken) } catch (const std::exception& e) { DHT_LOG.w(key, "[search %s] cancelListen: Http::async failed: %s", key.to_c_str(), e.what()); } + */ } else { + /* // Just stop the request if (listener.thread.joinable()) { // Close connection to stop listener @@ -870,6 +877,7 @@ DhtProxyClient::doCancelListen(const InfoHash& key, size_t ltoken) } listener.thread.join(); } + */ } search->second.listeners.erase(it); DHT_LOG.d(key, "[search %s] cancelListen: %zu listener remaining", key.to_c_str(), search->second.listeners.size()); @@ -932,16 +940,19 @@ DhtProxyClient::restartListeners() auto& listener = l.second; if (auto state = listener.state) state->cancel = true; + /* if (listener.req) { try { - restbed::Http::close(listener.req); + //restbed::Http::close(listener.req); } catch (const std::exception& e) { DHT_LOG.w("Error closing socket: %s", e.what()); } listener.req.reset(); } + */ } } + /* for (auto& search: searches_) { for (auto& l: search.second.listeners) { auto& listener = l.second; @@ -963,6 +974,7 @@ DhtProxyClient::restartListeners() }); } } + */ } void @@ -1057,12 +1069,13 @@ DhtProxyClient::resubscribe(const InfoHash& key, Listener& listener) scheduler.syncTime(); DHT_LOG.d(key, "[search %s] resubscribe push listener", key.to_c_str()); // Subscribe + /* auto state = listener.state; if (listener.thread.joinable()) { state->cancel = true; if (listener.req) { try { - restbed::Http::close(listener.req); + //restbed::Http::close(listener.req); } catch (const std::exception& e) { DHT_LOG.w("Error closing socket: %s", e.what()); } @@ -1072,6 +1085,7 @@ DhtProxyClient::resubscribe(const InfoHash& key, Listener& listener) } state->cancel = false; state->ok = true; + auto req = std::make_shared<restbed::Request>(restbed::Uri {serverHost_ + "/" + key.toString()}); req->set_method("SUBSCRIBE"); listener.req = req; @@ -1081,6 +1095,7 @@ DhtProxyClient::resubscribe(const InfoHash& key, Listener& listener) listener.thread = std::thread([this, req, vcb, filter, state]() { //sendListen(req, vcb, filter, state, ListenMethod::RESUBSCRIBE); }); + */ #else (void) key; (void) listener;