chiark / gitweb /
7 years agobuild-sys: replace nm with $(NM)
Kay Sievers [Sat, 21 Jun 2014 14:50:11 +0000 (16:50 +0200)]
build-sys: replace nm with $(NM)

7 years agogudev: replace regex with sym file
Kay Sievers [Sat, 21 Jun 2014 13:53:58 +0000 (15:53 +0200)]
gudev: replace regex with sym file

7 years agopam_systemd: replace regex with sym file
Kay Sievers [Sat, 21 Jun 2014 13:45:49 +0000 (15:45 +0200)]
pam_systemd: replace regex with sym file

7 years agopam_systemd: rename source file to match the module
Kay Sievers [Sat, 21 Jun 2014 13:44:14 +0000 (15:44 +0200)]
pam_systemd: rename source file to match the module

7 years agosd-dhcp-server: change default lease time form 1m to 1h
Tom Gundersen [Sat, 21 Jun 2014 13:26:41 +0000 (15:26 +0200)]
sd-dhcp-server: change default lease time form 1m to 1h

The short lease was useful for testing, but in real-world usage it is pointless to keep leases
this short. That said, the cost of lease renewal is really low, so we keep the lease still
relatively short at one hour to not get into hard-to-hit problems with lease exhaustion etc.

7 years agosd-dhcp-server: fix broadcast of DHCP packets
Tom Gundersen [Sat, 21 Jun 2014 12:39:36 +0000 (14:39 +0200)]
sd-dhcp-server: fix broadcast of DHCP packets

The destination IP address should be INADDR_BROADCAST, but was
accidentally left as INADDR_ANY.

7 years agoutil: treat fuse.sshfs as a network filesystem
Zbigniew Jędrzejewski-Szmek [Sat, 21 Jun 2014 02:43:49 +0000 (22:43 -0400)]
util: treat fuse.sshfs as a network filesystem

7 years agomissing.h: add various network enums
Zbigniew Jędrzejewski-Szmek [Fri, 20 Jun 2014 23:45:45 +0000 (19:45 -0400)]
missing.h: add various network enums

We used to check if e.g. IFLA_BOND_MAX is defined and provide fallback
values in missing.h is it wasn't. But over time, various kernel
versions added IFLA_* defines, so checking for IFLA_BOND_MAX is not
enough if the kernel is new enough to have some of them but too old to
have all. In case we detect that the latest known enum value is
missing, #define most of them.

7 years agobuild-sys: fail if python support requested but not found
Zbigniew Jędrzejewski-Szmek [Fri, 20 Jun 2014 22:14:22 +0000 (18:14 -0400)]
build-sys: fail if python support requested but not found

7 years agobuild-sys: check that compat-libs are enabled for "make dist"
Filipe Brandenburger [Tue, 17 Jun 2014 03:54:54 +0000 (20:54 -0700)]
build-sys: check that compat-libs are enabled for "make dist"

Running "make dist" requires --enable-compat-libs since DIST_SOURCES will list
generated files such as libsystemd-daemon.c.

  $ ./configure && make && make dist
  *** compat-libs must be enabled in order to make dist
  make: *** [dist-check-compat-libs] Error 1

7 years agobuild-sys: check that python is enabled for "make dist"
Filipe Brandenburger [Tue, 17 Jun 2014 03:54:53 +0000 (20:54 -0700)]
build-sys: check that python is enabled for "make dist"

Running "make dist" requires Python support since some of the man page sources
(such as man/systemd.index.xml and man/systemd.directives.xml) are generated by
Python scripts, so break "make dist" and give an useful error message when
Python or the Python lxml module is not available.

  $ ./configure --without-python && make && make dist
  *** python and python-lxml module must be installed and enabled in order to make dist
  make: *** [dist-check-python] Error 1

7 years agobuild-sys: configure --with-python when running distcheck
Filipe Brandenburger [Tue, 17 Jun 2014 03:54:52 +0000 (20:54 -0700)]
build-sys: configure --with-python when running distcheck

Python support is pretty much essential to create man pages, so we should make
sure that distcheck will request it during configure.

Tested: Successfully ran "make distcheck" and confirmed --with-python was
present in the ./configure run inside the unpacked distribution directory.

7 years agobuild-sys: add verbosity to python-lxml detection in ./configure
Filipe Brandenburger [Tue, 17 Jun 2014 03:54:50 +0000 (20:54 -0700)]
build-sys: add verbosity to python-lxml detection in ./configure

