Age | Commit message (Collapse) | Author | Files | Lines |
|
The __connman_technology_add_interface() needs to be called
after we have created the technology which is done by rtnl->newlink()
callback. If this is done the old way, the ethernet devices
will not get their interfaces set properly.
|
|
|
|
Service and network code use only interface indexes. Convert the rest of
the code using interface names to use interface indexes instead. The files
affected are:
include/resolver.h
src/connman.h
src/dnsproxy.c
src/resolver.c
src/rtnl.c
src/service.c
src/tethering.c
As the network and service code used interface indexes, the interface
name had to be looked up via a SIOCGIFNAME ioctl when needed. If a service
was removed due to the interface and network being taken down, the lookup
wouldn't work. This caused DNS servers to be left behind with broken sockets
since removing the DNS servers was done using the interface name.
|
|
ConnMan should just ignore netlink messages generated by wext
as described in commit 4997f6e38f34effc00179e849dee0dc2e2263d3a.
Handle wext message detection using the IFLA_WIRELESS type
because the ifinfomsg ifi_change field is reserved for future
use and code using it for wext detection has been removed.
|
|
The ARP header type for PPP connections is ARPHRD_PPP (512).
|
|
The connman prints an unknown type when sending a request RTM_GETADDR
|
|
Instead of hard-coding some selected devices to be ignored, the
blacklist check now uses the connman_device_isfiltered list.
|
|
Domain search list option can exist in options without RDNSS option.
Note that the DNSSL netlink support is not yet in linux kernel
3.4-rc7, thus we will not yet get a DNSSL option in netlink RA
options.
|
|
|
|
|
|
|
|
In order to be able to request a certain ipconfig type, add the type
as a parameter to __connman_ipconfig_get_gateway_from_index().
|
|
This fix is for following scenario:
- New interface is coming up.
- There is radvd in the connected network and it is
advertising IPv6 addresses and DNS servers.
- Kernel receives router advertisement and picks up the DNS
server information which is then routed via netlink to
rtnl.c:rtnl_newnduseropt() which then creates DNS listener.
- Kernel activates DAD (duplicate address detection).
- As the DAD takes some time we now have interface up
and it only has link local IPv6 address defined.
- The DNS listener is now using link local source addresses when
sending queries instead of proper autoconfigured addresses.
- When DAD is finished, the interface will have autoconfigured
addresses assigned and corresponding netlink message will cause
function rtnl.c:process_newaddr() to be called.
- If all this happens, then we re-create DNS listener
in dnsproxy.c so that listener will have a proper
(autoconfigured) source address when sending DNS packets.
|
|
Make sure all file descriptor are closed.
|
|
|
|
|
|
|
|
To avoid a name clash with the next patch, the
__connman_ipconfig_get_*(index) have to be renamed.
Since they all use an index as lookup argument rename
them to __connman_ipconfig_get_*_from_index(index).
|
|
src/rtnl.c:578:8: error: 'src' may be used uninitialized in this function
src/rtnl.c:610:8: error: 'src' may be used uninitialized in this function
src/rtnl.c:1108:19: error: 'servers' may be used uninitialized in this function
|
|
|
|
|
|
|
|
|
|
|
|
Rather than registering the new nameserver as we hit the RDNSS option,
gather all the information first and then register the nameservers
after the loop.
That way, we can gather the search domains while we're looping, and
provide them when we register the nameservers.
|
|
The device is created and the underlying technology attached from
the rtnl newlink hook, so __connman_technology_add_interface() needs
to be called after it.
|
|
|
|
|
|
Checking for wireless extensions is a bit more reliable than looking for
a potentially missing wireless directory.
|
|
Those don't come with a proper uevent DEVTYPE label. ConnMan looks for
a sysfs wireless directory in that case.
|
|
Since ConnMan is now relying only on rtnl for device detection, the rtnl.c
code should be responsible for providing device types. And this is done by
parsing the device uevent DEVTYPE label.
|
|
|
|
|
|
The isimodem GPRS connections (PHONET_PIPEs) have ARP header type 821.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Instead of creating a new rntl trigger for each Counter object move this
part to the rtnl core. Only one update trigger will be registered at RTNL.
The minimum interval will used for the timeout callback.
|
|
When gateway is NULL, we need to properly set our connection and element
string to 0.0.0.0 so that the interface is the default route.
|
|
|
|
RTM_*ROUTE messages can come with an RTPROT_KERNEL protocol when setting
route after bringing the interface up.
|
|
|
|
|
|
|
|
|