Systemd/src/shared
Umut Tezduyar Lindskog b5db00e52e 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]
2014-03-21 20:24:10 +01:00
..
linux syscallfilter: port to libseccomp 2014-02-12 18:30:36 +01:00
.gitignore core: add new RestrictAddressFamilies= switch 2014-02-26 02:19:28 +01:00
acl-util.c Introduce strv_consume which takes ownership 2014-03-04 10:04:50 -05:00
acl-util.h journald: DO recalculate the ACL mask, but only if it doesn't exist 2013-05-30 00:43:39 -04:00
acpi-fpdt.c make gcc shut up 2014-02-19 17:53:50 +01:00
acpi-fpdt.h support acpi firmware performance data (FPDT) 2013-09-24 15:43:41 +02:00
af-list.c core: add new RestrictAddressFamilies= switch 2014-02-26 02:19:28 +01:00
af-list.h core: add new RestrictAddressFamilies= switch 2014-02-26 02:19:28 +01:00
apparmor-util.c security: rework selinux, smack, ima, apparmor detection logic 2013-10-10 16:35:44 +02:00
apparmor-util.h security: rework selinux, smack, ima, apparmor detection logic 2013-10-10 16:35:44 +02:00
architecture.c architecture: Add cris 2014-03-04 21:06:05 +01:00
architecture.h architecture: Add cris 2014-03-04 21:06:05 +01:00
ask-password-api.c util: replace close_nointr_nofail() by a more useful safe_close() 2014-03-18 19:31:34 +01:00
ask-password-api.h
audit.c nspawn: newer kernels (>= 3.14) allow resetting the audit loginuid, make use of this 2014-02-12 03:02:09 +01:00
audit.h use #pragma once instead of foo*foo define guards 2013-11-18 20:28:54 -05:00
blkid-util.h nspawn: add --image= switch to boot GPT disk images that follow the Discoverable Partitions Specification 2014-03-10 20:35:52 +01:00
boot-timestamps.c make gcc shut up 2014-02-19 17:53:50 +01:00
boot-timestamps.h support acpi firmware performance data (FPDT) 2013-09-24 15:43:41 +02:00
bus-errors.h core: when an already abandoned unit gets abandoned again generate a clean error 2014-02-07 19:26:49 +01:00
bus-label.c src/shared/ cannot reference symbols from libraries 2014-02-23 01:53:40 +01:00
bus-label.h src/shared/ cannot reference symbols from libraries 2014-02-23 01:53:40 +01:00
calendarspec.c calendar: support 'yearly' and 'annually' names the same way as cron 2013-11-20 19:36:14 +01:00
calendarspec.h timer: implement calendar time events 2012-11-23 21:37:58 +01:00
capability.c Introduce cleanup functions for cap_free 2014-01-02 19:45:48 -05:00
capability.h Introduce cleanup functions for cap_free 2014-01-02 19:45:48 -05:00
cgroup-show.c Get rid of our reimplementation of basename 2013-12-06 21:29:55 -05:00
cgroup-show.h use #pragma once instead of foo*foo define guards 2013-11-18 20:28:54 -05:00
cgroup-util.c Use strlen even for constant strings 2014-03-16 09:52:56 -04:00
cgroup-util.h core: find the closest parent slice that has a specfic cgroup controller enabled when enabling/disabling cgroup controllers for units 2014-02-17 15:49:21 +01:00
clean-ipc.c logind: automatically remove SysV + POSIX IPC objects when the users owning them fully log out 2014-03-14 01:49:44 +01:00
clean-ipc.h logind: automatically remove SysV + POSIX IPC objects when the users owning them fully log out 2014-03-14 01:49:44 +01:00
condition-util.c virt: make Virtualization an anonymous enum 2014-02-24 13:26:44 +01:00
condition-util.h core: add new ConditionArchitecture() that checks the architecture returned by uname()'s machine field. 2014-02-21 02:43:14 +01:00
conf-files.c shared: include root when canonicalizing conf paths 2014-02-14 00:58:00 +01:00
conf-files.h use #pragma once instead of foo*foo define guards 2013-11-18 20:28:54 -05:00
conf-parser.c Do not print invalid UTF-8 in error messages 2014-03-04 10:04:50 -05:00
conf-parser.h Do not print invalid UTF-8 in error messages 2014-03-04 10:04:50 -05:00
def.h Use /var/run/dbus/system_bus_socket for the D-Bus socket 2014-02-25 21:26:42 -05:00
dev-setup.c core: Beef up PrivateDevices= 2014-03-19 16:25:11 +01:00
dev-setup.h exec: introduce PrivateDevices= switch to provide services with a private /dev 2014-01-20 21:28:37 +01:00
device-nodes.c shared: device-nodes - add include guard 2013-09-24 15:34:57 +02:00
device-nodes.h shared: device-nodes - add include guard 2013-09-24 15:34:57 +02:00
efivars.c gpt-auto-generator: automatically find the root disk of the system 2014-03-07 04:31:26 +01:00
efivars.h support acpi firmware performance data (FPDT) 2013-09-24 15:43:41 +02:00
env-util.c core: clean up environment block for --user instances a bit 2014-01-12 19:41:57 +08:00
env-util.h core: clean up environment block for --user instances a bit 2014-01-12 19:41:57 +08:00
errno-list.c bus: rework sd_bus_error APIs 2013-11-22 04:23:22 +01:00
errno-list.h bus: rework sd_bus_error APIs 2013-11-22 04:23:22 +01:00
exit-status.c core: move ShowStatus type into the core 2014-03-03 21:23:12 +01:00
exit-status.h core: move ShowStatus type into the core 2014-03-03 21:23:12 +01:00
fdset.c util: replace close_nointr_nofail() by a more useful safe_close() 2014-03-18 19:31:34 +01:00
fdset.h util: allow trailing semicolons on define_trivial_cleanup_func lines 2013-10-14 06:11:19 +02:00
fileio-label.c util: rename write_one_line_file() to write_string_file() 2013-04-03 20:12:56 +02:00
fileio-label.h util: rename write_one_line_file() to write_string_file() 2013-04-03 20:12:56 +02:00
fileio.c Do not print invalid UTF-8 in error messages 2014-03-04 10:04:50 -05:00
fileio.h systemctl: add "systemctl cat" 2013-11-30 22:20:20 -05:00
generator.c fstab-generator: merge /proc/cmdline parsing loops into one 2014-03-07 02:40:24 +01:00
generator.h generators: rework mount generators 2014-03-06 04:00:41 +01:00
gpt.h gpt: introduce root partition type GUIDs for ARM 32bit + ARM 64bit 2014-03-14 15:12:48 +01:00
gunicode.c unicode: treat cute symbol block as fullwidth 2013-10-13 17:56:54 -04:00
gunicode.h util, utf8: make ellipsize take multi-byte characters into account 2013-10-13 17:56:54 -04:00
hashmap.c use memzero(foo, length); for all memset(foo, 0, length); calls 2014-01-31 11:55:01 +01:00
hashmap.h shared: switch our hash table implementation over to SipHash 2013-12-22 21:12:25 +01:00
hwclock.c hwclock: modernizations 2013-11-20 19:36:14 +01:00
hwclock.h use #pragma once instead of foo*foo define guards 2013-11-18 20:28:54 -05:00
ima-util.c security: missing header inclusions 2013-10-10 21:22:59 +02:00
ima-util.h security: rework selinux, smack, ima, apparmor detection logic 2013-10-10 16:35:44 +02:00
initreq.h build-sys: move more files from core/ to share/ that are generic enough 2013-11-22 16:31:40 +01:00
install-printf.c specifier: rework specifier calls to return proper error message 2013-09-17 10:06:50 -05:00
install-printf.h specifier: rework specifier calls to return proper error message 2013-09-17 10:06:50 -05:00
install.c util: replace close_nointr_nofail() by a more useful safe_close() 2014-03-18 19:31:34 +01:00
install.h shared/install: use char** convention for strvs 2014-01-05 09:16:15 -05:00
ioprio.h trivial coding style clean ups 2013-12-03 22:27:45 +01:00
label.c smack: rework security labeling for multiple frameworks 2014-02-24 17:37:41 +01:00
label.h udev: add SECLABEL{selinux}= support 2013-10-09 17:31:41 +02:00
list.h list: make our list macros a bit easier to use by not requring type spec on each invocation 2013-10-14 06:11:19 +02:00
log.c util: replace close_nointr_nofail() by a more useful safe_close() 2014-03-18 19:31:34 +01:00
log.h Pass log config from systemd to systemd-shutdown 2014-02-17 02:26:22 -05:00
login-shared.c build-sys: move sd-login src/login → src/libsystemd/sd-login 2014-03-17 18:35:48 +01:00
login-shared.h build-sys: move sd-login src/login → src/libsystemd/sd-login 2014-03-17 18:35:48 +01:00
logs-show.c util: replace close_nointr_nofail() by a more useful safe_close() 2014-03-18 19:31:34 +01:00
logs-show.h journal: add ability to browse journals of running OS containers 2013-12-11 22:04:03 +01:00
macro.h macro: make sure we can use IN_SET() also with complex function calls as first argument 2014-03-12 22:26:22 +01:00
Makefile
missing.h missing: add more compat for old kernels and loop devices 2014-03-21 03:43:47 +01:00
mkdir-label.c shared: split mkdir_*() and mkdir_*_label() from each other 2013-07-26 04:13:55 +02:00
mkdir.c shared: export is_dir 2014-03-17 01:55:47 -04:00
mkdir.h shared: export is_dir 2014-03-17 01:55:47 -04:00
MurmurHash2.c libudev: ship the original MurmurHash2.[ch] file 2013-12-23 02:55:06 +01:00
MurmurHash2.h libudev: ship the original MurmurHash2.[ch] file 2013-12-23 02:55:06 +01:00
net-util.c sd-ipv4ll/networkd: generate predictable addresses 2014-03-21 20:24:10 +01:00
net-util.h sd-ipv4ll/networkd: generate predictable addresses 2014-03-21 20:24:10 +01:00
output-mode.h systemctl: suppress duplicate newline if there's not log output in "systemctl status" 2014-03-13 04:17:37 +01:00
pager.c pager: support SYSTEMD_LESS environment variable 2014-02-12 01:10:31 -05:00
pager.h Add __attribute__((const, pure, format)) in various places 2013-05-02 22:52:09 -04:00
path-lookup.c shared: include root when canonicalizing conf paths 2014-02-14 00:58:00 +01:00
path-lookup.h path_lookup: moved _cleanup_lookup_paths_free_ from install.c to path-lookup.h 2013-10-27 11:51:22 -04:00
path-util.c shared: include root when canonicalizing conf paths 2014-02-14 00:58:00 +01:00
path-util.h shared: include root when canonicalizing conf paths 2014-02-14 00:58:00 +01:00
prioq.c core: convert PID 1 to libsystemd-bus 2013-11-20 20:52:36 +01:00
prioq.h bus: add minimal event loop API 2013-10-10 04:44:48 +02:00
ptyfwd.c ptyfwd: reset nonblocking mode 2014-02-21 18:42:14 +01:00
ptyfwd.h nspawn: split out pty forwaring logic into ptyfwd.c 2013-10-31 01:43:38 +01:00
ratelimit.c ratelimit: fix off-by-one 2013-02-13 08:45:13 -05:00
ratelimit.h
refcnt.h bus: make bus ref counting atomic 2013-05-16 21:58:34 +02:00
replace-var.c Verify validity of session name when received from outside 2013-09-16 09:58:37 -05:00
replace-var.h shared: add API for replacing @FOO@ style variables in strings 2012-11-14 22:21:16 +01:00
seccomp-util.c seccomp: add helper call to add all secondary archs to a seccomp filter 2014-02-18 22:14:00 +01:00
seccomp-util.h seccomp: add helper call to add all secondary archs to a seccomp filter 2014-02-18 22:14:00 +01:00
securebits.h build-sys: move more files from core/ to share/ that are generic enough 2013-11-22 16:31:40 +01:00
selinux-util.c security: rework selinux, smack, ima, apparmor detection logic 2013-10-10 16:35:44 +02:00
selinux-util.h selinux: rework selinux access check logic 2012-10-02 17:07:00 -04:00
set.c core: serialize/deserialize bus subscribers 2013-07-10 23:41:03 +02:00
set.h util: allow trailing semicolons on define_trivial_cleanup_func lines 2013-10-14 06:11:19 +02:00
siphash24.c shared: switch our hash table implementation over to SipHash 2013-12-22 21:12:25 +01:00
siphash24.h shared: switch our hash table implementation over to SipHash 2013-12-22 21:12:25 +01:00
sleep-config.c make gcc shut up 2014-02-19 17:53:50 +01:00
sleep-config.h systemd-sleep: add support for freeze and standby 2013-05-06 22:51:57 +02:00
smack-util.c smack: minimize ifdef use, and move all labeling to smack-util.c 2013-10-11 10:16:41 +02:00
smack-util.h smack: rework security labeling for multiple frameworks 2014-02-24 17:37:41 +01:00
socket-label.c activate: export make_socket_fd 2014-03-17 01:55:48 -04:00
socket-util.c make gcc shut up 2014-02-19 17:53:50 +01:00
socket-util.h activate: export make_socket_fd 2014-03-17 01:55:48 -04:00
sparse-endian.h shared: move sparse-endian.h from journal 2012-10-22 18:08:48 +02:00
spawn-ask-password-agent.c
spawn-ask-password-agent.h
spawn-polkit-agent.c util: replace close_nointr_nofail() by a more useful safe_close() 2014-03-18 19:31:34 +01:00
spawn-polkit-agent.h use #pragma once instead of foo*foo define guards 2013-11-18 20:28:54 -05:00
special.h bus: add .busname unit type to implement kdbus-style bus activation 2013-12-02 23:32:34 +01:00
specifier.c specifier: rework specifier calls to return proper error message 2013-09-17 10:06:50 -05:00
specifier.h specifier: rework specifier calls to return proper error message 2013-09-17 10:06:50 -05:00
strbuf.c Fix spelling errors using 'codespell' tool 2013-04-15 08:40:05 -04:00
strbuf.h use the same email address everywhere 2012-11-12 19:47:43 +01:00
strv.c systemd-run: make sure --nice=, --uid=, --gid=, --setenv= also work in --scope mode 2014-03-05 19:03:10 +01:00
strv.h util: add new FOREACH_STRING() macro as syntactic sugar to iterate through a number of fixed strings 2014-03-19 00:54:41 +01:00
strxcpyx.c trivial coding style clean ups 2013-12-03 22:27:45 +01:00
strxcpyx.h macro: clean up usage of gcc attributes 2013-10-16 06:14:59 +02:00
test-tables.h test-tables: allow sparse tables and check mapping for -1 2013-07-16 12:04:31 -04:00
time-dst.c Remove dead lines in various places 2014-02-24 19:24:14 -05:00
time-dst.h timedatectl: properly print 30 minutes DST transitions 2012-11-11 16:55:25 +01:00
time-util.c logging: reduce send timeout to something more sensible 2013-12-20 22:47:26 -05:00
time-util.h Use format patterns for usec_t, pid_t, nsec_t, usec_t 2014-01-02 19:45:47 -05:00
udev-util.h udevadm: modernization 2013-12-18 23:58:23 -05:00
unit-name.c Use strlen even for constant strings 2014-03-16 09:52:56 -04:00
unit-name.h Use enums to make it obvious what boolean params mean 2013-12-26 15:49:54 -05:00
utf8.c core: do not print invalid utf-8 in error messages 2014-02-08 13:07:39 -05:00
utf8.h core: do not print invalid utf-8 in error messages 2014-02-08 13:07:39 -05:00
util.c util: replace close_nointr_nofail() by a more useful safe_close() 2014-03-18 19:31:34 +01:00
util.h util: replace close_nointr_nofail() by a more useful safe_close() 2014-03-18 19:31:34 +01:00
utmp-wtmp.c utmp-wtmp: allow overriding username on wall 2014-03-14 21:27:33 +01:00
utmp-wtmp.h utmp-wtmp: allow overriding username on wall 2014-03-14 21:27:33 +01:00
virt.c virt: make Virtualization an anonymous enum 2014-02-24 13:26:44 +01:00
virt.h virt: make Virtualization an anonymous enum 2014-02-24 13:26:44 +01:00
watchdog.c util: replace close_nointr_nofail() by a more useful safe_close() 2014-03-18 19:31:34 +01:00
watchdog.h
xml.c shared: add simplistic XML parser for usage in the D-Bus policy language compat parser 2013-12-28 03:04:29 +01:00
xml.h shared: add simplistic XML parser for usage in the D-Bus policy language compat parser 2013-12-28 03:04:29 +01:00