New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CNetwork - implement IPv6 #7030
Commits on Jan 8, 2017
-
-
[osx] Private netlink.h copy from Linux. OSX provides netlink interface
and calls, but doesn't provide .h files. Having this, we can further simplify OSX/Android/Linux networking code - same API will be used across all three platforms - less #ifdefs
-
[TCPServer] Propery shutdown connection / close sockets and clear err…
…ors. Otherwise the ES can't rebind on crash/fast restart.
-
[CNetwork] Create new helper methods needed for IPv6 stack
implementation and easy IPv6/v4 address manipulation.
-
-
[CNetwork] Replace all existing loops over m_interfaces vector with C…
…++11 very simple 'for(auto)' construction.
-
[CNetwork] current WOL implementation can't be updated for IPv6
as it's working mechanism changed completely (IPv6 has no ARP). Comment accordingly in Network.h, make those calls safe by returning false immediatelly upon call when host has only IPv6 configuration.
-
[CNetwork/NetworkLinux/W32] update PingHost() functions to IPv6 compa…
…tibility. - CNetwork::ConnectHostPort() and CNetwork::PingHost() were updated for full IPv6/IPv4 compatibility. IP host address parameter changed to std::string and created wrapper for old call via hostip as ulong. - Linux implementation for PingHost was updated to use ping/ping6 as needed - W32 impl was aligned to changed function template, on IPv6 host param returns false, no change otherwise.
-
[CNetwork] Provide more detailed debugging info inside CreateTCPServe…
…rSocket() function - include port and text of current error.
-
[IAnnouncer] create new announcer Network and emessage
[CNetwork] NETWORK_CHANGED. if triggered, all Services are asked to restart to rebind onto new network configuration. "OnInterfacesChange" from "Network" is announced globally.
-
[CNetworkLinux] Let's provide Network stack monitoring via NETLINK
interface. Currently reported events are changes in link status and interface is being added or removed. On event we requery interfaces list and IF informations. Announcement from "Network" is sent with event data "OnNetworkChange".
-
-
[CCURL] Add IPv6 destinations to Internet reachability test.
Those will be used only in case host has IPv6 only configuration. Without this change, pure IPv6 connectivity would be checked with trying to access IPv4 resolved addresses.
-
[URIUtils] Provide new IPv6/IPv4 compatible test and manipulation
methods of CNetwork via those wrappers: - on many places through whole Kodi code there is use of IPv6 incompatible API calls like inet_ntoa(), inet_aton(), inet_addr() (Not only are those known not to work for IPv6 queries, in some cases it's behaviour is undefined and it's use is discouraged. TODO: all such calls should be eventually changed to use this new API and direct use of system level network calls should not be allowed anymore)
-
[NetworkLinux] Update internals according to commit previous commit
03081378a259f1c32f3411c474b6ec2aabfec29e
-
[NetworkLinux] Add IPv6 support to GetCurrentDefaultGateway().
Neighbor Discovery protocol nor receiving of Router Solicitation messages not implemented.
-
[CNetworkLinux] Align with CNetwork in regards to IPv6, update to
IPv4/v6 compatible calls.
-
[CURL] Canonize IPv6 address as part of parsing and store it in this …
…form. (update tests in test/TestURL.cpp)
-
-
-
[NetworkLinux] - align the behaviour with W32 implementation and load
only interfaces with flag IFF_UP (interface has (some) configuration and is UP - bind() will not fail) (this means non empty interfaces list is sufficient prerequisite to start network services without errors)
-
-
[NetWatch] - move the core code into CNetwork, keep only NetLink
specific handler in LinuxNetwork code. Prepare for easy w32 watcher integration.
-
-
[NetworkLinux] - OSX/FreeBSD fixes
- fix FreeBSD/OSX MacAddr fetch - fix NetworkInterfaceLinux::IsConnected()
-
[CNetwork] - stop and start NetworkUpdater thread with OnSleep/OnWake
announcements. This avoids unnecessary reconfigurations when IFs are changing back to IFF_UP as part of resuming process.
-
[CNetwork, WakeOnLan, CDNSNameCache]
- remove network api calls from wakeonlan, use new CNetwork API - move HostToIp() to CDNSNameCache / rename to Lookup(), adapt calls accordingly - remove Lookup() failure logging from WakeOnLane (as this is logged in CDNSNameCache itself)
-
CNetworkLinux::GetNameServers(): also return ipv6 nameservers
(Upstream commit 254d0d8)
-
[Network] fix/introduce a way to pass size(addr) from unisex struct s…
…ockaddr_storage down to socks layer
-
[CNetworkLinux] remove lock, as all callers to DeleteRemoved() are al…
…ready creating lock.
-
-
-
-
-
[CDNSNameCache] Update to master
- remove announcer use from CDNSNameCache - flush name cache from Network on services start/restart (cherry picked from commit 36666d3173633f125f7d3494a8e3c90f365a9d54)