⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 upnpdescgen.c

📁 很小的linux下的upnp服务器端代码适合嵌入式系统
💻 C
📖 第 1 页 / 共 2 页
字号:
/* $Id: upnpdescgen.c,v 1.41 2007/03/06 00:58:51 nanard Exp $ *//* MiniUPnP project * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ * (c) 2006 Thomas Bernard  * This software is subject to the conditions detailed * in the LICENCE file provided within the distribution */#include <stdio.h>#include <stdlib.h>#include <string.h>#include "upnpdescgen.h"#include "miniupnpdpath.h"#include "upnpglobalvars.h"#include "upnpdescstrings.h"static const char * const upnptypes[] ={	"string",	"boolean",	"ui2",	"ui4"};static const char * const upnpdefaultvalues[] ={	0,	"Unconfigured"};static const char * const upnpallowedvalues[] ={	0,		/* 0 */	"DSL",	/* 1 */	"POTS",	"Cable",	"Ethernet",	0,	"Up",	/* 6 */	"Down",	"Initializing",	"Unavailable",	0,	"TCP",	/* 11 */	"UDP",	0,	"Unconfigured",	/* 14 */	"IP_Routed",	"IP_Bridged",	0,	"Unconfigured",	/* 18 */	"Connecting",	"Connected",	"PendingDisconnect",	"Disconnecting",	"Disconnected",	0,	"ERROR_NONE",	/* 25 */	0,	"",		/* 27 */	0};static const char xmlver[] = 	"<?xml version=\"1.0\"?>\n";static const char root_service[] =	"scpd xmlns=\"urn:schemas-upnp-org:service-1-0\"";static const char root_device[] = 	"root xmlns=\"urn:schemas-upnp-org:device-1-0\"";/* root Description of the UPnP Device  * fixed to match UPnP_IGD_InternetGatewayDevice 1.0.pdf */static const struct XMLElt rootDesc[] ={/* 0 */	{root_device, INITHELPER(1,2)},	{"specVersion", INITHELPER(3,2)},	{"device", INITHELPER(5,13)},	{"/major", "1"},	{"/minor", "0"},	{"/deviceType", "urn:schemas-upnp-org:device:InternetGatewayDevice:1"},	{"/friendlyName", ROOTDEV_FRIENDLYNAME},	/* required */	{"/manufacturer", ROOTDEV_MANUFACTURER},		/* required *//* 8 */	{"/manufacturerURL", ROOTDEV_MANUFACTURERURL},	/* optional */	{"/modelDescription", ROOTDEV_MODELDESCRIPTION}, /* recommended */	{"/modelName", ROOTDEV_MODELNAME},	/* required */	{"/modelNumber", modelnumber},	{"/modelURL", ROOTDEV_MODELURL},	{"/serialNumber", serialnumber},	{"/UDN", uuidvalue},	/* required */	{"serviceList", INITHELPER(57,1)},	{"deviceList", INITHELPER(18,1)},	{"/presentationURL", presentationurl},	/* recommended */	{"device", INITHELPER(19,13)},	{"/deviceType", "urn:schemas-upnp-org:device:WANDevice:1"}, /* required */	{"/friendlyName", WANDEV_FRIENDLYNAME},	{"/manufacturer", WANDEV_MANUFACTURER},	{"/manufacturerURL", WANDEV_MANUFACTURERURL},	{"/modelDescription" , WANDEV_MODELDESCRIPTION},	{"/modelName", WANDEV_MODELNAME},	{"/modelNumber", WANDEV_MODELNUMBER},	{"/modelURL", WANDEV_MODELURL},	{"/serialNumber", serialnumber},	{"/UDN", uuidvalue},	{"/UPC", WANDEV_UPC},	{"serviceList", INITHELPER(32,1)},	{"deviceList", INITHELPER(38,1)},	{"service", INITHELPER(33,5)},	{"/serviceType",			"urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1"},	/*{"/serviceId", "urn:upnp-org:serviceId:WANCommonInterfaceConfig"}, */	{"/serviceId", "urn:upnp-org:serviceId:WANCommonIFC1"}, /* required */	{"/controlURL", WANCFG_CONTROLURL},	{"/eventSubURL", WANCFG_EVENTURL},	{"/SCPDURL", WANCFG_PATH},	{"device", INITHELPER(39,12)},	{"/deviceType", "urn:schemas-upnp-org:device:WANConnectionDevice:1"},	{"/friendlyName", WANCDEV_FRIENDLYNAME},	{"/manufacturer", WANCDEV_MANUFACTURER},	{"/manufacturerURL", WANCDEV_MANUFACTURERURL},	{"/modelDescription", WANCDEV_MODELDESCRIPTION},	{"/modelName", WANCDEV_MODELNAME},	{"/modelNumber", WANCDEV_MODELNUMBER},	{"/modelURL", WANCDEV_MODELURL},	{"/serialNumber", serialnumber},	{"/UDN", uuidvalue},	{"/UPC", WANCDEV_UPC},	{"serviceList", INITHELPER(51,1)},	{"service", INITHELPER(52,5)},	{"/serviceType", "urn:schemas-upnp-org:service:WANIPConnection:1"},/*	{"/serviceId", "urn:upnp-org:serviceId:WANIPConnection"}, */	{"/serviceId", "urn:upnp-org:serviceId:WANIPConn1"},	{"/controlURL", WANIPC_CONTROLURL},	{"/eventSubURL", WANIPC_EVENTURL},	{"/SCPDURL", WANIPC_PATH},	{"service", INITHELPER(58,5)},	{"/serviceType", "urn:schemas-dummy-com:service:Dummy:1"},	{"/serviceId", "urn:dummy-com:serviceId:dummy1"},	{"/controlURL", "/dummy"},	{"/eventSubURL", "/dummy"},	{"/SCPDURL", DUMMY_PATH},	{0, 0}};/* WANIPCn.xml *//* see UPnP_IGD_WANIPConnection 1.0.pdfstatic struct XMLElt scpdWANIPCn[] ={	{root_service, {INITHELPER(1,2)}},	{0, {0}}};*/static const struct argument AddPortMappingArgs[] ={	{"NewRemoteHost", 1, 11},	{"NewExternalPort", 1, 12},	{"NewProtocol", 1, 14},	{"NewInternalPort", 1, 13},	{"NewInternalClient", 1, 15},	{"NewEnabled", 1, 9},	{"NewPortMappingDescription", 1, 16},	{"NewLeaseDuration", 1, 10},	{0, 0, 0}};static const struct argument GetExternalIPAddressArgs[] ={	{"NewExternalIPAddress", 2, 7},	{0, 0, 0}};static const struct argument DeletePortMappingArgs[] = {	{"NewRemoteHost", 1, 11},	{"NewExternalPort", 1, 13},	{"NewProtocol", 1, 14},	{0, 0, 0}};static const struct argument SetConnectionTypeArgs[] ={	{"NewConnectionType", 1, 0},	{0, 0, 0}};static const struct argument GetConnectionTypeInfoArgs[] ={	{"NewConnectionType", 2, 0},	{"NewPossibleConnectionTypes", 2, 1},	{0, 0, 0}};static const struct argument GetStatusInfoArgs[] ={	{"NewConnectionStatus", 2, 2},	{"NewLastConnectionError", 2, 4},	{"NewUptime", 2, 3},	{0, 0, 0}};static const struct argument GetNATRSIPStatusArgs[] ={	{"NewRSIPAvailable", 2, 5},	{"NewNATEnabled", 2, 6},	{0, 0, 0}};static const struct argument GetGenericPortMappingEntryArgs[] ={	{"NewPortMappingIndex", 1, 8},	{"NewRemoteHost", 2, 11},	{"NewExternalPort", 2, 12},	{"NewProtocol", 2, 14},	{"NewInternalPort", 2, 13},	{"NewInternalClient", 2, 15},	{"NewEnabled", 2, 9},	{"NewPortMappingDescription", 2, 16},	{"NewLeaseDuration", 2, 10},	{0, 0, 0}};static const struct argument GetSpecificPortMappingEntryArgs[] ={	{"NewRemoteHost", 1, 11},	{"NewExternalPort", 1, 12},	{"NewProtocol", 1, 14},	{"NewInternalPort", 2, 13},	{"NewInternalClient", 2, 15},	{"NewEnabled", 2, 9},	{"NewPortMappingDescription", 2, 16},	{"NewLeaseDuration", 2, 10},	{0, 0, 0}};static const struct action WANIPCnActions[] ={	{"AddPortMapping", AddPortMappingArgs}, /* R */	{"GetExternalIPAddress", GetExternalIPAddressArgs}, /* R */	{"DeletePortMapping", DeletePortMappingArgs}, /* R */	{"SetConnectionType", SetConnectionTypeArgs}, /* R */	{"GetConnectionTypeInfo", GetConnectionTypeInfoArgs}, /* R */	{"RequestConnection", 0}, /* R */	{"ForceTermination", 0}, /* R */	{"GetStatusInfo", GetStatusInfoArgs}, /* R */	{"GetNATRSIPStatus", GetNATRSIPStatusArgs}, /* R */	{"GetGenericPortMappingEntry", GetGenericPortMappingEntryArgs}, /* R */	{"GetSpecificPortMappingEntry", GetSpecificPortMappingEntryArgs}, /* R */	{0, 0}};/* R=Required, O=Optional */static const struct stateVar WANIPCnVars[] ={	{"ConnectionType", 0, 0/*1*/}, /* required */	{"PossibleConnectionTypes", 0|0x80, 0, 14},	 /* Required	  * Allowed values : Unconfigured / IP_Routed / IP_Bridged */	{"ConnectionStatus", 0|0x80, 0/*1*/, 18}, /* required */	 /* Allowed Values : Unconfigured / Connecting(opt) / Connected	  *                  PendingDisconnect(opt) / Disconnecting (opt)	  *                  Disconnected */	{"Uptime", 3, 0},	/* Required */	{"LastConnectionError", 0, 0, 25},	/* required : */	 /* Allowed Values : ERROR_NONE(req) / ERROR_COMMAND_ABORTED(opt)	  *                  ERROR_NOT_ENABLED_FOR_INTERNET(opt)	  *                  ERROR_USER_DISCONNECT(opt)	  *                  ERROR_ISP_DISCONNECT(opt)	  *                  ERROR_IDLE_DISCONNECT(opt)	  *                  ERROR_FORCED_DISCONNECT(opt)	  *                  ERROR_NO_CARRIER(opt)	  *                  ERROR_IP_CONFIGURATION(opt)	  *                  ERROR_UNKNOWN(opt) */	{"RSIPAvailable", 1, 0}, /* required */	{"NATEnabled", 1, 0},    /* required */	{"ExternalIPAddress", 0|0x80, 0}, /* required. Default : empty string */	{"PortMappingNumberOfEntries", 2|0x80, 0}, /* required >= 0 */	{"PortMappingEnabled", 1, 0}, /* Required */	{"PortMappingLeaseDuration", 3, 0}, /* required */	{"RemoteHost", 0, 0},   /* required. Default : empty string */	{"ExternalPort", 2, 0}, /* required */	{"InternalPort", 2, 0}, /* required */	{"PortMappingProtocol", 0, 0, 11}, /* required allowedValues: TCP/UDP */	{"InternalClient", 0, 0}, /* required */	{"PortMappingDescription", 0, 0}, /* required default: empty string */	{0, 0, 0}};static const struct serviceDesc scpdWANIPCn ={ WANIPCnActions, WANIPCnVars };/* WANCfg.xml *//* See UPnP_IGD_WANCommonInterfaceConfig 1.0.pdf */static const struct argument GetCommonLinkPropertiesArgs[] ={	{"NewWANAccessType", 2, 0},	{"NewLayer1UpstreamMaxBitRate", 2, 1},	{"NewLayer1DownstreamMaxBitRate", 2, 2},	{"NewPhysicalLinkStatus", 2, 3},	{0, 0, 0}};static const struct argument GetTotalBytesSentArgs[] ={	{"NewTotalBytesSent", 2, 4},	{0, 0, 0}};static const struct argument GetTotalBytesReceivedArgs[] =

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -