From 1ed45cdcf96e6f06969dff63cb9c884accb261a3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Tue, 12 Apr 2022 15:22:13 -0400
Subject: [PATCH] c: support log to stdout/stderr

---
 c/opendht.cpp | 11 +++++++++--
 c/opendht_c.h |  1 +
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/c/opendht.cpp b/c/opendht.cpp
index 087ba3c8..e5150315 100644
--- a/c/opendht.cpp
+++ b/c/opendht.cpp
@@ -17,7 +17,9 @@
  */
 
 #include "opendht_c.h"
-#include "opendht.h"
+
+#include <opendht.h>
+#include <opendht/log.h>
 
 using ValueSp = std::shared_ptr<dht::Value>;
 using PrivkeySp = std::shared_ptr<dht::crypto::PrivateKey>;
@@ -333,7 +335,12 @@ int dht_runner_run_config(dht_runner* r, in_port_t port, const dht_runner_config
         config.push_token = conf->push_token ? std::string(conf->push_token) : std::string{};
         config.peer_discovery = conf->peer_discovery;
         config.peer_publish = conf->peer_publish;
-        runner->run(port, config);
+
+        dht::DhtRunner::Context context;
+        if (conf->log) {
+            context.logger = dht::log::getStdLogger();
+        }
+        runner->run(port, config, std::move(context));
     } catch(...) {
         return ENOTCONN;
     }
diff --git a/c/opendht_c.h b/c/opendht_c.h
index 4b3bb729..a29c2102 100644
--- a/c/opendht_c.h
+++ b/c/opendht_c.h
@@ -147,6 +147,7 @@ struct OPENDHT_PUBLIC dht_runner_config {
     bool peer_publish;
     dht_certificate* server_ca;
     dht_identity client_identity;
+    bool log;
 };
 typedef struct dht_runner_config dht_runner_config;
 OPENDHT_C_PUBLIC void dht_runner_config_default(dht_runner_config* config);
-- 
GitLab