1.5.1 (development)
===================

 - Minor doc fixes
 - Remove left-overs from WhiteList renaming
 - Make tests a little friendlier if there is no ipv6
 - Fix a couple of issues from scan-build

DeviceInfo:
 - Make DeviceInfo:document accessible
 - Offer convenience function DeviceInfo:get_icon_async to combine
   icon lookup and icon download

ServiceAction:
 - Potential fix for running g_clear_pointer on an uninitialized value
 - Fix getting parameters from action

ServiceInfo:
 - Do not free an error that was propagated
 - Fix introspection on IPv6 devices

Service:
 - Fix critical if Soup error other than G_IO_ERROR_CANCELLED occured

All contributors to this release:
 - Jens Georg <mail@jensge.org>

1.5.0 (development)
===================

 - Port to libsoup3
 - API bump (1.6)
 - Improved test coverage
 - All _valist functions have been removed
 - The documentation is now provided by gi-docgen
 - All API that was marked as deprecated up until 1.4 has been removed

ServiceIntrospection:
 - is now a GInitable

Context:
 - Uses GSSDP.Client:port
 - Fix reference leak when using ACL

DeviceInfo:
 - The get_device() and get_service() virtual functions have been renamed

ServiceAction:
 - ServiceAction::return() was renamed to ServiceAction::return_success() to
   avoid issues with languages such as python

ServiceInfo:
 - Non-gio style introspection functions are now deprecated

Service:
 - Returns a proper error instead of calling g_error when autoconnect fails

ServiceProxy:
 - Fixes an issue with M-POST fall-back if POST calls failed
 - There is no need anymore to call ServiceProxyAction::get() to get SOAP
   transport errors; those will now be already presented by the
   ServiceProxy::call_action_finish() call.


Bugs fixed in this release:
 - https://gitlab.gnome.org/GNOME/gupnp/issues/58
 - https://gitlab.gnome.org/GNOME/gupnp/issues/42
 - https://gitlab.gnome.org/GNOME/gupnp/issues/52
 - https://gitlab.gnome.org/GNOME/gupnp/issues/53
 - https://gitlab.gnome.org/GNOME/gupnp/issues/54
 - https://gitlab.gnome.org/GNOME/gupnp/issues/58
 - https://gitlab.gnome.org/GNOME/gupnp/issues/60
 - https://gitlab.gnome.org/GNOME/gupnp/issues/61
 - https://gitlab.gnome.org/GNOME/gupnp/issues/63

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Marvin Schmidt <marv@exherbo.org>

1.4.0 (stable)
=====

- Fix fallback option for GSSDP dependency
- Linux CM: Fix address family filtering
- Linux CM: Fix a typo

All contributors to this release:
 - Robert Tiemann <rtie@gmx.de>
 - Jens Georg <mail@jensge.org>

1.3.1 (development)
=====

- Add ContextFilter class, deprecate WhiteList
- Fix several reference leaks
- Fix broken boot-id logic

Bugs fixed in this release:
 - https://gitlab.gnome.org/GNOME/gupnp/issues/56

All contributors to this release:
 - Jens Georg <mail@jensge.org>

1.3.0
=====

- Service: name Tasks
- Doc: Some grammaer fixes
- Dead and deprecated code clean-up
- Move tests that are actually examples into examples
- Move tests from gtest to test
- Doc: General clean-up
- Fix some introspection annotations
- Build: Make gupnp usable as a subproject (more or less)
- Make it possible to re-use a ServiceProxyAction
- Service: Validate "Host" header for GENA actions

Bugs fixed in this release:
 - https://gitlab.gnome.org/GNOME/gupnp/issues/17
 - https://gitlab.gnome.org/GNOME/gupnp/issues/18
 - https://gitlab.gnome.org/GNOME/gupnp/issues/55

All contributors to this release:
 - Jens Georg <mail@jensge.org>

1.2.7
=====

- Fix build with -Wformat-security=error
- Bump required GLib version to 2.66
- Fix some introspection annotations
- Add missing varargs functions to vapi
- Revert fix from 1.2.5 which causes managed control points to
  live too long

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Bastien Nocera <hadess@hadess.net>
 - Andreas Müller <schnitzeltony@gmail.com>

1.2.6
=====
- Fix wrong dependency on GSSDP 1.2.4

Bugs fixed in this release:
 - https://gitlab.gnome.org/GNOME/gupnp/issues/48

All contributors to this release:
 - Jens Georg <mail@jensge.org>

1.2.5
=====
- Fix introspection annotation for send_action_list
- Fix potential fd leak in linux CM
- Fix potential NULL pointer dereference when evaluating
  unset ServiceProxyActions
- Fix leaking the message string if an action is never
  sent
- Fix leaking the ServiceProxyAction if sending fails
  in call_action
- Fix introspection annotation for send_action and
  call_action_finish to prevent a double-free
- Make ServiceIntrospection usable from
  gobject-introspection
- Add Python examle
- Add C example
- Fix JavaScript example
- Fix potential use-after-free if service proxy is
  destroxed before libsoup request finishes in control
  point
- Fix potential data leak due to being vulnerable to DNS
  rebind attacs

Bugs fixed in this release:
 - https://gitlab.gnome.org/GNOME/gupnp/issues/47
 - https://gitlab.gnome.org/GNOME/gupnp/issues/46
 - https://gitlab.gnome.org/GNOME/gupnp/issues/23
 - https://gitlab.gnome.org/GNOME/gupnp/issues/24

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Doug Nazar <nazard@nazar.ca>
 - Andre Klapper <a9016009@gmx.de>

1.2.4
=====
- Fix subscription check on V6 link-local addresses
- Add autofree function for GUPnPServiceProxyAction

