Commit Graph
54455 Commits
Author SHA1 Message Date
Lennart Poettering b6418dc94e mount: strdup() device paths we collect
We never know what the changes triggered by mount_set_state() do to the
unit. Let's be safe and copy the device path into our set, so that we
are safe against that.
2018-12-07 17:35:32 +01:00
Lennart Poettering f8064c4fda mount: when the kernel reports a mount to be established reset all kinds of load failures
It doesn't matter what kind of precise failure we had earlier with
loading the unit, let's report that it loaded successfully now, after
all the kernel is an OK source for that, like any other.
2018-12-07 17:35:32 +01:00
Lennart Poettering a37422045f mount: regenerate all deps whenever a mount's parameters changes
Whenever we notice a change on an existing /proc/self/mountinfo line,
let's update the deps generated from it. For that, let's flush out the
old deps generated this way, and add in the new ones.

This takes benefit of the fact that today (unlike a comment this patch
removes says) we can remove deps in a somewhat reasonable way.
2018-12-07 17:35:32 +01:00
Lennart Poettering 6d7e89b070 mount: when allocating a Mount object based on /proc/self/mountinfo mark it so
Let's set 'from_proc_self_mountinfo' right away, since we know its from
there. This is important so that when the load queue is dispatched (and
thus mount_load() called) this
fact is already known.
2018-12-07 17:35:32 +01:00
Lennart Poettering 26e35b164b mount: let mount_add_extras() take care of remote-fs.target deps
In a previous commit we added logic that mount_add_extras() (or more
precisely mount_add_default_dependencies()) adds in dependencies on
remote-fs.target and local-fs.target, hence we can drop this from
mount_setup_new_unit() and let the usual load queue dispatching take
care of this.
2018-12-07 17:34:29 +01:00
Lennart Poettering e10fe04266 mount: use free_and_strdup() over plain strdup()
Let's initialize two fields with free_and_strdup() rather than directly
with strdup(). The fields should not be initialized so far, but it's
still nicer to be prepared for futzre code changes and always free
what's stored before replacing it.
2018-12-07 17:34:29 +01:00
Lennart Poettering 60b8c203f8 mount: generate error message matching the error location 2018-12-07 17:34:29 +01:00
Lennart Poettering 839ee05838 mount: move allocation of Unit object into mount_setup_new_unit()
This should encapsulate things in a nicer way.
2018-12-07 17:34:29 +01:00
Lennart Poettering bbee24bc96 mount: add a common helper for filling in info from /proc/self/mountinfo 2018-12-07 17:30:14 +01:00
Lennart Poettering ba0d56f55f mount: don't propagate errors from mount_setup_unit() further up
If we can't process a specific line in /proc/self/mountinfo we should
log about it (which we do), but this should not affect other lines, nor
further processing of mount units. Let's keep these failures local.

Fixes: #10874
2018-12-07 17:30:14 +01:00
Lennart Poettering 3f459cd96e mount: simplify de-serialization of control PID a bit 2018-12-07 17:30:14 +01:00
Lennart Poettering 2c09fb818f mount: serialize umount retry counter across reloads/reexec 2018-12-07 17:30:14 +01:00
Lennart Poettering 780ae0221a mount: make sure mount_add_extras() is always invoked when we load a mount unit
We need to make sure that the slice property is initialized whenever
mount_load() is invoked, even if we fail to load things properly off
disk. This is important since we generally don't allow changing the
slice after a unit has been started. But given that we must track the
state of external objects with mount units we must hence initialize the
property no matter what.
2018-12-07 17:30:14 +01:00
Lennart Poettering 1f73647647 mount: document that mount_add_extras() must work with active units, too 2018-12-07 17:30:14 +01:00
Lennart Poettering d54bab90e6 mount: set up local-fs.target/remote-fs.target deps in mount_add_default_dependencies() too
This deps are very similar to the -pre deps, hence establish them at the
same place, in particular as they should only be generated if default
deps are on.

