API changes after 1.10

This is a list of API changes after libUPnP version 1.10. This page contains explanation of these changes and what users need to do to migrate.

# Version 1.12

## list.h header changed

The list.h header was replace by a different version, now all symbols are properly namespaced with a Upnp prefix. This header was never intended to be used directly by libUPnP users, so not many should be affected.

As a side-effect of the header change, libUPnP no longer defines the true and bool macros. Users that need those should define their own or use <stdbool.h>. Additionally the following macros are no longer defined:

- prefetch
- container_of
- READ_ONCE
- WRITE_ONCE

And various list-specific macros are gone. For details see the discussion at the Github PRs #128 and #129.

## Removal of TRUE, FALSE macros and BOOL type

Previously ixml.h used to define TRUE and FALSE and declared a BOOL typedef. Those macros and the typedef were removed in 10.12 in favor of just using int and 1 and 0 for true and false.

If your code relied on these being available, the cleanets fix would be to use <stdbool.h> instead. Alternatively if you can't use that or it would require too many changes to your existing source code, you can define the macros and typedef in your headers:

#ifndef __OBJC__
typedef int BOOL;
#else
/* When using Objective-C, include objc.h which defines BOOL */
#include <objc/objc.h>
#endif
#define TRUE 1
#define FALSE 0

# Version 1.14

## UpnpInit() has been dropped

UpnpInit() has long been deprecated and has now been dropped. Please use UpnpInit2().

## Some include files have been renamed

When the template code was removed, a few files were renamed for consistency. The function calls remain the same, so the only necessary changes are in the include file names. The affected files are:

Original Name | New Name
--- | ---
upnp/inc/ActionComplete.h | upnp/inc/UpnpActionComplete.h
upnp/inc/ActionRequest.h | upnp/inc/UpnpActionRequest.h
upnp/inc/Discovery.h | upnp/inc/UpnpDiscovery.h
upnp/inc/Event.h | upnp/inc/UpnpEvent.h
upnp/inc/EventSubscribe.h | upnp/inc/UpnpEventSubscribe.h
upnp/inc/ExtraHeaders.h | upnp/inc/UpnpExtraHeaders.h
upnp/inc/FileInfo.h | upnp/inc/UpnpFileInfo.h
upnp/inc/StateVarComplete.h | upnp/inc/UpnpStateVarComplete.h
upnp/inc/StateVarRequest.h | upnp/inc/UpnpStateVarRequest.h
upnp/inc/SubscriptionRequest.h | upnp/inc/UpnpSubscriptionRequest.h