All contributors to this release:
 - Jens Georg <mail@jensge.org>

1.2.3
=====
- Attention: Requires GSSDP 1.2.3!
- Always build the gupnp-binding-tool manpage
- Fix meson build on Windows
- Fix context creation for tests across different platforms
- Fix static linking issue caused by libguul subproject
- Add mitigations for CVE-2020-12695 (CallStranger)
- Implement UDA 2.0 April 17 2020 Addendum (Patial fix for CVE-2020-12695)

Bugs fixed in this release:
 - https://gitlab.gnome.org/GNOME/gupnp/issues/15
 - https://gitlab.gnome.org/GNOME/gupnp/issues/16

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - soiamsoNG <83182235@qq.com>
 - Peter Seiderer <ps.report@gmx.net>
 - Jan-Michael Brummer <jan.brummer@tabos.org>
 - Mart Raudsepp <leio@gentoo.org>

1.2.2
=====
- Fix macOS dylib versioning
- Fix endless loop on early notify
- Several documentation fixes
- Implement version-independent type registration in ResourceFactory
- Fix an issue with implementation of the depracted functions
- Fix an issue with including net/if.h and linux/if.h
- Add async introspection functions matching the usual GIO function pattern
- Go through main loop if introspection fails before the actual network request
- Bump required GLib version to 2.58

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=764498
 - https://gitlab.gnome.org/GNOME/gupnp/issues/5
 - https://gitlab.gnome.org/GNOME/gupnp/issues/6
 - https://gitlab.gnome.org/GNOME/gupnp/issues/8

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Fabrice Fontaine <fontaine.fabrice@gmail.com>
 - Tom Schoonjans <Tom.Schoonjans@diamond.ac.uk>

1.2.1
=====
- Fix a deadlock when cancelling an action
- Do not call-back a cancelled action
- Fix public dependencies

Bugs fixed in this release:
 - https://gitlab.gnome.org/GNOME/gupnp/issues/7

All contributors to this release:
 - Jens Georg <mail@jensge.org>

1.2.0
=====
- Release 1.2.0

1.1.2
=====
- Use python3 in binding tool
- Avoid a static buffer in the linux context manager
- Add UDA version and address family to linux context manager
- Implement ssdp:update in context manager
- Update documentation
- Introduce new sync/async service proxy call API

Bugs fixed in this release:
 - https://gitlab.gnome.org/GNOME/gupnp/issues/1

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Jakub Adam <jakub.adam@collabora.com>
 - Andre Klapper <a9016009@gmx.de>

1.1.1
=====
- Fix issue when building VAPI
- Pass on network mask from linux CM
- Properly rewrite v6 link-local urls when accessing
- Minor introspection annotation fixes
- Properly filter v6 scopes in linux CM
- Fix compile issues with linux CM when there is no wireless.h
- Fix doble-free in linux CM
- Simplify build tests a bit

All contributors to this release:
 - Jens Georg <mail@jensge.org>

1.1.0
=====
- Bump API and ABI version
- GUPnPRootDevice implements GInitable
- Clean-up functions added for GObject-Introspection compatibility
- Remove all deprecated functions from GUPnP 1.0 API
- Switch build to Meson
- Port everything to new GLib type macros
- Add IPv6 support to Linux context manager
- Fix IPv6 LL support for context
- Add gupnp_context_manager_create_full for specifying the socket family

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=654446
 - https://bugzilla.gnome.org/show_bug.cgi?id=770318
 - https://bugzilla.gnome.org/show_bug.cgi?id=777491
 - https://bugzilla.gnome.org/show_bug.cgi?id=780640
 - https://bugzilla.gnome.org/show_bug.cgi?id=780715
 - https://bugzilla.gnome.org/show_bug.cgi?id=793955

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Sven Neumann <neumann@teufel.de>
 - Oliver Tappe <zooey@hirschkaefer.de>
 - Bastien Nocera <hadess@hadess.net>

1.0.3
=====
- Avoid a crash in gupnp_root_device_constructor
- Propagage User-Agent from Cache
- Fix potential issue with boolean vs. bitwise evaluation
- Fix a crash in GUPnPServiceProxy::subscription_expire
- Accept broken Action header without the "
- Fix issue with strcpy destination buffer size in linux context manager

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=780640
 - https://bugzilla.gnome.org/show_bug.cgi?id=780715
 - https://bugzilla.gnome.org/show_bug.cgi?id=793955

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Sven Neumann <neumann@teufel.de>
 - Bastien Nocera <hadess@hadess.net>

1.0.2
=====
- Fix a potential crash of GUPnPProxy when trying to access a dangling
  GUPnPServiceProxy pointer of a server handler.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=777491

All contributors to this release:
 - Sven Neumann <neumann@teufel.de>

1.0.1
=====

- Connman CM: Various fixes
- Linux CM: Fix compiler warning about negative shift
- Documentation: Fix FSF address
- Documentation: Fix references
- Build: Update ax_append_link_flags

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=770318

All contributors to this release:
 - Sven Neumann <neumann@teufel.de>
 - Jens Georg <mail@jensge.org>
 - Oliver Tappe <zooey@hirschkaefer.de>

1.0.0
=====

- Only version changed

0.99.0
======
- Fix build on OS X

All contributors to this release:
 - Tomasz Pajor <tomek@polishgeeks.com>
 - Jens Georg <mail@jensge.org>

0.20.18
=======

- Retry description URL on failure.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=694450

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Jozef Šiška <jozef.siska@streamunlimited.com>

0.20.17
=======

