int main() { printf("hello world\n"); if(SetUp() < 0) { TearDown(); return -1; } GetPortMappingNum(); //int i = 0; //for(i=0; i<30; i++) //{ // GetPortMappingByIndex(i); //} GetPortMapping(16738, "TCP"); GetPortMapping(16738, "UDP"); AddPortMapping(16738, 16738, "TCP", g_lanaddr); AddPortMapping(16738, 16738, "UDP", g_lanaddr); AddPortMapping(16738, 16738, "TCP", "192.168.1.120"); AddPortMapping(16738, 16738, "UDP", "192.168.1.120"); TearDown(); return 0; }
void Test_AddPortMapping(void) { struct Upnp_Action_Request event; strcpy(event.DevUDN,"uuid:75802409-bccb-40e7-8e6c-fa095ecce13e"); strcpy(event.ServiceID,"urn:upnp-org:serviceId:WANIPConn1"); strcpy(event.ActionName,"AddPortMapping"); // Add with remotehost event.ActionRequest = ixmlParseBuffer(add_portmapping_request_xml); CU_ASSERT(AddPortMapping(&event) == 0); // Add with wildcarded remotehost event.ActionRequest = ixmlParseBuffer(add_portmapping_request_wildcard_remotehost_xml); CU_ASSERT(AddPortMapping(&event) == 0); // Add with wildcarded internalclient event.ActionRequest = ixmlParseBuffer(add_portmapping_request_wildcard_internalclient_xml); CU_ASSERT(AddPortMapping(&event) == 715); // Add with wildcarded external port event.ActionRequest = ixmlParseBuffer(add_portmapping_request_wildcard_extport_xml); CU_ASSERT(AddPortMapping(&event) == 716); // Add with wildcarded internal port event.ActionRequest = ixmlParseBuffer(add_portmapping_request_wildcard_intport_xml); CU_ASSERT(AddPortMapping(&event) == 732); // Add with different port values event.ActionRequest = ixmlParseBuffer(add_portmapping_request_diff_ports_xml); CU_ASSERT(AddPortMapping(&event) == 724); // Invalid args event.ActionRequest = ixmlParseBuffer(add_portmapping_request_missing_parameter_xml); CU_ASSERT(AddPortMapping(&event) == 402); }
void C4Network2UPnPP::AddMapping(C4Network2IOProtocol protocol, uint16_t intport, uint16_t extport) { PortMapping mapping; mapping.external_port = extport; mapping.internal_port = intport; mapping.protocol = (protocol == P_TCP ? "TCP" : "UDP"); added_mappings.push_back(mapping); action = std::async([this, action = std::move(action), mapping]() { action.wait(); AddPortMapping(mapping); }); }