1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-01 09:21:26 +03:00
Commit Graph

33964 Commits

Author SHA1 Message Date
Lennart Poettering
62b0cbb358 core: use safe_fclose() where appropriate 2018-06-07 13:36:19 +02:00
Lennart Poettering
159f1e7666 core: split out early-boot preset logic into a function of its own 2018-06-07 13:36:19 +02:00
Lennart Poettering
e5ca27b772 udev: add helper udev_device_new_from_stat_rdev()
This is a simple wrapper around udev_device_new_from_devnum(), and uses
the data from a struct stat's .st_rdev field to derive the udev_device
object.
2018-06-07 13:36:19 +02:00
Lennart Poettering
34c20ee09f core: split out device validation from device_found_node()
Let's separate the validate step out. Also, let's update some comments
which have long ceased to be true.

No change in behaviour.
2018-06-07 13:36:19 +02:00
Lennart Poettering
485ae697ba core: rework device_found_node() prototype
let's drop the "now" argument, it's exactly what MANAGER_IS_RUNNING()
returns, hence let's use that instead to simplify things.

Moreover, let's change the add/found argument pair to become found/mask,
which allows us to change multiple flags at the same time into opposing
directions, which will be useful later on.

Also, let's change the return type to void. It's a notifier call where
callers will ignore the return value anyway as it is nothing actionable.

Should not change behaviour.
2018-06-07 13:36:19 +02:00
Lennart Poettering
87934b36b1 core: split out reload propagation into its own function 2018-06-07 13:36:19 +02:00
Lennart Poettering
8bb2c8c94d core: improve error logging a bit 2018-06-07 13:36:19 +02:00
Lennart Poettering
9d4c195c64 core: split out bus initialization from manager_setup() 2018-06-07 13:36:19 +02:00
Lennart Poettering
86cdffd106 core: log when unit_add_dependency() fails for some reason
Also, proceed, as there's little we can do in this case.
2018-06-07 13:36:19 +02:00
Lennart Poettering
ea8ec43bb5 core: modernize device_update_description() a bit 2018-06-07 13:36:19 +02:00
Lennart Poettering
43ba7d71e5 core: use device_found_to_string_many() result only on success 2018-06-07 13:36:19 +02:00
Lennart Poettering
6e0f878ee2 core: use FLAGS_SET() macro at one more place 2018-06-07 13:36:19 +02:00
Lennart Poettering
ccd419f0e7 core: modernize device_set_sysfs() a bit 2018-06-07 13:36:19 +02:00
Lennart Poettering
575a07d2dc copy: put a depth limit on copying file system trees recursively
This is a safety net against bind mount cycles, as such pick it
relatively high at 2048 for now.

As suggested by @filbranden on #9213
2018-06-07 13:32:57 +02:00
Lennart Poettering
f6a77804c9 copy: extend check for mount point crossing
We do this checks as protection against bind mount cycles on the same
file system. However, the check wasn't really effective for that, as
it would only detect cycles A → B → A this way. By using
fs_is_mount_point() we'll also detect cycles A → A.

Also, while we are at it, make these file system boundary checks
optional. This is not used anywhere, but might be eventually...

Most importantly though add a longer blurb explanation the why.
2018-06-07 13:27:38 +02:00
Filipe Brandenburger
ef202b848b copy: only check for traversing mount points on directories
This fixes the copy routines on overlay filesystem, which typically
returns the underlying st_dev for files, symlinks, etc.

The value of st_dev is guaranteed to be the same for directories, so
checking it on directories only fixes this code on overlay filesystem
and still keeps it from traversing mount points (which was the original
intent.)

There's a small side effect here, by which regular (non-directory) files
with bind mounts will be copied by the new logic (while they were
skipped by the previous logic.)

Tested: ./build/test-copy with an overlay on /tmp.