Be verbose when checking if Python module lxml is available.  Also warn that
Python support will be disabled when the lxml module is not present.


- Without python-lxml package installed:
  $ ./configure
  checking for python extension module directory... ${exec_prefix}/lib64/python2.7/site-packages
  checking for python lxml module... no
  configure: WARNING: *** python support requires python-xml module installed

- With python-lxml package installed:
  $ ./configure
  checking for python extension module directory... ${exec_prefix}/lib64/python2.7/site-packages
  checking for python lxml module... yes
  checking for PYTHON_DEVEL... yes
          Python:                  yes
          Python Headers:          yes

7 years agobuild-sys: do not include id128-constants.h in the dist archive
Filipe Brandenburger [Tue, 17 Jun 2014 03:54:47 +0000 (20:54 -0700)]
build-sys: do not include id128-constants.h in the dist archive

File src/python-systemd/id128-constants.h is auto generated and its generation
does not require special tools, only sed.  There is no point in bundling it in
the distribution archive, so let's mark it as nodist_ to have it excluded.


Tested: Successfully ran "make dist" after ./configure --without-python.

7 years agoutil: do not strip /dev prefix twice
Zbigniew Jędrzejewski-Szmek [Fri, 20 Jun 2014 22:44:39 +0000 (18:44 -0400)]
util: do not strip /dev prefix twice

7 years agoRemove libattr mentions from README
Cristian Rodríguez [Thu, 12 Jun 2014 19:40:30 +0000 (15:40 -0400)]
Remove libattr mentions from README

It is no longer required.

7 years agosd-dhcp-server: remove unused cleanup function
Thomas Hindoe Paaboel Andersen [Fri, 20 Jun 2014 17:32:51 +0000 (19:32 +0200)]
sd-dhcp-server: remove unused cleanup function

Removes _cleanup_dhcp_lease_free_. While the automatic cleanup
functions are great to have this one is never used and causes
a warning in clang.

7 years agocore: clean-up signal reset logic when reexec
Lennart Poettering [Fri, 20 Jun 2014 14:58:21 +0000 (16:58 +0200)]
core: clean-up signal reset logic when reexec

There's no need to save the old sigmask, if we are going to die. Let's
simplify this. Also, reset all the signal handlers, so that we don't
leave SIG_IGN set for some of them across reexec.

7 years agotmpfiles: copy/link /usr/share/factory/ files when the source argument is omitted
Kay Sievers [Fri, 20 Jun 2014 13:57:43 +0000 (15:57 +0200)]
tmpfiles: copy/link /usr/share/factory/ files when the source argument is omitted

7 years agopo: add German translation
Benjamin Steinwender [Sun, 8 Jun 2014 16:39:50 +0000 (18:39 +0200)]
po: add German translation

7 years agobuild-sys: fix indentation in make-man-rules generated output
Filipe Brandenburger [Tue, 17 Jun 2014 03:54:48 +0000 (20:54 -0700)]
build-sys: fix indentation in make-man-rules generated output

This fixes the footer where 7 spaces were used on the first line of EXTRA_DIST,
but a Tab was clearly intended.

7 years agobuild-sys: add sysusers.d/systemd.conf to CLEANFILES
Filipe Brandenburger [Tue, 17 Jun 2014 03:54:46 +0000 (20:54 -0700)]
build-sys: add sysusers.d/systemd.conf to CLEANFILES

The sysusers.d/systemd.conf configuration file was originally introduced in
commit 1b99214789101, but it was not marked for cleanup.  This caused distcheck
to complain about the file not being removed by distcleam.

Tested: Successfully ran "make distcheck" with this patchset.

7 years agosysusers.d - fix typo in user definition file
Jonathan Boulle [Tue, 17 Jun 2014 00:57:05 +0000 (17:57 -0700)]
sysusers.d - fix typo in user definition file

7 years agodebug-generator: add new kernel cmdline option systemd.wants= to add units to the...
Lennart Poettering [Fri, 20 Jun 2014 11:30:52 +0000 (13:30 +0200)]
debug-generator: add new kernel cmdline option systemd.wants= to add units to the initial transaction

7 years agonetworkd: link - fix memleak of icmp6 struct
Tom Gundersen [Fri, 20 Jun 2014 11:04:02 +0000 (13:04 +0200)]
networkd: link - fix memleak of icmp6 struct

