diff --git a/c/opendht.cpp b/c/opendht.cpp index 9cbfd2b5c6af6ec87f897309e823500ad589118d..ee87e11e8524a68c7a114a04cb3af1c60e32cd18 100644 --- a/c/opendht.cpp +++ b/c/opendht.cpp @@ -168,7 +168,8 @@ void dht_runner_run_config(dht_runner* r, in_port_t port, const dht_runner_confi config.dht_config.node_config.maintain_storage = conf->dht_config.node_config.maintain_storage; config.dht_config.node_config.node_id = *reinterpret_cast<const dht::InfoHash*>(&conf->dht_config.node_config.node_id); config.dht_config.node_config.network = conf->dht_config.node_config.network; - config.dht_config.node_config.persist_path = conf->dht_config.node_config.persist_path; + config.dht_config.node_config.persist_path = conf->dht_config.node_config.persist_path + ? std::string(conf->dht_config.node_config.persist_path) : std::string{}; if (conf->dht_config.id.privkey) config.dht_config.id.first = *reinterpret_cast<const PrivkeySp*>(conf->dht_config.id.privkey); @@ -177,9 +178,9 @@ void dht_runner_run_config(dht_runner* r, in_port_t port, const dht_runner_confi config.dht_config.id.second = *reinterpret_cast<const CertSp*>(conf->dht_config.id.certificate); config.threaded = conf->threaded; - config.proxy_server = conf->proxy_server; - config.push_node_id = conf->push_node_id; - config.push_token = conf->push_token; + config.proxy_server = conf->proxy_server ? std::string(conf->proxy_server) : std::string{}; + config.push_node_id = conf->push_node_id ? std::string(conf->push_node_id) : std::string{}; + config.push_token = conf->push_token ? std::string(conf->push_token) : std::string{}; config.peer_discovery = conf->peer_discovery; config.peer_publish = conf->peer_publish; runner->run(port, config);