1/* $Id: upnpreplyparse.h,v 1.13 2012/03/05 19:42:48 nanard Exp $ */ 2/* MiniUPnP project 3 * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ 4 * (c) 2006-2012 Thomas Bernard 5 * This software is subject to the conditions detailed 6 * in the LICENCE file provided within the distribution */ 7 8#ifndef __UPNPREPLYPARSE_H__ 9#define __UPNPREPLYPARSE_H__ 10 11#if defined(NO_SYS_QUEUE_H) || defined(_WIN32) || defined(__HAIKU__) 12#include "bsdqueue.h" 13#else 14#include <sys/queue.h> 15#endif 16 17#ifdef __cplusplus 18extern "C" { 19#endif 20 21struct NameValue { 22 LIST_ENTRY(NameValue) entries; 23 char name[64]; 24 char value[64]; 25}; 26 27struct NameValueParserData { 28 LIST_HEAD(listhead, NameValue) head; 29 char curelt[64]; 30 char * portListing; 31 int portListingLength; 32}; 33 34/* ParseNameValue() */ 35void 36ParseNameValue(const char * buffer, int bufsize, 37 struct NameValueParserData * data); 38 39/* ClearNameValueList() */ 40void 41ClearNameValueList(struct NameValueParserData * pdata); 42 43/* GetValueFromNameValueList() */ 44char * 45GetValueFromNameValueList(struct NameValueParserData * pdata, 46 const char * Name); 47 48/* GetValueFromNameValueListIgnoreNS() */ 49char * 50GetValueFromNameValueListIgnoreNS(struct NameValueParserData * pdata, 51 const char * Name); 52 53/* DisplayNameValueList() */ 54#ifdef DEBUG 55void 56DisplayNameValueList(char * buffer, int bufsize); 57#endif 58 59#ifdef __cplusplus 60} 61#endif 62 63#endif 64 65