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

📄 ilibparsers.h

📁 intel upnp stack source code
💻 H
字号:
/* * INTEL CONFIDENTIAL * Copyright (c) 2002, 2003 Intel Corporation.  All rights reserved. *  * The source code contained or described herein and all documents * related to the source code ("Material") are owned by Intel * Corporation or its suppliers or licensors.  Title to the * Material remains with Intel Corporation or its suppliers and * licensors.  The Material contains trade secrets and proprietary * and confidential information of Intel or its suppliers and * licensors. The Material is protected by worldwide copyright and * trade secret laws and treaty provisions.  No part of the Material * may be used, copied, reproduced, modified, published, uploaded, * posted, transmitted, distributed, or disclosed in any way without * Intel's prior express written permission.  * No license under any patent, copyright, trade secret or other * intellectual property right is granted to or conferred upon you * by disclosure or delivery of the Materials, either expressly, by * implication, inducement, estoppel or otherwise. Any license * under such intellectual property rights must be express and * approved by Intel in writing. *  * $Workfile: ILibParsers.h * $Revision: #1.0.1799.42459 * $Author:   Intel Corporation, Intel Device Builder * $Date:     Wednesday, January 19, 2005 * * * */#ifndef __ILibParsers__#define __ILibParsers__#define MAX_HEADER_LENGTH 800#if defined(WIN32) || defined(_WIN32_WCE)#include <windows.h>#	ifdef WINSOCK1#	include <winsock.h>#	endif	#define strncasecmp(x,y,z) _strnicmp(x,y,z)	#define strcasecmp(x,y) _stricmp(x,y)	#define gettimeofday(x,y) (x)->tv_sec = GetTickCount()/1000;(x)->tv_usec = 1000*(GetTickCount()%1000)#endif#define UPnPMIN(a,b) (((a)<(b))?(a):(b))#define ILibIsChainBeingDestroyed(Chain) (*((int*)Chain))typedef enum{	ILibServerScope_All=0,	ILibServerScope_LocalLoopback=1,	ILibServerScope_LocalSegment=2}ILibServerScope;struct parser_result_field{	char* data;	int datalength;	struct parser_result_field *NextResult;};struct parser_result{	struct parser_result_field *FirstResult;	struct parser_result_field *LastResult;	int NumResults;};struct packetheader_field_node{	char* Field;	int FieldLength;	char* FieldData;	int FieldDataLength;	int UserAllocStrings;	struct packetheader_field_node* NextField;};struct packetheader{	char* Directive;	int DirectiveLength;	char* DirectiveObj;	int DirectiveObjLength;	int StatusCode;	char* StatusData;	int StatusDataLength;	char* Version;	int VersionLength;	char* Body;	int BodyLength;	int UserAllocStrings;	int UserAllocVersion;	int ClonedPacket;		struct packetheader_field_node* FirstField;	struct packetheader_field_node* LastField;	struct sockaddr_in *Source;	int ReceivingAddress;};struct ILibXMLNode{	char* Name;	int NameLength;		char* NSTag;	int NSLength;	int StartTag;	int EmptyTag;		void *Reserved;	void *Reserved2;	struct ILibXMLNode *Next;	struct ILibXMLNode *Parent;	struct ILibXMLNode *Peer;	struct ILibXMLNode *ClosingTag;	struct ILibXMLNode *StartingTag;};struct ILibXMLAttribute{	char* Name;	int NameLength;		char* Prefix;	int PrefixLength;		struct ILibXMLNode *Parent;	char* Value;	int ValueLength;	struct ILibXMLAttribute *Next;};int ILibFindEntryInTable(char *Entry, char **Table);char *ILibReadFileFromDisk(char *FileName);int ILibReadFileFromDiskEx(char **Target, char *FileName);void ILibWriteStringToDisk(char *FileName, char *data);/* Stack Methods */void ILibCreateStack(void **TheStack);void ILibPushStack(void **TheStack, void *data);void *ILibPopStack(void **TheStack);void *ILibPeekStack(void **TheStack);void ILibClearStack(void **TheStack);/* Queue Methods */void *ILibQueue_Create(void);void ILibQueue_Destroy(void *q);int ILibQueue_IsEmpty(void *q);void ILibQueue_EnQueue(void *q, void *data);void *ILibQueue_DeQueue(void *q);void *ILibQueue_PeekQueue(void *q);void ILibQueue_Lock(void *q);void ILibQueue_UnLock(void *q);/* XML Parsing Methods */void ILibXML_BuildNamespaceLookupTable(struct ILibXMLNode *node);char* ILibXML_LookupNamespace(struct ILibXMLNode *currentLocation, char *prefix, int prefixLength);int ILibReadInnerXML(struct ILibXMLNode *node, char **RetVal);struct ILibXMLNode *ILibParseXML(char *buffer, int offset, int length);struct ILibXMLAttribute *ILibGetXMLAttributes(struct ILibXMLNode *node);int ILibProcessXMLNodeList(struct ILibXMLNode *nodeList);void ILibDestructXMLNodeList(struct ILibXMLNode *node);void ILibDestructXMLAttributeList(struct ILibXMLAttribute *attribute);/* Chaining Methods */void *ILibCreateChain(void);void ILibAddToChain(void *chain, void *object);void ILibStartChain(void *chain);void ILibStopChain(void *chain);void ILibForceUnBlockChain(void *Chain);/* Linked List Methods */void* ILibLinkedList_Create(void);void* ILibLinkedList_GetNode_Head(void *LinkedList); // Returns Nodevoid* ILibLinkedList_GetNode_Tail(void *LinkedList); // Returns Nodevoid* ILibLinkedList_GetNextNode(void *LinkedList_Node); // Returns Nodevoid* ILibLinkedList_GetPreviousNode(void *LinkedList_Node); // Returns Nodelong ILibLinkedList_GetCount(void *LinkedList);void* ILibLinkedList_ShallowCopy(void *LinkedList);void *ILibLinkedList_GetDataFromNode(void *LinkedList_Node);void ILibLinkedList_InsertBefore(void *LinkedList_Node, void *data);void ILibLinkedList_InsertAfter(void *LinkedList_Node, void *data);void ILibLinkedList_Remove(void *LinkedList_Node);void ILibLinkedList_Remove_ByData(void *LinkedList, void *data);void ILibLinkedList_AddHead(void *LinkedList, void *data);void ILibLinkedList_AddTail(void *LinkedList, void *data);void ILibLinkedList_Lock(void *LinkedList);void ILibLinkedList_UnLock(void *LinkedList);void ILibLinkedList_Destroy(void *LinkedList);/* HashTree Methods */void* ILibInitHashTree(void);void ILibDestroyHashTree(void *tree);int ILibHasEntry(void *hashtree, char* key, int keylength);void ILibAddEntry(void* hashtree, char* key, int keylength, void *value);void* ILibGetEntry(void *hashtree, char* key, int keylength);void ILibDeleteEntry(void *hashtree, char* key, int keylength);void *ILibHashTree_GetEnumerator(void *tree);void ILibHashTree_DestroyEnumerator(void *tree_enumerator);int ILibHashTree_MoveNext(void *tree_enumerator);void ILibHashTree_GetValue(void *tree_enumerator, char **key, int *keyLength, void **data);void ILibHashTree_Lock(void *hashtree);void ILibHashTree_UnLock(void *hashtree);/* LifeTimeMonitor Methods */#define ILibLifeTime_Add(LifetimeMonitorObject, data, seconds, Callback, Destroy) ILibLifeTime_AddEx(LifetimeMonitorObject, data, seconds*1000, Callback, Destroy)void ILibLifeTime_AddEx(void *LifetimeMonitorObject,void *data, int milliseconds, void* Callback, void* Destroy);void ILibLifeTime_Remove(void *LifeTimeToken, void *data);void ILibLifeTime_Flush(void *LifeTimeToken);void *ILibCreateLifeTime(void *Chain);/* String Parsing Methods */int ILibTrimString(char **theString, int length);struct parser_result* ILibParseString(char* buffer, int offset, int length, char* Delimiter, int DelimiterLength);struct parser_result* ILibParseStringAdv(char* buffer, int offset, int length, char* Delimiter, int DelimiterLength);void ILibDestructParserResults(struct parser_result *result);void ILibParseUri(char* URI, char** IP, unsigned short* Port, char** Path);int ILibGetLong(char *TestValue, int TestValueLength, long* NumericValue);int ILibGetULong(const char *TestValue, const int TestValueLength, unsigned long* NumericValue);int ILibFragmentText(char *text, int textLength, char *delimiter, int delimiterLength, int tokenLength, char **RetVal);int ILibFragmentTextLength(char *text, int textLength, char *delimiter, int delimiterLength, int tokenLength);/* Packet Methods */struct packetheader *ILibCreateEmptyPacket(void);void ILibAddHeaderLine(struct packetheader *packet, char* FieldName, int FieldNameLength, char* FieldData, int FieldDataLength);char* ILibGetHeaderLine(struct packetheader *packet, char* FieldName, int FieldNameLength);void ILibSetVersion(struct packetheader *packet, char* Version, int VersionLength);void ILibSetStatusCode(struct packetheader *packet, int StatusCode, char* StatusData, int StatusDataLength);void ILibSetDirective(struct packetheader *packet, char* Directive, int DirectiveLength, char* DirectiveObj, int DirectiveObjLength);void ILibDestructPacket(struct packetheader *packet);struct packetheader* ILibParsePacketHeader(char* buffer, int offset, int length);int ILibGetRawPacket(struct packetheader *packet,char **buffer);struct packetheader* ILibClonePacket(struct packetheader *packet);/* Network Helper Methods */int ILibGetLocalIPAddressList(int** pp_int);#if defined(WINSOCK2)	int ILibGetLocalIPAddressNetMask(int address);	unsigned short ILibGetDGramSocket(int local, HANDLE *TheSocket);	unsigned short ILibGetStreamSocket(int local, unsigned short PortNumber,HANDLE *TheSocket);#elif defined(WINSOCK1) || defined(_WIN32_WCE)	unsigned short ILibGetDGramSocket(int local, SOCKET *TheSocket);	unsigned short ILibGetStreamSocket(int local, unsigned short PortNumber,SOCKET *TheSocket);#else	unsigned short ILibGetDGramSocket(int local, int *TheSocket);	unsigned short ILibGetStreamSocket(int local, unsigned short PortNumber,int *TheSocket);#endifvoid* dbg_malloc(int sz);void dbg_free(void* ptr);int dbg_GetCount(void);/* XML escaping methods */int ILibXmlEscape(char* outdata, const char* indata);int ILibXmlEscapeLength(const char* data);int ILibInPlaceXmlUnEscape(char* data);/* HTTP escaping methods */int ILibHTTPEscape(char* outdata, const char* indata);int ILibHTTPEscapeLength(const char* data);int ILibInPlaceHTTPUnEscape(char* data);/* Base64 handling methods */int ILibBase64Encode(unsigned char* input, const int inputlen, unsigned char** output);int ILibBase64Decode(unsigned char* input, const int inputlen, unsigned char** output);/* Compression Handling Methods */unsigned char* ILibDecompressString(unsigned char* CurrentCompressed, const int bufferLength, const int DecompressedLength);#endif

⌨️ 快捷键说明

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