Done with:
./mach static-analysis check --checks="-*, modernize-concat-nested-namespaces" --fix .
and then clang-format on the files
Differential Revision: https://phabricator.services.mozilla.com/D58217
--HG--
extra : moz-landing-system : lando
Done with:
./mach static-analysis check --checks="-*, modernize-concat-nested-namespaces" --fix .
and then clang-format on the files
Differential Revision: https://phabricator.services.mozilla.com/D58217
--HG--
extra : moz-landing-system : lando
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.
find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
if [ -n "$interfaces" ]; then
if [[ "$interfaces" == *$'\n'* ]]; then
regexp="\("
for i in $interfaces; do regexp="$regexp$i\|"; done
regexp="${regexp%%\\\|}\)"
else
regexp="$interfaces"
fi
interface=$(basename "$path")
rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
if [ $hits -eq 0 ]; then
echo "Removing ${interface} from ${path2}"
grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
mv -f "$path2".tmp "$path2"
fi
done
fi
done
Differential Revision: https://phabricator.services.mozilla.com/D55444
--HG--
extra : moz-landing-system : lando
The preferences network.netlink.route.check.IPv4 and network.netlink.route.check.IPv6 were removed in bug 1593693 and the values are now hardcoded because they are used by Linux/Android implementation of nsNetworkLinkService for link status detection and they are not supposed to be changed by the user.
Differential Revision: https://phabricator.services.mozilla.com/D55587
--HG--
extra : moz-landing-system : lando
The problem is that the suffix is not always computed when Firefox starts up.
This patch adds a pref `network.notify.initial_call` that controls whether
CheckAdaptersAddresses gets called imediately after.
This call is necessary in order to compute the suffix list, VPN status, etc.
This patch also ensures that OnDnsSuffixListUpdated gets called by
NetlinkService::ComputeDNSSuffixList on Android. This notification is
necessary for the TRRService to pick up the suffix list.
Differential Revision: https://phabricator.services.mozilla.com/D55303
--HG--
extra : moz-landing-system : lando
This patch makes network change event different from network ID change event on Linux and Android. Network change event is now also sent when any address has been added, removed or changed.
Differential Revision: https://phabricator.services.mozilla.com/D53796
--HG--
extra : moz-landing-system : lando
This patch adds network ID change event to Linux and Android. On these platforms network ID change event is equal to network change event.
Differential Revision: https://phabricator.services.mozilla.com/D50391
--HG--
extra : moz-landing-system : lando
Determining link status from states and addresses of the individual interfaces isn't always reliable. With this patch we assume the link is up when we could find a route for kRouteCheckIPv4 host or kRouteCheckIPv6 host.
Differential Revision: https://phabricator.services.mozilla.com/D52027
--HG--
extra : moz-landing-system : lando
Determining link status from states and addresses of the individual interfaces isn't always reliable. With this patch we assume the link is up when we could find a route for kRouteCheckIPv4 host or kRouteCheckIPv6 host.
Differential Revision: https://phabricator.services.mozilla.com/D52027
--HG--
extra : moz-landing-system : lando
When we fail to detect the link as mobile data device, we use GW address for ID calculation. And because GW changes often in case of mobile data we often get different ID for the same network.
Differential Revision: https://phabricator.services.mozilla.com/D51612
--HG--
extra : moz-landing-system : lando
This patch splits network change event into 2 events:
1) network ID change event
It is sent when the calculated ID differs from the previous one.
2) network change event
It is sent when the network ID has changed or when any address has been added, removed or changed.
Differential Revision: https://phabricator.services.mozilla.com/D50391
--HG--
extra : moz-landing-system : lando
For same reason, there are artificial MAC addresses available on some non-ethernet link devices. With this patch we ignore all neighbor messages for non-ethernet links. Also, when traffic for the checked host is routed via rmnet_data device, we skip hashing IP of next hop, because it changes very often in case of some mobile providers.
Differential Revision: https://phabricator.services.mozilla.com/D50184
--HG--
extra : moz-landing-system : lando
Kernel can drop routes, addresses and neighbors without notification via netlink. So we update information in our structures as follows:
- when a link is removed all associated routes, addresses and neighbors are removed too
- when a link is disabled all associated routes and neighbors are removed
- when an address on a link is removed all routes and neighbors from this network are removed
All routes, neighbors and addresses always belong to some link, so a new class LinkInfo was created and it holds all information related to a single link. This makes finding information related to a specific link much easier.
Differential Revision: https://phabricator.services.mozilla.com/D48360
--HG--
extra : moz-landing-system : lando
Kernel can drop routes, addresses and neighbors without notification via netlink. So we update information in our structures as follows:
- when a link is removed all associated routes, addresses and neighbors are removed too
- when a link is disabled all associated routes and neighbors are removed
- when an address on a link is removed all routes and neighbors from this network are removed
All routes, neighbors and addresses always belong to some link, so a new class LinkInfo was created and it holds all information related to a single link. This makes finding information related to a specific link much easier.
Differential Revision: https://phabricator.services.mozilla.com/D48360
--HG--
extra : moz-landing-system : lando
In case of non ethernet device we can never get a MAC address of the next hop, so skip MAC lookup and proceed directly to network ID calculation based on device name and IP/network address.
Differential Revision: https://phabricator.services.mozilla.com/D48049
--HG--
extra : moz-landing-system : lando
Although local link addresses are not routable, some Android versions have default route for such prefix. We need to ignore any non-global routes when calculating ID.
Differential Revision: https://phabricator.services.mozilla.com/D47578
--HG--
extra : moz-landing-system : lando
There can be multiple records for the same neighbor with different interface index when the computer is connected to the same network via multiple interfaces, e.g. LAN and WiFi. This patch adds interface index to the key, so when some interface goes down it doesn't remove records belonging to a different interface.
Differential Revision: https://phabricator.services.mozilla.com/D47017
--HG--
extra : moz-landing-system : lando
Patch changes nsAndroidNetworkLinkService so it uses NetlinkService for network ID calculation as well as for notifications about network changes.
Differential Revision: https://phabricator.services.mozilla.com/D43385
--HG--
extra : moz-landing-system : lando
This patch implements NetlinkService which communicates with kernel via netlink socket. It keeps track of addresses, default routes, interfaces and neighbors and uses it to calculate network ID.
Differential Revision: https://phabricator.services.mozilla.com/D43175
--HG--
rename : netwerk/system/linux/nsNotifyAddrListener_Linux.cpp => netwerk/system/linux/nsNetworkLinkService.cpp
rename : netwerk/system/linux/nsNotifyAddrListener_Linux.h => netwerk/system/linux/nsNetworkLinkService.h
extra : moz-landing-system : lando
This patch implements NetlinkService which communicates with kernel via netlink socket. It keeps track of addresses, default routes, interfaces and neighbors and uses it to calculate network ID.
Differential Revision: https://phabricator.services.mozilla.com/D43175
--HG--
rename : netwerk/system/linux/nsNotifyAddrListener_Linux.cpp => netwerk/system/linux/nsNetworkLinkService.cpp
rename : netwerk/system/linux/nsNotifyAddrListener_Linux.h => netwerk/system/linux/nsNetworkLinkService.h
extra : moz-landing-system : lando