chiark / gitweb /
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]
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.
Umut Tezduyar Lindskog [Tue, 1 Apr 2014 20:55:54 +0000 (22:55 +0200)]
networkd: drop routes when lease expires
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.
Kay Sievers [Wed, 2 Apr 2014 13:47:09 +0000 (15:47 +0200)]
udev: do not export "static node" tags for non-existing devices
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]: <https://github.com/ambrop72/badvpn/blob/master/dhcpclient/BDHCPClient.c#L57>
Kay Sievers [Wed, 2 Apr 2014 09:34:33 +0000 (11:34 +0200)]
build-sys: remove no longer needed user/org.freedesktop.DBus.busname
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
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
Daniel Buch [Tue, 1 Apr 2014 13:00:31 +0000 (15:00 +0200)]
build-sys: workaround scan-build bug to fix ./autogen.sh s
It seems to be a clang-analyzer problem since it don't behave like
clang-compiler regarding -std={c99,gnu99}
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]: <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=
902fefb82ef72a50c78cb4a20cc954b037a98d1c>
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.
Tom Gundersen [Mon, 31 Mar 2014 12:43:34 +0000 (14:43 +0200)]
sd-rtnl: modernize a bit
Lukasz Skalski [Mon, 31 Mar 2014 09:34:42 +0000 (11:34 +0200)]
doc: fix items' names in PORTING-DBUS1
Tom Gundersen [Mon, 31 Mar 2014 09:30:59 +0000 (11:30 +0200)]
TODO
Tom Gundersen [Mon, 31 Mar 2014 08:04:32 +0000 (10:04 +0200)]
networkd: link - fix memory leak
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).
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
Kay Sievers [Mon, 31 Mar 2014 02:00:04 +0000 (04:00 +0200)]
timedated: adjust accuracy and slew values
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.
Tom Gundersen [Sun, 30 Mar 2014 18:33:57 +0000 (20:33 +0200)]
sd-dhcp: check for ipv4 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]
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 <phomes@gmail.com>
Tom Gundersen [Sat, 29 Mar 2014 22:52:03 +0000 (23:52 +0100)]
sd-rtnl: message - fix clang compile warning
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.
Tom Gundersen [Fri, 28 Mar 2014 17:20:31 +0000 (18:20 +0100)]
networkd: netdev - improve logging when setting ifindex
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.
Tom Gundersen [Thu, 27 Mar 2014 23:46:45 +0000 (00:46 +0100)]
sd-rtnl: message - fix memory leak
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.
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.
Thomas Hindoe Paaboel Andersen [Thu, 27 Mar 2014 19:13:11 +0000 (20:13 +0100)]
silence warnings
Brandon Philips [Thu, 27 Mar 2014 18:51:57 +0000 (11:51 -0700)]
systemctl: fix spelling in comment
Kay Sievers [Thu, 27 Mar 2014 14:30:09 +0000 (15:30 +0100)]
udev: update net_id comments
Scott Thrasher [Thu, 27 Mar 2014 01:48:13 +0000 (18:48 -0700)]
Add hwdb entry for Samsung Series 7 Ultra
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"
Kay Sievers [Wed, 26 Mar 2014 12:12:47 +0000 (13:12 +0100)]
build-sys: rename "check-broken" to "linkcheck"
Kay Sievers [Wed, 26 Mar 2014 12:06:46 +0000 (13:06 +0100)]
build-sys: split "make upload" and "make tango"
Marcel Holtmann [Wed, 26 Mar 2014 03:21:23 +0000 (20:21 -0700)]
hwdb: Update database of Bluetooth company identifiers
Kay Sievers [Wed, 26 Mar 2014 02:47:03 +0000 (03:47 +0100)]
core: do not read system boot timestamps in systemd --user mode
Before:
$ systemd-analyze --user
Startup finished in 2.810s (firmware) + 48ms (loader) + 122ms (userspace) = 122ms
After:
$ systemd-analyze --user
Startup finished in 122ms (userspace) = 122ms
Kay Sievers [Wed, 26 Mar 2014 02:38:48 +0000 (03:38 +0100)]
bus: provide org.freedesktop.systemd1.busname for systemd --user
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
...
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
Kay Sievers [Tue, 25 Mar 2014 22:16:31 +0000 (23:16 +0100)]
build-sys: fix library link order
Kay Sievers [Tue, 25 Mar 2014 22:05:52 +0000 (23:05 +0100)]
gitignore update
Kay Sievers [Tue, 25 Mar 2014 22:04:13 +0000 (23:04 +0100)]
build-sys: split-off internal libsystemd-resolve
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
Jason St. John [Tue, 25 Mar 2014 03:14:28 +0000 (23:14 -0400)]
src/systemd: fix grammar and spelling errors in comments
Lennart Poettering [Tue, 25 Mar 2014 19:22:41 +0000 (20:22 +0100)]
build-sys: prepare 212
Lennart Poettering [Tue, 25 Mar 2014 04:02:35 +0000 (05:02 +0100)]
build-sys: prepare NEWS for 212
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.
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 <phomes@gmail.com>"
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
Lennart Poettering [Tue, 25 Mar 2014 01:11:52 +0000 (02:11 +0100)]
update TODO
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.
Lennart Poettering [Tue, 25 Mar 2014 00:30:19 +0000 (01:30 +0100)]
ask-password: modernizations
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.
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
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
Lennart Poettering [Mon, 24 Mar 2014 23:26:09 +0000 (00:26 +0100)]
man: be more specific when EnvironmentFile= is read
http://lists.freedesktop.org/archives/systemd-devel/2014-March/018004.html
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
Lennart Poettering [Mon, 24 Mar 2014 23:03:23 +0000 (00:03 +0100)]
update TODO
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
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.
Lennart Poettering [Mon, 24 Mar 2014 22:54:14 +0000 (23:54 +0100)]
sd-daemon: fix incorrect variable access
Lennart Poettering [Mon, 24 Mar 2014 22:45:58 +0000 (23:45 +0100)]
cryptsetup: minor typo fix
Lennart Poettering [Mon, 24 Mar 2014 22:45:33 +0000 (23:45 +0100)]
networkd: fix a couple of memory leaks
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.
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
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
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.
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++
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
systemd.
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.
Lennart Poettering [Mon, 24 Mar 2014 18:57:10 +0000 (19:57 +0100)]
build-sys: add makefile link
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.
Tom Gundersen [Mon, 24 Mar 2014 16:13:24 +0000 (17:13 +0100)]
networkd: add CapabilityBoundingSet
Tom Gundersen [Mon, 24 Mar 2014 10:58:22 +0000 (11:58 +0100)]
sd-rtnl: message parsing - log when ignoring message attributes
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.
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()
method.
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.
Lennart Poettering [Mon, 24 Mar 2014 15:23:56 +0000 (16:23 +0100)]
update TODO
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
Lennart Poettering [Mon, 24 Mar 2014 15:09:54 +0000 (16:09 +0100)]
timer: support timers that can resume the system from suspend
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")
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
future.
Lennart Poettering [Mon, 24 Mar 2014 02:42:17 +0000 (03:42 +0100)]
systemctl: show last trigger time in "systemctl list-timers"
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...
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
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.
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 <susant@redhat.com>
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..
Kay Sievers [Sat, 22 Mar 2014 17:27:35 +0000 (18:27 +0100)]
README: update
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.
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
code.
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
rtnl-refcnt.
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)
to
if (REFCNT_GET(rtnl->n_ref) == refs)
and thus avoid recalculating the required refs for each message we
remove from the queue during destruction.
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.
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.
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]
Kay Sievers [Fri, 21 Mar 2014 16:49:50 +0000 (17:49 +0100)]
timedated: do not reset poll interval with a spike
Tom Gundersen [Fri, 21 Mar 2014 17:36:32 +0000 (18:36 +0100)]
sd-dhcp-client/sd-ipv4ll: allow mac address to be updated at any time
If necessary, restart the clients to deal with a changing mac address
at runtime. This will solve the problem of starting clients on bridges
before they have received their final MAC address.
Brandon Philips [Thu, 20 Mar 2014 18:28:12 +0000 (11:28 -0700)]
network: dhcp: create explicit host route to gateway
Some DHCP servers gives you a netmask of 255.255.255.255 so the gateway is not
routable. Other DHCP client implementations look through the existing routes to
figure out if they should add an explicit host route. See below for a link.
However, it makes sense to just create the route explicitly whether it is
needed or not since it is explicit, makes the dhcp route entries independent of
other entries and saves us from knowing the state of the kernel tables.
After patch route table on a machine with a network (common case):
default via 10.0.2.2 dev ens3
10.0.2.0/24 dev ens3 proto kernel scope link src 10.0.2.15
10.0.2.2 dev ens3 scope link
After patch route table on a machine without a network (this case):
default via 10.240.0.1 dev ens4v1
10.240.0.1 dev ens4v1 scope link
The code from dhcpcd that works around this issue is on line 637.
https://android.googlesource.com/platform/external/dhcpcd/+/master/configure.c