This allows us to later on remove similar code that adds in these deps
whenever /proc/self/mountinfo changes.
2018-12-07 17:30:14 +01:00
Lennart Poettering 32a5f8fe22 mount: remove unnecessary initialization of device_wants_mount and 'if' 2018-12-07 17:30:14 +01:00
Lennart Poettering a26592cf58 mount: use mfree() where appropriate 2018-12-07 17:30:14 +01:00
Lennart Poettering 06e457b1a3 mount: rename needs_quota() → mount_needs_quota()
No change of logic, just some renaming, in order to match more closely
the naming of the other, similar functions.
2018-12-07 17:30:14 +01:00
Lennart Poettering 7121cbcffe mount: merge redundant call mount_needs_network() into mount_is_network() 2018-12-07 17:30:14 +01:00
Lennart Poettering c23b62b40b resolved: drop unused field structure 2018-12-07 17:22:59 +01:00
Lennart Poettering 7172e4ee1e resolved: implicitly disconnect a stream from its server when a stream is closed
Previously, the callback function did this, but let's do this in the
caller instead, to make this more robust, and use our new helper
function for it.
2018-12-07 17:22:59 +01:00
Lennart Poettering 808089ae3d resolved: add new helper for carefully detach a stream from any server
This adds a helper call for detaching a DnsServer from a DnsStream if
the latter is the "default" stream of the server.

Also, let's unref the stream in dns_stream_stop() rather than
dns_stream_free(): as soon as our stream is disconnected by stopping
there's really no need to keep it as default stream for the server
around.

Since dns_stream_free() calls dns_stream_stop() we can remove it from
the former.
2018-12-07 17:22:59 +01:00
Lennart Poettering d973d94dec resolved: pin stream while calling callbacks for it
These callbacks might unref the stream, but we still have to access it,
let's hence ref it explicitly.

Maybe fixes: #10725
2018-12-07 17:22:59 +01:00
Lennart Poettering 904dcaf9d4 resolved: take particular care when detaching DnsServer from its default stream
DnsStream and DnsServer have a symbiotic relationship: one DnsStream is
the current "default" stream of the server (and thus reffed by it), but
each stream also refs the server it is connected to. This cyclic
dependency can result in weird situations: when one is
destroyed/unlinked/stopped it needs to unregister itself from the other,
but doing this will trigger unregistration of the other. Hence, let's
make sure we unregister the stream from the server before destroying it,
to break this cycle.

Most likely fixes: #10725
2018-12-07 17:16:29 +01:00
Lennart Poettering 199dda9c25 resolved: before assuming we have a server, check we are talking DNS and not LLMNR/mDNS 2018-12-07 17:16:29 +01:00
Lennart Poettering 51bc63fef2 resolved: comment headers better 2018-12-07 17:16:29 +01:00
Lennart Poettering ec962fba62 resolved: add small helper to pick DNS port number
This shouldn't be hidden in some function argument expression. Let's
make this more explicit by turning this into its own helper function.
2018-12-07 17:16:29 +01:00
Lennart Poettering 747a8a74c0 resolved: rename dns_stream_on_packet() → on_stream_packet()
Let's name this similar to on_stream_complete(). Moreover we shouldn't
invade dns_stream's namespace if we are a consumer of it.
2018-12-07 17:16:29 +01:00
Lennart Poettering 65b0179a25 resolved: use structured initialization for DnsServer allocation 2018-12-07 17:16:29 +01:00
Lennart Poettering 94fdb4d9d1 resolved: exit early on failure 2018-12-07 17:16:29 +01:00
Lennart Poettering 97d5d9055f resolved: don't read packet from DnsStream on on_stream_complete() of DnsTransaction
We register an on_packet() handler anyway, which is called first.
There's hence no need to check in on_stream_complete() again, as it is
already taken by that time.
2018-12-07 17:16:29 +01:00
Lennart Poettering aa337a5e72 resolved: add new accessor dns_stream_take_read_packet() for taking read packet from stream
This ensures the packet is complete when it is taken out, and resets
n_read so that we can start reading the next one.
2018-12-07 17:16:29 +01:00
Lennart Poettering 56e267dee2 resolved: remove redundant code 2018-12-07 17:16:29 +01:00
Lennart Poettering 499aa1d31b resolved: add some assert()s 2018-12-07 17:16:29 +01:00
Lennart Poettering e6dc55566b resolved: be more careful with types in dns_stream_writev()
Let's not name a variable of type ssize_t "r". We usually use "r" for
return values of API calls that return some kind of error as in int.
This creates a lot of confusion if used differently here, which actually
resulted in connect()'s return value being assigned to this mistyped "r"
by accident.

