From 142aee12a742009bde01b8bbfcce43d53bfba50f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Mon, 28 Oct 2019 17:43:00 -0400
Subject: [PATCH] c wrapper: add support for putEncrypted

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

diff --git a/c/opendht.cpp b/c/opendht.cpp
index 7b801811..16c79a5d 100644
--- a/c/opendht.cpp
+++ b/c/opendht.cpp
@@ -361,6 +361,17 @@ void dht_runner_put_signed(dht_runner* r, const dht_infohash* h, const dht_value
     }, permanent);
 }
 
+void dht_runner_put_encrypted(dht_runner* r, const dht_infohash* h, const dht_infohash* to, const dht_value* v, dht_done_cb done_cb, void* cb_user_data, bool permanent) {
+    auto runner = reinterpret_cast<dht::DhtRunner*>(r);
+    auto hash = reinterpret_cast<const dht::InfoHash*>(h);
+    auto toHash = reinterpret_cast<const dht::InfoHash*>(to);
+    auto value = reinterpret_cast<const ValueSp*>(v);
+    runner->putEncrypted(*hash, *toHash, *value, [done_cb, cb_user_data](bool ok){
+        if (done_cb)
+            done_cb(ok, cb_user_data);
+    }, permanent);
+}
+
 void dht_runner_cancel_put(dht_runner* r, const dht_infohash* h, dht_value_id value_id) {
     auto runner = reinterpret_cast<dht::DhtRunner*>(r);
     auto hash = reinterpret_cast<const dht::InfoHash*>(h);
diff --git a/c/opendht_c.h b/c/opendht_c.h
index 7a782800..fd102f27 100644
--- a/c/opendht_c.h
+++ b/c/opendht_c.h
@@ -143,6 +143,7 @@ OPENDHT_C_PUBLIC dht_op_token* dht_runner_listen(dht_runner* runner, const dht_i
 OPENDHT_C_PUBLIC void dht_runner_cancel_listen(dht_runner* runner, const dht_infohash* hash, dht_op_token* token);
 OPENDHT_C_PUBLIC void dht_runner_put(dht_runner* runner, const dht_infohash* hash, const dht_value* value, dht_done_cb done_cb, void* cb_user_data, bool permanent);
 OPENDHT_C_PUBLIC void dht_runner_put_signed(dht_runner* runner, const dht_infohash* hash, const dht_value* value, dht_done_cb done_cb, void* cb_user_data, bool permanent);
+OPENDHT_C_PUBLIC void dht_runner_put_encrypted(dht_runner* runner, const dht_infohash* hash, const dht_infohash* to, const dht_value* value, dht_done_cb done_cb, void* cb_user_data, bool permanent);
 OPENDHT_C_PUBLIC void dht_runner_cancel_put(dht_runner* runner, const dht_infohash* hash, dht_value_id value_id);
 OPENDHT_C_PUBLIC void dht_runner_shutdown(dht_runner* runner, dht_shutdown_cb done_cb, void* cb_user_data);
 OPENDHT_C_PUBLIC dht_infohash dht_runner_get_node_id(const dht_runner* runner);
-- 
GitLab