diff --git a/include/opendht/crypto.h b/include/opendht/crypto.h index 284c6486b82635b517969fd28bbf0a240e2a7b68..82e53a3fbf7abf6d0991d3e0225d3cb9f8425dfd 100644 --- a/include/opendht/crypto.h +++ b/include/opendht/crypto.h @@ -127,7 +127,7 @@ struct OPENDHT_PUBLIC PublicKey p.pack_bin_body((const char*)b.data(), b.size()); } - void msgpack_unpack(msgpack::object o); + void msgpack_unpack(const msgpack::object& o); gnutls_digest_algorithm_t getPreferredDigest() const; @@ -225,7 +225,7 @@ public: p.pack_bin_body((const char*)b.data(), b.size()); } - void msgpack_unpack(msgpack::object o); + void msgpack_unpack(const msgpack::object& o); void revoke(const Certificate& crt, time_point t = time_point::min()); @@ -423,7 +423,7 @@ struct OPENDHT_PUBLIC Certificate { p.pack_bin_body((const char*)b.data(), b.size()); } - void msgpack_unpack(msgpack::object o); + void msgpack_unpack(const msgpack::object& o); explicit operator bool() const { return cert; } PublicKey getPublicKey() const; diff --git a/include/opendht/default_types.h b/include/opendht/default_types.h index 11a3c558ba91e38156e8b71d1e8c3f1d03db3b1d..e8027a021d8e5a9fb3c68ffd9fc937fbc7e4e7e7 100644 --- a/include/opendht/default_types.h +++ b/include/opendht/default_types.h @@ -189,7 +189,7 @@ public: #endif } - virtual void msgpack_unpack(msgpack::object o) + virtual void msgpack_unpack(const msgpack::object& o) { if (o.type != msgpack::type::ARRAY) throw msgpack::type_error(); if (o.via.array.size < 2) throw msgpack::type_error(); @@ -229,7 +229,7 @@ public: pk.pack_bin_body((const char*)addr.get(), addr.getLength()); } - virtual void msgpack_unpack(msgpack::object o) + virtual void msgpack_unpack(const msgpack::object& o) { if (o.type == msgpack::type::BIN) addr = {(sockaddr*)o.via.bin.ptr, (socklen_t)o.via.bin.size}; diff --git a/include/opendht/utils.h b/include/opendht/utils.h index 4df44f6bca6bdc856f746c465ebd111ae020b342..a8099547112bc3375d1f1fd6ac721462572b296a 100644 --- a/include/opendht/utils.h +++ b/include/opendht/utils.h @@ -133,7 +133,7 @@ using Blob = std::vector<uint8_t>; /** * Provides backward compatibility with msgpack 1.0 */ -OPENDHT_PUBLIC Blob unpackBlob(msgpack::object& o); +OPENDHT_PUBLIC Blob unpackBlob(const msgpack::object& o); template <typename Type> Blob diff --git a/include/opendht/value.h b/include/opendht/value.h index bf5b8b61657c1697b123fc282cb553ad187f8eed..5677d459050c5377ec3a42394f7c1ff5b04a8681 100644 --- a/include/opendht/value.h +++ b/include/opendht/value.h @@ -551,7 +551,7 @@ struct OPENDHT_PUBLIC Value } } - void msgpack_unpack(msgpack::object o); + void msgpack_unpack(const msgpack::object& o); void msgpack_unpack_body(const msgpack::object& o); Blob getPacked() const { msgpack::sbuffer buffer; @@ -658,7 +658,7 @@ struct OPENDHT_PUBLIC FieldValue } } - void msgpack_unpack(msgpack::object msg) { + void msgpack_unpack(const msgpack::object& msg) { hashValue = {}; blobValue.clear(); diff --git a/src/crypto.cpp b/src/crypto.cpp index 216253a5961f78c58783c7c193092bf59f9f5046..ba69b8e6030d2f101914a61bde73430bf7909f2c 100644 --- a/src/crypto.cpp +++ b/src/crypto.cpp @@ -447,7 +447,7 @@ PublicKey::toString() const } void -PublicKey::msgpack_unpack(msgpack::object o) +PublicKey::msgpack_unpack(const msgpack::object& o) { if (o.type == msgpack::type::BIN) unpack((const uint8_t*)o.via.bin.ptr, o.via.bin.size); @@ -792,7 +792,7 @@ Certificate::unpack(const uint8_t* dat, size_t dat_size) } void -Certificate::msgpack_unpack(msgpack::object o) +Certificate::msgpack_unpack(const msgpack::object& o) { if (o.type == msgpack::type::BIN) unpack((const uint8_t*)o.via.bin.ptr, o.via.bin.size); @@ -1252,7 +1252,7 @@ RevocationList::unpack(const uint8_t* dat, size_t dat_size) } void -RevocationList::msgpack_unpack(msgpack::object o) +RevocationList::msgpack_unpack(const msgpack::object& o) { try { if (o.type == msgpack::type::BIN) diff --git a/src/utils.cpp b/src/utils.cpp index 3d6576e912673a6f2f7bb64fd03f3e9a8896f64e..3067905ba5bd3a3b9b150cefe66df7bfc5fea981 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -246,7 +246,7 @@ std::time_t to_time_t(time_point t) { } Blob -unpackBlob(msgpack::object& o) { +unpackBlob(const msgpack::object& o) { switch (o.type) { case msgpack::type::BIN: return {o.via.bin.ptr, o.via.bin.ptr+o.via.bin.size}; diff --git a/src/value.cpp b/src/value.cpp index 7dc83fbab4bf37c3be7b6a3b9b001c02e7128a54..ed2a10d1a0f9a28e663b9cb4c38f2e5d6dcd5824 100644 --- a/src/value.cpp +++ b/src/value.cpp @@ -94,7 +94,7 @@ Value::size() const } void -Value::msgpack_unpack(msgpack::object o) +Value::msgpack_unpack(const msgpack::object& o) { if (o.type != msgpack::type::MAP) throw msgpack::type_error(); if (o.via.map.size < 2) throw msgpack::type_error();