chiark / gitweb /
7 years agobash completion: Add -r/--recursive to systemctl
Thomas Hindoe Paaboel Andersen [Thu, 3 Apr 2014 20:52:21 +0000 (22:52 +0200)]
bash completion: Add -r/--recursive to systemctl

7 years agonetwork: default to IPv4LL on host0
Tom Gundersen [Thu, 3 Apr 2014 17:09:22 +0000 (19:09 +0200)]
network: default to IPv4LL on host0

Now that we have a graceful handover from IPv4LL to DHCP, there is no longer any reason to leave this off by default.

7 years agosd-rtnl: fix broken test cases and add support for tunnel
Susant Sahani [Thu, 3 Apr 2014 08:05:56 +0000 (13:35 +0530)]
sd-rtnl: fix broken test cases and add support for tunnel

This patch fixes the broken test-cases for sd-rtnl and add support for ipip
and sit tunnel.

[tomegun: minor fixups]

7 years agonetworkd: smooth transition from ipv4ll to dhcp address
Umut Tezduyar Lindskog [Wed, 2 Apr 2014 19:31:12 +0000 (21:31 +0200)]
networkd: smooth transition from ipv4ll to dhcp address

Currently when both ipv4ll and dhcp are enabled, ipv4ll
address (if one has been claimed) is removed when dhcp
address is aquired. This is not the best thing to do
since there might be clients unaware of the removal
trying to communicate.

This patch provides a smooth transition between ipv4ll
and dhcp. If ipv4ll address was claimed [1] before dhcp,
address is marked as deprecated. Deprecated address is still
a valid address and packets can be received on it but address
cannot be selected as a source address. If dhcp lease cannot
be extended, then ipv4ll address is marked as valid again.

[1] If there is no collision, claiming IPv4LL takes between 4 to
7 seconds.

7 years agonetworkd: drop routes when lease expires
Umut Tezduyar Lindskog [Tue, 1 Apr 2014 20:55:54 +0000 (22:55 +0200)]
networkd: drop routes when lease expires

7 years agologind: don't print error if devices vanish during ACL-init
David Herrmann [Wed, 2 Apr 2014 14:20:13 +0000 (16:20 +0200)]
logind: don't print error if devices vanish during ACL-init

If a device is unplugged while we initialize it, we will get ENOENT for
ACL-init (and related stuff). We currently print errors then, which is
misleading. Print a debug-message early and continue.

7 years agoudev: do not export "static node" tags for non-existing devices
Kay Sievers [Wed, 2 Apr 2014 13:47:09 +0000 (15:47 +0200)]
udev: do not export "static node" tags for non-existing devices

7 years agosd-dhcp-client: use BPF on raw socket
Tom Gundersen [Mon, 31 Mar 2014 07:54:18 +0000 (09:54 +0200)]
sd-dhcp-client: use BPF on raw socket

Filter out everything except UDP packets destined for the DHCP client port,
this should avoid the vast majority of spurious wakeups.

Filter based on [0], with permission.

Possible improvemnts: also check for the DHCP magic cookie to drop invalid
packets. Check for our xid to filter out packets destined for other clients.

[0]: <>

7 years agobuild-sys: remove no longer needed user/org.freedesktop.DBus.busname
Kay Sievers [Wed, 2 Apr 2014 09:34:33 +0000 (11:34 +0200)]
build-sys: remove no longer needed user/org.freedesktop.DBus.busname

7 years agobuild-sys: no use for compat libs in the static analysis
Thomas Hindoe Paaboel Andersen [Tue, 1 Apr 2014 20:32:44 +0000 (22:32 +0200)]
build-sys: no use for compat libs in the static analysis

7 years agosd-ipv4ll: speed up bind() in the same way as for dhcp
Tom Gundersen [Tue, 1 Apr 2014 19:29:20 +0000 (21:29 +0200)]
sd-ipv4ll: speed up bind() in the same way as for dhcp

7 years agobuild-sys: workaround scan-build bug to fix ./ s
Daniel Buch [Tue, 1 Apr 2014 13:00:31 +0000 (15:00 +0200)]
build-sys: workaround scan-build bug to fix ./ s

