summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2017-05-16 14:59:08 (GMT)
committerTobias Markmann <tm@ayena.de>2017-05-17 06:36:48 (GMT)
commitedf519a67a28f9acb61af6d442d94f1aa43df688 (patch)
tree802269050d3db7c13c763550269f663172938b96 /3rdParty/LibMiniUPnPc/src/miniupnpc/upnpcommands.c
parent6644c207c879f33dac40c02ab6787a0c4184728d (diff)
downloadswift-edf519a67a28f9acb61af6d442d94f1aa43df688.zip
swift-edf519a67a28f9acb61af6d442d94f1aa43df688.tar.bz2
Update 3rdParty/LibMiniUPnPc to miniupnpc-2.0.20170509
Test-Information: Builds on macOS 10.12.5 with Qt 5.4.2 and all unit and integration tests pass. Change-Id: I491c0f78bf8773056feb3825d21989d6c7a2aeab
Diffstat (limited to '3rdParty/LibMiniUPnPc/src/miniupnpc/upnpcommands.c')
-rw-r--r--3rdParty/LibMiniUPnPc/src/miniupnpc/upnpcommands.c268
1 files changed, 205 insertions, 63 deletions
diff --git a/3rdParty/LibMiniUPnPc/src/miniupnpc/upnpcommands.c b/3rdParty/LibMiniUPnPc/src/miniupnpc/upnpcommands.c
index ad69781..d786e53 100644
--- a/3rdParty/LibMiniUPnPc/src/miniupnpc/upnpcommands.c
+++ b/3rdParty/LibMiniUPnPc/src/miniupnpc/upnpcommands.c
@@ -1,5 +1,6 @@
-/* $Id: upnpcommands.c,v 1.42 2014/01/31 13:18:25 nanard Exp $ */
-/* Project : miniupnp
+/* $Id: upnpcommands.c,v 1.48 2017/04/21 10:22:40 nanard Exp $ */
+/* vim: tabstop=4 shiftwidth=4 noexpandtab
+ * Project : miniupnp
* Author : Thomas Bernard
- * Copyright (c) 2005-2012 Thomas Bernard
+ * Copyright (c) 2005-2017 Thomas Bernard
* This software is subject to the conditions detailed in the
@@ -22,3 +23,3 @@ my_atoui(const char * s)
* */
-LIBSPEC UNSIGNED_INTEGER
+MINIUPNP_LIBSPEC UNSIGNED_INTEGER
UPNP_GetTotalBytesSent(const char * controlURL,
@@ -46,3 +47,3 @@ UPNP_GetTotalBytesSent(const char * controlURL,
* */
-LIBSPEC UNSIGNED_INTEGER
+MINIUPNP_LIBSPEC UNSIGNED_INTEGER
UPNP_GetTotalBytesReceived(const char * controlURL,
@@ -70,3 +71,3 @@ UPNP_GetTotalBytesReceived(const char * controlURL,
* */
-LIBSPEC UNSIGNED_INTEGER
+MINIUPNP_LIBSPEC UNSIGNED_INTEGER
UPNP_GetTotalPacketsSent(const char * controlURL,
@@ -94,3 +95,3 @@ UPNP_GetTotalPacketsSent(const char * controlURL,
* */
-LIBSPEC UNSIGNED_INTEGER
+MINIUPNP_LIBSPEC UNSIGNED_INTEGER
UPNP_GetTotalPacketsReceived(const char * controlURL,
@@ -118,3 +119,3 @@ UPNP_GetTotalPacketsReceived(const char * controlURL,
* returns the current status and uptime */
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_GetStatusInfo(const char * controlURL,
@@ -161,3 +162,3 @@ UPNP_GetStatusInfo(const char * controlURL,
else
- uptime = 0;
+ *uptime = 0;
}
@@ -183,3 +184,3 @@ UPNP_GetStatusInfo(const char * controlURL,
* returns the connection type */
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_GetConnectionTypeInfo(const char * controlURL,
@@ -226,3 +227,3 @@ UPNP_GetConnectionTypeInfo(const char * controlURL,
* We can use the GetCommonLinkProperties from WANCommonInterfaceConfig:1 */
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_GetLinkLayerMaxBitRates(const char * controlURL,
@@ -295,3 +296,3 @@ UPNP_GetLinkLayerMaxBitRates(const char * controlURL,
*/
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_GetExternalIPAddress(const char * controlURL,
@@ -335,11 +336,11 @@ UPNP_GetExternalIPAddress(const char * controlURL,
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_AddPortMapping(const char * controlURL, const char * servicetype,
- const char * extPort,
- const char * inPort,
- const char * inClient,
- const char * desc,
- const char * proto,
- const char * remoteHost,
- const char * leaseDuration)
+ const char * extPort,
+ const char * inPort,
+ const char * inClient,
+ const char * desc,
+ const char * proto,
+ const char * remoteHost,
+ const char * leaseDuration)
{
@@ -356,2 +357,4 @@ UPNP_AddPortMapping(const char * controlURL, const char * servicetype,
AddPortMappingArgs = calloc(9, sizeof(struct UPNParg));
+ if(AddPortMappingArgs == NULL)
+ return UPNPCOMMAND_MEM_ALLOC_ERROR;
AddPortMappingArgs[0].elt = "NewRemoteHost";
@@ -372,6 +375,7 @@ UPNP_AddPortMapping(const char * controlURL, const char * servicetype,
AddPortMappingArgs[7].val = leaseDuration?leaseDuration:"0";
- if(!(buffer = simpleUPnPcommand(-1, controlURL, servicetype,
- "AddPortMapping", AddPortMappingArgs,
- &bufsize))) {
- free(AddPortMappingArgs);
+ buffer = simpleUPnPcommand(-1, controlURL, servicetype,
+ "AddPortMapping", AddPortMappingArgs,
+ &bufsize);
+ free(AddPortMappingArgs);
+ if(!buffer) {
return UPNPCOMMAND_HTTP_ERROR;
@@ -392,3 +396,71 @@ UPNP_AddPortMapping(const char * controlURL, const char * servicetype,
ClearNameValueList(&pdata);
+ return ret;
+}
+
+MINIUPNP_LIBSPEC int
+UPNP_AddAnyPortMapping(const char * controlURL, const char * servicetype,
+ const char * extPort,
+ const char * inPort,
+ const char * inClient,
+ const char * desc,
+ const char * proto,
+ const char * remoteHost,
+ const char * leaseDuration,
+ char * reservedPort)
+{
+ struct UPNParg * AddPortMappingArgs;
+ char * buffer;
+ int bufsize;
+ struct NameValueParserData pdata;
+ const char * resVal;
+ int ret;
+
+ if(!inPort || !inClient || !proto || !extPort)
+ return UPNPCOMMAND_INVALID_ARGS;
+
+ AddPortMappingArgs = calloc(9, sizeof(struct UPNParg));
+ if(AddPortMappingArgs == NULL)
+ return UPNPCOMMAND_MEM_ALLOC_ERROR;
+ AddPortMappingArgs[0].elt = "NewRemoteHost";
+ AddPortMappingArgs[0].val = remoteHost;
+ AddPortMappingArgs[1].elt = "NewExternalPort";
+ AddPortMappingArgs[1].val = extPort;
+ AddPortMappingArgs[2].elt = "NewProtocol";
+ AddPortMappingArgs[2].val = proto;
+ AddPortMappingArgs[3].elt = "NewInternalPort";
+ AddPortMappingArgs[3].val = inPort;
+ AddPortMappingArgs[4].elt = "NewInternalClient";
+ AddPortMappingArgs[4].val = inClient;
+ AddPortMappingArgs[5].elt = "NewEnabled";
+ AddPortMappingArgs[5].val = "1";
+ AddPortMappingArgs[6].elt = "NewPortMappingDescription";
+ AddPortMappingArgs[6].val = desc?desc:"libminiupnpc";
+ AddPortMappingArgs[7].elt = "NewLeaseDuration";
+ AddPortMappingArgs[7].val = leaseDuration?leaseDuration:"0";
+ buffer = simpleUPnPcommand(-1, controlURL, servicetype,
+ "AddAnyPortMapping", AddPortMappingArgs,
+ &bufsize);
free(AddPortMappingArgs);
+ if(!buffer) {
+ return UPNPCOMMAND_HTTP_ERROR;
+ }
+ ParseNameValue(buffer, bufsize, &pdata);
+ free(buffer); buffer = NULL;
+ resVal = GetValueFromNameValueList(&pdata, "errorCode");
+ if(resVal) {
+ ret = UPNPCOMMAND_UNKNOWN_ERROR;
+ sscanf(resVal, "%d", &ret);
+ } else {
+ char *p;
+
+ p = GetValueFromNameValueList(&pdata, "NewReservedPort");
+ if(p) {
+ strncpy(reservedPort, p, 6);
+ reservedPort[5] = '\0';
+ ret = UPNPCOMMAND_SUCCESS;
+ } else {
+ ret = UPNPCOMMAND_INVALID_RESPONSE;
+ }
+ }
+ ClearNameValueList(&pdata);
return ret;
@@ -396,3 +468,3 @@ UPNP_AddPortMapping(const char * controlURL, const char * servicetype,
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_DeletePortMapping(const char * controlURL, const char * servicetype,
@@ -413,2 +485,4 @@ UPNP_DeletePortMapping(const char * controlURL, const char * servicetype,
DeletePortMappingArgs = calloc(4, sizeof(struct UPNParg));
+ if(DeletePortMappingArgs == NULL)
+ return UPNPCOMMAND_MEM_ALLOC_ERROR;
DeletePortMappingArgs[0].elt = "NewRemoteHost";
@@ -419,6 +493,7 @@ UPNP_DeletePortMapping(const char * controlURL, const char * servicetype,
DeletePortMappingArgs[2].val = proto;
- if(!(buffer = simpleUPnPcommand(-1, controlURL, servicetype,
- "DeletePortMapping",
- DeletePortMappingArgs, &bufsize))) {
- free(DeletePortMappingArgs);
+ buffer = simpleUPnPcommand(-1, controlURL, servicetype,
+ "DeletePortMapping",
+ DeletePortMappingArgs, &bufsize);
+ free(DeletePortMappingArgs);
+ if(!buffer) {
return UPNPCOMMAND_HTTP_ERROR;
@@ -436,3 +511,50 @@ UPNP_DeletePortMapping(const char * controlURL, const char * servicetype,
ClearNameValueList(&pdata);
+ return ret;
+}
+
+MINIUPNP_LIBSPEC int
+UPNP_DeletePortMappingRange(const char * controlURL, const char * servicetype,
+ const char * extPortStart, const char * extPortEnd,
+ const char * proto,
+ const char * manage)
+{
+ struct UPNParg * DeletePortMappingArgs;
+ char * buffer;
+ int bufsize;
+ struct NameValueParserData pdata;
+ const char * resVal;
+ int ret;
+
+ if(!extPortStart || !extPortEnd || !proto || !manage)
+ return UPNPCOMMAND_INVALID_ARGS;
+
+ DeletePortMappingArgs = calloc(5, sizeof(struct UPNParg));
+ if(DeletePortMappingArgs == NULL)
+ return UPNPCOMMAND_MEM_ALLOC_ERROR;
+ DeletePortMappingArgs[0].elt = "NewStartPort";
+ DeletePortMappingArgs[0].val = extPortStart;
+ DeletePortMappingArgs[1].elt = "NewEndPort";
+ DeletePortMappingArgs[1].val = extPortEnd;
+ DeletePortMappingArgs[2].elt = "NewProtocol";
+ DeletePortMappingArgs[2].val = proto;
+ DeletePortMappingArgs[3].elt = "NewManage";
+ DeletePortMappingArgs[3].val = manage;
+
+ buffer = simpleUPnPcommand(-1, controlURL, servicetype,
+ "DeletePortMappingRange",
+ DeletePortMappingArgs, &bufsize);
free(DeletePortMappingArgs);
+ if(!buffer) {
+ return UPNPCOMMAND_HTTP_ERROR;
+ }
+ ParseNameValue(buffer, bufsize, &pdata);
+ free(buffer); buffer = NULL;
+ resVal = GetValueFromNameValueList(&pdata, "errorCode");
+ if(resVal) {
+ ret = UPNPCOMMAND_UNKNOWN_ERROR;
+ sscanf(resVal, "%d", &ret);
+ } else {
+ ret = UPNPCOMMAND_SUCCESS;
+ }
+ ClearNameValueList(&pdata);
return ret;
@@ -440,3 +562,3 @@ UPNP_DeletePortMapping(const char * controlURL, const char * servicetype,
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_GetGenericPortMappingEntry(const char * controlURL,
@@ -464,8 +586,11 @@ UPNP_GetGenericPortMappingEntry(const char * controlURL,
GetPortMappingArgs = calloc(2, sizeof(struct UPNParg));
+ if(GetPortMappingArgs == NULL)
+ return UPNPCOMMAND_MEM_ALLOC_ERROR;
GetPortMappingArgs[0].elt = "NewPortMappingIndex";
GetPortMappingArgs[0].val = index;
- if(!(buffer = simpleUPnPcommand(-1, controlURL, servicetype,
- "GetGenericPortMappingEntry",
- GetPortMappingArgs, &bufsize))) {
- free(GetPortMappingArgs);
+ buffer = simpleUPnPcommand(-1, controlURL, servicetype,
+ "GetGenericPortMappingEntry",
+ GetPortMappingArgs, &bufsize);
+ free(GetPortMappingArgs);
+ if(!buffer) {
return UPNPCOMMAND_HTTP_ERROR;
@@ -495,3 +620,3 @@ UPNP_GetGenericPortMappingEntry(const char * controlURL,
p = GetValueFromNameValueList(&pdata, "NewInternalClient");
- if(p && intClient)
+ if(p)
{
@@ -502,3 +627,3 @@ UPNP_GetGenericPortMappingEntry(const char * controlURL,
p = GetValueFromNameValueList(&pdata, "NewInternalPort");
- if(p && intPort)
+ if(p)
{
@@ -531,3 +656,2 @@ UPNP_GetGenericPortMappingEntry(const char * controlURL,
ClearNameValueList(&pdata);
- free(GetPortMappingArgs);
return r;
@@ -535,3 +659,3 @@ UPNP_GetGenericPortMappingEntry(const char * controlURL,
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_GetPortMappingNumberOfEntries(const char * controlURL,
@@ -576,3 +700,3 @@ UPNP_GetPortMappingNumberOfEntries(const char * controlURL,
* please provide 16 and 6 bytes of data */
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_GetSpecificPortMappingEntry(const char * controlURL,
@@ -599,2 +723,4 @@ UPNP_GetSpecificPortMappingEntry(const char * controlURL,
GetPortMappingArgs = calloc(4, sizeof(struct UPNParg));
+ if(GetPortMappingArgs == NULL)
+ return UPNPCOMMAND_MEM_ALLOC_ERROR;
GetPortMappingArgs[0].elt = "NewRemoteHost";
@@ -605,6 +731,7 @@ UPNP_GetSpecificPortMappingEntry(const char * controlURL,
GetPortMappingArgs[2].val = proto;
- if(!(buffer = simpleUPnPcommand(-1, controlURL, servicetype,
- "GetSpecificPortMappingEntry",
- GetPortMappingArgs, &bufsize))) {
- free(GetPortMappingArgs);
+ buffer = simpleUPnPcommand(-1, controlURL, servicetype,
+ "GetSpecificPortMappingEntry",
+ GetPortMappingArgs, &bufsize);
+ free(GetPortMappingArgs);
+ if(!buffer) {
return UPNPCOMMAND_HTTP_ERROR;
@@ -656,3 +783,2 @@ UPNP_GetSpecificPortMappingEntry(const char * controlURL,
ClearNameValueList(&pdata);
- free(GetPortMappingArgs);
return ret;
@@ -668,3 +794,3 @@ UPNP_GetSpecificPortMappingEntry(const char * controlURL,
*/
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_GetListOfPortMappings(const char * controlURL,
@@ -688,2 +814,4 @@ UPNP_GetListOfPortMappings(const char * controlURL,
GetListOfPortMappingsArgs = calloc(6, sizeof(struct UPNParg));
+ if(GetListOfPortMappingsArgs == NULL)
+ return UPNPCOMMAND_MEM_ALLOC_ERROR;
GetListOfPortMappingsArgs[0].elt = "NewStartPort";
@@ -699,9 +827,9 @@ UPNP_GetListOfPortMappings(const char * controlURL,
- if(!(buffer = simpleUPnPcommand(-1, controlURL, servicetype,
- "GetListOfPortMappings",
- GetListOfPortMappingsArgs, &bufsize))) {
- free(GetListOfPortMappingsArgs);
+ buffer = simpleUPnPcommand(-1, controlURL, servicetype,
+ "GetListOfPortMappings",
+ GetListOfPortMappingsArgs, &bufsize);
+ free(GetListOfPortMappingsArgs);
+ if(!buffer) {
return UPNPCOMMAND_HTTP_ERROR;
}
- free(GetListOfPortMappingsArgs);
@@ -750,3 +878,3 @@ UPNP_GetListOfPortMappings(const char * controlURL,
/* IGD:2, functions for service WANIPv6FirewallControl:1 */
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_GetFirewallStatus(const char * controlURL,
@@ -794,3 +922,3 @@ UPNP_GetFirewallStatus(const char * controlURL,
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype,
@@ -815,2 +943,4 @@ UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype
GetOutboundPinholeTimeoutArgs = calloc(6, sizeof(struct UPNParg));
+ if(GetOutboundPinholeTimeoutArgs == NULL)
+ return UPNPCOMMAND_MEM_ALLOC_ERROR;
GetOutboundPinholeTimeoutArgs[0].elt = "RemoteHost";
@@ -827,2 +957,3 @@ UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype
"GetOutboundPinholeTimeout", GetOutboundPinholeTimeoutArgs, &bufsize);
+ free(GetOutboundPinholeTimeoutArgs);
if(!buffer)
@@ -845,3 +976,2 @@ UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype
ClearNameValueList(&pdata);
- free(GetOutboundPinholeTimeoutArgs);
return ret;
@@ -849,3 +979,3 @@ UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_AddPinhole(const char * controlURL, const char * servicetype,
@@ -871,2 +1001,4 @@ UPNP_AddPinhole(const char * controlURL, const char * servicetype,
AddPinholeArgs = calloc(7, sizeof(struct UPNParg));
+ if(AddPinholeArgs == NULL)
+ return UPNPCOMMAND_MEM_ALLOC_ERROR;
/* RemoteHost can be wilcarded */
@@ -902,2 +1034,3 @@ UPNP_AddPinhole(const char * controlURL, const char * servicetype,
"AddPinhole", AddPinholeArgs, &bufsize);
+ free(AddPinholeArgs);
if(!buffer)
@@ -924,3 +1057,2 @@ UPNP_AddPinhole(const char * controlURL, const char * servicetype,
ClearNameValueList(&pdata);
- free(AddPinholeArgs);
return ret;
@@ -928,3 +1060,3 @@ UPNP_AddPinhole(const char * controlURL, const char * servicetype,
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_UpdatePinhole(const char * controlURL, const char * servicetype,
@@ -944,2 +1076,4 @@ UPNP_UpdatePinhole(const char * controlURL, const char * servicetype,
UpdatePinholeArgs = calloc(3, sizeof(struct UPNParg));
+ if(UpdatePinholeArgs == NULL)
+ return UPNPCOMMAND_MEM_ALLOC_ERROR;
UpdatePinholeArgs[0].elt = "UniqueID";
@@ -950,2 +1084,3 @@ UPNP_UpdatePinhole(const char * controlURL, const char * servicetype,
"UpdatePinhole", UpdatePinholeArgs, &bufsize);
+ free(UpdatePinholeArgs);
if(!buffer)
@@ -966,3 +1101,2 @@ UPNP_UpdatePinhole(const char * controlURL, const char * servicetype,
ClearNameValueList(&pdata);
- free(UpdatePinholeArgs);
return ret;
@@ -970,3 +1104,3 @@ UPNP_UpdatePinhole(const char * controlURL, const char * servicetype,
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_DeletePinhole(const char * controlURL, const char * servicetype, const char * uniqueID)
@@ -985,2 +1119,4 @@ UPNP_DeletePinhole(const char * controlURL, const char * servicetype, const char
DeletePinholeArgs = calloc(2, sizeof(struct UPNParg));
+ if(DeletePinholeArgs == NULL)
+ return UPNPCOMMAND_MEM_ALLOC_ERROR;
DeletePinholeArgs[0].elt = "UniqueID";
@@ -989,2 +1125,3 @@ UPNP_DeletePinhole(const char * controlURL, const char * servicetype, const char
"DeletePinhole", DeletePinholeArgs, &bufsize);
+ free(DeletePinholeArgs);
if(!buffer)
@@ -1005,3 +1142,2 @@ UPNP_DeletePinhole(const char * controlURL, const char * servicetype, const char
ClearNameValueList(&pdata);
- free(DeletePinholeArgs);
return ret;
@@ -1009,3 +1145,3 @@ UPNP_DeletePinhole(const char * controlURL, const char * servicetype, const char
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_CheckPinholeWorking(const char * controlURL, const char * servicetype,
@@ -1024,2 +1160,4 @@ UPNP_CheckPinholeWorking(const char * controlURL, const char * servicetype,
CheckPinholeWorkingArgs = calloc(4, sizeof(struct UPNParg));
+ if(CheckPinholeWorkingArgs == NULL)
+ return UPNPCOMMAND_MEM_ALLOC_ERROR;
CheckPinholeWorkingArgs[0].elt = "UniqueID";
@@ -1028,4 +1166,7 @@ UPNP_CheckPinholeWorking(const char * controlURL, const char * servicetype,
"CheckPinholeWorking", CheckPinholeWorkingArgs, &bufsize);
+ free(CheckPinholeWorkingArgs);
if(!buffer)
+ {
return UPNPCOMMAND_HTTP_ERROR;
+ }
ParseNameValue(buffer, bufsize, &pdata);
@@ -1050,3 +1191,2 @@ UPNP_CheckPinholeWorking(const char * controlURL, const char * servicetype,
ClearNameValueList(&pdata);
- free(CheckPinholeWorkingArgs);
return ret;
@@ -1054,3 +1194,3 @@ UPNP_CheckPinholeWorking(const char * controlURL, const char * servicetype,
-LIBSPEC int
+MINIUPNP_LIBSPEC int
UPNP_GetPinholePackets(const char * controlURL, const char * servicetype,
@@ -1069,2 +1209,4 @@ UPNP_GetPinholePackets(const char * controlURL, const char * servicetype,
GetPinholePacketsArgs = calloc(4, sizeof(struct UPNParg));
+ if(GetPinholePacketsArgs == NULL)
+ return UPNPCOMMAND_MEM_ALLOC_ERROR;
GetPinholePacketsArgs[0].elt = "UniqueID";
@@ -1073,2 +1215,3 @@ UPNP_GetPinholePackets(const char * controlURL, const char * servicetype,
"GetPinholePackets", GetPinholePacketsArgs, &bufsize);
+ free(GetPinholePacketsArgs);
if(!buffer)
@@ -1093,3 +1236,2 @@ UPNP_GetPinholePackets(const char * controlURL, const char * servicetype,
ClearNameValueList(&pdata);
- free(GetPinholePacketsArgs);
return ret;