diff --git a/c/opendht.cpp b/c/opendht.cpp index 1f64268874630c222d022cf10689e3c503fb84f0..1c8f2e12db26542f4dcaf26e19eb183917e6acdc 100644 --- a/c/opendht.cpp +++ b/c/opendht.cpp @@ -76,7 +76,11 @@ bool dht_infohash_is_zero(const dht_infohash* h) { } void dht_infohash_from_hex(dht_infohash* h, const char* dat) { - *h = dht_infohash_to_c(dht::InfoHash(std::string(dat, HASH_LEN*2))); + *h = dht_infohash_to_c(dht::InfoHash(std::string_view(dat, HASH_LEN*2))); +} + +void dht_infohash_from_hex_null(dht_infohash* h, const char* dat) { + *h = dht_infohash_to_c(dht::InfoHash(std::string_view(dat))); } const char* dht_pkid_print(const dht_pkid* h) { diff --git a/c/opendht_c.h b/c/opendht_c.h index 7569c3bad6430f5c76ca28673305acc6030befe1..a07830fc1a76fc45e8a4cf5c4b8a63c41c894e9c 100644 --- a/c/opendht_c.h +++ b/c/opendht_c.h @@ -50,6 +50,7 @@ typedef struct dht_infohash dht_infohash; OPENDHT_C_PUBLIC void dht_infohash_zero(dht_infohash* h); OPENDHT_C_PUBLIC void dht_infohash_random(dht_infohash* h); OPENDHT_C_PUBLIC void dht_infohash_from_hex(dht_infohash* h, const char* dat); +OPENDHT_C_PUBLIC void dht_infohash_from_hex_null(dht_infohash* h, const char* dat); OPENDHT_C_PUBLIC void dht_infohash_get(dht_infohash* h, const uint8_t* dat, size_t dat_size); OPENDHT_C_PUBLIC void dht_infohash_get_from_string(dht_infohash* h, const char* str); OPENDHT_C_PUBLIC const char* dht_infohash_print(const dht_infohash* h);