It seems to be a clang-analyzer problem since it don't behave like
clang-compiler regarding -std={c99,gnu99}

7 years agosd-dhcp-client: --omg-optimized
Tom Gundersen [Mon, 31 Mar 2014 21:28:58 +0000 (23:28 +0200)]
sd-dhcp-client: --omg-optimized

Passing the protocol to socket() is redundant as it will be specified again in
bind(). Dropping the redundancy reduces the cost of bind() from ~30ms to ~0ms.
For details see [0].

networkd in a container (i.e., with next to no network latency) can now
negotiate a DHCP lease in 0.7 - 5 ms.

Thanks to Kay for help with debugging and to Daniel Borkmann for the pointer
to fix the problem.

[0]: <>

7 years agonetworkd: rewind rtnl message between passing it to functions
Tom Gundersen [Mon, 31 Mar 2014 15:17:56 +0000 (17:17 +0200)]
networkd: rewind rtnl message between passing it to functions

This makes updating link status on netdev links work again.

7 years agosd-rtnl: modernize a bit
Tom Gundersen [Mon, 31 Mar 2014 12:43:34 +0000 (14:43 +0200)]
sd-rtnl: modernize a bit

7 years agodoc: fix items' names in PORTING-DBUS1
Lukasz Skalski [Mon, 31 Mar 2014 09:34:42 +0000 (11:34 +0200)]
doc: fix items' names in PORTING-DBUS1

7 years agoTODO
Tom Gundersen [Mon, 31 Mar 2014 09:30:59 +0000 (11:30 +0200)]

7 years agonetworkd: link - fix memory leak
Tom Gundersen [Mon, 31 Mar 2014 08:04:32 +0000 (10:04 +0200)]
networkd: link - fix memory leak

7 years agonetworkd: fix use-after-free
Tom Gundersen [Mon, 31 Mar 2014 08:01:59 +0000 (10:01 +0200)]
networkd: fix use-after-free

Free networks before links (the reverse of creation order).

7 years agosd-rtnl: fix off-by-one
Steven Siloti [Mon, 31 Mar 2014 04:20:26 +0000 (21:20 -0700)]
sd-rtnl: fix off-by-one

Also fix type parameter passed to new0

7 years agotimedated: adjust accuracy and slew values
Kay Sievers [Mon, 31 Mar 2014 02:00:04 +0000 (04:00 +0200)]
timedated: adjust accuracy and slew values

7 years agosd-dhcp: avoid checksum calculation if possible
Tom Gundersen [Sun, 30 Mar 2014 18:36:44 +0000 (20:36 +0200)]
sd-dhcp: avoid checksum calculation if possible

When receiving lots of packets that are not meant for us, we waste a relatively large amount
of cpu time computing their checksums before discarding them. Move the checksum calculation last
so we never compute it for packets which would otherwise be discarded.

7 years agosd-dhcp: check for ipv4 packets
Tom Gundersen [Sun, 30 Mar 2014 18:33:57 +0000 (20:33 +0200)]
sd-dhcp: check for ipv4 packets

7 years agosd-dhcp: check for udp packets
Umut Tezduyar Lindskog [Sun, 30 Mar 2014 17:09:14 +0000 (19:09 +0200)]
sd-dhcp: check for udp packets

Do not try to parse ICMP packets

[tomegun: slightly tweaked debug message]

7 years agosd-rtnl: types - hook up bond types
Tom Gundersen [Sat, 29 Mar 2014 22:53:03 +0000 (23:53 +0100)]
sd-rtnl: types - hook up bond types

Reported by Thomas Hindoe Paaboel Andersen <>

7 years agosd-rtnl: message - fix clang compile warning
Tom Gundersen [Sat, 29 Mar 2014 22:52:03 +0000 (23:52 +0100)]
sd-rtnl: message - fix clang compile warning

7 years agosd-rtnl: message - don't log about out-of-range attribute types
Tom Gundersen [Fri, 28 Mar 2014 18:11:15 +0000 (19:11 +0100)]
sd-rtnl: message - don't log about out-of-range attribute types

