Currently, UpnpInit only allows for one IP address to be used when initializing. As the documentation already mentions, this is problematic in multi-homed scenarios. Here, one can specify the IP address.
But common multi-homes scenarios are mobile devices connected to the second network (for example a corporate network) via vpn. Specifying the ip in this scenario is not only uncomfortable, for end users, it may well be impossible, as the ip addresses constantly change when moving the portable device to other locations (lans/wlans).
Therefore, I suggest changing UpnpInit to allow for connecting to multiple (and consequently all) available interfaces. Applications could then choose to only connect to interfaces of special types (which should probably not be the scope of libupnp).