1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-25 01:34:28 +03:00
Commit Graph

38551 Commits

Author SHA1 Message Date
Yu Watanabe
3b51bbe135 test-network: drop unused variable 2019-02-17 01:17:40 +09:00
Yu Watanabe
89b9a97573 network: disable link local addressing on vrf
See the commment in vrf_link_scope_lookup() in drivers/net/vrf.c of
Linux kernel.
2019-02-17 01:15:23 +09:00
Yu Watanabe
4f4daf418f udev,network: drop unused parent_driver argument from net_match_config()
The argument has never been used.
2019-02-17 00:47:49 +09:00
Yu Watanabe
96fb7dc30f test-network: add a tiny test for ID_NET_DRIVER= udev property
Test for #11721.
2019-02-17 00:43:38 +09:00
Yu Watanabe
03dd7b7dde sd-device: also store properties read from udev database to sd_device::properties_db
Follow-up for a3ce813697 and
5ce41697bd.

Before a3ce813697, all properties in
src->properties and src->properties_db are mixed and copied to
dst->properties_db by device_copy_properties().
So, it is not necessary to store data from udev database file to
sd_device::properties_db before copying properties.

But now, properties are not mixed. So, the read data need to be
stored to also ::properties_db.

Fixes #11721.
2019-02-17 00:43:38 +09:00
Yu Watanabe
63eb09569a test-network: increase sleep time in test_bind_carrier()
Hopefully fixes #11667.
2019-02-16 07:22:54 +09:00
Yu Watanabe
ee1a36aee1
Merge pull request #11727 from filbranden/minor1
A couple of very minor fixes
2019-02-16 07:22:00 +09:00
Yu Watanabe
57f08d5cdd udev-rules: update log messages about OWNER= or GROUP= settings on --resolve=names=never
This also set lower log level for the messages.

6e2efb6c73 introduces the log messages.
But udevd may be started with --resolve-names=never, and the behavior
is expected.

Fixes #11720.
2019-02-16 07:21:28 +09:00
Yu Watanabe
14153d1b6e network: introduce new operational state 'enslaved'
If an interface has IFF_SLAVE flag, then its operational state becomes
not in 'degraded' or 'carrier', but the new 'enslaved' state.
2019-02-16 07:15:49 +09:00
Yu Watanabe
7fcee28417 network: introduce specific netlink async handler for link_set_bond()
This also rename link_bond_set() to link_set_bond().
2019-02-16 07:15:49 +09:00
Yu Watanabe
f2bfcdb94a network: disable addressing on bond slave interface 2019-02-16 07:15:49 +09:00
Yu Watanabe
57445b53fb network: add missing error check 2019-02-16 06:34:22 +09:00
Filipe Brandenburger
ba9e3fc488 readme: Minor style and spacing fix
Fix section header for stable branches and backports. All the other
headings end in a colon and have no blank lines between them and the
body of the section, so fix this one accordingly.
2019-02-15 11:05:04 -08:00
Filipe Brandenburger
c8f22490ee editors: Prevent ctags from following symlinks
Some tests will create a subtree of /sys under build/test/sys and
depending on the local system that tree might end up having an infinite
chain of symlinks. For example:

  $ ls build/test/sys/devices/pnp0/00:00/subsystem/devices/00:00/subsystem/devices/00:00/subsystem/devices/00:00/subsystem/devices/00:00/subsystem/devices/00:00/subsystem/
  devices  drivers  drivers_autoprobe

Exuberant ctags will by default follow symlinks, so configure it not to
do so through a local .ctags file setting --links=no.

Tested that `ctags -R` doesn't get stuck with the dotfile present.
2019-02-15 11:01:20 -08:00
Andrzej Pietrasiewicz
2c633a821e units: add usb-gadget target
Linux can be run on a device meant to act as a USB peripheral. In order
for a machine to act as such a USB device it has to be equipped with
a UDC - USB Device Controller.