- Update autogen.sh from GNOME template
- Cache user agents by IP
- Remove intltool
- Use newTargetValue in light example

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=653894
 - https://bugzilla.gnome.org/show_bug.cgi?id=763945
 - https://bugzilla.gnome.org/show_bug.cgi?id=764050

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Philip Withnall <philip@tecnocode.co.uk>

0.20.16
=======

- Don't hardcode python path in gupnp-binding-tool
- Check for IFA_FLAGS to not bind ourselves to a recent kernel version
- Add missing m4 files
- Fix issues with introspection
- Make GUPnPServiceAction boxed
- Some JavaScript examples
- Distribute VAPI file in tarball

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=760217
 - https://bugzilla.gnome.org/show_bug.cgi?id=760430
 - https://bugzilla.gnome.org/show_bug.cgi?id=761265

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Ting-Wei Lan <lantw@src.gnome.org>

0.20.15
=======

- Remove gnome-common
- Fix issue with gupnp_service_signals_autoconnect() blocking endlessly.
- Fix return type for BIN_HEX.
- Update some m4 macros.
- Fix typos in API docs.

NetworkManager context manager:
 - Fix use-after-free issue.
 - Fix various static code analysis findings.

Netlink context manager:
 - Use proper macros for RTM_*ADDRESS messages.
 - Use device name from netlink.
 - Add possibility to dump received netlink packets for debugging.
 - Fix issues with losing contexts after DHCP renew happens.
 - Some style fixes.

Added/updated dependencies:
 - GSSDP >= 0.14.13

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=736365
 - https://bugzilla.gnome.org/show_bug.cgi?id=741257
 - https://bugzilla.gnome.org/show_bug.cgi?id=750936
 - https://bugzilla.gnome.org/show_bug.cgi?id=752490
 - https://bugzilla.gnome.org/show_bug.cgi?id=759000

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Debarshi Ray <debarshir@gnome.org>
 - Olivier Crête <olivier.crete@collabora.com>
 - Guillaume Marquebielle <guillaume.marquebielle@parrot.com>
 - Bastien Nocera <hadess@hadess.net>

0.20.14
=======

Changes since 0.20.13:

Added/updated dependencies:
 GLib 2.0 >= 2.40.0

- Simplify UUID handling.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=743072
 - https://bugzilla.gnome.org/show_bug.cgi?id=744221

All contributors to this release:
 - Jens Georg <mail@jensge.org>

0.20.13
=======

Changes since 0.20.12:

- Fix cyclic includes.
- Avoid redefinition of symbols.
- Fix missing function declaration.
- Don't check von connman.pc.
- Allow actions without arguments.
- Respect "prefer_bigger" even if there is no icon size.
- DOAP fixes.
- Fix VAPI generation.
- Fix reference counting.
- Port to new libsoup API.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=722696
 - https://bugzilla.gnome.org/show_bug.cgi?id=731209
 - https://bugzilla.gnome.org/show_bug.cgi?id=731457
 - https://bugzilla.gnome.org/show_bug.cgi?id=733241
 - https://bugzilla.gnome.org/show_bug.cgi?id=740267
 - https://bugzilla.gnome.org/show_bug.cgi?id=742075

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Sven Neumann <neumann@teufel.de>
 - Jussi Kukkonen <jku@goto.fi>
 - Olav Vitters <olav@vitters.nl>
 - Etienne Peron <etienne.peron@parrot.com>
 - Andre Klapper <a9016009@gmx.de>

0.20.12
=======

Changes since 0.20.11:

- Several documentation fixes.
- Fix warning from clang.
- Prevent a critical if there's no DBus available and a DBus-based context
  manager is used.
- Don't try to use a DBus context manager if we don't have a system bus.
- Use g_return_val_if_fail.
- Fix a small leak of CallbackData in GUPnPServiceProxy.
- Add a gupnp_service_proxy_add_notify_full variant to be nice to
  gobject-introspection.
- Several code cleanups.
- Fix a reference leak in ACL.
- Make "document" property of GUPnPDeviceInfo readable.
- Add gupnp_service_proxy_add_raw_notify which can be used to get the raw
  xmlDoc received through notification.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=701446
 - https://bugzilla.gnome.org/show_bug.cgi?id=706123
 - https://bugzilla.gnome.org/show_bug.cgi?id=706127
 - https://bugzilla.gnome.org/show_bug.cgi?id=727709
 - https://bugzilla.gnome.org/show_bug.cgi?id=729827
 - https://bugzilla.gnome.org/show_bug.cgi?id=730359
 - https://bugzilla.gnome.org/show_bug.cgi?id=730690

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Philip Withnall <philip.withnall@collabora.co.uk>

0.20.11
=======

Changes since 0.20.10:

- Disable the Unix context manager on Android.
- Fix Windows compilation.
- Fix a memory leak in Linux context manager.
- Fix libuuid dependencies in pkg-config files.
- Implement a simple ACL infrastructure.


Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=711027
 - https://bugzilla.gnome.org/show_bug.cgi?id=723715
 - https://bugzilla.gnome.org/show_bug.cgi?id=727539
 - https://bugzilla.gnome.org/show_bug.cgi?id=728889

All contributors to this release:
 - Philip Withnall <philip.withnall@collabora.co.uk>
 - Jens Georg <mail@jensge.org>
 - Olivier Crête <olivier.crete@collabora.com>
 - Luciana Fujii <luciana.fujii@collabora.com>

0.20.10
=======

Changes since 0.20.9:

- Make sure ResourceFactory creates proxies with the correct GType.
- Make it possible to unsubscribe from a service proxy during a call-back.
- Disable managed RootDevices on WL change in addition to ControlPoints.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=678701
 - https://bugzilla.gnome.org/show_bug.cgi?id=690400
 - https://bugzilla.gnome.org/show_bug.cgi?id=711332