7 years agonetworkd: veth - fix creation of veth netdev
Tom Gundersen [Fri, 20 Jun 2014 10:59:22 +0000 (12:59 +0200)]
networkd: veth - fix creation of veth netdev

Avoid freeing the netdev structure in the cleanup macro.

7 years agoshared: fix search_and_fopen with alternate roots
Michael Marineau [Fri, 20 Jun 2014 02:07:06 +0000 (19:07 -0700)]
shared: fix search_and_fopen with alternate roots

Update for the current behavior of path_strv_resolve which now returns
paths relative to the given root, not the full absolute paths.

7 years agotest: ensure conf_files_list returns absolute paths
Michael Marineau [Fri, 20 Jun 2014 02:07:05 +0000 (19:07 -0700)]
test: ensure conf_files_list returns absolute paths

7 years agoconf-files: include root in returned file paths
Michael Marineau [Fri, 20 Jun 2014 02:07:04 +0000 (19:07 -0700)]
conf-files: include root in returned file paths

This restores the original root handling logic that was present prior to
112cfb18 when path expansion moved to path_strv_canonicalize_absolute.
That behavior partially went away in 12ed81d9.

Alternatively all users of conf_files_list* could be updated to
concatenate the paths themselves as unit_file_query_preset did but since
no user needs the un-concatenated form that is pointless duplication.

7 years agotest: unit test for using alternate roots with path_strv_resolve
Michael Marineau [Fri, 20 Jun 2014 02:07:03 +0000 (19:07 -0700)]
test: unit test for using alternate roots with path_strv_resolve

7 years agoshared: rename path_strv_canonicalize_absolute functions
Michael Marineau [Fri, 20 Jun 2014 02:07:02 +0000 (19:07 -0700)]
shared: rename path_strv_canonicalize_absolute functions

Since 12ed81d9 path_strv_canonicalize_absolute leaves the search list
relative to the given root directory instead of resolving paths to their
true location as the name implies. To better reflect this behavior
rename to the less strongly worded path_strv_resolve.

7 years agogetty-generator: properly escape instance names
Zbigniew Jędrzejewski-Szmek [Fri, 20 Jun 2014 02:02:55 +0000 (22:02 -0400)]
getty-generator: properly escape instance names

Otherwise the add_symlink() function tries to make directories for
each slash even for the slash after the @ symbol in the final link
name, failing for /dev/3270/tty1.

Based on a patch by Werner Fink <>.

7 years agogetty-generator: use strappenda
Zbigniew Jędrzejewski-Szmek [Fri, 20 Jun 2014 01:48:32 +0000 (21:48 -0400)]
getty-generator: use strappenda

Allocating on the stack should be fine for the fixed number
of items.

7 years agoman: also describe an udev rule for bridge sysctl
Zbigniew Jędrzejewski-Szmek [Fri, 20 Jun 2014 01:13:56 +0000 (21:13 -0400)]
man: also describe an udev rule for bridge sysctl

7 years agoman: document statically loading modules for sysctl settings
Zbigniew Jędrzejewski-Szmek [Fri, 20 Jun 2014 00:43:56 +0000 (20:43 -0400)]
man: document statically loading modules for sysctl settings

7 years agounits/ run after load-modules
Cristian Rodríguez [Sat, 23 Mar 2013 02:54:16 +0000 (03:54 +0100)]
units/ run after load-modules

Modules might or will register new sysctl options.

[zj: This mechanism of adding modules just to reliably set sysctl
attributes is not ideal. Nevertheless, sysctl for dynamically created
attributes is simply broken, and this is the easiest workaround.]

7 years agoutil.c: simplify rm_rf_children_dangerous
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2014 16:43:02 +0000 (12:43 -0400)]
util.c: simplify rm_rf_children_dangerous

7 years agotests: add tests for strv_extendf
Ronny Chevalier [Thu, 19 Jun 2014 22:25:58 +0000 (00:25 +0200)]
tests: add tests for strv_extendf

7 years agotests: add tests to test-util
Ronny Chevalier [Thu, 19 Jun 2014 22:25:34 +0000 (00:25 +0200)]
tests: add tests to test-util

add tests for:
  - filename_is_safe
  - ascii_strlower
  - files_same
  - is_valid_documentation_url
  - file_in_same_dir
  - endswith
  - close_nointr
  - unlink_noerrno
  - readlink_and_make_absolute
  - read_one_char
  - ignore_signals
  - strshorten

