Michal Sekletar [Thu, 19 Jun 2014 16:59:37 +0000 (18:59 +0200)]
dhcp-network: don't bother with IP fragments
Michael Marineau [Fri, 20 Jun 2014 20:46:04 +0000 (13:46 -0700)]
build-sys: require elfutils >= 158
The recently added stacktrace support in
8d4e028f uses functions added
in elfutils 158. Check for one of the new functions to avoid attempting
to build against older versions.
Zbigniew Jędrzejewski-Szmek [Sun, 22 Jun 2014 15:50:33 +0000 (11:50 -0400)]
man: untabify systemd-resolved.service.xml
Jonathan Boulle [Fri, 20 Jun 2014 21:46:18 +0000 (14:46 -0700)]
fix systemd-resolved reference in man page
Guess this was missed in the copy-paste :-)
Marc-Antoine Perennou [Sun, 22 Jun 2014 10:36:03 +0000 (19:36 +0900)]
fix in_addr_prefix_intersect for 32bits
shifting from a non fixed number of bits >= to the size of the type
leads to weird results, handle the special case of << 32 to fix it.
This was causing a test failure from test-socket-util:
Assertion 'in_addr_prefix_intersect(f, &ua, apl, &ub, bpl) == result' failed at
/var/tmp/paludis/build/sys-apps-systemd-scm/work/systemd-scm/src/test/test-socket-util.c:147, function
test_in_addr_prefix_intersect_one(). Aborting.
Minimal reproducer:
paludisbuild@Lou /tmp $ cat test.c
static void test(unsigned m) {
unsigned nm = 0xFFFFFFFFUL << (32-m);
printf("%u: %x\n", m, nm);
}
int main (void) {
test(1);
test(0);
return 0;
}
paludisbuild@Lou /tmp $ gcc -m32 -std=gnu99 test.c -o test32
paludisbuild@Lou /tmp $ ./test32
1:
80000000
0:
ffffffff
paludisbuild@Lou /tmp $ gcc -std=gnu99 test.c -o test64
paludisbuild@Lou /tmp $ ./test64
1:
80000000
0: 0
Ronny Chevalier [Sun, 22 Jun 2014 12:53:24 +0000 (14:53 +0200)]
update .gitignore
Thomas Hindoe Paaboel Andersen [Sat, 21 Jun 2014 03:55:17 +0000 (05:55 +0200)]
consistently order cleanup attribute before type
Ronny Chevalier [Sat, 21 Jun 2014 20:07:12 +0000 (22:07 +0200)]
tests: add test_fdset_remove
Ronny Chevalier [Sat, 21 Jun 2014 20:07:11 +0000 (22:07 +0200)]
tests: add test-async
Ronny Chevalier [Sat, 21 Jun 2014 20:07:10 +0000 (22:07 +0200)]
tests: add test-capability
Ronny Chevalier [Sat, 21 Jun 2014 20:07:09 +0000 (22:07 +0200)]
build-sys: add -pthread flag for libsystemd-shared
src/shared/async.c uses pthread so it will fail at link time if we link
only to libsystemd-shared and use async
Kay Sievers [Sat, 21 Jun 2014 14:50:11 +0000 (16:50 +0200)]
build-sys: replace nm with $(NM)
Kay Sievers [Sat, 21 Jun 2014 13:53:58 +0000 (15:53 +0200)]
gudev: 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
Kay Sievers [Sat, 21 Jun 2014 13:44:14 +0000 (15:44 +0200)]
pam_systemd: rename source file to match the module
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.
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.
Zbigniew Jędrzejewski-Szmek [Sat, 21 Jun 2014 02:43:49 +0000 (22:43 -0400)]
util: treat fuse.sshfs as a network filesystem
https://bugs.freedesktop.org/show_bug.cgi?id=73727
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.
https://bugs.freedesktop.org/show_bug.cgi?id=80095
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
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.
Tested:
$ ./configure && make && make dist
*** compat-libs must be enabled in order to make dist
make: *** [dist-check-compat-libs] Error 1
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.
Tested:
$ ./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
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.
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.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=80005
Tested:
- 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
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.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=80006
Tested: Successfully ran "make dist" after ./configure --without-python.
Zbigniew Jędrzejewski-Szmek [Fri, 20 Jun 2014 22:44:39 +0000 (18:44 -0400)]
util: do not strip /dev prefix twice
Cristian Rodríguez [Thu, 12 Jun 2014 19:40:30 +0000 (15:40 -0400)]
Remove libattr mentions from README
It is no longer required.
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.
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.
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
Benjamin Steinwender [Sun, 8 Jun 2014 16:39:50 +0000 (18:39 +0200)]
po: add German translation
https://bugs.freedesktop.org/show_bug.cgi?id=79430
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.
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.
Jonathan Boulle [Tue, 17 Jun 2014 00:57:05 +0000 (17:57 -0700)]
sysusers.d - fix typo in user definition file
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
Tom Gundersen [Fri, 20 Jun 2014 11:04:02 +0000 (13:04 +0200)]
networkd: link - fix memleak of icmp6 struct
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.
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.
Michael Marineau [Fri, 20 Jun 2014 02:07:05 +0000 (19:07 -0700)]
test: ensure conf_files_list returns absolute 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.
Michael Marineau [Fri, 20 Jun 2014 02:07:03 +0000 (19:07 -0700)]
test: unit test for using alternate roots with path_strv_resolve
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.
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 <werner@suse.de>.
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.
Zbigniew Jędrzejewski-Szmek [Fri, 20 Jun 2014 01:13:56 +0000 (21:13 -0400)]
man: also describe an udev rule for bridge sysctl
Zbigniew Jędrzejewski-Szmek [Fri, 20 Jun 2014 00:43:56 +0000 (20:43 -0400)]
man: document statically loading modules for sysctl settings
https://bugzilla.redhat.com/show_bug.cgi?id=1022977
https://bugzilla.novell.com/show_bug.cgi?id=725412
Cristian Rodríguez [Sat, 23 Mar 2013 02:54:16 +0000 (03:54 +0100)]
units/systemd-sysctl.service.in: 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.]
https://bugzilla.redhat.com/show_bug.cgi?id=1022977
https://bugzilla.novell.com/show_bug.cgi?id=725412
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2014 16:43:02 +0000 (12:43 -0400)]
util.c: simplify rm_rf_children_dangerous
Ronny Chevalier [Thu, 19 Jun 2014 22:25:58 +0000 (00:25 +0200)]
tests: add tests for strv_extendf
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
Ronny Chevalier [Thu, 19 Jun 2014 22:26:12 +0000 (00:26 +0200)]
tests: add missing return
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
Ronny Chevalier [Thu, 19 Jun 2014 17:32:29 +0000 (19:32 +0200)]
sd-icmp6-nd: fix uninitialized fd
Ronny Chevalier [Thu, 19 Jun 2014 17:44:03 +0000 (19:44 +0200)]
sd-dhcp6-client: fix uninitialized variables
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
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
Filipe Brandenburger [Thu, 19 Jun 2014 18:59:35 +0000 (11:59 -0700)]
sd-dhcp6-client: fix path of sd-icmp6-nd.h in Makefile.am
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
Filipe Brandenburger [Thu, 19 Jun 2014 18:59:34 +0000 (11:59 -0700)]
sd-dhcp6-client: remove bogus dependency on dhcp6-icmp6.h
Makefile.am 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
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...
Lennart Poettering [Thu, 19 Jun 2014 22:15:39 +0000 (00:15 +0200)]
units: order systemd-tmpfiles-clean.service after time-sync.target
That way, on systems lacking an RTC we don't false start removing aged
files too early.
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.
Lennart Poettering [Thu, 19 Jun 2014 17:53:16 +0000 (19:53 +0200)]
units: add missing caps so that GetAddresses() can work
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.
Kay Sievers [Thu, 19 Jun 2014 16:57:16 +0000 (18:57 +0200)]
tmpfiles: do not fail when copying an empty directory
Lennart Poettering [Thu, 19 Jun 2014 15:36:39 +0000 (17:36 +0200)]
man: document new coredumpctl commands
Lennart Poettering [Thu, 19 Jun 2014 15:36:22 +0000 (17:36 +0200)]
coredumpctl: add missing entries to --help
Lennart Poettering [Thu, 19 Jun 2014 15:29:39 +0000 (17:29 +0200)]
coredumpctl: fix columns sizing for timestamp
Lennart Poettering [Thu, 19 Jun 2014 15:13:44 +0000 (17:13 +0200)]
build-sys: add missing Makefile symlink
Lennart Poettering [Thu, 19 Jun 2014 15:09:05 +0000 (17:09 +0200)]
net: enable dhcp6 for containers
Lennart Poettering [Thu, 19 Jun 2014 15:06:35 +0000 (17:06 +0200)]
man: add documentation for systemd-debug-generator
Lennart Poettering [Thu, 19 Jun 2014 14:57:10 +0000 (16:57 +0200)]
gitignore: hide dhcp6/icmp6-rs tests
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
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)
Lennart Poettering [Thu, 19 Jun 2014 14:30:07 +0000 (16:30 +0200)]
update TODO
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.
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
Lennart Poettering [Thu, 19 Jun 2014 14:13:36 +0000 (16:13 +0200)]
gitignore: sort properly
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.
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.
Ronny Chevalier [Thu, 19 Jun 2014 08:43:03 +0000 (10:43 +0200)]
man: fix typo
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2014 21:56:03 +0000 (17:56 -0400)]
journal-send.c: use automatic cleanup
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.
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.
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.
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.
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.
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.
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.
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
lifetimes.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
have.]
Tom Gundersen [Thu, 19 Jun 2014 12:39:05 +0000 (15:39 +0300)]
network-internal: split out net_get_name()