All contributors to this release:
 - Jussi Kukkonen <jussi.kukkonen@intel.com>
 - Jens Georg <mail@jensge.org>

0.20.9
======

Changes since 0.20.8:

- Enforce HTTP 1.1 for device description requests.
- Add libuuid to Requires.private of pkg-config file.
- Deprecate gupnp_service_proxy_{begin,send}_action_hash as they cannot
  guarantee the argument order.
- Add gupnp_service_info_get_introspection_async_full() that makes it possible
  to cancel an introspcetion request using GCancellable.
- Fix a crash when running with GSSDP < 0.14.6.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=704867
 - https://bugzilla.gnome.org/show_bug.cgi?id=710491
 - https://bugzilla.gnome.org/show_bug.cgi?id=711027
 - https://bugzilla.gnome.org/show_bug.cgi?id=711167
 - https://bugzilla.gnome.org/show_bug.cgi?id=720369
 - https://bugzilla.gnome.org/show_bug.cgi?id=720372

All contributors to this release:
 - Jussi Kukkonen <jussi.kukkonen@intel.com>
 - Jens Georg <mail@jensge.org>
 - Philip Withnall <philip.withnall@collabora.co.uk>
 - Parthiban Balasubramanian <p.balasubramanian@cablelabs.com>

0.20.8
======

Changes since 0.20.7:
- Minor compilation and style fixes in the Linux CM.
- Add gupnp_white_list_add_entryv utility function.
- Use "port" property to set "msearch-port" property on base class.
- Other style fixes

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=711015

All contributors to this release:
 - Jens Georg <mail@jensge.org>

0.20.7
======

Changes since 0.20.6:
- Fix GCC warnings about local includes.
- Do not hand out libxml2-allocated strings.
- Fix a crash when a notification host was not available.
- Always call action call-back asynchronously, even when there was an error.
- Add performance measurement options to light-server/-client.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=669729
 - https://bugzilla.gnome.org/show_bug.cgi?id=703263
 - https://bugzilla.gnome.org/show_bug.cgi?id=708162
 - https://bugzilla.gnome.org/show_bug.cgi?id=708575
 - https://bugzilla.gnome.org/show_bug.cgi?id=708751

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Andrzej Bieniek <andyhelp@gmail.com>
 - Emanuele Aina <emanuele.aina@collabora.com>

0.20.6
======

Changes since 0.20.5:
 - Don't do excessive network rescans.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=706996

All contributors to this release:
 - Ludovic Ferrandis <ludovic.ferrandis@intel.com>
 - Jens Georg <mail@jensge.org>

0.20.5
======

Changes since 0.20.4:
 - Add some missing G_{BEGIN,END}_DECLS guards.
 - Fix uninitialized variable use introduced in previous version.
 - Add simple network device whitelisting infrastructure.
 - Port gupnp-binding-tool so it's usable with python3.
 - Minor code fixes.
 - Fix crashes in NetworkManager context manager during some async calls.
 - Fix a small memory leak in the unix and windows CM.
 - Always enable GTest tests.
 - Upgrade gtk-doc stuff.
 - Fix the service example in documentation.
 - Remove the test for inverted arguments in the GUPnPContext tests.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=694454
 - https://bugzilla.gnome.org/show_bug.cgi?id=704094
 - https://bugzilla.gnome.org/show_bug.cgi?id=704383
 - https://bugzilla.gnome.org/show_bug.cgi?id=705712
 - https://bugzilla.gnome.org/show_bug.cgi?id=706326

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Ludovic Ferrandis <ludovic.ferrandis@intel.com>
 - Olivier Crête <olivier.crete@collabora.com>
 - Bohuslav Kabrda <bkabrda@redhat.com>

0.20.4
======

Changes since 0.20.3:
- Fix warnings in gtk-doc run.
- Some minor improvements to the documentation.
- Make the user-agent ASCII-only to fix issues with discovery when
  g_get_application_name () returned a translated string.
- Force HTTP version to be 1.1 in SOAP requests.
- Fix potential crashes in XML parsing.
- Fix potential memory leak in gupnp_service_proxy_send_action_valist.
- Some codestyle fixes.
- Add gupnp_device_info_list_dlna_device_class_identifier () to retrieve the
  content of <dlna:X_DLNADOC> nodes.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=704953
 - https://bugzilla.gnome.org/show_bug.cgi?id=702555
 - https://bugzilla.gnome.org/show_bug.cgi?id=704094
 - https://bugzilla.gnome.org/show_bug.cgi?id=700947

All contributors to this release:
  Ludovic Ferrandis <ludovic.ferrandis@intel.com>
  Jens Georg <mail@jensge.org>
  Sébastien Bianti <sebastien.bianti@linux.intel.com>
  Bastien Nocera <hadess@hadess.net>

0.20.3
======

Changes since 0.20.2:
- Add a gupnp_context_manager_rescan_control_points feature.
- Fix VAPI generation if g-i version is >= 1.36.
- Some internal documentation updates.
- Check SID and return a proper error.
- Fix error code returned on invalid NT and NTS headers.
- Fix SEQ to be a uint32.
- Fall-back to unix static CM if netlink sockets are not availabe on runtime.
- Prevent some C++ name mangling in the examples.
- Fix compiling with -Wall -Wextra.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=697314
 - https://bugzilla.gnome.org/show_bug.cgi?id=696289
 - https://bugzilla.gnome.org/show_bug.cgi?id=698192
 - https://bugzilla.gnome.org/show_bug.cgi?id=698125

All contributors to this release:
  Jens Georg <mail@jensge.org>
  Jussi Kukkonen <jussi.kukkonen@intel.com>
  Sébastien Bianti <sebastien.bianti@linux.intel.com>

