diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2019-07-24 12:00:30 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-24 12:00:30 +0200 |
commit | 181824e32c87934cea8130cb5652a6a2ded842a2 (patch) | |
tree | 9a9d773655458d875ed76b4aa056b29539a6400f | |
parent | f3d3a9ca0734c298cc3bf08f8c4907dd19ee9939 (diff) | |
parent | dfadc1f203bb38a6c1570f484c05f3ab673d0b89 (diff) | |
download | systemd-181824e32c87934cea8130cb5652a6a2ded842a2.tar.gz |
Merge pull request #13145 from poettering/nss-gateway-fix
filter _gateway NSS resolving to only use main routing table
-rw-r--r-- | meson.build | 1 | ||||
-rw-r--r-- | src/libsystemd/meson.build | 2 | ||||
-rw-r--r-- | src/shared/local-addresses.c (renamed from src/libsystemd/sd-netlink/local-addresses.c) | 8 | ||||
-rw-r--r-- | src/shared/local-addresses.h (renamed from src/libsystemd/sd-netlink/local-addresses.h) | 0 | ||||
-rw-r--r-- | src/shared/meson.build | 4 | ||||
-rw-r--r-- | src/test/meson.build | 8 | ||||
-rw-r--r-- | src/test/test-local-addresses.c (renamed from src/libsystemd/sd-netlink/test-local-addresses.c) | 0 |
7 files changed, 15 insertions, 8 deletions
diff --git a/meson.build b/meson.build index 76b3d53391..e5ceb1e169 100644 --- a/meson.build +++ b/meson.build @@ -1540,6 +1540,7 @@ foreach tuple : [['myhostname', 'ENABLE_NSS_MYHOSTNAME'], '-shared', '-Wl,--version-script=' + version_script_arg], link_with : [libsystemd_static, + libshared_static, libbasic], dependencies : [threads, librt], diff --git a/src/libsystemd/meson.build b/src/libsystemd/meson.build index 67add387e6..77fe6e780f 100644 --- a/src/libsystemd/meson.build +++ b/src/libsystemd/meson.build @@ -71,8 +71,6 @@ libsystemd_sources = files(''' sd-hwdb/hwdb-util.h sd-hwdb/sd-hwdb.c sd-netlink/generic-netlink.c - sd-netlink/local-addresses.c - sd-netlink/local-addresses.h sd-netlink/netlink-internal.h sd-netlink/netlink-message.c sd-netlink/netlink-slot.c diff --git a/src/libsystemd/sd-netlink/local-addresses.c b/src/shared/local-addresses.c index 751144539b..2f3d675643 100644 --- a/src/libsystemd/sd-netlink/local-addresses.c +++ b/src/shared/local-addresses.c @@ -175,7 +175,7 @@ int local_gateways(sd_netlink *context, int ifindex, int af, struct local_addres for (m = reply; m; m = sd_netlink_message_next(m)) { struct local_address *a; uint16_t type; - unsigned char dst_len, src_len; + unsigned char dst_len, src_len, table; uint32_t ifi; int family; @@ -202,6 +202,12 @@ int local_gateways(sd_netlink *context, int ifindex, int af, struct local_addres if (src_len != 0) continue; + r = sd_rtnl_message_route_get_table(m, &table); + if (r < 0) + return r; + if (table != RT_TABLE_MAIN) + continue; + r = sd_netlink_message_read_u32(m, RTA_OIF, &ifi); if (r == -ENODATA) /* Not all routes have an RTA_OIF attribute (for example nexthop ones) */ continue; diff --git a/src/libsystemd/sd-netlink/local-addresses.h b/src/shared/local-addresses.h index e88c5e5d21..e88c5e5d21 100644 --- a/src/libsystemd/sd-netlink/local-addresses.h +++ b/src/shared/local-addresses.h diff --git a/src/shared/meson.build b/src/shared/meson.build index ca24d15eab..e9005a30e3 100644 --- a/src/shared/meson.build +++ b/src/shared/meson.build @@ -109,6 +109,8 @@ shared_sources = files(''' linux/bpf_insn.h linux/dm-ioctl.h linux/ethtool.h + local-addresses.c + local-addresses.h lockfile-util.c lockfile-util.h log-link.h @@ -170,8 +172,8 @@ shared_sources = files(''' udev-util.h uid-range.c uid-range.h - unit-file.h unit-file.c + unit-file.h utmp-wtmp.h varlink.c varlink.h diff --git a/src/test/meson.build b/src/test/meson.build index ddc04dda65..e337e50146 100644 --- a/src/test/meson.build +++ b/src/test/meson.build @@ -754,6 +754,10 @@ tests += [ [['src/test/test-sd-hwdb.c'], [], []], + + [['src/test/test-local-addresses.c'], + [], + []], ] ############################################################ @@ -964,10 +968,6 @@ tests += [ [], []], - [['src/libsystemd/sd-netlink/test-local-addresses.c'], - [], - []], - [['src/libsystemd/sd-resolve/test-resolve.c'], [], [threads], diff --git a/src/libsystemd/sd-netlink/test-local-addresses.c b/src/test/test-local-addresses.c index 37505ea783..37505ea783 100644 --- a/src/libsystemd/sd-netlink/test-local-addresses.c +++ b/src/test/test-local-addresses.c |