We will easily get these when running on newer kernels. However, we can safely ignore them as we
anyway don't know what to do with them.

7 years agonetworkd: netdev - improve logging when setting ifindex
Tom Gundersen [Fri, 28 Mar 2014 17:20:31 +0000 (18:20 +0100)]
networkd: netdev - improve logging  when setting ifindex

7 years agosd-rtnl: rework rtnl type system
Tom Gundersen [Wed, 26 Mar 2014 18:25:01 +0000 (19:25 +0100)]
sd-rtnl: rework rtnl type system

Use a static table with all the typing information, rather than repeated
switch statements. This should make it a lot simpler to add new types.

We need to keep all the type info to be able to create containers
without exposing their implementation details to the users of the library.

As a freebee we verify the types of appended/read attributes.

The API is extended to nicely deal with unions of container types.

7 years agosd-rtnl: message - fix memory leak
Tom Gundersen [Thu, 27 Mar 2014 23:46:45 +0000 (00:46 +0100)]
sd-rtnl: message - fix memory leak

7 years agosd-rtnl: message - don't reference associated rtnl object
Tom Gundersen [Sun, 23 Mar 2014 14:33:24 +0000 (15:33 +0100)]
sd-rtnl: message - don't reference associated rtnl object

The object is not currently used, so just drop the refenence. If/when we end up
using the object in the future, we must make sure to deal with possible mutual
references between rtnl busses and their queued messages; as is done in sd-bus.

7 years agoudev: persistent naming - we cannot use virtio numbers as they are not stable
Tom Gundersen [Thu, 27 Mar 2014 20:47:14 +0000 (21:47 +0100)]
udev: persistent naming - we cannot use virtio numbers as they are not stable

This reverts commit 8741f2defaf26aafe5ee0fd29954cfdf84ee519c: 'Add virtio-blk support to path_id' and
commit e3d563346c4237af23335cc6904e0662efdf62ad: 'udev: net_id - handle virtio buses'.

Distros may want to take note of this, as it changes behavior.

7 years agosilence warnings
Thomas Hindoe Paaboel Andersen [Thu, 27 Mar 2014 19:13:11 +0000 (20:13 +0100)]
silence warnings

7 years agosystemctl: fix spelling in comment
Brandon Philips [Thu, 27 Mar 2014 18:51:57 +0000 (11:51 -0700)]
systemctl: fix spelling in comment

7 years agoudev: update net_id comments
Kay Sievers [Thu, 27 Mar 2014 14:30:09 +0000 (15:30 +0100)]
udev: update net_id comments

7 years agoAdd hwdb entry for Samsung Series 7 Ultra
Scott Thrasher [Thu, 27 Mar 2014 01:48:13 +0000 (18:48 -0700)]
Add hwdb entry for Samsung Series 7 Ultra

7 years agobuild-sys: update "linkcheck"
Kay Sievers [Wed, 26 Mar 2014 18:22:17 +0000 (19:22 +0100)]
build-sys: update "linkcheck"

<kay> ssuominen: and drop --no-as-needed from the linkcheck?
<kay> ssuominen: i expect it all triggers without the gc-sections thing alone
<ssuominen> if the intention is to make it strict as possible,
  to catch undefined references caused by missing -lfoo in linker line, then
  LDFLAGS="-Wl,-fuse-ld=gold -Wl,--as-needed -Wl,--no-gc-sections"

7 years agobuild-sys: rename "check-broken" to "linkcheck"
Kay Sievers [Wed, 26 Mar 2014 12:12:47 +0000 (13:12 +0100)]
build-sys: rename "check-broken" to "linkcheck"

7 years agobuild-sys: split "make upload" and "make tango"
Kay Sievers [Wed, 26 Mar 2014 12:06:46 +0000 (13:06 +0100)]
build-sys: split "make upload" and "make tango"

7 years agohwdb: Update database of Bluetooth company identifiers
Marcel Holtmann [Wed, 26 Mar 2014 03:21:23 +0000 (20:21 -0700)]
hwdb: Update database of Bluetooth company identifiers

