Thank you for sharing the improved libupnp with the open source community.
I have a question. I think I read something about the pending release of version 1.8 (the current release is 1.6.6).
Is there any concrete plan to release the 1.8 version any time soon?
In order to access the latest development branch,
I figured out how to access svn repository after reading the archived messages, but
when I tried to install it, my autoconf, and other tools are probably not quite compatible
with what the original developers had and I could not produce a working
configure (and makefile) although I did upgrade autoconf to autoconf2.6 at least.
(Maybe I needed to upgrade m4, and other related tools, but I gave up there.)
There seem to be a few important patches (including ones related to compilation under windows) which may merit wider circulation.
I think libupnp has advantages over a few other similar open source projects.
Non-GPL characteristics may be a great feature for embedded type application.
(except that ixml, the xml parser, probably needs to be trimmed down and
improved in speed somewhat. Maybe for a particular device such as IGD,
we may want to substitute it with a hand-crafted parser for a single purpose, that is
handling IGD request/response only, as is done
in miniupnpd, since we know what strings will be sent as SOAP/XML
to expect more or less in advance. We don't need the full generality of ixml.)
BTW, I found that sample applications under sample to be too simplistic.
When I tried to parse and use XML description of IGD, I encountered a few
issues that are not addressed by the simple applications.
I wonder if others have encountered such problems.
(I might even want to contribute the sample expeerimental application I created using
the sample IGD description. The program doesnn't do anything fancy, but
responds to the query/request from a control point to mimic a hypothetical
port mapping rule engine. [It is a pure software and doesn't do
any forwarding, etc. in reality. One can insert action routines to implement
a real IGD a la miniupnd or linux-IGD. )
The program uses a code skelton that a code generator (written in python) produced
from XML description and so is not probably compact enough for an embedded device,
but is good enough for educational purposes :-)