all: explicit include <linux/if_{ether,infiniband,vlan}.h> as needed

Currently libnm headers include <linux/if_{ether,infiniband,vlan}.h>.
These are public headers, that means we drag in the linux header to all
users of <NetworkManager.h>.

Often the linux headers work badly together with certain headers from libc.
Depending on the libc version, you have to order linux headers in the right
order with respect to libc headers.

We should do better about libnm headers. As a first step, assume that
the linux headers don't get included by libnm, and explicitly include
them where they are needed.
This commit is contained in:
Thomas Haller 2020-12-13 16:08:56 +01:00
parent e711aa1423
commit 0fca809bfd
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728
46 changed files with 73 additions and 0 deletions

View file

@ -10,6 +10,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <readline/readline.h>
#include <linux/if_ether.h>
#include "nm-glib-aux/nm-secret-utils.h"
#include "common.h"

View file

@ -4,6 +4,9 @@
#include "nm-cloud-setup-utils.h"
#include <linux/if_ether.h>
#include <linux/if_infiniband.h>
#include "nm-glib-aux/nm-time-utils.h"
#include "nm-glib-aux/nm-logging-base.h"
#include "nm-glib-aux/nm-str-buf.h"

View file

@ -9,6 +9,8 @@
#include <stdlib.h>
#include <arpa/inet.h>
#include <linux/if_ether.h>
#include <linux/if_infiniband.h>
#include "nm-libnm-core-intern/nm-common-macros.h"
#include "nm-glib-aux/nm-enum-utils.h"

View file

@ -17,6 +17,9 @@
#include "nmt-mac-entry.h"
#include <linux/if_ether.h>
#include <linux/if_infiniband.h>
#include "nm-libnm-core-intern/nm-common-macros.h"
G_DEFINE_TYPE(NmtMacEntry, nmt_mac_entry, NMT_TYPE_NEWT_ENTRY)

View file

@ -16,6 +16,9 @@
#include "nmt-page-bond.h"
#include <linux/if_ether.h>
#include <linux/if_infiniband.h>
#include "nm-libnm-core-intern/nm-libnm-core-utils.h"
#include "nmt-mac-entry.h"
#include "nmt-address-list.h"

View file

@ -11,6 +11,10 @@
#include "nm-default.h"
#include "nmt-page-ethernet.h"
#include <linux/if_ether.h>
#include <linux/if_infiniband.h>
#include "nmt-mac-entry.h"
#include "nmt-mtu-entry.h"

View file

@ -12,6 +12,8 @@
#include "nm-editor-bindings.h"
#include <linux/if_ether.h>
#include "nmt-page-vlan.h"
#include "nmt-device-entry.h"
#include "nmt-mac-entry.h"

View file

@ -15,6 +15,7 @@
#include "nm-default.h"
#include <stdlib.h>
#include <linux/if_ether.h>
#include "nmt-page-wifi.h"
#include "nmt-mac-entry.h"

View file

@ -15,6 +15,8 @@
#include <sys/types.h>
#include <arpa/inet.h>
#include <linux/pkt_sched.h>
#include <linux/if_ether.h>
#include <linux/if_infiniband.h>
#include "nm-glib-aux/nm-str-buf.h"
#include "nm-glib-aux/nm-secret-utils.h"

View file

@ -10,6 +10,7 @@
#include <stdlib.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <linux/if_ether.h>
#include "nm-libnm-core-intern/nm-libnm-core-utils.h"
#include "nm-utils.h"

View file

@ -9,6 +9,7 @@
#include <ctype.h>
#include <stdlib.h>
#include <linux/if_ether.h>
#include "nm-glib-aux/nm-str-buf.h"
#include "nm-connection-private.h"

View file

@ -8,6 +8,7 @@
#include "nm-setting-infiniband.h"
#include <stdlib.h>
#include <linux/if_infiniband.h>
#include "nm-utils.h"
#include "nm-utils-private.h"

View file

