| 59 | } |
| 60 | |
| 61 | void CUPnP::Shutdown() |
| 62 | { |
| 63 | if(g_Config.m_SvUseUPnP) |
| 64 | { |
| 65 | if(m_Enabled) |
| 66 | { |
| 67 | char aPort[6]; |
| 68 | str_format(aPort, sizeof(aPort), "%d", m_Addr.port); |
| 69 | int Error = UPNP_DeletePortMapping(m_pUPnPUrls->controlURL, m_pUPnPData->first.servicetype, aPort, "UDP", NULL); |
| 70 | |
| 71 | if(Error != 0) |
| 72 | { |
| 73 | dbg_msg("upnp", "failed to delete port mapping on shutdown: %s", strupnperror(Error)); |
| 74 | } |
| 75 | FreeUPNPUrls(m_pUPnPUrls); |
| 76 | freeUPNPDevlist(m_pUPnPDevice); |
| 77 | } |
| 78 | free(m_pUPnPUrls); |
| 79 | free(m_pUPnPData); |
| 80 | m_pUPnPUrls = NULL; |
| 81 | m_pUPnPData = NULL; |
| 82 | } |
| 83 | } |
| 84 | |
| 85 | #endif |
no test coverage detected