Changes in dependencies:
  vapigen >= 0.20 if gobject-introspection is >= 1.36

0.20.2
======

Changes since 0.20.1:
- Fix some typos in docs and warning messages.
- Fix argument order issue introduced with the va_list fix in 0.20.1.
- Add some tests for this bug.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=695591
 - https://bugzilla.gnome.org/show_bug.cgi?id=696762

All contributors to this release:
  Jens Georg <mail@jensge.org>
  Benjamin Kerensa <bkerensa@ubuntu.com>

0.20.1
======

Changes since 0.20.0:
- Fix suspicious use of va_list in the code.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=689813

All contributors to this release:
  Krzesimir Nowak <krnowak@openismus.com>

0.20.0
======

Changes since 0.19.4:
- Fix Accept-Language header generation.
- Fix some issues with Windows support on mingw64.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=683199

All contributors to this release:
  Jens Georg <mail@jensge.org>

0.19.4
======

Changes since 0.19.3:
- Shuffle around some test data.
- Fix a GError leak in the linux cm.
- Fix a leak in variable notification.
- Clarify usage of gupnp_service_proxy_remove_notify.

All contributors to this release:
  Jens Georg <mail@jensge.org>
  Sven Neumann <s.neumann@raumfeld.com>
  Marcin Nowakowski <marcin.nowakowski@pure.com>

0.19.3
======

Changes since 0.19.2:
- Work-around missing notification messages.

All contributors to this release:
  Jens Georg <mail@jensge.org>

0.19.2
======

Changes since 0.19.1:

- Support Windows.
- Fix searching for services in ControlPoint.
- Drop deprecated calls to g_type_init on glib >= 2.35.
- Fix LD_LIBRARY_PATH in make check.
- Explicitly use IPv4 in tests.
- Allow autogen.sh to be run out-of-tree.
- Expose GSSDPResourceGroup of a root device.

Bugs fixed in this release:
 - https://bugzilla.gnome.org/show_bug.cgi?id=687320
 - https://bugzilla.gnome.org/show_bug.cgi?id=687621
 - https://bugzilla.gnome.org/show_bug.cgi?id=689028
 - https://bugzilla.gnome.org/show_bug.cgi?id=688411
 - https://bugzilla.gnome.org/show_bug.cgi?id=685643
 - https://bugzilla.gnome.org/show_bug.cgi?id=682580
 - https://bugzilla.gnome.org/show_bug.cgi?id=672830

All contributors to this release:
  Jens Georg <mail@jensge.org>
  Theppitak Karoonboonyanan <thep@linux.thai.net>
  Stef Walter <stefw@gnome.org>
  Juan A. Suarez Romero <jasuarez@igalia.com>
  Alban Browaeys <prahal@yahoo.com>

0.19.1
======
Changes since 0.19.0:
- Include m4 macro for finding vapigen.
- Run introspection with make distcheck.
- Lower G-I requirement again.
- Add gupnp_context_manager_get_port.
- Don't stop configure if vapigen can't be found.
- Drop some deprecated stuff from VAPI.

All contributors to this release:
  Jens Georg <mail@jensge.org>

0.19.0
======

Changes since 0.18.4:

- Add an abstract base class for simple context managers.
- Clean-up pkg-config files to not leak libraries.
- Generate VAPI from GIR file.

Dependency-related changes:
 - Require gssdp >= 0.13.0

All contributors:
 Jens Georg <mail@jensge.org>
 Andreas Henriksson <andreas@fatal.se>

0.18.0
======

Changes since 0.17.2:

- Fix a crash in Linux context manager if the USB cable is unplugged from a
  USB network device interface.

All contributors:
Jens Georg <mail@jensge.org>

0.17.2
======

Changes since 0.17.1:

- Drop main-context property
- Fix a small leak from the default-language property.
- Refactor and clean-up internals of GUPnPContextManager.

Dependency-related changes:
 - Require gssdp >= 0.11.2.

All contributors:
Jens Georg <mail@jensge.org>

0.17.1
======

Changes since 0.17.1:

- Drop deprecated conic support.
- A Linux context manager. Unlinke the generic static unix context-manger,
  the Linux context-manager can dynamically react to device and address
  changes, similar to the NetworkManager-based context-manager, but without
  depending on DBus or NetworkManager.
- Fix for a SOAP action parameter validation regression.
- Updates to the build system such as:
  - Modernized autotools.
  - xz tarballs as default.
- Improved OpenBSD support.
- More stable RootDevice URIs.

All contributors:

Jens Georg <mail@jensge.org>
Jasper Lievisse Adriaanse <jasper@humppa.nl>
Javier Jardón <jjardon@gnome.org>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>

0.17.0
======

Changes since 0.16.1:

- Fix several crashes during initial introspection.
- Several fixes regarding SOAP action parameter validation.
- Always append a Content-Language header if the client has an Accept-Language
  header.
- Always append an Ext header in SOAP responses.
- Improve introspection support:
  * Classes that throw an error during construction implement GInitable.
  * Update gobject-introspection autotools integration.
  * Many annotation fixes.
- Tutorial improvements.

Dependency-related changes:
 - Require gssdp >= 0.11.0.

All contributors:

Jens Georg <mail@jensge.org>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Sven Neumann <s.neumann@raumfeld.com>
Santakivi Topi <Topi.Santakivi@digia.com>

0.16.1
======

Changes since 0.16.0:

- Port to new (0.9) NetworkManager APIs.
- Correction to 'Content-Type' HTTP header values.
- Satisfy strict compiler checks.

All contributors:

Dan Williams <dcbw@redhat.com>
Sven Neumann <s.neumann@raumfeld.com>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>