@ -9,6 +9,8 @@
#include "nm-setting-olpc-mesh.h"
#include <linux/if_ether.h>
#include "nm-utils.h"
#include "nm-utils-private.h"
#include "nm-setting-private.h"

View file

@ -16,6 +16,7 @@
#include <gmodule.h>
#include <sys/stat.h>
#include <linux/pkt_sched.h>
#include <linux/if_infiniband.h>
#include "nm-glib-aux/nm-json-aux.h"
#include "nm-glib-aux/nm-str-buf.h"

View file

@ -10,6 +10,8 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/if_ether.h>
#include <linux/if_infiniband.h>
#include "nm-std-aux/c-list-util.h"
#include "nm-glib-aux/nm-enum-utils.h"

View file

@ -8,6 +8,8 @@
#include "nm-access-point.h"
#include <linux/if_ether.h>
#include "nm-connection.h"
#include "nm-setting-connection.h"
#include "nm-setting-wireless.h"

View file

@ -8,6 +8,8 @@
#include "nm-device-bt.h"
#include <linux/if_ether.h>
#include "nm-setting-connection.h"
#include "nm-setting-bluetooth.h"
#include "nm-utils.h"

View file

@ -8,6 +8,8 @@
#include "nm-device-ethernet.h"
#include <linux/if_ether.h>
#include "nm-libnm-utils.h"
#include "nm-setting-connection.h"
#include "nm-setting-wired.h"

View file

@ -7,6 +7,8 @@
#include "nm-device-infiniband.h"
#include <linux/if_infiniband.h>
#include "nm-setting-connection.h"
#include "nm-setting-infiniband.h"
#include "nm-utils.h"

View file

@ -8,6 +8,8 @@
#include "nm-device-wifi.h"
#include <linux/if_ether.h>
#include "nm-glib-aux/nm-dbus-aux.h"
#include "nm-setting-connection.h"
#include "nm-setting-wireless.h"

View file

@ -10,6 +10,7 @@
#include <linux/fib_rules.h>
#include <linux/pkt_sched.h>
#include <linux/if_ether.h>
#include "nm-glib-aux/nm-c-list.h"

View file

@ -10,6 +10,7 @@
#include <signal.h>
#include <stdlib.h>
#include <gmodule.h>
#include <linux/if_ether.h>
#include "nm-glib-aux/nm-dbus-aux.h"
#include "nm-glib-aux/nm-c-list.h"

View file

@ -8,6 +8,7 @@
#include "nm-device-bt.h"
#include <stdio.h>
#include <linux/if_ether.h>
#include "nm-core-internal.h"
#include "nm-bluez-common.h"

View file

@ -10,6 +10,7 @@
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <linux/if_ether.h>
#include "platform/nm-platform.h"
#include "nm-utils.h"

View file

@ -8,6 +8,7 @@
#include "nm-device-bridge.h"
#include <stdlib.h>
#include <linux/if_ether.h>
#include "NetworkManagerUtils.h"
#include "nm-device-private.h"

View file

@ -12,6 +12,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <libudev.h>
#include <linux/if_ether.h>
#include "nm-device-private.h"
#include "nm-act-request.h"

View file

@ -12,6 +12,7 @@
#include <linux/ip.h>
#include <linux/if_tunnel.h>
#include <linux/ip6_tunnel.h>
#include <linux/if_ether.h>
#include "nm-device-private.h"
#include "nm-manager.h"

View file

@ -7,6 +7,8 @@
#include "nm-device-macsec.h"
#include <linux/if_ether.h>
#include "nm-act-request.h"
#include "nm-device-private.h"
#include "platform/nm-platform.h"

View file

@ -19,6 +19,8 @@
#include <linux/if_addr.h>
#include <linux/if_arp.h>
#include <linux/rtnetlink.h>
#include <linux/if_ether.h>
#include <linux/if_infiniband.h>
#include "nm-std-aux/unaligned.h"
#include "nm-glib-aux/nm-dedup-multi.h"