7 years agocore: do not read system boot timestamps in systemd --user mode
Kay Sievers [Wed, 26 Mar 2014 02:47:03 +0000 (03:47 +0100)]
core: do not read system boot timestamps in systemd --user mode

  $ systemd-analyze --user
  Startup finished in 2.810s (firmware) + 48ms (loader) + 122ms (userspace) = 122ms

  $ systemd-analyze --user
  Startup finished in 122ms (userspace) = 122ms

7 years agobus: provide org.freedesktop.systemd1.busname for systemd --user
Kay Sievers [Wed, 26 Mar 2014 02:38:48 +0000 (03:38 +0100)]
bus: provide org.freedesktop.systemd1.busname for systemd --user

7 years agobuild-sys: disable test-cgroup-mask, it mangles valid user data in /run/user/$UID/
Kay Sievers [Wed, 26 Mar 2014 01:30:32 +0000 (02:30 +0100)]
build-sys: disable test-cgroup-mask, it mangles valid user data in /run/user/$UID/

  $ ./test-cgroup-mask
  rmdir("/run/user/2702/systemd/generator") = 0
  open("/run/user/2702/systemd/generator.late", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_NOFOLLOW|O_NOATIME|O_CLOEXEC) = 5
  fstat(5, {st_mode=S_IFDIR|0755, st_size=3200, ...}) = 0
  fcntl(5, F_GETFL)                       = 0x78800 (flags O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_NOFOLLOW|O_NOATIME)
  fcntl(5, F_SETFD, FD_CLOEXEC)           = 0
  getdents(5, /* 160 entries */, 32768)   = 10072
  unlinkat(5, "org.gnome.Weather.Application.busname", 0) = 0
  unlinkat(5, "dbus-org.gnome.Weather.Application.service", 0) = 0

7 years agobuild-sys: add "make check-broken" to find limited-toolchain link errors
Kay Sievers [Wed, 26 Mar 2014 00:26:44 +0000 (01:26 +0100)]
build-sys: add "make check-broken" to find limited-toolchain link errors

7 years agobuild-sys: fix library link order v212
Kay Sievers [Tue, 25 Mar 2014 22:16:31 +0000 (23:16 +0100)]
build-sys: fix library link order

7 years agogitignore update
Kay Sievers [Tue, 25 Mar 2014 22:05:52 +0000 (23:05 +0100)]
gitignore update

7 years agobuild-sys: split-off internal libsystemd-resolve
Kay Sievers [Tue, 25 Mar 2014 22:04:13 +0000 (23:04 +0100)]
build-sys: split-off internal libsystemd-resolve

7 years agocompletions: fix/augment zsh completions for systemd-nspawn, busctl, loginctl, hostna...
Daniel Mack [Tue, 25 Mar 2014 19:28:31 +0000 (20:28 +0100)]
completions: fix/augment zsh completions for systemd-nspawn, busctl, loginctl, hostnamectl, localectl, machinectl

7 years agosrc/systemd: fix grammar and spelling errors in comments
Jason St. John [Tue, 25 Mar 2014 03:14:28 +0000 (23:14 -0400)]
src/systemd: fix grammar and spelling errors in comments

7 years agobuild-sys: prepare 212
Lennart Poettering [Tue, 25 Mar 2014 19:22:41 +0000 (20:22 +0100)]
build-sys: prepare 212

7 years agobuild-sys: prepare NEWS for 212
Lennart Poettering [Tue, 25 Mar 2014 04:02:35 +0000 (05:02 +0100)]
build-sys: prepare NEWS for 212

7 years agosd-rtnl: add support for tunnel attributes
Susant Sahani [Tue, 25 Mar 2014 08:43:30 +0000 (14:13 +0530)]
sd-rtnl: add support for tunnel attributes

Added support for tunneling netlink attrributes (ipip, gre, sit).
These works with kernel module ipip, gre and sit . The test cases are
moved to a separate file and manual test as well because they require
respective kernel modules as well.