7 years agotests: add missing return
Ronny Chevalier [Thu, 19 Jun 2014 22:26:12 +0000 (00:26 +0200)]
tests: add missing return

7 years agotests: fix test-icmp6-rs
Ronny Chevalier [Thu, 19 Jun 2014 17:32:05 +0000 (19:32 +0200)]
tests: fix test-icmp6-rs

Don't close the fd given to sd-icmp6-nd, since it will be aynschonously closed
by sd_icmp6_nd_unref

7 years agosd-icmp6-nd: fix uninitialized fd
Ronny Chevalier [Thu, 19 Jun 2014 17:32:29 +0000 (19:32 +0200)]
sd-icmp6-nd: fix uninitialized fd

7 years agosd-dhcp6-client: fix uninitialized variables
Ronny Chevalier [Thu, 19 Jun 2014 17:44:03 +0000 (19:44 +0200)]
sd-dhcp6-client: fix uninitialized variables

7 years agocoredump: fix include of xattr.h
Filipe Brandenburger [Thu, 19 Jun 2014 18:18:36 +0000 (11:18 -0700)]
coredump: fix include of xattr.h

The correct path is now <sys/xattr.h> (from glibc-headers) and no longer
<attr/xattr.h> (from libattr-devel.)

Fixes: 34c10968cbe3b5591b3c0ce225b8694edd9709d0

7 years agosd-dhcp6-client: include dhcp6-protocol.h in the list of sources
Filipe Brandenburger [Thu, 19 Jun 2014 18:59:36 +0000 (11:59 -0700)]
sd-dhcp6-client: include dhcp6-protocol.h in the list of sources

If the file is not listed, then "make dist" will not include it.

Tested: "make distcheck" works after this fix is applied.

Fixes: 139b011ab81ccea1d51f09e0261a1c390115c6ff

7 years agosd-dhcp6-client: fix path of sd-icmp6-nd.h in
Filipe Brandenburger [Thu, 19 Jun 2014 18:59:35 +0000 (11:59 -0700)]
sd-dhcp6-client: fix path of sd-icmp6-nd.h in

It was incorrectly looking for a file in src/libsystemd-network/ when the file was actually deployed to src/systemd/ instead.  This broke "make dist".

Tested: "make dist" works again after this patchset is applied.

Fixes: f20a35cc0d537dd4cfc1054cf7936b04a1700f3a

7 years agosd-dhcp6-client: remove bogus dependency on dhcp6-icmp6.h
Filipe Brandenburger [Thu, 19 Jun 2014 18:59:34 +0000 (11:59 -0700)]
sd-dhcp6-client: remove bogus dependency on dhcp6-icmp6.h had a reference to it but it none of the sources included it.

Tested: "make dist" works again after this patchset is applied.

Fixes: 2ea8857effb833615b16d10fc7a19a7104c19e13

7 years agocopy: don't eat up error from chown()/chmod()
Lennart Poettering [Thu, 19 Jun 2014 22:20:35 +0000 (00:20 +0200)]
copy: don't eat up error from chown()/chmod()

The idea was to not fail on, nor to ignore errors from chown()/chmod(),
but to proceed and simply return the most recent error...

7 years agounits: order systemd-tmpfiles-clean.service after
Lennart Poettering [Thu, 19 Jun 2014 22:15:39 +0000 (00:15 +0200)]
units: order systemd-tmpfiles-clean.service after

That way, on systems lacking an RTC we don't false start removing aged
files too early.

7 years agonetworkd: fix refcounting with UseMTU=yes
Steven Noonan [Thu, 19 Jun 2014 17:41:57 +0000 (10:41 -0700)]
networkd: fix refcounting with UseMTU=yes

The link was unintentionally being unreferenced instead of referenced for the
MTU setup.

7 years agounits: add missing caps so that GetAddresses() can work
Lennart Poettering [Thu, 19 Jun 2014 17:53:16 +0000 (19:53 +0200)]
units: add missing caps so that GetAddresses() can work

7 years agotmpfiles: make sure "C" doesn't copy anything if the destination already exists
Lennart Poettering [Thu, 19 Jun 2014 17:36:08 +0000 (19:36 +0200)]
tmpfiles: make sure "C" doesn't copy anything if the destination already exists