View file

@ -7,6 +7,8 @@
#include "n-acd/src/n-acd.h"
#include <linux/if_ether.h>
#include "devices/nm-acd-manager.h"
#include "platform/tests/test-common.h"

View file

@ -7,6 +7,8 @@
#include "nm-device-iwd.h"
#include <linux/if_ether.h>
#include "devices/nm-device-private.h"
#include "devices/nm-device.h"
#include "nm-act-request.h"

View file

@ -10,6 +10,7 @@
#include <netinet/in.h>
#include <unistd.h>
#include <linux/if_ether.h>
#include "nm-glib-aux/nm-ref-string.h"
#include "nm-glib-aux/nm-c-list.h"

View file

@ -9,6 +9,7 @@
#include "nm-wifi-ap.h"
#include <stdlib.h>
#include <linux/if_ether.h>
#include "NetworkManagerUtils.h"
#include "devices/nm-device.h"

View file

@ -8,6 +8,7 @@
#include "nm-wifi-p2p-peer.h"
#include <stdlib.h>
#include <linux/if_ether.h>
#include "NetworkManagerUtils.h"
#include "devices/nm-device.h"

View file

@ -10,6 +10,7 @@
#include <ctype.h>
#include <arpa/inet.h>
#include <net/if.h>
#include <linux/if_ether.h>
#include "nm-glib-aux/nm-dedup-multi.h"

View file

@ -5,6 +5,9 @@
#include "nm-default.h"
#include <linux/if_ether.h>
#include <linux/if_infiniband.h>
#include "nm-core-internal.h"
#include "nm-initrd-generator.h"
#include "systemd/nm-sd-utils-shared.h"

View file

@ -8,6 +8,7 @@
#include "nm-initrd-generator.h"
#include <arpa/inet.h>
#include <linux/if_ether.h>
#include "nm-core-internal.h"

View file

@ -15,6 +15,7 @@
#include <sys/inotify.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <linux/if_ether.h>
#include "nm-core-internal.h"
#include "NetworkManagerUtils.h"

View file

@ -5,6 +5,7 @@
#include "nm-l3-ipv4ll.h"
#include <net/if.h>
#include <linux/if_ether.h>
#include "n-acd/src/n-acd.h"
#include "nm-core-utils.h"

View file

@ -6,6 +6,7 @@
#include <net/if.h>
#include <linux/if_addr.h>
#include <linux/if_ether.h>
#include <linux/rtnetlink.h>
#include "platform/nm-platform.h"

View file

@ -19,6 +19,7 @@
#include <linux/if_link.h>
#include <linux/if_tun.h>
#include <linux/if_tunnel.h>
#include <linux/if_vlan.h>
#include <linux/ip6_tunnel.h>
#include <linux/tc_act/tc_mirred.h>
#include <netinet/icmp6.h>

View file

@ -16,6 +16,7 @@
#include <sys/ioctl.h>
#include <unistd.h>
#include <linux/rtnetlink.h>
#include <linux/if_ether.h>
#include "nm-glib-aux/nm-secret-utils.h"
#include "nm-connection.h"

View file

@ -14,6 +14,8 @@
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <linux/if_ether.h>
#include <linux/if_infiniband.h>
#include "nm-glib-aux/nm-json-aux.h"
#include "nm-utils.h"

View file

@ -12,6 +12,8 @@
#include <arpa/inet.h>
#include <sys/socket.h>
#include <linux/pkt_sched.h>
#include <linux/if_ether.h>
#include <linux/if_infiniband.h>
#include "nm-core-internal.h"

View file

@ -9,6 +9,7 @@
#include "nm-supplicant-interface.h"
#include <stdio.h>
#include <linux/if_ether.h>
#include "NetworkManagerUtils.h"
#include "nm-core-internal.h"

View file

@ -6,6 +6,7 @@
#include "nm-default.h"
#include <arpa/inet.h>
#include <linux/if_ether.h>
#include "nm-test-utils-core.h"