Let's rename the variable "m" hence, and not use it for connect() return
values.
2018-12-07 17:16:29 +01:00
Lennart Poettering b27a32a0de resolved: line split dns_stream_new() function signature 2018-12-07 17:16:29 +01:00
Lennart Poettering 08e254c818 resolved: reorder things, to place registration of DnsStream in Manager close to each other 2018-12-07 17:16:29 +01:00
Lennart Poettering 898892e825 resolved: ensure DnsStream.fd is initialized before first error path 2018-12-07 17:16:29 +01:00
Lennart Poettering b2cf6704e7 resolved: simplify on_stream_io() a bit 2018-12-07 17:16:29 +01:00
Evgeny Vereshchagin 1478aa4eb5 travis: also compile systemd on Debian Testing
This should help to catch issues like https://github.com/systemd/systemd/issues/11075
2018-12-07 17:12:58 +01:00
Zbigniew Jędrzejewski-Szmek 9b674e2581 core/device: fix typo 2018-12-07 15:39:52 +01:00
Filipe Brandenburger 01dc8e3044 man: fix reference to sd_journal_print(3)
The reference in systemd-journald.service(8) was incorrectly pointing to
man volume 4 instead of 3.

This commit should fix the broken link at
https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html
2018-12-07 13:35:35 +01:00
Yu Watanabe 5b139f86a6 missing: re-add drm related entries
This effectively reverts dab28f0905.

Fixes #11075.
2018-12-07 12:46:55 +01:00
Lennart Poettering bf246ba00e networkd-test: add mkosi snippet for building and running networkd-tets.py in a network namespaced container
This provides us with an easy command line to test this script. Because
the test was so difficult to get running noone ever did, hence it broke
badly quickly. Let's fix that.
2018-12-07 12:25:24 +01:00
Lennart Poettering 0373fc5b6f networkd-test: change test_transient_hostname_with_static to use an explicit static hostname
Previously, the test would use the existing static hostname. However,
this woud not work as expected in the static hostname was "localhost"
because the transient hostname will override the static one in that case
anyway, as the assumption hostnamed makes is that "localhost" is a
non-initialized hostname.

Hence when testing this, let's first set the static hostname to
something specific first (that is not "localhost").
2018-12-07 12:25:24 +01:00
Lennart Poettering 8e0ba0c984 networkd-test: restart hostnamed after reverting /etc/hostname too
Otherwise hostnamed will not report the right data in the next test
2018-12-07 12:25:24 +01:00
Lennart Poettering fef740aed3 networkd-test: add write_config()
The call was removed in ec89276c2a, but is
still used. Not sure why noone noticed this.
2018-12-07 12:25:24 +01:00
Lennart Poettering ff7507295d networkd-test: set right access modes for /run/systemd/netif
Otherwise networkd isn't happy.

Let's also make addition of the "systemd-network" non-fatal. The user
exists on many machines anyway, hence it shouldn't fail if it already
exists.
2018-12-07 12:25:24 +01:00
Yu Watanabe 83da42c3bf bash-completion: analyze: support 'security' 2018-12-07 08:05:18 +01:00
Zbigniew Jędrzejewski-Szmek 9b73c84739 Merge pull request #11072 from yuwata/fix-networkctl-ip6gre
networkctl: fix TYPE field of ip6gre devices
2018-12-07 08:03:32 +01:00