mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-02-18 05:44:14 -05:00
suppressed memory leak in construction of RsDiscReply packet
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3973 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
920ebe3a5a
commit
a1154b6935
@ -220,15 +220,15 @@ int p3disc::handleIncoming()
|
||||
/************* from pqiMonitor *******************/
|
||||
void p3disc::statusChange(const std::list<pqipeer> &plist)
|
||||
{
|
||||
#ifdef P3DISC_DEBUG
|
||||
#ifdef P3DISC_DEBUG
|
||||
std::cerr << "p3disc::statusChange()" << std::endl;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
std::list<pqipeer>::const_iterator pit;
|
||||
/* if any have switched to 'connected' then we notify */
|
||||
for(pit = plist.begin(); pit != plist.end(); pit++)
|
||||
for(pit = plist.begin(); pit != plist.end(); pit++)
|
||||
{
|
||||
if ((pit->state & RS_PEER_S_FRIEND) && (pit->actions & RS_PEER_CONNECTED))
|
||||
if ((pit->state & RS_PEER_S_FRIEND) && (pit->actions & RS_PEER_CONNECTED))
|
||||
{
|
||||
#ifdef P3DISC_DEBUG
|
||||
std::cerr << "p3disc::statusChange() Starting Disc with: " << pit->id << std::endl;
|
||||
@ -268,7 +268,10 @@ void p3disc::sendAllInfoToJustConnectedPeer(const std::string &id)
|
||||
|
||||
RsPeerDetails pd;
|
||||
rsPeers->getPeerDetails(id, pd);
|
||||
if (!pd.accept_connection || (!pd.ownsign && pd.gpg_id != rsPeers->getGPGOwnId())) { //only send info when connection is accepted and gpg key is signed or our own key
|
||||
|
||||
if (!pd.accept_connection || (!pd.ownsign && pd.gpg_id != rsPeers->getGPGOwnId()))
|
||||
{
|
||||
//only send info when connection is accepted and gpg key is signed or our own key
|
||||
#ifdef P3DISC_DEBUG
|
||||
std::cerr << "p3disc::sendAllInfoToJustConnectedPeer() we're not sending the info because the destination gpg key is not signed or not accepted." << std::cerr << std::endl;
|
||||
#endif
|
||||
@ -417,23 +420,23 @@ RsDiscReply *p3disc::createDiscReply(const std::string &to, const std::string &a
|
||||
std::cerr << std::endl;
|
||||
#endif
|
||||
shouldWeSendGPGKey = true;
|
||||
RsPeerNetItem *rsPeerNetItem = new RsPeerNetItem();
|
||||
rsPeerNetItem->clear();
|
||||
RsPeerNetItem rsPeerNetItem ;
|
||||
rsPeerNetItem.clear();
|
||||
|
||||
rsPeerNetItem->pid = detail.id;
|
||||
rsPeerNetItem->gpg_id = detail.gpg_id;
|
||||
rsPeerNetItem->location = detail.location;
|
||||
rsPeerNetItem->netMode = detail.netMode;
|
||||
rsPeerNetItem->visState = detail.visState;
|
||||
rsPeerNetItem->lastContact = detail.lastcontact;
|
||||
rsPeerNetItem->currentlocaladdr = detail.currentlocaladdr;
|
||||
rsPeerNetItem->currentremoteaddr = detail.currentserveraddr;
|
||||
rsPeerNetItem->dyndns = detail.dyndns;
|
||||
detail.ipAddrs.mLocal.loadTlv(rsPeerNetItem->localAddrList);
|
||||
detail.ipAddrs.mExt.loadTlv(rsPeerNetItem->extAddrList);
|
||||
rsPeerNetItem.pid = detail.id;
|
||||
rsPeerNetItem.gpg_id = detail.gpg_id;
|
||||
rsPeerNetItem.location = detail.location;
|
||||
rsPeerNetItem.netMode = detail.netMode;
|
||||
rsPeerNetItem.visState = detail.visState;
|
||||
rsPeerNetItem.lastContact = detail.lastcontact;
|
||||
rsPeerNetItem.currentlocaladdr = detail.currentlocaladdr;
|
||||
rsPeerNetItem.currentremoteaddr = detail.currentserveraddr;
|
||||
rsPeerNetItem.dyndns = detail.dyndns;
|
||||
detail.ipAddrs.mLocal.loadTlv(rsPeerNetItem.localAddrList);
|
||||
detail.ipAddrs.mExt.loadTlv(rsPeerNetItem.extAddrList);
|
||||
|
||||
|
||||
di->rsPeerList.push_back(*rsPeerNetItem);
|
||||
di->rsPeerList.push_back(rsPeerNetItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -452,22 +455,21 @@ RsDiscReply *p3disc::createDiscReply(const std::string &to, const std::string &a
|
||||
if (mConnMgr->getOwnNetStatus(detail))
|
||||
{
|
||||
shouldWeSendGPGKey = true;
|
||||
RsPeerNetItem *rsPeerNetItem = new RsPeerNetItem();
|
||||
rsPeerNetItem->clear();
|
||||
rsPeerNetItem->pid = detail.id;
|
||||
rsPeerNetItem->gpg_id = detail.gpg_id;
|
||||
rsPeerNetItem->location = detail.location;
|
||||
rsPeerNetItem->netMode = detail.netMode;
|
||||
rsPeerNetItem->visState = detail.visState;
|
||||
rsPeerNetItem->lastContact = time(NULL);
|
||||
rsPeerNetItem->currentlocaladdr = detail.currentlocaladdr;
|
||||
rsPeerNetItem->currentremoteaddr = detail.currentserveraddr;
|
||||
rsPeerNetItem->dyndns = detail.dyndns;
|
||||
detail.ipAddrs.mLocal.loadTlv(rsPeerNetItem->localAddrList);
|
||||
detail.ipAddrs.mExt.loadTlv(rsPeerNetItem->extAddrList);
|
||||
RsPeerNetItem rsPeerNetItem ;
|
||||
rsPeerNetItem.clear();
|
||||
rsPeerNetItem.pid = detail.id;
|
||||
rsPeerNetItem.gpg_id = detail.gpg_id;
|
||||
rsPeerNetItem.location = detail.location;
|
||||
rsPeerNetItem.netMode = detail.netMode;
|
||||
rsPeerNetItem.visState = detail.visState;
|
||||
rsPeerNetItem.lastContact = time(NULL);
|
||||
rsPeerNetItem.currentlocaladdr = detail.currentlocaladdr;
|
||||
rsPeerNetItem.currentremoteaddr = detail.currentserveraddr;
|
||||
rsPeerNetItem.dyndns = detail.dyndns;
|
||||
detail.ipAddrs.mLocal.loadTlv(rsPeerNetItem.localAddrList);
|
||||
detail.ipAddrs.mExt.loadTlv(rsPeerNetItem.extAddrList);
|
||||
|
||||
|
||||
di->rsPeerList.push_back(*rsPeerNetItem);
|
||||
di->rsPeerList.push_back(rsPeerNetItem);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user