summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/LibMiniUPnPc/src/miniupnpc/upnpreplyparse.c')
-rw-r--r--3rdParty/LibMiniUPnPc/src/miniupnpc/upnpreplyparse.c54
1 files changed, 34 insertions, 20 deletions
diff --git a/3rdParty/LibMiniUPnPc/src/miniupnpc/upnpreplyparse.c b/3rdParty/LibMiniUPnPc/src/miniupnpc/upnpreplyparse.c
index dafa263..5de5796 100644
--- a/3rdParty/LibMiniUPnPc/src/miniupnpc/upnpreplyparse.c
+++ b/3rdParty/LibMiniUPnPc/src/miniupnpc/upnpreplyparse.c
@@ -1,5 +1,5 @@
-/* $Id: upnpreplyparse.c,v 1.15 2013/06/06 21:36:40 nanard Exp $ */
+/* $Id: upnpreplyparse.c,v 1.19 2015/07/15 10:29:11 nanard Exp $ */
/* MiniUPnP project
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
- * (c) 2006-2013 Thomas Bernard
+ * (c) 2006-2015 Thomas Bernard
* This software is subject to the conditions detailed
@@ -42,2 +42,11 @@ NameValueParserEndElt(void * d, const char * name, int l)
nv = malloc(sizeof(struct NameValue));
+ if(nv == NULL)
+ {
+ /* malloc error */
+#ifdef DEBUG
+ fprintf(stderr, "%s: error allocating memory",
+ "NameValueParserEndElt");
+#endif /* DEBUG */
+ return;
+ }
if(l>=(int)sizeof(nv->value))
@@ -55,3 +64,4 @@ NameValueParserEndElt(void * d, const char * name, int l)
}
- LIST_INSERT_HEAD( &(data->head), nv, entries);
+ nv->l_next = data->l_head; /* insert in list */
+ data->l_head = nv;
}
@@ -73,2 +83,6 @@ NameValueParserGetData(void * d, const char * datas, int l)
/* malloc error */
+#ifdef DEBUG
+ fprintf(stderr, "%s: error allocating memory",
+ "NameValueParserGetData");
+#endif /* DEBUG */
return;
@@ -91,15 +105,15 @@ ParseNameValue(const char * buffer, int bufsize,
{
- struct xmlparser parser;
- LIST_INIT(&(data->head));
+ struct xmlparser parser;
+ data->l_head = NULL;
data->portListing = NULL;
data->portListingLength = 0;
- /* init xmlparser object */
- parser.xmlstart = buffer;
- parser.xmlsize = bufsize;
- parser.data = data;
- parser.starteltfunc = NameValueParserStartElt;
- parser.endeltfunc = NameValueParserEndElt;
- parser.datafunc = NameValueParserGetData;
+ /* init xmlparser object */
+ parser.xmlstart = buffer;
+ parser.xmlsize = bufsize;
+ parser.data = data;
+ parser.starteltfunc = NameValueParserStartElt;
+ parser.endeltfunc = NameValueParserEndElt;
+ parser.datafunc = NameValueParserGetData;
parser.attfunc = 0;
- parsexml(&parser);
+ parsexml(&parser);
}
@@ -116,5 +130,5 @@ ClearNameValueList(struct NameValueParserData * pdata)
}
- while((nv = pdata->head.lh_first) != NULL)
+ while((nv = pdata->l_head) != NULL)
{
- LIST_REMOVE(nv, entries);
+ pdata->l_head = nv->l_next;
free(nv);
@@ -129,5 +143,5 @@ GetValueFromNameValueList(struct NameValueParserData * pdata,
char * p = NULL;
- for(nv = pdata->head.lh_first;
+ for(nv = pdata->l_head;
(nv != NULL) && (p == NULL);
- nv = nv->entries.le_next)
+ nv = nv->l_next)
{
@@ -173,5 +187,5 @@ DisplayNameValueList(char * buffer, int bufsize)
ParseNameValue(buffer, bufsize, &pdata);
- for(nv = pdata.head.lh_first;
+ for(nv = pdata.l_head;
nv != NULL;
- nv = nv->entries.le_next)
+ nv = nv->l_next)
{
@@ -181,3 +195,3 @@ DisplayNameValueList(char * buffer, int bufsize)
}
-#endif
+#endif /* DEBUG */