Fixes: #9134
2018-06-07 13:14:20 +02:00
Alessandro Casale
b47837ac41 hwdb: HP ZBook Studio G4 wireless switch 2018-06-07 13:13:47 +02:00
Lennart Poettering
90b1fa59cf sd-event: document sd_event_source_set_io_fd_own()
With this we have 100% of the sd-event symbols documented again. Yay!
2018-06-07 13:10:56 +02:00
Lennart Poettering
15723a1db0 sd-event: add destroy callback logic to sd-event too
This adds what has been added to sd_bus_slot and sd_bus_track to
sd_event too.
2018-06-07 13:10:56 +02:00
Lennart Poettering
66223497d0 sd-bus: also add destroy callbacks to sd_bus_track objects
This augments previous work for this for sd_bus_slot objects, and adds
the same concept to sd_bus_track objects, too.
2018-06-07 13:10:56 +02:00
Stefan Schweter
6a1bae8381 man: update url to latest 802.1AB (2016) standard 2018-06-07 10:30:23 +02:00
Lennart Poettering
81474cd4d3
Merge pull request #9208 from keszybz/async-callback-memleak
Async callback memleak fix and documentation cleanups
2018-06-07 10:29:05 +02:00
Lennart Poettering
ef43c8b877
Merge pull request #9214 from poettering/systemctl-get-processes-fix
two small fixes for systemctl's process tree display
2018-06-07 09:17:01 +02:00
Ivan Shapovalov
35a14d754a hwdb: Logitech Anywhere MX wheel data (#9203) 2018-06-07 08:51:42 +10:00
Zbigniew Jędrzejewski-Szmek
869881a6cb test-bus-util: add a test for destroy callbacks 2018-06-06 23:01:57 +02:00
Zbigniew Jędrzejewski-Szmek
200bc75db9 shared/bus-util: use the new cleanup functionality to avoid a memleak
If the async callbacks didn't get a chance to finish properly, we'd leak
memory.

The output from test-bus-util with additional log line in the callbacks to show
what is happening:

$ build/test-bus-util

/* test_name_async (0) */
Bus test-bus: changing state UNSET → OPENING
Bus test-bus: changing state OPENING → AUTHENTICATING
Bus test-bus: changing state AUTHENTICATING → HELLO
Sent message type=method_call sender=n/a destination=org.freedesktop.DBus path=/org/freedesktop/DBus interface=org.freedesktop.DBus member=Hello cookie=1 reply_cookie=0 signature=n/a error-name=n/a error-message=n/a
Sent message type=method_call sender=n/a destination=org.freedesktop.DBus path=/org/freedesktop/DBus interface=org.freedesktop.DBus member=RequestName cookie=2 reply_cookie=0 signature=su error-name=n/a error-message=n/a
Got message type=method_return sender=org.freedesktop.DBus destination=:1.732 path=n/a interface=n/a member=n/a cookie=4294967295 reply_cookie=1 signature=s error-name=n/a error-message=n/a
Bus test-bus: changing state HELLO → RUNNING
Bus test-bus: changing state RUNNING → CLOSED
request_name_destroy_callback n_ref=1

/* test_name_async (20) */
Bus test-bus: changing state UNSET → OPENING
Bus test-bus: changing state OPENING → AUTHENTICATING
Bus test-bus: changing state AUTHENTICATING → HELLO
stage 0: sd_bus_process returned 1
Sent message type=method_call sender=n/a destination=org.freedesktop.DBus path=/org/freedesktop/DBus interface=org.freedesktop.DBus member=Hello cookie=1 reply_cookie=0 signature=n/a error-name=n/a error-message=n/a
Sent message type=method_call sender=n/a destination=org.freedesktop.DBus path=/org/freedesktop/DBus interface=org.freedesktop.DBus member=RequestName cookie=2 reply_cookie=0 signature=su error-name=n/a error-message=n/a
stage 1: sd_bus_process returned 1
Got message type=method_return sender=org.freedesktop.DBus destination=:1.733 path=n/a interface=n/a member=n/a cookie=4294967295 reply_cookie=1 signature=s error-name=n/a error-message=n/a
Bus test-bus: changing state HELLO → RUNNING
stage 2: sd_bus_process returned 1
Got message type=signal sender=org.freedesktop.DBus.Local destination=n/a path=/org/freedesktop/DBus/Local interface=org.freedesktop.DBus.Local member=Connected cookie=4294967295 reply_cookie=0 signature=n/a error-name=n/a error-message=n/a
stage 3: sd_bus_process returned 1
Got message type=signal sender=org.freedesktop.DBus destination=:1.733 path=/org/freedesktop/DBus interface=org.freedesktop.DBus member=NameAcquired cookie=4294967295 reply_cookie=0 signature=s error-name=n/a error-message=n/a
stage 4: sd_bus_process returned 1
Got message type=error sender=org.freedesktop.DBus destination=:1.733 path=n/a interface=n/a member=n/a cookie=4294967295 reply_cookie=2 signature=s error-name=org.freedesktop.DBus.Error.AccessDenied error-message=Request to own name refused by policy
Unable to request name, will retry after reloading DBus configuration: Request to own name refused by policy
Sent message type=method_call sender=n/a destination=org.freedesktop.DBus path=/org/freedesktop/DBus interface=org.freedesktop.DBus member=ReloadConfig cookie=3 reply_cookie=0 signature=n/a error-name=n/a error-message=n/a
request_name_destroy_callback n_ref=2
stage 5: sd_bus_process returned 1
Got message type=method_return sender=org.freedesktop.DBus destination=:1.733 path=n/a interface=n/a member=n/a cookie=4294967295 reply_cookie=3 signature= error-name=n/a error-message=n/a
Sent message type=method_call sender=n/a destination=org.freedesktop.DBus path=/org/freedesktop/DBus interface=org.freedesktop.DBus member=RequestName cookie=4 reply_cookie=0 signature=su error-name=n/a error-message=n/a
request_name_destroy_callback n_ref=1
stage 6: sd_bus_process returned 1
Got message type=error sender=org.freedesktop.DBus destination=:1.733 path=n/a interface=n/a member=n/a cookie=4294967295 reply_cookie=4 signature=s error-name=org.freedesktop.DBus.Error.AccessDenied error-message=Request to own name refused by policy
Unable to request name, failing connection: Request to own name refused by policy
Bus test-bus: changing state RUNNING → CLOSING
stage 7: sd_bus_process returned 1
Bus test-bus: changing state CLOSING → CLOSED
stage 8: sd_bus_process returned 1
stage 9: sd_bus_process returned -104
Processing failed: Connection reset by peer
2018-06-06 23:01:57 +02:00
Zbigniew Jędrzejewski-Szmek
fa17b4e8d9 bus: optionally call a callbacks for cleanup
This adds a function sd_bus_slot_set_destroy_callback() to set a function
which can free userdata or perform other cleanups.

sd_bus_slot_get_destory_callback() queries the callback, and is included
for completeness.

Without something like this, for floating asynchronous callbacks, which might
be called or not, depending on the sequence of events, it's hard to perform
resource cleanup. The alternative would be to always perform the cleanup from
the caller too, but that requires more coordination and keeping of some shared
state. It's nicer to keep the cleanup contained between the callback and the
function that requests the callback.
2018-06-06 23:01:57 +02:00
Zbigniew Jędrzejewski-Szmek
e3736e0223 man: also mention EINVAL in sd_bus_slot_set_floating(3) 2018-06-06 23:01:25 +02:00
Zbigniew Jędrzejewski-Szmek
24924cc959 test-bus-util: add a simple test for bus_request_name_async_may_reload_dbus()
This shows a minor memleak:
==1883== 24 bytes in 1 blocks are definitely lost in loss record 1 of 1
==1883==    at 0x4C2DBAB: malloc (vg_replace_malloc.c:299)
==1883==    by 0x4E9D385: malloc_multiply (alloc-util.h:69)
==1883==    by 0x4EA2959: bus_request_name_async_may_reload_dbus (bus-util.c:1841)
==1883==    by ...

The exchange of messages is truncated at two different points: once right
after the first callback is requested, and the second time after the full
sequence has run (usually resulting in an error because of policy).
2018-06-06 23:01:25 +02:00
Zbigniew Jędrzejewski-Szmek
83b6c1a6b1 bus-util: avoid unneeded initalization to zero 2018-06-06 23:01:25 +02:00
Zbigniew Jędrzejewski-Szmek
7d6b27238f man: xinclude the generic text to talk about libsystemd pkgconfig
The only difference is that functions are not individually listed by name,
but that seems completely pointless, since all functions that are documented
are always exported, so the generic text tells the user all she or he needs
to know.
2018-06-06 23:01:25 +02:00
Zbigniew Jędrzejewski-Szmek
d5e9c5a2cd
Merge pull request #9201 from poettering/integration-test-unfuck
make the integration tests great again
2018-06-06 21:02:13 +02:00
Lennart Poettering
24715314fb pid: fix ENOENT error check 2018-06-06 20:22:41 +02:00
Lennart Poettering
950d6889c3 systemctl: when GetProcesses() doesn't work, say for which unit 2018-06-06 19:46:23 +02:00
Lennart Poettering
81f6d448ef
Merge pull request #9212 from keszybz/null-removal-part-two
Small follow-up to log_struct NULL removal
2018-06-06 17:18:19 +02:00
Zbigniew Jędrzejewski-Szmek
bb74418bf1
Merge pull request #9197 from poettering/make-main-shorter
some smaller changes to make PID1's main() a bit shorter
2018-06-06 16:05:41 +02:00
Zbigniew Jędrzejewski-Szmek
2cda08fdf3 resolved: reformat message about a revoked trust anchor
LOG_MESSAGE is just a wrapper, but it keeps the arguments indented together
with the format string, so put the argument inside of the macro invocation.
(No functional change.)

Also use lowercase for "trust anchor" — it should either be all capitaled or not
at all, and it's not a proper name, so let's make it all lowercase.
Also, add a newline, to make the string more readable. "%s" can expand to
something that is quite long.
2018-06-06 14:55:31 +02:00
Zbigniew Jędrzejewski-Szmek
f4cf1d66f7 Remove NULL terminator from two log_struct calls
Fixup for a1230ff972. I forgot to press "save" ;(
2018-06-06 14:44:34 +02:00
Lennart Poettering
9289045238 main: combine a some if checks
Let's merge a few if blocks that are conditioned out the same way.

No change in behaviour.
2018-06-06 14:39:15 +02:00
Lennart Poettering
ef59409ff2 main: use rlimit_free_all() at one more place 2018-06-06 14:39:15 +02:00
Lennart Poettering
5b65ae15d2 core: comment verbosely what the difference betweem set_manager_settings() and set_manager_defaults() is 2018-06-06 14:39:15 +02:00
Lennart Poettering
3130fca5a7 util: add new write_string_filef() helper
This new helper combines asprintf() and write_string_file() in one,
which is useful at various places to shorten the code a bit.
2018-06-06 14:39:15 +02:00
Lennart Poettering
9264cc39ce main: split out reading of /proc/sys/fs/nr_open into its own function
This doesn't really reduce the code size over all, but it does make main.c
shorter and more readable, and that's always a good thing.
2018-06-06 14:39:15 +02:00
Zbigniew Jędrzejewski-Szmek
0e37c169fb man: add example for sd_event_add_inotify 2018-06-06 13:09:36 +02:00
Zbigniew Jędrzejewski-Szmek
5c1701dd6d
Merge pull request #9210 from poettering/use-delete-trailing-chars
make use of delete_trailing_chars() more
2018-06-06 12:43:47 +02:00
Zbigniew Jędrzejewski-Szmek
6585f72c08
Merge pull request #9121 from poettering/sd-event-inotify
add "sd_event_add_inotify()" and use it for making PID 1 rescheduler .timer units properly on timezone change
2018-06-06 12:38:55 +02:00
Zbigniew Jędrzejewski-Szmek
ce55bd5e4a NEWS: add note about --runtime 2018-06-06 12:38:44 +02:00
Yu Watanabe
60091993a9 locale: add _unused_ attribute for dummy variable
This suppresses the following warning by clang:
```
[588/1179] Compiling C object 'systemd-localed@exe/src_locale_localed.c.o'.
../src/locale/localed.c:271:39: warning: unused variable 'dummy' [-Wunused-variable]
        _cleanup_(locale_free) char **dummy = new_locale;
                                      ^
```
2018-06-06 12:27:52 +02:00
rubensa
2b3df1963c hwdb: add accel mount settings for Cube i7 Stylus I8L Model (#9207)
There are different Cube i7 Stylus generations.

Those are identified with the printed serial code sticker on motherboard (Printed serial code on casing is not always true)

Order of Model (Old - New):

    W
    WA
    WWA
    WN(I8WN)
    I8L(With W on casing)

I own a I8L generation so the hw identification for my model does not work.

# cat /sys/class/dmi/id/sys_vendor
Cube
# сat /sys/class/dmi/id/product_name
i8-L
2018-06-06 12:02:35 +02:00
Lennart Poettering
0a6ffc5c9b string-util: put together strstrip() from skip_leading_chars() and delete_trailing_chars() 2018-06-06 11:58:38 +02:00