From 2a72277194ddc52ad7df8897b400c7b825f813b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Mon, 21 Oct 2019 14:19:29 -0400 Subject: [PATCH] c wrapper: add dht_runner_get_id, get_node_id --- c/opendht.cpp | 20 ++++++++++++++++++-- c/opendht_c.h | 2 ++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/c/opendht.cpp b/c/opendht.cpp index 6c5d77fc..0524a72e 100644 --- a/c/opendht.cpp +++ b/c/opendht.cpp @@ -95,14 +95,16 @@ int dht_publickey_pack(dht_publickey* pk, char* out, size_t* outlen) { } dht_infohash dht_publickey_get_id(const dht_publickey* pk) { + auto pkey = reinterpret_cast<const dht::crypto::PublicKey*>(pk); dht_infohash h; - *reinterpret_cast<dht::InfoHash*>(&h) = reinterpret_cast<const dht::crypto::PublicKey*>(pk)->getId(); + *reinterpret_cast<dht::InfoHash*>(&h) = pkey->getId(); return h; } dht_pkid dht_publickey_get_long_id(const dht_publickey* pk) { + auto pkey = reinterpret_cast<const dht::crypto::PublicKey*>(pk); dht_pkid h; - *reinterpret_cast<dht::PkId*>(&h) = reinterpret_cast<const dht::crypto::PublicKey*>(pk)->getLongId(); + *reinterpret_cast<dht::PkId*>(&h) = pkey->getLongId(); return h; } @@ -278,6 +280,20 @@ void dht_runner_shutdown(dht_runner* r, dht_shutdown_cb done_cb, void* cb_user_d }); } +dht_infohash dht_runner_get_node_id(const dht_runner* r) { + auto runner = reinterpret_cast<const dht::DhtRunner*>(r); + dht_infohash ret; + *reinterpret_cast<dht::InfoHash*>(&ret) = runner->getNodeId(); + return ret; +} + +dht_infohash dht_runner_get_id(const dht_runner* r) { + auto runner = reinterpret_cast<const dht::DhtRunner*>(r); + dht_infohash ret; + *reinterpret_cast<dht::InfoHash*>(&ret) = runner->getId(); + return ret; +} + #ifdef __cplusplus } #endif diff --git a/c/opendht_c.h b/c/opendht_c.h index c70bee4e..d142aab9 100644 --- a/c/opendht_c.h +++ b/c/opendht_c.h @@ -135,6 +135,8 @@ OPENDHT_C_PUBLIC void dht_runner_put(dht_runner* runner, const dht_infohash* has OPENDHT_C_PUBLIC void dht_runner_put_permanent(dht_runner* runner, const dht_infohash* hash, const dht_value* value, dht_done_cb done_cb, void* cb_user_data); 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); +OPENDHT_C_PUBLIC dht_infohash dht_runner_get_id(const dht_runner* runner); #ifdef __cplusplus } -- GitLab