<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:html="http://www.w3.org/1999/html" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Ross Burton</title><link>http://www.burtonini.com/blog</link><description>A potted account of Ross' life</description><language>en</language><ttl>60</ttl><dc:creator>Ross Burton</dc:creator><admin:generatorAgent rdf:resource="http://pyblosxom.sourceforge.net/"/><admin:errorReportsTo rdf:resource="mailto:ross+web@burtonini.com"/><item><title>GUPnP Bindings Generation</title><guid isPermaLink="false">computers/gupnp-binding-2008-05-23-16-40</guid><link>http://www.burtonini.com/blog/computers/gupnp-binding-2008-05-23-16-40</link><description>I've now finished the first draft of the bindings generation tool for GUPnP, which is now part of libgupnp itself. ...</description><content:encoded><![CDATA[<p>
  I've now finished the first draft of the bindings generation tool for GUPnP,
  which is now part of <tt>libgupnp</tt> itself.  I've added both blocking and
  non-blocking wrappers, so if you wanted to get the external IP there is the
  choice of this for blocking calls:
</p>
<pre>char *ip;
GetExternalIPAddress (proxy, &amp;ip, &amp;error);</pre>
<p>
  Or this for non-blocking calls:
</p>
<pre>static void
external_ip_cb (GUPnPServiceProxy *proxy, char * ip,
                GError *error, gpointer userdata)
{
  // ...
}
...
  GetExternalIPAddress_async (proxy, external_ip_cb, NULL);</pre>
<p>
  I've ported my test applications to use the bindings, which are available in
  <a href="http://burtonini.com/bzr/gupnp-demos">this Bazaar repository</a>.  It
  appears to work quite well, I just need to test it against all of the official
  service descriptions and add a few small features.
</p>
]]></content:encoded><category domain="http://www.burtonini.com">/computers</category><dc:date>2008-05-23T15:40:00Z</dc:date></item></channel></rss>