0.16.0
======

Changes since 0.15.1:

- Set the thread context before doing GDBus operations.
- Use the default timeout on DBus calls.
- Fix documentation of gupnp_context_manager_new().
- Remove redundant code.
- Clear the (obsolete) ChangeLog file.
- Add some checks on variants.
- Don't use uninitialized pointer.
- Some coding-style fixes.

Bugs fixed in this release:

2224 - GUPnP accesses dbus properties without checking that they exist
2223 - Missing handling of gio-style multi-main-context in GUPnPNetworkManager

All contributors:

Olivier Crête <olivier.crete@collabora.co.uk>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Sven Neumann <s.neumann@raumfeld.com>
Jens Georg <mail@jensge.org>
Ross Burton <ross@linux.intel.com>
Luis de Bethencourt <luis@debethencourt.com>

0.15.1
======

Changes since 0.15.0:

- Set 'ESSID' on WiFi contexts.
- Fix a crasher bug.
- Fix some leaks.
- Remove a cyclic-reference
- Fix logic to find service from list and therefore the issue of wrongly
  ignoring new services.
- Remove all hosted paths from SoupServer before unrefing it.

Dependency related changes:

- Require gssdp >= 0.9.2.

Bugs fixed in this release:

2212 - Leak in gupnp_root_device_construct
2215 - gupnp-control-point ignores services at startup
2216 - Leak in gupnp_resource_factory
2217 - gupnp-unix-context-manager leaks contexts if interfaces are not up
2218 - gupnp-context creates new SoupServers on shutdown

All contributors:

Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Jens Georg <mail@jensge.org>

0.15.0
======

Changes since 0.14.0 not included in 0.14.1:

- Port from dbus-glib to GDBus.
- Enable gzip compression for large action response bodies.
- Fix gupnp-binding-tool to generate headers usable in C++.

Dependency related changes:

- Require glib >= 2.24.0.
- Require libsoup >= 2.28.2.
- Require gio >= 2.26 (new dependency).
- Drop dependency on dbus-glib.

Bugs fixed in this release:

2184 - Migrate from dbus-glib to glib's GDBus

All contributors:

Ross Burton <ross@linux.intel.com>
Sven Neumann <s.neumann@raumfeld.com>
Henry Hoegelow <h.hoegelow@raumfeld.com>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Fargier Sylvain <fargier.sylvain@free.fr>

0.14.0
======

Changes since 0.13.5:

- Don't use deprecated glib, gobject and libsoup APIs.
- Check for libuuid only on platforms where we need it.
- Explicitly link example apps to needed libraries.
- Fix some potential crashes and leaks.
- Fix pointer to/from integer conversion on 64-bit machines.
- Fix parsing of unsigned integers.
- Use locale-independent float <-> string conversions.
- Remove some redundant functions and variables.
- Remove some unused variables noticed.
- Use correct mime-type for XML data.
- Various non-functional improvements.

Bugs fixed in this release:

2192 - 64bit portability issue with *_register_*_type functions
2190 - Build fails because explicit linking is missing
2188 - configure.ac should leave out the uuid module check on OSX

All contributors:

Ross Burton <ross@linux.intel.com>
Sven Neumann <s.neumann@raumfeld.com>
Jens Georg <mail@jensge.org>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Nader Morshed <morshed.nader@gmail.com>

0.13.5
======

Changes since 0.13.4:

- Chain up in GUPnPXMLDoc's finalize().
- Correct transfer annotation for gupnp_context_get_session().
- Prefer g_strcmp0() over strcmp().
- Check for body length rather than Content-Length in SOAP requests so we
  can satsify DLNA CTT test 7.2.5.7.
- Explicitly link test apps to needed libraries.

Bugs fixed in this release:

2186 - Missing annotation for context_get_session

All contributors:

Sven Neumann <s.neumann@raumfeld.com>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Zach Goldberg <zgold@corvette.(none)>

0.13.4
======

Changes since 0.13.3:

- GUPnPService should remove all handlers installed on the shared SoupServer
  instance when it is disposed.
- Fixate subscription timeout to be 300s as per DLNA requirement (7.2.22.1).
- Correct type of action argument of GUPnPService::action-invoked.
- Remove redundant copying of GValue content in a few places.
- Handle multiple variables inside property node in event notifications to be
  compatible with server-side implementations using older GUPnP
- Fix syntax of event notifications with multiple properties.
- Add/fix gobject-introspection annotations for various functions.
- Some non-functional improvements.

Bugs fixed in this release:

2084 - Add scope annotations to various functions
2131 - GUPnPServiceAction is a boxed, not a pointer
2086 - Fix gtk-doc format on all functions in public GUPnP API

All contributors:

Sven Neumann <s.neumann@raumfeld.com>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Zach Goldberg <zgold@corvette.(none)>

0.13.3
======

Changes since 0.13.2:

- Include the Content-Type header in the HTTP messages. This satisfies DLNA
  CTT test cases 7.2.5.9 and 7.2.29.1.
- Use g_message instead of g_warning if we can't connect to DBus.
- Make the HTTP server listen on the context's interface only.
- Fix some potential crashes in GUPnPServiceProxy and GUPnPContextManager code.
- Fix build issues in jhbuild environment.
- Fix some gcc warnings.
- Add new API to host path for specific user-agent(s).
- Add gobject-introspection support:
  - Provide gobject-introspection GIR and typelib.
  - Add needed annotations to doc comments.
  - Add GList variants of action-related functions to satisfy PyGI.
- A few non-functional improvments.

Dependency related changes:

- gssdp >= 0.7.1

Bugs fixed in this release:

