get port from tox

This commit is contained in:
Green Sky 2024-03-10 20:34:30 +01:00
parent e8d8e10980
commit 3fb3b449c9
No known key found for this signature in database
4 changed files with 12 additions and 5 deletions

View File

@ -29,10 +29,11 @@ SOLANA_PLUGIN_EXPORT uint32_t solana_plugin_start(struct SolanaAPI* solana_api)
try {
// TODO: toxI
auto* tox_i = PLUG_RESOLVE_INSTANCE(ToxI);
// static store, could be anywhere tho
// construct with fetched dependencies
g_tox_upnp = std::make_unique<ToxUPnP>();
g_tox_upnp = std::make_unique<ToxUPnP>(*tox_i);
// register types
PLUG_PROVIDE_INSTANCE(ToxUPnP, plugin_name, g_tox_upnp.get());

View File

@ -13,5 +13,6 @@ target_include_directories(solanaceae_tox_upnp PUBLIC .)
target_compile_features(solanaceae_tox_upnp PUBLIC cxx_std_17)
target_link_libraries(solanaceae_tox_upnp PUBLIC
miniupnpc::miniupnpc
solanaceae_toxcore_interface
)

View File

@ -8,8 +8,13 @@
#include <iostream>
ToxUPnP::ToxUPnP(void) {
ToxUPnP::ToxUPnP(ToxI& tox) {
// get tox port
auto [port_opt, _] = tox.toxSelfGetUDPPort();
if (!port_opt.has_value()) {
return; // oof
}
_local_port = port_opt.value();
// start upnp thread
_thread = std::thread([this](void) {

View File

@ -4,16 +4,16 @@
#include <atomic>
#include <thread>
class ToxUPnP {
// TODO: ToxI& _t;
#include <solanaceae/toxcore/tox_interface.hpp>
class ToxUPnP {
uint16_t _local_port {33445};
std::atomic_bool _quit {false};
std::thread _thread;
public:
ToxUPnP(void);
ToxUPnP(ToxI& tox);
~ToxUPnP(void);
};