Previously it would recursively copy the entire tree in, and descend
into subdirectories even if the destination already exists. Let's do
what the documentation says and not do that.

If files down the tree shall be copied too, they should get their own
"C" lines.

7 years agotmpfiles: do not fail when copying an empty directory
Kay Sievers [Thu, 19 Jun 2014 16:57:16 +0000 (18:57 +0200)]
tmpfiles: do not fail when copying an empty directory

7 years agoman: document new coredumpctl commands
Lennart Poettering [Thu, 19 Jun 2014 15:36:39 +0000 (17:36 +0200)]
man: document new coredumpctl commands

7 years agocoredumpctl: add missing entries to --help
Lennart Poettering [Thu, 19 Jun 2014 15:36:22 +0000 (17:36 +0200)]
coredumpctl: add missing entries to --help

7 years agocoredumpctl: fix columns sizing for timestamp
Lennart Poettering [Thu, 19 Jun 2014 15:29:39 +0000 (17:29 +0200)]
coredumpctl: fix columns sizing for timestamp

7 years agobuild-sys: add missing Makefile symlink
Lennart Poettering [Thu, 19 Jun 2014 15:13:44 +0000 (17:13 +0200)]
build-sys: add missing Makefile symlink

7 years agonet: enable dhcp6 for containers
Lennart Poettering [Thu, 19 Jun 2014 15:09:05 +0000 (17:09 +0200)]
net: enable dhcp6 for containers

7 years agoman: add documentation for systemd-debug-generator
Lennart Poettering [Thu, 19 Jun 2014 15:06:35 +0000 (17:06 +0200)]
man: add documentation for systemd-debug-generator

7 years agogitignore: hide dhcp6/icmp6-rs tests
Lennart Poettering [Thu, 19 Jun 2014 14:57:10 +0000 (16:57 +0200)]
gitignore: hide dhcp6/icmp6-rs tests

7 years agostop complaining about unknown kernel cmdline options
Lennart Poettering [Thu, 19 Jun 2014 14:55:20 +0000 (16:55 +0200)]
stop complaining about unknown kernel cmdline options

Also stop warning about unknown kernel cmdline options in the various
tools, not just in PID 1

7 years agoman: add new kernel command line switches to kernel-command-line(7)
Lennart Poettering [Thu, 19 Jun 2014 14:54:40 +0000 (16:54 +0200)]
man: add new kernel command line switches to kernel-command-line(7)

7 years agoupdate TODO
Lennart Poettering [Thu, 19 Jun 2014 14:30:07 +0000 (16:30 +0200)]
update TODO

7 years agomain: don't show help text anymore when we detect an unknown kernel cmdline value...
Lennart Poettering [Thu, 19 Jun 2014 14:15:01 +0000 (16:15 +0200)]
main: don't show help text anymore when we detect an unknown kernel cmdline value starting with "systemd."

As generators and other components started to maintain their own kernel
command line options this help text needed more and more exceptions and
wasn't complete anyway. Fixing that would leak more information about
specific generators into PID 1, which we should avoid.

Given that kernel cmdline handling traditionally doesn't generate errors
or show help texts, let's just remove the logic for it for systemd too.

7 years agomain: honour rd.systemd.unit= only in the initrd, not the host
Lennart Poettering [Thu, 19 Jun 2014 14:14:56 +0000 (16:14 +0200)]
main: honour rd.systemd.unit= only in the initrd, not the host

7 years agogitignore: sort properly
Lennart Poettering [Thu, 19 Jun 2014 14:13:36 +0000 (16:13 +0200)]
gitignore: sort properly

7 years agodebug-generator: add new generator
Lennart Poettering [Thu, 19 Jun 2014 14:10:55 +0000 (16:10 +0200)]
debug-generator: add new generator

debug-generator can mask specific units if they are specified on the
kernel command line with systemd.mask=.

debug-generator can pull in debug-shell.service is systemd.debug-shell
is passed on the kernel command line.

7 years agosd-dhcp6-client: Initialize fd to -1 and rename function
Zbigniew Jędrzejewski-Szmek [Thu, 19 Jun 2014 13:08:37 +0000 (09:08 -0400)]
sd-dhcp6-client: Initialize fd to -1 and rename function

client_initialize name is misleading, since the function is actually
useful at the *end*, to reinitialize the object. But reset is shorter,
so rename it to client_reset.

