From 9e7254f6fa820c1d174b1bab9c6bf848d6abc03f Mon Sep 17 00:00:00 2001 From: Stephen Shelton Date: Fri, 27 Mar 2020 10:38:50 -0600 Subject: [PATCH] Rip out pass-through-to-curl functionality --- daemon/CMakeLists.txt | 1 - daemon/lokinetctl.cpp | 106 +++++------------------------------------- 2 files changed, 12 insertions(+), 95 deletions(-) diff --git a/daemon/CMakeLists.txt b/daemon/CMakeLists.txt index bf3e540af..337918e5f 100644 --- a/daemon/CMakeLists.txt +++ b/daemon/CMakeLists.txt @@ -47,7 +47,6 @@ else() if(CURL_FOUND) target_include_directories(${CTL} PRIVATE ${CURL_INCLUDE_DIRS}) target_link_libraries(${CTL} PRIVATE ${CURL_LIBRARIES}) - target_compile_definitions(${CTL} PRIVATE -DWITH_CURL=1) endif(CURL_FOUND) endif(SHADOW) diff --git a/daemon/lokinetctl.cpp b/daemon/lokinetctl.cpp index e84b2ff86..e2d41902f 100644 --- a/daemon/lokinetctl.cpp +++ b/daemon/lokinetctl.cpp @@ -7,10 +7,6 @@ #include #include -#ifdef WITH_CURL -#include -#endif - namespace { bool @@ -35,92 +31,23 @@ namespace return true; } -#ifdef WITH_CURL - - size_t - curlCallback(void* contents, size_t size, size_t nmemb, void* userp) noexcept - { - auto* str = static_cast(userp); - size_t realsize = size * nmemb; - - char* asChar = static_cast(contents); - - std::copy(asChar, asChar + realsize, std::back_inserter(*str)); - - return realsize; - } - - bool - executeJsonRpc(const std::string& command, const std::string& configFile) - { - // Do init (on windows this will do socket initialisation) - curl_global_init(CURL_GLOBAL_ALL); - - llarp::Config config; - if(!config.Load(configFile.c_str(), false)) - { - llarp::LogError("Failed to load from config file: ", configFile); - return false; - } - - if (!config.api.enableRPCServer()) - { - llarp::LogError("Config does not have RPC enabled"); - return false; - } - - std::string address = config.api.rpcBindAddr() + "/jsonrpc"; - - const nlohmann::json request{ - {"method", command}, {"params", nlohmann::json::object()}, {"id", "foo"}}; - - const std::string requestStr = request.dump(); - - std::unique_ptr chunk( - curl_slist_append(nullptr, "content-type: application/json"), &curl_slist_free_all); - - std::unique_ptr curl(curl_easy_init(), &curl_easy_cleanup); - curl_easy_setopt(curl.get(), CURLOPT_URL, address.c_str()); - curl_easy_setopt(curl.get(), CURLOPT_POSTFIELDS, requestStr.c_str()); - curl_easy_setopt(curl.get(), CURLOPT_POSTFIELDSIZE, requestStr.size()); - curl_easy_setopt(curl.get(), CURLOPT_HTTPHEADER, chunk.get()); - - std::string result; - curl_easy_setopt(curl.get(), CURLOPT_WRITEFUNCTION, curlCallback); - curl_easy_setopt(curl.get(), CURLOPT_WRITEDATA, &result); - - auto res = curl_easy_perform(curl.get()); - if (res != CURLE_OK) - { - llarp::LogError("Failed to curl endpoint, ", curl_easy_strerror(res)); - return false; - } - - std::cout << result << "\n"; - - return true; - } -#endif } // namespace int main(int argc, char* argv[]) { - cxxopts::Options options( - "lokinetctl", - "LokiNET is a free, open source, private, " - "decentralized, \"market based sybil resistant\" " - "and IP based onion routing network"); - - options.add_options()("v,verbose", "Verbose", cxxopts::value())( - "h,help", "help", cxxopts::value())( - "c,config", - "config file", - cxxopts::value()->default_value(llarp::GetDefaultConfigPath().string())) -#ifdef WITH_CURL - ("j,jsonrpc", "hit json rpc endpoint", cxxopts::value()) -#endif - ("dump", "dump rc file", cxxopts::value>(), "FILE"); + cxxopts::Options options("lokinetctl", + "LokiNET is a free, open source, private, " + "decentralized, \"market based sybil resistant\" " + "and IP based onion routing network"); + + options.add_options()("v,verbose", "Verbose", cxxopts::value< bool >())( + "h,help", "help", cxxopts::value< bool >())( + "c,config", "config file", + cxxopts::value< std::string >()->default_value( + llarp::GetDefaultConfigPath().string())) + ("dump", "dump rc file", + cxxopts::value< std::vector< std::string > >(), "FILE"); try { @@ -154,15 +81,6 @@ main(int argc, char* argv[]) } } -#ifdef WITH_CURL - if (result.count("jsonrpc") > 0) - { - if (!executeJsonRpc(result["jsonrpc"].as(), result["config"].as())) - { - return 1; - } - } -#endif } catch (const cxxopts::OptionParseException& ex) {