Systemd/src
Lennart Poettering d301c52383 resolved: bind socket to interface during connect()
Apparently, IF_UNICAST_IF does not influence the routing decisions done
during connect(). But SO_BINDTODEVICE/SO_BINDTOINDEX does, which however
brings a lot of other semantics with it, we are not so interested in
(i.e. it doesn't not allow packets from any other iface to us, even if
routing otherwise allows it).

Hence, let's bind to the ifindex immediately before the connect() and
unbind right after again, so that we get the semantics we want, but not
the ones we don't.

Fixes: #11935
Replaces: #12004
2020-12-02 15:15:02 +01:00
..
ac-power license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
activate license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
analyze license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
ask-password license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
backlight backlight: add several debug logs and adjust log level of non critical error 2020-11-23 14:35:14 +01:00
basic socket-util: add sockaddr_in_addr() helper 2020-12-02 15:14:21 +01:00
binfmt license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
boot license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
busctl license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
cgls license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
cgroups-agent license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
cgtop license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
core Merge pull request #17703 from poettering/event-ratelimit 2020-12-01 21:47:43 +01:00
coredump meson: add option to skip installing to $sysconfdir 2020-11-12 11:21:46 +01:00
cryptsetup cryptsetup: modify keyfile search logic to use read_file_full() too 2020-12-01 14:27:01 +01:00
debug-generator license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
delta license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
detect-virt license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
dissect license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
environment-d-generator license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
escape license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
firstboot license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
fsck license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
fstab-generator license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
fuzz Merge pull request #17478 from yuwata/split-network-internal 2020-11-27 09:04:19 +09:00
getty-generator license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
gpt-auto-generator license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
hibernate-resume license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
home home: fix homed.conf install location 2020-11-27 09:02:55 +09:00
hostname license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
hwdb license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
id128 license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
import curl-util: fix callback prototype 2020-11-23 14:36:28 +01:00
initctl license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
journal tree-wide: use return value of log_xxx_errno() 2020-11-20 02:58:27 +09:00
journal-remote fileio: teach read_full_file_full() to read from offset/with maximum size 2020-12-01 14:17:47 +01:00
kernel-install kernel-install: drop redundant "/" 2020-11-24 11:18:40 +01:00
libsystemd tree-wide: fix typos 2020-12-02 10:53:33 +01:00
libsystemd-network sd-ipv4acd: logs current state 2020-12-02 18:42:17 +09:00
libudev license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
locale license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
login Update logind-button.c 2020-11-28 12:44:48 +01:00
machine license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
machine-id-setup license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
modules-load license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
mount license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
network Merge pull request #17707 from yuwata/network-fix-reconfigure 2020-12-02 15:10:34 +01:00
notify license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
nspawn fileio: teach read_full_file_full() to read from offset/with maximum size 2020-12-01 14:17:47 +01:00
nss-myhostname license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
nss-mymachines license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
nss-resolve license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
nss-systemd license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
oom test: use for(;;) instead of while(true) 2020-11-27 14:35:20 +09:00
partition fileio: teach read_full_file_full() to read from offset/with maximum size 2020-12-01 14:17:47 +01:00
path license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
portable license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
pstore pstore: use log_oom() 2020-11-20 02:59:02 +09:00
quotacheck license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
random-seed license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
rc-local-generator license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
remount-fs license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
reply-password license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
resolve resolved: bind socket to interface during connect() 2020-12-02 15:15:02 +01:00
rfkill license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
run license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
run-generator license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
shared log-link: introduce log_interface_full_errno() macro 2020-12-02 18:41:01 +09:00
shutdown tree-wide: update "that that" 2020-11-18 17:23:00 +09:00
sleep license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
socket-proxy license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
stdio-bridge license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
sulogin-shell license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
sysctl license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
system-update-generator license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
systemctl systemctl: fix potential pointer overflow 2020-11-20 21:58:47 +09:00
systemd sd-ipv4acd,sd-ipv4ll: introduce _get_ifindex() and _get_ifname() 2020-12-02 18:40:24 +09:00
sysusers specifiers: introduce common macros for generating specifier tables 2020-11-25 14:13:02 +09:00
sysv-generator license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
test fileio: teach read_full_file_full() to read from offset/with maximum size 2020-12-01 14:17:47 +01:00
time-wait-sync license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
timedate timedate: use localtime_or_gmtime_r() and mktime_or_timegm() 2020-11-21 04:28:45 +09:00
timesync meson: add option to skip installing to $sysconfdir 2020-11-12 11:21:46 +01:00
tmpfiles tree-wide: sort specifiers and move common comments to specifier.h 2020-11-25 15:12:27 +09:00
tty-ask-password-agent license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
udev Merge pull request #17478 from yuwata/split-network-internal 2020-11-27 09:04:19 +09:00
update-done license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
update-utmp tree-wide: use return value of log_xxx_errno() 2020-11-20 02:58:27 +09:00
user-sessions license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
userdb tree-wide: unsetenv cannot fail 2020-11-10 15:52:32 +01:00
vconsole license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
veritysetup fileio: teach read_full_file_full() to read from offset/with maximum size 2020-12-01 14:17:47 +01:00
version
volatile-root license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
xdg-autostart-generator license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00