7 years agoman: fix typo
Ronny Chevalier [Thu, 19 Jun 2014 08:43:03 +0000 (10:43 +0200)]
man: fix typo

7 years agojournal-send.c: use automatic cleanup
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2014 21:56:03 +0000 (17:56 -0400)]
journal-send.c: use automatic cleanup

7 years agonetworkd: Add initial DHCPv6 support
Patrik Flykt [Thu, 19 Jun 2014 12:40:01 +0000 (15:40 +0300)]
networkd: Add initial DHCPv6 support

Enable DHCPv6 support by creating a DHCPv6 boolean in the Network
section. Add necessary DHCPv6 structures and initial function calls.

7 years agosd-dhcp6-client: Add reply sending for test
Patrik Flykt [Thu, 19 Jun 2014 12:39:58 +0000 (15:39 +0300)]
sd-dhcp6-client: Add reply sending for test

Enhance the test case by generating a Reply. With a properly formed
Reply the callback function will be called and the additional
earlier event loop exit can now be removed.

7 years agosd-dhcp6-client: Receive and parse a reply and set T1 and T2 timers
Patrik Flykt [Thu, 19 Jun 2014 12:39:57 +0000 (15:39 +0300)]
sd-dhcp6-client: Receive and parse a reply and set T1 and T2 timers

Receive and parse a Reply from the server. Set up T1 and T2 timers and
notify the library user of an acquired DHCPv6 lease.

7 years agosd-dhcp6-client: Add Advertise sending for test case
Patrik Flykt [Thu, 19 Jun 2014 12:39:54 +0000 (15:39 +0300)]
sd-dhcp6-client: Add Advertise sending for test case

Enhance the test case by replying with an Advertise message to the
client. Copy the transaction id, IAID and DUID from the Solicit
message. Verify the Request message created by the DHCPv6 client
implementation and move the main loop exit to the end of the Request
message verification.

7 years agosd-dhcp6-client: Add Request message sending
Patrik Flykt [Thu, 19 Jun 2014 12:39:53 +0000 (15:39 +0300)]
sd-dhcp6-client: Add Request message sending

As described in RFC 3315, Section 17.1.2, a client has to wait until the
first timeout has elapsed before it is allowed to request IPv6 addresses
from the DHCPv6 server. This is indicated by a non-NULL lease and a
non-zero resend count. Should the Advertisement contain a preference
value of 255 or be received after the first timeout, IPv6 address
requesting is started immediately.

In response to these events, create a Request message and set up proper
resend timers to send the message to the server.

7 years agosd-dhcp6-client: Update start function to take a state
Patrik Flykt [Thu, 19 Jun 2014 12:39:49 +0000 (15:39 +0300)]
sd-dhcp6-client: Update start function to take a state

Update the start function so that the client state can be conveniently
changed with the previous message resend timers cleared. On initial
startup also create and bind to the UDP socket.

7 years agosd-dhcp6-client: Add test case for Advertise message parsing
Patrik Flykt [Thu, 19 Jun 2014 12:39:46 +0000 (15:39 +0300)]
sd-dhcp6-client: Add test case for Advertise message parsing

Add a basic test case excersising once more option parsing function
in addition to lease handling. Check that the address iteration
functions return the correct IPv6 address and lifetimes and that
only one address is returned. Also verify that the server ID and
preference values are read correctly.

7 years agosd-dhcp6-lease: Add functions for accessing lease and addresses
Patrik Flykt [Thu, 19 Jun 2014 12:39:45 +0000 (15:39 +0300)]
sd-dhcp6-lease: Add functions for accessing lease and addresses

Add support functions for accessing the current client lease as well
as iterating over the addresses and get their preferred and valid

7 years agosd-dhcp6-client: Receive and parse Advertise messages
Patrik Flykt [Thu, 19 Jun 2014 12:39:42 +0000 (15:39 +0300)]
sd-dhcp6-client: Receive and parse Advertise messages

When receiving DHCPv6 messages, discard the ones that are not meant
for DHCPv6 clients and verify the transaction id. Once that is done,
process the Advertise message and select the Advertise with the
highest preference.

Create a separate function for lease information parsing so that it
can be reused in other parts of the protocol. Verify both DUID and
IAID in the received message and store other necessary information
with the lease structure.

7 years agosd-dhcp6-client: Add IA Address option parsing
Patrik Flykt [Thu, 19 Jun 2014 12:39:39 +0000 (15:39 +0300)]
sd-dhcp6-client: Add IA Address option parsing

