Skip to content

Commit a3f1004

Browse files
authored
agent version (#178)
Signed-off-by: turuslan <[email protected]>
1 parent aa19623 commit a3f1004

6 files changed

Lines changed: 26 additions & 10 deletions

File tree

include/libp2p/host/basic_host/basic_host.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ namespace libp2p::host {
2828
std::unique_ptr<network::Network> network,
2929
std::unique_ptr<peer::PeerRepository> repo,
3030
std::shared_ptr<event::Bus> bus,
31-
std::shared_ptr<network::TransportManager> transport_manager);
31+
std::shared_ptr<network::TransportManager> transport_manager,
32+
Libp2pClientVersion libp2p_client_version);
3233

3334
std::string_view getLibp2pVersion() const override;
3435

@@ -93,6 +94,7 @@ namespace libp2p::host {
9394
std::unique_ptr<peer::PeerRepository> repo_;
9495
std::shared_ptr<event::Bus> bus_;
9596
std::shared_ptr<network::TransportManager> transport_manager_;
97+
Libp2pClientVersion libp2p_client_version_;
9698
};
9799

98100
} // namespace libp2p::host

include/libp2p/host/host.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
#include <libp2p/protocol/base_protocol.hpp>
2626

2727
namespace libp2p {
28+
struct Libp2pClientVersion {
29+
std::string version;
30+
};
31+
2832
/**
2933
* Main class, which represents single peer in p2p network.
3034
*

include/libp2p/injector/host_injector.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616
#include <libp2p/peer/protocol_repository/inmem_protocol_repository.hpp>
1717

1818
namespace libp2p::injector {
19+
inline auto useLibp2pClientVersion(Libp2pClientVersion version) {
20+
return boost::di::bind<Libp2pClientVersion>().to(
21+
std::move(version))[boost::di::override];
22+
}
1923

2024
template <typename InjectorConfig = BOOST_DI_CFG, typename... Ts>
2125
inline auto makeHostInjector(Ts &&...args) {
@@ -31,6 +35,8 @@ namespace libp2p::injector {
3135
di::bind<peer::KeyRepository>.template to<peer::InmemKeyRepository>(),
3236
di::bind<peer::ProtocolRepository>.template to<peer::InmemProtocolRepository>(),
3337

38+
di::bind<Libp2pClientVersion>.template to(Libp2pClientVersion{"cpp-libp2p"}),
39+
3440
di::bind<Host>.template to<host::BasicHost>(),
3541

3642
// user-defined overrides...

src/host/basic_host/basic_host.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@ namespace libp2p::host {
1616
std::unique_ptr<network::Network> network,
1717
std::unique_ptr<peer::PeerRepository> repo,
1818
std::shared_ptr<event::Bus> bus,
19-
std::shared_ptr<network::TransportManager> transport_manager)
20-
: idmgr_(std::move(idmgr)),
21-
network_(std::move(network)),
22-
repo_(std::move(repo)),
23-
bus_(std::move(bus)),
24-
transport_manager_(std::move(transport_manager)) {
19+
std::shared_ptr<network::TransportManager> transport_manager,
20+
Libp2pClientVersion libp2p_client_version)
21+
: idmgr_{std::move(idmgr)},
22+
network_{std::move(network)},
23+
repo_{std::move(repo)},
24+
bus_{std::move(bus)},
25+
transport_manager_{std::move(transport_manager)},
26+
libp2p_client_version_{std::move(libp2p_client_version)} {
2527
BOOST_ASSERT(idmgr_ != nullptr);
2628
BOOST_ASSERT(network_ != nullptr);
2729
BOOST_ASSERT(repo_ != nullptr);
@@ -34,7 +36,7 @@ namespace libp2p::host {
3436
}
3537

3638
std::string_view BasicHost::getLibp2pClientVersion() const {
37-
return "libp2p";
39+
return libp2p_client_version_.version;
3840
}
3941

4042
peer::PeerId BasicHost::getId() const {

test/acceptance/p2p/host/basic_host_test.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ struct BasicHostTest : public ::testing::Test {
4848
std::make_unique<network::NetworkMock>(),
4949
std::make_unique<peer::PeerRepositoryMock>(),
5050
std::make_shared<libp2p::event::Bus>(),
51-
std::make_shared<libp2p::network::TransportManagerMock>());
51+
std::make_shared<libp2p::network::TransportManagerMock>(),
52+
Libp2pClientVersion{});
5253

5354
peer::PeerRepositoryMock &repo =
5455
(peer::PeerRepositoryMock &)host->getPeerRepository();

test/acceptance/p2p/host/peer/test_peer.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,5 +206,6 @@ Peer::sptr<host::BasicHost> Peer::makeHost(const crypto::KeyPair &keyPair) {
206206
std::move(network),
207207
std::move(peer_repo),
208208
std::move(bus),
209-
std::move(tmgr));
209+
std::move(tmgr),
210+
Libp2pClientVersion{});
210211
}

0 commit comments

Comments
 (0)