2054 - Xbox hacks
1965 - gcc warning fixes
2039 - GUPnP is hard to use with jhbuild
1948 - Signal handler are not disconnected when ContextManager is disposed
2030 - gupnp context listens on 0.0.0.0 instead of the context's ip
1924 - Content-Type header must contain charset="utf-8" in all HTTP transactions
2006 - Implement 3 new functions for language bindings (begin_action_list,
       end_action_list, gupnp_service_action_get_value_type)
1919 - Add GObject Introspection Annotations and Makefile
1979 - g_warning make gupnp-igd test fails
1906 - Tests failed with gupnp 0.13

All contributors:

Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Zach Goldberg <zgold@corvette.(none)>
Ross Burton <ross@linux.intel.com>
Olivier Crête <olivier.crete@collabora.co.uk>
Neil Roberts <neil@linux.intel.com>
Sven Neumann <s.neumann@raumfeld.com>
Jens Georg <mail@jensge.org>
Yakup Akbay <yakbay@ubicom.com>

0.13.2
======

Changes since 0.13.1:

- Utilize libconic (Maemo5) if available.
- Unix context manager must signal the unavailibility of all contexts when
  disposed.
- Enable silent build rules if they are available.
- Fix race-conditions in client-side notification handling.
- Unix context manager ignores point-to-point interfaces.
- Context manager ignores interfaces without IP addresses.
- Don't require timeouts to be specified in subscription requests.
- Fix build against gcc 4.[1,2].
- Make network manager thread-safe.
- Remove idle source on dispose in context manager implementations.
- Warn in docs that gupnp_service_info_get_introspection() is evil and why.
- Service retrieves introspection data in truly async way.
- Fix some leaks.
- A bunch of code clean-ups.

All contributors:

Olivier Crête <olivier.crete@collabora.co.uk>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Ross Burton <ross@linux.intel.com>
Jens Georg <mail@jensge.org>
Cem Eliguzel <celiguzel@ubicom.com>

Bugs fixed:

1890 - Timeout parsing problem with SUBSCRIBE method
1880 - subscription/notification handling is racy
1906 - Tests failed with gupnp 0.13
1849 - Compile error when using gcc 4.[1,2] and strict aliasing
1494 - Ability to deal with multiple network interfaces
1881 - networkmanager interaction should use its own dbus connection

0.13.1
======

Changes since 0.13:

- Use unix context manager if NetworkManager service is not available.
- Fix some minor leaks.

All contributors:

Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Ross Burton <ross@linux.intel.com>

0.13
====

Changes since 0.12.8:

- Print reason when fail to fetch description doc
- Support for dynamic/multiple networks through a new class, ContextManager.
  This class creates/destroys new context as new network interfaces go up/down.
  It also provides two convenient methods to take care of control point and
  device reference managment for you. Currently we have two implementations of
  context manager:
  * unix: The static but guaranteed to work on Unix, implementation. This is the
          default if none chosen at configure-time.
  * network-manager: A NetworkManager based implementation.
- Idle handlers should use the assigned GMainContext.
- Gracefully handle 'no root element in description' scenerio.
- "host-ip" property moved from GUPnPContext to parent GSSDPClient.
- ControlPoint set itself inactive before getting disposed.
- New function to retrieve the capabilities of a DLNA device as announced in
  the device description.
- New function to retrieve the content of arbitrary elements in the device
  description.
- Fixed a crash that happens when service-proxy goes down before subscribtion to
  it completes.
- Correct condition for SID being NULL.
- Don't create redundant proxies.
- Must not announce earlier versions of resources. This is strictly forbidden
  according to the latest UPnP specs. Instead GSSDP now handles M-SEARCH
  requests independent of version requested.
- Free app developer from hosting of description documents.
- New API to get SoupMessage associated with ServiceAction.
- Handle the SOAPAction header being missing.
- Fixed strrchr result checking.
- Provide and use a wrapper class for xmlDoc objects, GUPnPXMLDoc that is a
  first-class gobject.
- New domains for XML errors.
- Many other minor fixes.

Bugs fixed:

1626 - Print reason when fail to fetch description doc
1769 - audit issues
1760 - missing/invalid SOAPAction header crashes gupnp
1705 - Provide a public API to get information about a GUPnPServiceAction's HTTP
       request

Dependencies changed:

- gssdp >= 0.7

All contributors:

Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Ross Burton <ross@linux.intel.com>
Sven Neumann <s.neumann@raumfeld.com>
Jens Georg <mail@jensge.org>
Steven Dorigotti <steven.dorigotti@tvblob.com>

WARNING: This release is API and ABI incompatible with previous releases.

0.12.8
======

Changes since 0.12.7

- Don't crash if device descriptions don't contain a root element.
- Fix pkg-config paths.
- Avoid using asserts.
- Use the closest match instead of using the icon that was last checked.
- Expect xmlRecoverMemory to fail.
- Reject action messages with zero content length.
- Change version in action answer.

Bug fixes in this release:

- bug#1570: gupnp doesn't set the pkgconfig lib dir correctly in 64 bit env.
- bug#1574: Avoid using asserts.
- bug#1592: gupnp_device_info_get_icon_url() does not return the closest match.
- bug#1604: Crash on action without any content.

All contributors to this release:

Ross Burton <ross@linux.intel.com>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Steven Dorigotti <steven.dorigotti@tvblob.com>
Sven Neumann <s.neumann@raumfeld.com>
Jens Georg <mail@jensge.org>

0.12.7
======

- Chain up dispose and finalize in GUPnPDeviceInfo [Sven Neumann]
- Use a dedicated SoupSession [Sven Neumann]
- Fix device icon fallback logic [Ross Burton]
- Fix user agent string [Sven Neumann]
- Sanity check UDN while parsing [Zeeshan Ali]