Add functionality to parse DHCPv6 Identity Association for
Non-temporary (IA_NA) and Temporary Addresses (IA_TA) options.
Both of them contain one or more IA Address (IAADDR) options
and optinally a status code option. Only the IA_NA option
contains lease lifetimes. See RFC 3315, sections 22.4., 22.5.,
22.6., 22.13. and appendix B. for details. If the lease
timeouts are not set, use the ones recommended for servers in
section 22.4.

Factor out common code in the form of an option header parsing
helper function.

7 years agosd-dhcp6-lease: Add DHCPv6 lease handling
Patrik Flykt [Thu, 19 Jun 2014 12:39:35 +0000 (15:39 +0300)]
sd-dhcp6-lease: Add DHCPv6 lease handling

Create a structure describing a DHCPv6 lease. Add internal functions
for creating a new lease and accessing the server ID, preference and
IAID. Provide functions for clearing addresses and associated timers.

External users are initially given only the capabilities of
referencing and unreferencing the lease structure.

7 years agosd-dhcp6-client: Add DHCPv6 Solicit test case
Patrik Flykt [Thu, 19 Jun 2014 12:39:30 +0000 (15:39 +0300)]
sd-dhcp6-client: Add DHCPv6 Solicit test case

Verify the Solicit message created by the DHCPv6 client code.

Provide local variants for detect_vm(), detect_container() and
detect_virtualization() defined in virt.h. This makes the DHCPv6
library believe it is run in a container and does not try to request
interface information from udev for the non-existing interface index
used by the test case code.

7 years agosd-dhcp6-client: Add DHCPv6 Solicit message creation and sending
Patrik Flykt [Thu, 19 Jun 2014 12:39:27 +0000 (15:39 +0300)]
sd-dhcp6-client: Add DHCPv6 Solicit message creation and sending

Implement the initial functionality used for creating a DHCPv6 Solicit
message containing the needed options and send it to the DHCPv6
broadcast address. Increase the sent message count and ensure that
the Solicit Initial Retransmission Time is strictly greater than
the Solicitation IRT as described in RFC 3315, section 17.1.2.

7 years agosd-dhcp6-client: Add functions to bind to DHCPv6 UDP socket
Patrik Flykt [Thu, 19 Jun 2014 12:39:23 +0000 (15:39 +0300)]
sd-dhcp6-client: Add functions to bind to DHCPv6 UDP socket

Add a function that creates a UDP socket bound to the given interface
and optionally to an IPv6 address. Add another function that will
send the DHCPv6 UDP packet to its destination.

Using IPV6_PKTINFO in setsockopt to bind the IPv6 socket to an
interface is documented in section 4. of RFC 3542, "Advanced Sockets
Application Program Interface (API) for IPv6"

Add a define for DHCPv6 Relay Agents and Servers multicast address as
its not available elsewhere.

7 years agosd-dhcp6-client: Add basic DHCPv6 option handling
Patrik Flykt [Thu, 19 Jun 2014 12:39:20 +0000 (15:39 +0300)]
sd-dhcp6-client: Add basic DHCPv6 option handling

Add option appending and parsing. DHCPv6 options are not aligned, thus
the option handling code must be able to handle options starting at
any byte boundary.

Add a test case for the basic option handling.

7 years agosd-dhcp6-client: Add DHCPv6 client Solicitation timeout handling
Patrik Flykt [Thu, 19 Jun 2014 12:39:15 +0000 (15:39 +0300)]
sd-dhcp6-client: Add DHCPv6 client Solicitation timeout handling

Add the core of DHCPv6 client message retransmission and upper bound
timer and message count handling according to RFC 3315 Secions 7.1.2
and 14. Omit the DHCPv6 initial delay; for now it is assumed that
systemd-networkd will provide decent startup randomization that will
desynchronize the clients.

When reinitializing the client, clear all timers.

7 years agosd-dhcp6-client: Add basic DHCPv6 test cases
Patrik Flykt [Thu, 19 Jun 2014 12:39:12 +0000 (15:39 +0300)]
sd-dhcp6-client: Add basic DHCPv6 test cases

Add test cases for basic DHCPv6 client handling, e.g. setting
interface index, mac address and attaching event loop.

