README: Clarify what iptables are needed for

Document that iptables is needed for tethering.
README: Add information on how online check is done

Clarify how ConnMan does portal detection and online check in more detail.
supplicant: Tie P2P flush D-Bus call to the interface

As the callback for the call accesses GSupplicantInterface structure,
tie the pending call to the interface pointer so that it gets cancelled
if the interface is removed.
supplicant: Rewrite pending DBus call handling for properties

Property-related D-Bus calls may be pending replies when the related
GSupplicantInterface structure is cleaned up. This results in an
attempt to access already freed memory when calls complete.

Fixed by keeping a list of pending property calls, and canceling the
calls related to an interface when the interface is removed. This is a
similar change to the one made earlier for pending method calls.
wifi: Cancel pending supplicant operations when removing

If there are pending D-Bus calls made inside supplicant code when
wifi_remove() frees the wifi struct, wifi plugin callback functions
may attempt to use already released memory when the calls complete.

Fixed by cancelling any outstanding supplicant calls in wifi_remove().
service: Check service->pending for NULL

connect_service() calls __connman_service_connect() which may in turn call
reply_pending() which unrefs service->pending and sets it to NULL. Therefore,
connect_service() needs to check service->pending for NULL prior to calling
dbus_message_unref() on it.

[Patrik: This issue happened if DBUS_DISABLE_CHECKS had been defined during
 dbus library compile time]
dhcp: Don't override user setting when setting auto proxy url via DHCP.

Fixes loss of proxy auto configuration settings on first connect after
reboot or when a DHCP lease is renewed.

The pac field is used to store the user set proxy auto configuration
URL (from Proxy.Configuration property). DHCP was using the same field
instead of the proxy auto configuration field in the IP configuration
structure.
dhcp: Remove leftover source if service has been freed

dhcp_retry_cb() will try to use an inexistent service causing a crash
when the system is connected to a network with no dhcp service
providers check if service exists and remove source if it doesn't
AUTHORS: Mention Alexandru's contributions
openvpn-script: Debug print change

Make the debug print more useful by printing what env vars are
missing.
ipaddress: Refactor function that calculates netmask length

Renaming the netmask length calc function so that it can be used
by both connmand and vpnd.
vpn-ipconfig: Remove obsolete netmask calc function

This function is not used so can be removed.
inet: Add more debug information when clearing IP address

Print all the useful information instead of just few params.
vpn-ipconfig: Add function that returns the used IP address

This is needed in later patch when we restart the VPN connection and
need to know the earlier address so that it can be removed from the
interface.
ipaddress: Add function that returns IP address and netmask length

This is used in later patch by vpnd when clearing the IP address
from interface.
vpn: Provider was freed too early causing possible free memory access

When VPN dies we clear rtnl watch and unref the provider. The
unref needs to be done after the watch has been removed, otherwise
it is possible that we try to access already freed provider data
from rtnl watcher if new rtnl event is received.
vpn-provider: Add function that is used to change the used IP address

This is needed when restarting the VPN connection and the IP address
changes.
vpn-provider: Add support function that removes the used IP address

This is used when restarting the VPN connection and IP address changes
and we must remove the earlier IP address from network interface.
ipaddress: Add support function that copies the whole IP address struct

This is needed by later patch when vpnd needs to remember the
previous used IP address.
vpn-provider: Set IP address properly when restarting VPN connection

If the IP address changes when VPN restarts, then we handle that by
clearing the old address and setting the routes properly.