0.12.6
======

- Port to FreeBSD. [Romain Tartière]
- Ship the XML files needed for example app. [Romain Tartière]
- Keep a reference on the control-point during signal emission. [Sven Neumann]
- Allow passing NULL to ControlPoint constructor, for default resource factory.
  [Sven Neumann]
- Remove debug output that accidentally went in with the last commit.
  [Sven Neumann]

0.12.5
======

- Improved error handling. [Sven Neumann, Jorn Baayen]
- Specify character set (UTF-8) in NOTIFY messages. [Jorn Baayen]
- Don't export internal functions. [Jorn Baayen]
- Fix some crasher bugs. [Zeeshan Ali]
- More lenient handling of xml from external sources. [Jorn Baayen,
  Jussi Kukkonen]
- Fix possible reference cycles. [Zeeshan Ali, Jorn Baayen]
- Better handling of event subscription timeouts. [Zeeshan Ali]

0.12.4
======

- Set Content Type header correctly in soap messages [Zeeshan Ali]
- Don't pass arbitrary strings to printf() for security [Sven Neumann]
- Handle fscanf failing in get_default_host_ip() [Sven Neumann]

0.12.3
======

- Greatly improved client-side bindings [Jussi Kukkonen]
- Server-side bindings [JK]
- Don't use NULL return values from g_get_application_name [Ross Burton]
- Make gupnp_context_get_session public [Jorn Baayen]
- Use the specified GMainContext for timeouts [Olivier Crete, Jorn Baayen]

0.12.2
======

- Support returning actions outside of the 'action-invoked' signal handler
  in service implementations. [Zeeshan Ali, Jorn Baayen]
- Add explicit dependency on gthread. [Zeeshan Ali, Jorn Baayen]

0.12.1
======

- Support Range headers without upper bound. [Jorn Baayen]
- Fixed memory management in HTTP GET handler. [Jorn Baayen]

0.12
====

- Add tool for generating convenience C wrappers for GUPnP service definitions.
  [Ross Burton]
- Remove xmlDoc argument from gupnp_root_device_new() for simplicity.
  (xmlDocs can still be passed to gupnp_root_device_new_full())
  [Jorn Baayen]
- Better documentation, new tutorials and sample code. [Ross Burton]
- Improved support for Accept-Language header. [Jorn Baayen]
- Various internal improvements. [Zeeshan Ali, Jorn Baayen]

0.10.1
======

- Bump soname.

0.10
====

- Use libsoup 2.4. [Zeeshan Ali Khattak, Jorn Baayen]
- Use g_timeout_add_seconds(). [Jorn Baayen]
- Use GIO instead of xdgmime. [Jorn Baayen]
- Support HTTP Range header in the HTTP server. [Jorn Baayen]
- Use GMappedFile to mmap served files of read()ing them. [Jorn Baayen]
- Improved documentation. [Ross Burton]
- Spew HTTP messages to console when GUPNP_DEBUG is set. [Ross Burton]
- Various other fixes. [Ross Burton, Zeeshan Ali Khattak, Jorn Baayen]

0.8
===

- New API allowing for subclassing of resource types. 
  [Zeeshan Ali, Jorn Baayen]
- GUPnPDeviceInfo returns subresources with version greater or equal than
  requested version. [Jorn Baayen]
- Servers announce versions less or equal than implemented version.
  [Jorn Baayen]
- Make gupnp_context_get_server() public. [Jorn Baayen]
- GError arguments added to all error signals. [Jorn Baayen]
- Improved resubscription handling. [Jorn Baayen]
- Various other fixes and internal improvements
  [Ross Burton, Zeeshan Ali, Jorn Baayen].

0.6
===

- Added service signal autoconnection feature in the spirit of
  glade_xml_signal_autoconnect(). [Zeeshan Ali]
- Fixed various bugs related to object destruction. Fixes #500, 503.
  [Jorn Baayen]
- Accept 'yes' and 'no' boolean values. [Zeeshan Ali]
- More information in error messages. [Zeeshan Ali, Jorn Baayen]
- Mark GUPnPServiceIntrospectionCallback() 'error' argument as 'const'.
  [Jorn Baayen]
- Fixed gupnp_device_info_get_model_number() to return the right value.
  [Zeeshan Ali]
- Moved the uuid dependency to Requires.Private, and removed the
  shared-mime-data build dependency. [Jorn Baayen]
- Various other minor fixes. [Zeeshan Ali, Jorn Baayen]

Special thanks to Stéphane Loeuillet for stress-testing the library and
discovering many bugs. (Which are all fixed in this release. :) )

0.4
===

- A new series of functions for sending actions taking hash tables of parameter
  name-GValue pairs. [Jorn Baayen]
- New introspection methods for state variable and action retrieval by name.
  [Zeeshan Ali]
- New pkg-config file for building against an uninstalled libgupnp.
  [Zeeshan Ali]
- Improved conversion between GValues and UPnP value types. [Jorn Baayen]
- Only include evented state variables in initial event message.
  [Jorn Baayen]

0.3
===

- Allow embedded devices to have their own UDNs. [Jorn Baayen]
- Portability fix. [Priit Laes]

0.2
===

- Fully implemented server-side API. [Jorn Baayen]
- New service introspection support through SCPD documents. [Zeeshan Ali]
- M-POST support. [Jorn Baayen]
- More error codes split out into several error domains. [Jorn Baayen]
- Use Accept-Language header for internationalisation. [Jorn Baayen]
- Subresource retreival moved from DeviceProxy to DeviceInfo. [Jorn Baayen]
- Bug fixes.

GUPnP is now feature complete.

0.1
===

Initial release. Full client-side API, server side not done yet.