7 years agosd-rtnl: message - don't try to enter unsupported containers
Tom Gundersen [Mon, 24 Mar 2014 21:21:08 +0000 (22:21 +0100)]
sd-rtnl: message - don't try to enter unsupported containers

Currently we only support containers in RTM_*LINK messages.

Reported-by: "Thomas H.P. Andersen <>"
7 years agotime: support @ syntax for denoting times since the UNIX epoch 1970-1-1
Lennart Poettering [Tue, 25 Mar 2014 03:08:16 +0000 (04:08 +0100)]
time: support @ syntax for denoting times since the UNIX epoch 1970-1-1

7 years agoupdate TODO
Lennart Poettering [Tue, 25 Mar 2014 01:11:52 +0000 (02:11 +0100)]
update TODO

7 years agoutil: consider both fuse.glusterfs and glusterfs network file systems
Lennart Poettering [Tue, 25 Mar 2014 00:46:24 +0000 (01:46 +0100)]
util: consider both fuse.glusterfs and glusterfs network file systems

Based on a similar patch by Lukáš Nykrýn.

7 years agoask-password: modernizations
Lennart Poettering [Tue, 25 Mar 2014 00:30:19 +0000 (01:30 +0100)]
ask-password: modernizations

7 years agoask-password: when the user types a overly long password, beep and refuse
Lennart Poettering [Tue, 25 Mar 2014 00:27:05 +0000 (01:27 +0100)]
ask-password: when the user types a overly long password, beep and refuse

Based on a similar patch from David Härdeman.

7 years agosystemctl: add more verbose explanation of --kill-who and what control/main processes are
Lennart Poettering [Mon, 24 Mar 2014 23:51:22 +0000 (00:51 +0100)]
systemctl: add more verbose explanation of --kill-who and what control/main processes are

7 years agosystemctl: --kill-mode is long long gone, don't mention it in the man page
Lennart Poettering [Mon, 24 Mar 2014 23:31:48 +0000 (00:31 +0100)]
systemctl: --kill-mode is long long gone, don't mention it in the man page

7 years agoman: be more specific when EnvironmentFile= is read
Lennart Poettering [Mon, 24 Mar 2014 23:26:09 +0000 (00:26 +0100)]
man: be more specific when EnvironmentFile= is read

7 years agoman: explain that the journal field SYSLOG_IDENTIFIER is usually derived from program...
Lennart Poettering [Mon, 24 Mar 2014 23:10:41 +0000 (00:10 +0100)]
man: explain that the journal field SYSLOG_IDENTIFIER is usually derived from program_invocation_short_name

7 years agoupdate TODO
Lennart Poettering [Mon, 24 Mar 2014 23:03:23 +0000 (00:03 +0100)]
update TODO

7 years agosd-event: don't accidentally turn of watchdog timer event if we determine 0
Lennart Poettering [Mon, 24 Mar 2014 23:01:51 +0000 (00:01 +0100)]
sd-event: don't accidentally turn of watchdog timer event if we determine 0

7 years agosd-event: initialization perturbation value right before we use it
Lennart Poettering [Mon, 24 Mar 2014 22:54:21 +0000 (23:54 +0100)]
sd-event: initialization perturbation value right before we use it

That way, we don't forget to initialize it when the watchdog is
initialized before all event sources.

7 years agosd-daemon: fix incorrect variable access
Lennart Poettering [Mon, 24 Mar 2014 22:54:14 +0000 (23:54 +0100)]
sd-daemon: fix incorrect variable access

7 years agocryptsetup: minor typo fix
Lennart Poettering [Mon, 24 Mar 2014 22:45:58 +0000 (23:45 +0100)]
cryptsetup: minor typo fix

7 years agonetworkd: fix a couple of memory leaks
Lennart Poettering [Mon, 24 Mar 2014 22:45:33 +0000 (23:45 +0100)]
networkd: fix a couple of memory leaks

7 years agonetworkd: netdev - fix error handling in set_ifindex()
Tom Gundersen [Mon, 24 Mar 2014 20:50:16 +0000 (21:50 +0100)]
networkd: netdev - fix error handling in set_ifindex()