This patch adds a target reached when UDC becomes available. It can be used
for activating e.g. a service unit which composes a USB gadget with
configfs and activates it.
2019-02-15 18:16:27 +01:00
Lennart Poettering
e5358401b5 tmpfiles: let's bump RLIMIT_NOFILE for tmpfiles
We potentially might descent into quite deep directory trees. Let's
hence make sure we can allocate a lot of fds.

(This reflects the fact that glibc nftw() and friends have some logic in
place to reduce fd usage while descending into directory trees. Doing so
is a bit nasty I think, and given that fds are basically free now, if we
ask for them, lte's just protect ourselves and make use of that)

(No, I am not aware of a real-world case where this was necessary, but
let's better be safe than sorry)
2019-02-15 17:16:54 +01:00
Lennart Poettering
aa1f2e52e8 man: document the new BSD file lock logic in tmpfiles 2019-02-15 17:16:54 +01:00
Lennart Poettering
52b32b2aac tmpfiles: while aging, take a BSD file lock on each directory we descent into
Let's add a fully safe way to exclude certain directories from aging, by
taking a BSD file lock on them before aging them. This is useful for
clients that untar tarballs into /tmp or /var/tmp, which might have
really old timestamps, and to which the aging logic would be very harsh:
they can simply take a BSD file lock on any directory they like and thus
exclude it from automatic aging, and thus need not to be afraid of
untarring stuff below it.

Previously, similar functionality was already available through the
sticky bit on non-directories, but it's problematic, since as soon as
the bit is set no clean-up is done for it at all anymore, forever. Also,
it is not suitable for untarring stuff, since the sticky bit after all
is a concept denoted in the tarball itself.  BSD file locking semantics
are much much nicer there, as they are automatically released when the
application that has them dies, and they are entirely orthogonal to data
encoded in tarballs.

This patch takes BSD file locks only on *directories* while descending
down the tree, not on regular files. Moreover, it will do so in
non-blocking mode only, i.e. if anyone else has a lock the aging for a
dir and everything below it is immediately skipped for the current
clean-up iteration.

Of course applications might take BSD file locks for other reasons than
just prevent aging (i.e for their own reasons), but that should be
entirely OK, as in that case tmpfiles should step away from those files
anyway too: it's a good idea to stay away from any such locked file
anyway since it's apparently curretnly being manipulated.

This allows us to fix bugs like this:

https://github.com/systemd/mkosi/issues/252
2019-02-15 17:16:54 +01:00
Lennart Poettering
781bc44e83 tmpfiles: make some log messages a tiny bit less cryptic for mere mortals 2019-02-15 17:16:54 +01:00
Lennart Poettering
a23fabc697 tmpfiles: break comment blocks according to our current editor settings 2019-02-15 17:16:54 +01:00
Lennart Poettering
76e15a9cab tmpfiles: clean up restoring of access times after aging a bit
Let's minimize file scope, use compund literals and only use LOG_WARN
for errors we ignore.
2019-02-15 17:16:54 +01:00
Lennart Poettering
b412af57a3 resolved: keep stub stream connections up for as long as client wants
This enables pipelining of queries from clients to our stub server.

Fixes: #11332
2019-02-15 17:13:58 +01:00
Lennart Poettering
f447d9e376 resolved: add comment to dns_stream_complete() about its 'error' argument 2019-02-15 17:13:58 +01:00
Lennart Poettering
9c9e017067 resolved: only call complete() with zero argument in LLMNR client cases
In all other cases (i.e. classic DNS connection towards an upstream
server, or incoming stub connection, or incoming LMMNR connection) we
want long-running connections, hence keep the connection open for good.
Only in the LLMNR client case let's close the stream as soon as we are
done.
2019-02-15 17:13:58 +01:00
Lennart Poettering
5971dffd4a resolved: restart stream timeout whenever we managed to read or write something
Previously we'd start the timeout once when we allocated the stream.
However, we'd now like to emphasize long-running connections hence let's
rework the timeout logic, and restart it whenever we see action ont the
stream. Thus, idle streams are eventually closed down, but those where
we read or write from are not.
2019-02-15 17:13:58 +01:00
Lennart Poettering
31f2a5e2b8 llmnr: add comment why we install no complete() handler on stream 2019-02-15 17:13:58 +01:00
Lennart Poettering
8227cfa137 transaction: simplify handling if we get an unexpected DNS packet via TCP
There's no point in calling on_stream_complete() as it doesn't do
anything with the zero argument. Let's hence simplify this and just log.
2019-02-15 17:13:58 +01:00
Lennart Poettering
652ba568c6 stream: track type of DnsStream object
We use stream objects in four different cases: let's track them.

This in particular allows us to make sure the limit on outgoing streams
cannot be exhausted by having incoming streams as this means we can
neatly separate the counters for all four types.
2019-02-15 17:13:58 +01:00
Lennart Poettering
57bdb749b8 stream: follow coding style, don't use degrade-to-bool for checking numeric value 2019-02-15 17:13:58 +01:00
Jonathon Kowalski
791cd15993 Fail RequisiteOf units with oneshots
Fixes: #11422

Oneshots going to inactive directly without ever entering UNIT_ACTIVE is
considered success. This however means that if something both Requires=
and Requisites= a unit of such nature, the verify-active job getting
merged into the start job makes it lose this property of failing the
depending jobs, as there, the start job has the result JOB_DONE on
success, so we never walk over RequisiteOf units.

This change makes sure that such units always go down. It is also only
meaningful with After=, but so is Requisite= itself. Also, we also catch
cases like a oneshot having RemainAfterExit= true making us start up
properly in such a setting, but then removing it, reloading the unit,
and restarting it. In such a case, we go down due to restart propagation
before them, and our start job waits on theirs, properly failing with
the JOB_DEPENDENCY result.

This covers cases where ConditionXYZ= creates a similar situation as
well.
2019-02-15 13:42:54 +01:00
Thomas Haller
a15ff62d76 netlink: fix netlink type for routing-rule FRA_L3MDEV
Fixes: bce67bbee3
2019-02-15 20:18:27 +09:00
Lennart Poettering
84e4b0b893
Merge pull request #11716 from ssahani/drop-autoconf-address
networkd: ipv6ra allow to ignore addresses
2019-02-15 12:17:46 +01:00
Lennart Poettering
bbd8598f8b
Merge pull request #11589 from yuwata/udevd-is-device-busy
udevd: refactoring is_device_busy()
2019-02-15 12:16:37 +01:00
Michael Olbrich
646876105f v4l_id: use device_caps if available
According to the specification[1] the 'capabilities' describe the physical
device as a whole and the 'device_caps' describe the current device node.
The existence of 'device_caps' is indicated by the V4L2_CAP_DEVICE_CAPS
capability flag.
Use the 'device_caps' if available to generate the correct
ID_V4L_CAPABILITIES for the current device node.

This is relevant for UVC devices with current kernels: Two /dev/videoX
devices exist for those. One for video and one for metadata. The
 V4L2_CAP_VIDEO_CAPTURE flag is present in the 'capabilities' for both
device nodes but only in the 'device_caps' of the video device node.

Without this, the ID_V4L_CAPABILITIES of the metadata device node
incorrectly contains 'capture'.

[1] https://www.linuxtv.org/downloads/v4l-dvb-apis-new/uapi/v4l/vidioc-querycap.html
2019-02-15 12:14:05 +01:00
Lennart Poettering
eca3d5d567
Merge pull request #9594 from filbranden/cpu_quota_period1
core: add CPUQuotaPeriodSec=
2019-02-15 12:11:42 +01:00
Lennart Poettering
5c5c21835a
Merge pull request #11634 from yuwata/rfe-11622
busctl: add 'emit' command
2019-02-15 11:56:32 +01:00
Lennart Poettering
a0279563d7
Merge pull request #11719 from yuwata/networkctl-wildcards
networkctl: accept wildcards to specify links
2019-02-15 11:44:24 +01:00
Thomas Haller
13f1fd0376 dhcp: ignore padding of 'chaddr' in DHCP server response
The "chaddr" field is 16 bytes long, with "hlen" being the
length of the address.

https://tools.ietf.org/html/rfc2131#section-4.3.1 says:

    The server MUST return to the client:

    ...

    o Any parameters specific to this client (as identified by
      the contents of 'chaddr' or 'client identifier' in the DHCPDISCOVER
      or DHCPREQUEST message), e.g., as configured by the network
      administrator,

It's not clear, whether only the first 'hlen' bytes of 'chaddr'
must correspond or all 16 bytes.

Note that https://tools.ietf.org/html/rfc4390#section-2.1 says for IPoIB

    "chaddr" (client hardware address) field MUST be zeroed.

with having "hlen" zero. This indicates that at least in this case, the
bytes after "hlen" would matter.

As the DHCP client always sets the trailing bytes to zero, we would expect
that the server also replies as such and we could just compare all 16 bytes.
However, let's be liberal and accept any padding here.

This in practice only changes behavior for infiniband, where we
previously would enforce that the first ETH_ALEN bytes are zero.
That seems arbitrary for IPoIB. We should either check all bytes or
none of them. Let's do the latter and don't enforce RFC 4390 in this
regard.
2019-02-15 11:41:06 +01:00
Lennart Poettering
8e6b3f49fe
Merge pull request #11636 from yuwata/network-in-addr-is-null
network, sd-netlink: unify several functions and fixes coding style
2019-02-15 11:40:34 +01:00
Lennart Poettering
683a1e7fd9
Merge pull request #11594 from yuwata/udev-rule-cleanups
udev-rule, ethtool: several coding style cleanups
2019-02-15 11:37:11 +01:00
Lennart Poettering
19df3047f3
Merge pull request #9262 from ssahani/ignore-carrier-9111
networkd: allow to retain configs even if carrier is lost
2019-02-15 11:35:43 +01:00
Ignat Korchagin
def3c7c791 resolved: use Cloudflare public DNS server as a default fallback alongside Google one
Cloudflare public DNS service is currently the fastest one according to
https://www.dnsperf.com/#!dns-resolvers. Why not improve the experience for
systemd users using this as a default fallback nameserver?
2019-02-15 11:34:11 +01:00
Lennart Poettering
bd0a4a3da8
Merge pull request #11617 from topimiettinen/backlight-handle-zero-file-load
backlight: handle loading truncated file
2019-02-15 11:32:58 +01:00
Lennart Poettering
dcf3c3c3d9 core: export $PIDFILE env var for services, derived from PIDFile= 2019-02-15 11:32:19 +01:00
Lennart Poettering
7ca9289ca2
Merge pull request #11373 from tomty89/auto
mount/generators: do not make unit wanted by its device unit
2019-02-15 11:31:55 +01:00
Lennart Poettering
e5d21c24a0
Merge pull request #11382 from keszybz/udev-predictable-macs
Allow MACAddressPolicy=persistent for all virtual devices
2019-02-15 11:31:25 +01:00
Lennart Poettering
c49adafa82
Merge pull request #11506 from bl33pbl0p/reload-fix
Return -EAGAIN instead of -EALREADY from unit_reload
2019-02-15 11:31:00 +01:00
Tony Asleson
f82abfcda5 rules: watch metadata changes on nbd devices
Include nbd* in match for watch option assignment.

Signed-off-by: Tony Asleson <tasleson@redhat.com>
2019-02-15 11:30:33 +01:00
Yu Watanabe
cd65d06720 test-network: add test for BindCarrier= 2019-02-15 11:30:17 +01:00
Yu Watanabe
fe3ab8458b login: add a missing error check for session_set_leader()
session_set_leader() may fail. If it fails, then manager_start_scope()
will trigger assertion.

This may be related to RHBZ#1663704.
2019-02-15 11:29:34 +01:00