diff --git a/libretroshare/src/pqi/p3peermgr.cc b/libretroshare/src/pqi/p3peermgr.cc index 331d974b2..9c30aef2f 100644 --- a/libretroshare/src/pqi/p3peermgr.cc +++ b/libretroshare/src/pqi/p3peermgr.cc @@ -1701,7 +1701,8 @@ bool p3PeerMgrIMPL::loadList(std::list<RsItem *>& load) if (pitem->netMode == RS_NET_MODE_HIDDEN) { - /* set only the hidden stuff */ + /* set only the hidden stuff & localAddress */ + setLocalAddress(pitem->pid, pitem->localAddrV4.addr); setHiddenDomainPort(pitem->pid, pitem->domain_addr, pitem->domain_port); } diff --git a/retroshare-gui/src/gui/settings/ServerPage.cpp b/retroshare-gui/src/gui/settings/ServerPage.cpp index 752887f3e..335827c27 100755 --- a/retroshare-gui/src/gui/settings/ServerPage.cpp +++ b/retroshare-gui/src/gui/settings/ServerPage.cpp @@ -603,9 +603,14 @@ void ServerPage::saveAddressesHiddenNode() rsPeers->setVisState(ownId, vs_disc, vs_dht); // Work out what we do with addresses! - //rsPeers->setLocalAddress(ownId, ui.localAddress->text().toStdString(), ui.localPort->value()); //rsPeers->setExtAddress(ownId, ui.extAddress->text().toStdString(), ui.extPort->value()); + if (detail.localPort != ui.localPort->value()) + { + // Set Local Address - force to 127.0.0.1 + rsPeers->setLocalAddress(ownId, "127.0.0.1", ui.localPort->value()); + } + std::string hiddenAddr = ui.extAddress->text().toStdString(); uint16_t hiddenPort = ui.extPort->value(); if ((hiddenAddr != detail.hiddenNodeAddress) || (hiddenPort != detail.hiddenNodePort))