Firstly, remove stray assert(). Also be a bit stricter when verifying the
received info. If we get an applicable newlink message that we can't make
sense of, we will now enter NETDEV_FAILED, as we cannot reasonably continue
without knowing the ifindex of our device.

7 years agocore: don't try to relabel mounts before we loaded the policy
Lennart Poettering [Mon, 24 Mar 2014 20:04:02 +0000 (21:04 +0100)]
core: don't try to relabel mounts before we loaded the policy

7 years agotimedate: fix numerous grammar errors in comments and output/debug messages
Jason St. John [Tue, 18 Mar 2014 04:27:05 +0000 (00:27 -0400)]
timedate: fix numerous grammar errors in comments and output/debug messages

7 years agosd-rtnl: tests - drop redundant tests
Tom Gundersen [Mon, 24 Mar 2014 19:33:41 +0000 (20:33 +0100)]
sd-rtnl: tests - drop redundant tests

These tests were both broken and redundant, so let's drop them.

7 years agolibsystemd: Don't use "class" in public headers
Marc-Antoine Perennou [Wed, 19 Mar 2014 02:20:41 +0000 (11:20 +0900)]
libsystemd: Don't use "class" in public headers

For compatibility with C++

7 years agocore: remove tcpwrap support
Lennart Poettering [Mon, 24 Mar 2014 19:07:42 +0000 (20:07 +0100)]
core: remove tcpwrap support

tcpwrap is legacy code, that is barely maintained upstream. It's APIs
are awful, and the feature set it exposes (such as DNS and IDENT
access control) questionnable. We should not support this natively in

Hence, let's remove the code. If people want to continue making use of
this, they can do so by plugging in "tcpd" for the processes they start.
With that scheme things are as well or badly supported as they were from
traditional inetd, hence no functionality is really lost.

7 years agobuild-sys: add makefile link
Lennart Poettering [Mon, 24 Mar 2014 18:57:10 +0000 (19:57 +0100)]
build-sys: add makefile link

7 years agoservice: don't take chkconfig priority into account
Lennart Poettering [Mon, 24 Mar 2014 18:55:47 +0000 (19:55 +0100)]
service: don't take chkconfig priority into account

Given that native services do not carry a sysv priority anyway it is
pointless reading them from chkconfig headers, and pretend they'd work.
So let's drop this.

7 years agonetworkd: add CapabilityBoundingSet
Tom Gundersen [Mon, 24 Mar 2014 16:13:24 +0000 (17:13 +0100)]
networkd: add CapabilityBoundingSet

7 years agosd-rtnl: message parsing - log when ignoring message attributes
Tom Gundersen [Mon, 24 Mar 2014 10:58:22 +0000 (11:58 +0100)]
sd-rtnl: message parsing - log when ignoring message attributes

7 years agonetworkd: netdev - verify that newlink messages has the expected kind
Tom Gundersen [Sun, 23 Mar 2014 23:07:46 +0000 (00:07 +0100)]
networkd: netdev - verify that newlink messages has the expected kind

We match 'newlink' messages with expected netdev's based on their names. Now also
make sure that the receieved link has the expected kind.

7 years agosd-rtnl: add sd_rtnl_message_enter_container()
Tom Gundersen [Sun, 23 Mar 2014 20:45:46 +0000 (21:45 +0100)]
sd-rtnl: add sd_rtnl_message_enter_container()

Extend rta_offset_tb into a stack of offset tables, one for each parent of the
current container, and make sd_rtnl_message_{enter,exit}_container() pop/push
to this stack.

Also make sd_rtnl_message_rewind() parse the top-level container, and use this
when reading a message from the socket.

This changes the API by dropping the now redundant sd_rtnl_message_read()

7 years agounits: networkd shouldn't have PrivateTmp= set, since it runs in early-boot
Lennart Poettering [Mon, 24 Mar 2014 15:48:39 +0000 (16:48 +0100)]
units: networkd shouldn't have PrivateTmp= set, since it runs in early-boot

