Zbigniew Jędrzejewski-Szmek
871fa294ff
Merge pull request #10935 from poettering/rlimit-nofile-safe
...
Merged by hand to resolve a trivial conflict in TODO.
2018-12-06 17:19:21 +01:00
Yu Watanabe
f0a43eb821
Merge pull request #11063 from yuwata/update-missing-v3
...
missing: split missing.h into small pieces
2018-12-06 16:54:27 +01:00
Zbigniew Jędrzejewski-Szmek
a91f96ad39
Merge pull request #10994 from poettering/sd-bus-tweaks
...
small sd-bus tweaks
2018-12-06 15:26:05 +01:00
Yu Watanabe
801503d22b
Merge pull request #10988 from ssahani/IFLA_BRPORT_MCAST_TO_UCAST
...
networkd: bridge add support to configure multicast_to_unicast
2018-12-06 14:32:52 +01:00
Yu Watanabe
ef118d00eb
util: drop missing.h from socket-util.h
2018-12-06 13:31:16 +01:00
Susant Sahani
8b220643b1
networkd: RPDB rule - add support to configure inverted rule.
...
Closes #10706
2018-12-06 10:42:36 +05:30
Yu Watanabe
f2a3de0116
tree-wide: add whitespace between type and variable name
2018-12-04 09:29:54 +01:00
Lennart Poettering
63e688cc3b
Merge pull request #11031 from poettering/gcc-attr-cleanup
...
various gcc attribute clean-ups
2018-12-03 21:59:00 +01:00
Susant Sahani
d3aa8b49e5
networkd: bridge add support to configure multicast_to_unicast
...
closes #10649
2018-12-03 23:49:46 +05:30
Lennart Poettering
76b31bbb24
Merge pull request #10920 from yuwata/hashmap-destructor
...
hashmap: make hashmap_free() call destructors of key or value
2018-12-03 17:59:44 +01:00
Lennart Poettering
a20f73221a
Merge pull request #10976 from yuwata/typesafe-netlink-call
...
netlink: introduce typesafe netlink functions
2018-12-03 17:55:00 +01:00
Lennart Poettering
0df54921bc
tree-wide: use new macro HAS_FEATURE_ADDRESS_SANITIZER everywhere
2018-12-03 17:38:50 +01:00
Lennart Poettering
02e062262f
sd-bus: use _variable_no_sanitize_address_ also for BUS_ERROR_MAP_ELF_REGISTER
2018-12-03 17:35:50 +01:00
Lennart Poettering
a898603563
sd-bus,static-destruct: clean up how we do our ELF section magic
...
This cleans up a bit how we set up things for the ELF section magic:
1. Let's always use our gcc macros, instead of __attribute__ directly
2. Align our structures to sizeof(void*), i.e. the pointer size, rather
than a fixed 8 or __BIGGEST_ALIGNMENT__. The former is unnecessarily
high for 32bit systems, the latter too high for 64bit systems. gcc
seems to use ptr alignment for static variables itself, hence this
should be good enough for us too. Moreover, the Linux kernel also
uses pointer alginment for all its ELF section registration magic,
hence this should be good enough for us too.
3. Let's always prefix the sections we create ourself with SYSTEMD_,
just to make clear where they come from.
4. Always align the pointer we start from when iterating through these
lists. This should be unnecessary, but makes things nicely
systematic, as we'll align all pointers we use to access these
sections properly.
2018-12-03 13:28:26 +01:00
Yu Watanabe
9714c020fc
missing: split network related entries
...
Also adds comments which kernel version added the entries.
Closes #10553 .
2018-12-03 10:31:05 +01:00
Lennart Poettering
686d13b9f2
util-lib: split out env file parsing code into env-file.c
...
It's quite complex, let's split this out.
No code changes, just some file rearranging.
2018-12-02 13:22:29 +01:00
Lennart Poettering
e4de72876e
util-lib: split out all temporary file related calls into tmpfiles-util.c
...
This splits out a bunch of functions from fileio.c that have to do with
temporary files. Simply to make the header files a bit shorter, and to
group things more nicely.
No code changes, just some rearranging of source files.
2018-12-02 13:22:29 +01:00
Yu Watanabe
f1bcdd0590
sd-bus: introduce track_item_hash_ops and use it
2018-12-02 12:18:49 +01:00
Yu Watanabe
7a08d314f2
tree-wide: make hash_ops typesafe
2018-12-02 07:53:27 +01:00
Yu Watanabe
3365841384
netlink: add typesafe netlink functions
2018-12-02 06:23:40 +01:00
Lennart Poettering
5dd9527883
tree-wide: remove various unused functions
...
All found with "cppcheck --enable=unusedFunction".
2018-12-02 13:35:34 +09:00
Lennart Poettering
595225af7a
tree-wide: invoke rlimit_nofile_safe() before various exec{v,ve,l}() invocations
...
Whenever we invoke external, foreign code from code that has
RLIMIT_NOFILE's soft limit bumped to high values, revert it to 1024
first. This is a safety precaution for compatibility with programs using
select() which cannot operate with fds > 1024.
This commit adds the call to rlimit_nofile_safe() to all invocations of
exec{v,ve,l}() and friends that either are in code that we know runs
with RLIMIT_NOFILE bumped up (which is PID 1 and all journal code for
starters) or that is part of shared code that might end up there.
The calls are placed as early as we can in processes invoking a flavour
of execve(), but after the last time we do fd manipulations, so that we
can still take benefit of the high fd limits for that.
2018-12-01 12:50:45 +01:00
Lennart Poettering
1a64f8c63d
sd-bus: use memdup_suffix0() where appropriate
2018-11-30 12:02:15 +01:00
Lennart Poettering
84a3568717
sd-bus: use gcc ?: shortcut
2018-11-30 12:02:15 +01:00
Lennart Poettering
a845e53a48
sd-bus: optimize sd_bus_get_name_creds()
...
If the caller asks for a unique name, but the input name is already
unique we can shortcut things and just use that, as long as we make at
least one bus call to validate it.
2018-11-30 12:02:15 +01:00
Zbigniew Jędrzejewski-Szmek
b2ac2b01c8
Merge pull request #10996 from poettering/oci-prep
...
Preparation for the nspawn-OCI work
2018-11-30 10:09:00 +01:00
Zbigniew Jędrzejewski-Szmek
049af8ad0c
Split out part of mount-util.c into mountpoint-util.c
...
The idea is that anything which is related to actually manipulating mounts is
in mount-util.c, but functions for mountpoint introspection are moved to the
new file. Anything which requires libmount must be in mount-util.c.
This was supposed to be a preparation for further changes, with no functional
difference, but it results in a significant change in linkage:
$ ldd build/libnss_*.so.2
(before)
build/libnss_myhostname.so.2:
linux-vdso.so.1 (0x00007fff77bf5000)
librt.so.1 => /lib64/librt.so.1 (0x00007f4bbb7b2000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007f4bbb755000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4bbb734000)
libc.so.6 => /lib64/libc.so.6 (0x00007f4bbb56e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4bbb8c1000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f4bbb51b000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f4bbb512000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f4bbb4e3000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f4bbb45e000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f4bbb458000)
build/libnss_mymachines.so.2:
linux-vdso.so.1 (0x00007ffc19cc0000)
librt.so.1 => /lib64/librt.so.1 (0x00007fdecb74b000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fdecb744000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007fdecb6e7000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fdecb6c6000)
libc.so.6 => /lib64/libc.so.6 (0x00007fdecb500000)
/lib64/ld-linux-x86-64.so.2 (0x00007fdecb8a9000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fdecb4ad000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fdecb4a2000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fdecb475000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fdecb3f0000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fdecb3ea000)
build/libnss_resolve.so.2:
linux-vdso.so.1 (0x00007ffe8ef8e000)
librt.so.1 => /lib64/librt.so.1 (0x00007fcf314bd000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fcf314b6000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007fcf31459000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fcf31438000)
libc.so.6 => /lib64/libc.so.6 (0x00007fcf31272000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcf31615000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fcf3121f000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fcf31214000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fcf311e7000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fcf31162000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fcf3115c000)
build/libnss_systemd.so.2:
linux-vdso.so.1 (0x00007ffda6d17000)
librt.so.1 => /lib64/librt.so.1 (0x00007f610b83c000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f610b835000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007f610b7d8000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f610b7b7000)
libc.so.6 => /lib64/libc.so.6 (0x00007f610b5f1000)
/lib64/ld-linux-x86-64.so.2 (0x00007f610b995000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f610b59e000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f610b593000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f610b566000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f610b4e1000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f610b4db000)
(after)
build/libnss_myhostname.so.2:
linux-vdso.so.1 (0x00007fff0b5e2000)
librt.so.1 => /lib64/librt.so.1 (0x00007fde0c328000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fde0c307000)
libc.so.6 => /lib64/libc.so.6 (0x00007fde0c141000)
/lib64/ld-linux-x86-64.so.2 (0x00007fde0c435000)
build/libnss_mymachines.so.2:
linux-vdso.so.1 (0x00007ffdc30a7000)
librt.so.1 => /lib64/librt.so.1 (0x00007f06ecabb000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f06ecab4000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f06eca93000)
libc.so.6 => /lib64/libc.so.6 (0x00007f06ec8cd000)
/lib64/ld-linux-x86-64.so.2 (0x00007f06ecc15000)
build/libnss_resolve.so.2:
linux-vdso.so.1 (0x00007ffe95747000)
librt.so.1 => /lib64/librt.so.1 (0x00007fa56a80f000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fa56a808000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa56a7e7000)
libc.so.6 => /lib64/libc.so.6 (0x00007fa56a621000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa56a964000)
build/libnss_systemd.so.2:
linux-vdso.so.1 (0x00007ffe67b51000)
librt.so.1 => /lib64/librt.so.1 (0x00007ffb32113000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007ffb3210c000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffb320eb000)
libc.so.6 => /lib64/libc.so.6 (0x00007ffb31f25000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffb3226a000)
I don't quite understand what is going on here, but let's not be too picky.
2018-11-29 21:03:44 +01:00
Lennart Poettering
3a47c40d97
tree-wide: port various parts of the code to use parse_dev()
2018-11-29 20:03:56 +01:00
Susant Sahani
926062f083
networkd: add support to configure ip rule port range and protocol.
...
Please see:
iprule: support for ip_proto, sport and dport match options
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=f686f764682745daf6a93b0a6330ba42a961f858
Closes 10622
2018-11-28 20:06:28 +05:30
Lennart Poettering
cb3108669d
tree-wide: more IOVEC_MAKE() conversions
2018-11-28 13:08:19 +09:00
Lennart Poettering
5cfa2c3dc0
tree-wide: use IOVEC_MAKE() at many places
2018-11-27 10:12:27 +01:00
Susant Sahani
2266864b04
networkd: Add support for ERSPAN tunnel
...
Please see: https://patchwork.ozlabs.org/patch/800327/
```
[NetDev]
Name=erspan-test
Kind=erspan
[Tunnel]
Independent=true
ERSPANIndex=123
Local = 172.16.1.200
Remote = 172.16.1.100
Key=101
SerializeTunneledPackets=true
```
2018-11-27 11:04:42 +09:00
Yu Watanabe
916707cca5
sd-device: do not call device_monitor_enable_receiving() for passed fd from pid1
...
Before c4b69e990f , if the socket fd is
passed from pid1, `udev_monitor_enable_receiving()` (now it is a wrapper
of `device_monitor_enable_receiving`) was not called.
Let's preserve the original logic.
Fixes #10754 .
2018-11-25 20:14:17 +09:00
Yu Watanabe
f1d7b7874e
sd-device: check whether filter is updated or not in sd_device_monitor_filter_update()
2018-11-25 15:26:43 +09:00
Yu Watanabe
5cee547a94
sd-device: update log message
2018-11-25 14:06:56 +09:00
Yu Watanabe
779c923467
sd-device: fix return value on error path
2018-11-25 14:06:27 +09:00
Zbigniew Jędrzejewski-Szmek
e5e0a79623
pid1,sd-device: use PATH_STARTSWITH_SET more
2018-11-23 13:37:47 +01:00
Yu Watanabe
a5a59a2447
test: add more tests for subsystem filter
2018-11-23 06:46:29 +09:00
Yu Watanabe
65fe9c319f
sd-device-monitor: fix subsystem filter
...
This fixes a bug introduced by 759d9f3f8d .
Fixes #10882 .
2018-11-23 02:49:28 +09:00
Zbigniew Jędrzejewski-Szmek
886cf317c4
coccinelle: also mark previous synthetic errnos as such
2018-11-22 10:54:38 +01:00
Zbigniew Jędrzejewski-Szmek
baaa35ad70
coccinelle: make use of SYNTHETIC_ERRNO
...
Ideally, coccinelle would strip unnecessary braces too. But I do not see any
option in coccinelle for this, so instead, I edited the patch text using
search&replace to remove the braces. Unfortunately this is not fully automatic,
in particular it didn't deal well with if-else-if-else blocks and ifdefs, so
there is an increased likelikehood be some bugs in such spots.
I also removed part of the patch that coccinelle generated for udev, where we
returns -1 for failure. This should be fixed independently.
2018-11-22 10:54:38 +01:00
Lennart Poettering
012c2f761b
tree-wide: use __ prefixed gcc attributes ( #10843 )
...
As suggest here:
https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html#Attribute-Syntax
"You may optionally specify attribute names with ‘__’ preceding and
following the name. This allows you to use them in header files without
being concerned about a possible macro of the same name. For example,
you may use the attribute name __noreturn__ instead of noreturn. "
2018-11-20 12:34:08 +09:00
Yu Watanabe
af18705f8e
test: also tests enumerating subsystems
2018-11-17 18:18:22 +01:00
Yu Watanabe
d44325cb96
sd-event: also introduce event_source_is_enabled()
2018-11-16 22:57:42 +09:00
Yu Watanabe
2701983ce8
sd-event: introduce event_source_disable()
2018-11-16 22:57:42 +09:00
Yu Watanabe
764c08e6b7
sd-event: introduce event_reset_time()
2018-11-16 22:57:42 +09:00
Yu Watanabe
a137a1c3ff
sd-event: split definition of event_source to event-source.h
2018-11-16 22:57:37 +09:00
Lennart Poettering
ac0a94f743
sd-bus: make strict asan shut up
...
asan doesn't like it if we use strndup() (i.e. a string function) on a
non-NULL terminated buffer (i.e. something that isn't really a string).
Let's hence use memdup_suffix0() instead of strndup(), which is more
appropriate for binary data that is to become a string.
Fixes : #10385
2018-11-16 14:32:41 +01:00
Zbigniew Jędrzejewski-Szmek
08c1eb0e30
sd-event: make sd_event_source_get_enabled return more info
2018-11-16 09:03:41 +01:00
Zbigniew Jędrzejewski-Szmek
7d92a1a490
sd-event: do not use assert_return for something that is not an error
...
It's totally OK for description to be unset, so let's not log about this
even at debug level.
2018-11-16 09:00:33 +01:00