7 years agosd-dhcp6-client: Add DHCPv6 IAID functionality
Patrik Flykt [Thu, 19 Jun 2014 12:39:08 +0000 (15:39 +0300)]
sd-dhcp6-client: Add DHCPv6 IAID functionality

Create structures describing Identity Association IDentifiers and
IPv6 lease addresses.

[tomegun: initialize the IAID when client is started. Base this off of the
predictable udev names, if available, as these satisfy the requirement of
the IAID, and base it off the mac addres otherwise, as that is the best we

7 years agonetwork-internal: split out net_get_name()
Tom Gundersen [Thu, 19 Jun 2014 12:39:05 +0000 (15:39 +0300)]
network-internal: split out net_get_name()

7 years agosd-dhcp6-client: Initialize DUID
Tom Gundersen [Thu, 19 Jun 2014 12:39:01 +0000 (15:39 +0300)]
sd-dhcp6-client: Initialize DUID

Initialize DHCP Unique Identifier when creating the client. The
DUID is generated based on the machine-id, which satisfies all the
requirements of what an DUID should be. The DUID type is DUID-EN.

Based on patch by Patrik Flykt.

7 years agosd-icmp6-nd: Add initial Router Advertisement test case
Patrik Flykt [Thu, 19 Jun 2014 12:38:59 +0000 (15:38 +0300)]
sd-icmp6-nd: Add initial Router Advertisement test case

Feed a Router Advertisement to the code and expect proper events
each time. The sending part is ignored, as all of it is static code
in the real dhcp_network_icmp6_send_rs() function.

7 years agosd-icmp6-nd: Add Router Solicitation and Advertisement support
Patrik Flykt [Thu, 19 Jun 2014 12:38:55 +0000 (15:38 +0300)]
sd-icmp6-nd: Add Router Solicitation and Advertisement support

Provide functions to bind the ICMPv6 socket to the approriate interface
and set multicast sending and receiving according to RFC 3493, section
5.2. and RFC 3542, sections 3. and 3.3. Filter out all ICMPv6 messages
except Router Advertisements for the socket in question according to
RFC 3542, section 3.2.

Send Router Solicitations to the all routers multicast group as
described in RFC 4861, section 6. and act on the received Router
Advertisments according to section 6.3.7.

Implement a similar API for ICMPv6 handling as is done for DHCPv4 and

7 years agosd-dhcp6-client: Add initial DHCPv6 client files
Patrik Flykt [Thu, 19 Jun 2014 12:38:50 +0000 (15:38 +0300)]
sd-dhcp6-client: Add initial DHCPv6 client files

Add initial structure definition and functions for setting index, MAC
address, callback and event loop. Define protocol values and states.

7 years agobuild-sys: run forgotten 'make update-man-list'
Lennart Poettering [Thu, 19 Jun 2014 11:47:07 +0000 (13:47 +0200)]
build-sys: run forgotten 'make update-man-list'

7 years agocoredump: coredumpctl is so useful now, make it a first-class citizen
Lennart Poettering [Thu, 19 Jun 2014 11:46:01 +0000 (13:46 +0200)]
coredump: coredumpctl is so useful now, make it a first-class citizen

Drop the "systemd-" prefix, renaming it from "systemd-coredumpctl" to

7 years agoupdate TODO
Lennart Poettering [Thu, 19 Jun 2014 10:38:22 +0000 (12:38 +0200)]
update TODO

7 years agojournald: make SplitMode=uid the default
Lennart Poettering [Thu, 19 Jun 2014 10:36:35 +0000 (12:36 +0200)]
journald: make SplitMode=uid the default

Now that we actually can distuingish system and normal users there's no
point in taking session information into account anymore when splitting
up logs.

This has the beenfit with that coredump information will actually end up
in each user's own journal.

7 years agoupdate TODO
Lennart Poettering [Thu, 19 Jun 2014 10:25:42 +0000 (12:25 +0200)]
update TODO

7 years agocoredumpctl: introduce new -1 switch for showing a single, most recent entry only
Lennart Poettering [Thu, 19 Jun 2014 10:24:00 +0000 (12:24 +0200)]
coredumpctl: introduce new -1 switch for showing a single, most recent entry only

"coredumpctl info -1" is now incredibly useful for showing the most recent

7 years agocoredump: simplify how we apply extended attributes to coredumps
Lennart Poettering [Thu, 19 Jun 2014 10:13:09 +0000 (12:13 +0200)]
coredump: simplify how we apply extended attributes to coredumps