/tmp is only available in later boot, and we shouldn't create private
subdirs in it hence, while we are still in early boot.

7 years agoupdate TODO
Lennart Poettering [Mon, 24 Mar 2014 15:23:56 +0000 (16:23 +0100)]
update TODO

7 years agocore: add a setting to globally control the default for timer unit accuracy
Lennart Poettering [Mon, 24 Mar 2014 15:22:34 +0000 (16:22 +0100)]
core: add a setting to globally control the default for timer unit accuracy

7 years agotimer: support timers that can resume the system from suspend
Lennart Poettering [Mon, 24 Mar 2014 15:09:54 +0000 (16:09 +0100)]
timer: support timers that can resume the system from suspend

7 years agosd-bus: invert bus->is_kernel check in sd_bus_get_peer_creds()
Daniel Mack [Mon, 24 Mar 2014 13:44:58 +0000 (14:44 +0100)]
sd-bus: invert bus->is_kernel check in sd_bus_get_peer_creds()

The bug was introducted in a3d59cd1 ("sd-bus: don't use assert_return()
to check for disconnected bus connections")

7 years agorules: update qemu hid rules
Gerd Hoffmann [Mon, 24 Mar 2014 11:07:41 +0000 (12:07 +0100)]
rules: update qemu hid rules

Update comment to be a bit more specific.

Change match to blacklist the serial number of the broken devices
instead of whitelisting the serial number of the fixed devices.
This allows to do something useful with the serial number in the

7 years agosystemctl: show last trigger time in "systemctl list-timers"
Lennart Poettering [Mon, 24 Mar 2014 02:42:17 +0000 (03:42 +0100)]
systemctl: show last trigger time in "systemctl list-timers"

7 years agoutil: replace close_pipe() with new safe_close_pair()
Lennart Poettering [Mon, 24 Mar 2014 02:22:44 +0000 (03:22 +0100)]
util: replace close_pipe() with new safe_close_pair()

safe_close_pair() is more like safe_close(), except that it handles
pairs of fds, and doesn't make and misleading allusion, as it works
similarly well for socketpairs() as for pipe()s...

7 years agosd-event: rework API to support CLOCK_REALTIME_ALARM and CLOCK_BOOTTIME_ALARM, too
Lennart Poettering [Mon, 24 Mar 2014 01:49:09 +0000 (02:49 +0100)]
sd-event: rework API to support CLOCK_REALTIME_ALARM and CLOCK_BOOTTIME_ALARM, too

7 years agosd-rtnl: message - protect against SEGFAULT when reading messages
Tom Gundersen [Sun, 23 Mar 2014 20:44:47 +0000 (21:44 +0100)]
sd-rtnl: message - protect against SEGFAULT when reading messages

Make sure the returned data fits the datatype we requested. Otherwise return -EIO.

Also fix a broken test that this exposed.

7 years agosd-rtnl: message - don't skip parts of message when parsing
Tom Gundersen [Sun, 23 Mar 2014 16:51:20 +0000 (17:51 +0100)]
sd-rtnl: message - don't skip parts of message when parsing

If a message type occurs repeatedly let the last one win.

Also, don't skip type == MAX.

Based on patch from: Susant Sahani <>

7 years agosd-bus: mark sd_bus_unref() as broken regarding self-refs
David Herrmann [Sat, 22 Mar 2014 18:31:31 +0000 (19:31 +0100)]
sd-bus: mark sd_bus_unref() as broken regarding self-refs

If you allocate a message with bus==NULL and then unref the main bus,
it will free your message underneath and your program will go boom!

To fix that, we really need to figure out what the semantics for
self-references (m->bus) should be and when/where/what accesses are
actually allowed.

Same is true for the pseudo-thread-safety we employ..

7 years agoREADME: update
Kay Sievers [Sat, 22 Mar 2014 17:27:35 +0000 (18:27 +0100)]
README: update

7 years agoREADME: Correct EFI requirements
Thomas Bächler [Sat, 22 Mar 2014 00:41:12 +0000 (01:41 +0100)]
README: Correct EFI requirements

systemd does not need or use CONFIG_EFI_VARS anywhere, this should
be CONFIG_EFIVAR_FS instead.

7 years agosd-bus: add note about sd_bus_unref() recursion
David Herrmann [Sat, 22 Mar 2014 17:06:38 +0000 (18:06 +0100)]
sd-bus: add note about sd_bus_unref() recursion

In sd_bus_unref() we check for self-reference loops and destruct our
queues in case we're the only reference holders. However, we do _not_
modify our own ref-count, thus effectively causing the
message-destructions to enter with the same reference count as we did.

The only reason this doesn't cause an endless recursion (or trigger
assert(m->n_ref > 0) in sd_bus_message_unref()) is the fact that we
decrease queue-counters _before_ calling _unref(). That's not obvious at
all, so add a big fat note in bus_reset_queues() to everyone touching that

