diff --git a/c/opendht.cpp b/c/opendht.cpp index 7b8018116f8e91ce1996432ec7e65fe4190906bf..16c79a5d9acb25dcf9c942cd998a9abd35f18120 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 7a782800b8c4f962dd402797a1356f8a61b8557a..fd102f279b2230a0e9e3021b6d07cdddebd6b1ea 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);