improving safe upnp shutdown

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1771 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
joss17 2009-10-30 00:42:13 +00:00
parent b99b99f0d5
commit 3ab1b5bb3f
2 changed files with 9 additions and 30 deletions

View File

@ -697,32 +697,6 @@ bool CUPnPService::Execute(
static_cast<Upnp_FunPtr>(&CUPnPControlPoint::Callback),
NULL);
return true;
// std::cerr << "Calling UpnpSendAction." << std::endl;
// // Send the action synchronously
// IXML_Document *RespDoc = NULL;
// int ret = UpnpSendAction(
// m_UPnPControlPoint.GetUPnPClientHandle(),
// GetAbsControlURL().c_str(),
// GetServiceType().c_str(),
// NULL, ActionDoc, &RespDoc);
// if (ret != UPNP_E_SUCCESS) {
// m_upnpLib.processUPnPErrorMessage(
// "UpnpSendAction", ret, NULL, RespDoc);
// ixmlDocument_free(ActionDoc);
// ixmlDocument_free(RespDoc);
// return false;
// }
// ixmlDocument_free(ActionDoc);
//
// // Check the response document
// m_upnpLib.ProcessActionResponse(
// RespDoc, action.GetName());
//
// // Free the response document
// ixmlDocument_free(RespDoc);
//
// return true;
}
@ -887,7 +861,7 @@ m_WanService(NULL)
#ifdef UPNP_DEBUG
std::cerr << "CUPnPControlPoint Constructor UpnpInit finished" << std::endl;
#endif
if (ret != UPNP_E_SUCCESS) {
if (ret != UPNP_E_SUCCESS && ret !=UPNP_E_INIT) {
std::cerr << "error(UpnpInit): Error code : ";
goto error;
}

View File

@ -191,11 +191,12 @@ bool upnphandler::shutdown_upnp()
//stopping os ok, set starting to true for next net reset
toStop = false;
toStart = true;
upnpState = RS_UPNP_S_UNINITIALISED;
/* always attempt this (unless no port number) */
if (eport_curr > 0 && eport > 0)
if (eport_curr > 0 && eport > 0 && (upnpState >= RS_UPNP_S_ACTIVE))
{
std::cerr << "Attempting To Remove Redirection: port: " << eport_curr;
std::cerr << "upnphandler::shutdown_upnp() : Attempting To Remove Redirection: port: " << eport_curr;
std::cerr << " Prot: TCP";
std::cerr << std::endl;
@ -204,7 +205,7 @@ bool upnphandler::shutdown_upnp()
upnpPortMapping1.push_back(cUPnPPortMapping1);
cUPnPControlPoint->DeletePortMappings(upnpPortMapping1);
std::cerr << "Attempting To Remove Redirection: port: " << eport_curr;
std::cerr << " : Attempting To Remove Redirection: port: " << eport_curr;
std::cerr << " Prot: UDP";
std::cerr << std::endl;
@ -216,6 +217,10 @@ bool upnphandler::shutdown_upnp()
//destroy the upnp object
cUPnPControlPoint->~CUPnPControlPoint();
upnpState = RS_UPNP_S_UNINITIALISED;
} else {
#ifdef CONN_DEBUG
std::cerr << "upnphandler::shutdown_upnp() : avoid upnp connection for shutdows A net flag went down." << std::endl;
#endif
}
return true;