7 years agosd-rtnl: fix self-reference leaks
David Herrmann [Sat, 22 Mar 2014 16:43:30 +0000 (17:43 +0100)]
sd-rtnl: fix self-reference leaks

Like sd-bus, sd-rtnl can have self-references through queued messages. In
particular, each queued message has the following self-ref loop:
  rtnl->wqueue[i]->rtnl == rtnl
Same is true for "rqueue".

When sd_rtnl_unref() gets called, we must therefore make sure we correctly
consider each self-reference when deciding to destroy the object. For each
queued message, there _might_ be one ref. However, rtnl-messages can be
created _without_ a bus-reference, therefore we need to verify the
actually required ref-count.

Once we know exactly how many self-refs exist, and we verified none of the
queued messages has external references, we can destruct the object.
We must immediately drop our own reference, then flush all queues and
destroy the bus object. Otherwise, each sd_rtnl_message_unref() call would
recurse into the same destruction logic as they enter with the same

Note: We really should verify _all_ queued messages have m->rtnl set to
      the bus they're queued on. If that's given, we can change:
        if (REFCNT_GET(rtnl->n_ref) <= refs)
        if (REFCNT_GET(rtnl->n_ref) == refs)
      and thus avoid recalculating the required refs for each message we
      remove from the queue during destruction.

7 years agosd-dhcp-client: test - don't close socket twice
Tom Gundersen [Sat, 22 Mar 2014 09:52:49 +0000 (10:52 +0100)]
sd-dhcp-client: test - don't close socket twice

One end of the socketpair is closed by the library, so only close our end. Also switch to
the safe_close() so we get notified about problems with closing.

7 years agolibsystemd-network: move network-utils from src/shared
Tom Gundersen [Fri, 21 Mar 2014 20:38:14 +0000 (21:38 +0100)]
libsystemd-network: move network-utils from src/shared

This does not belong in shared as it is mostly a detail of our networking subsystem.

Moreover, now we can use libudev here, which will simplify things.

7 years agosd-ipv4ll/networkd: generate predictable addresses
Umut Tezduyar Lindskog [Fri, 21 Mar 2014 18:23:35 +0000 (19:23 +0100)]
sd-ipv4ll/networkd: generate predictable addresses

Increase the chance of using the same link local address between reboots. The
pseudo random sequence of addresses we attempt is now seeded with data that is
very likely to stay the same between reboots, but at the same time be unique
to the specific machine/nic.

First we try to use the ID_NET_NAME_* data from the udev db combined with the
machin-id, which is guaranteed to be unique and persistent, if available. If
that is not possible (e.g., in containers where we don't have access to the
udev db) we fallback to using the MAC address of the interface, which is
guaranteed to be unique, and likely to be persistent.

[tomegun: three minor changes:

 - don't expose HASH_KEY in the siphash24 header
 - get rid of some compile-warnings (and some casts at the same time),
   by using uint8_t[8] rather than uint64_t in the api
 - added commit message]

7 years agotimedated: do not reset poll interval with a spike
Kay Sievers [Fri, 21 Mar 2014 16:49:50 +0000 (17:49 +0100)]
timedated: do not reset poll interval with a spike