]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Merge pull request #16603 from benzea/benzea/special-app-slice
authorLennart Poettering <lennart@poettering.net>
Wed, 11 Nov 2020 13:11:02 +0000 (14:11 +0100)
committerGitHub <noreply@github.com>
Wed, 11 Nov 2020 13:11:02 +0000 (14:11 +0100)
Use app.slice by default in user manager (and define special user slices)

2676 files changed:
.mkosi/mkosi.arch
.mkosi/mkosi.debian
.mkosi/mkosi.fedora
.mkosi/mkosi.opensuse
.mkosi/mkosi.ubuntu
NEWS
TODO
catalog/meson.build
catalog/systemd.be.catalog.in
catalog/systemd.be@latin.catalog.in
catalog/systemd.bg.catalog.in
catalog/systemd.catalog.in
catalog/systemd.da.catalog.in
catalog/systemd.de.catalog.in
catalog/systemd.fr.catalog.in
catalog/systemd.hr.catalog.in
catalog/systemd.hu.catalog.in
catalog/systemd.it.catalog.in
catalog/systemd.ko.catalog.in
catalog/systemd.pl.catalog.in
catalog/systemd.pt_BR.catalog.in
catalog/systemd.ru.catalog.in
catalog/systemd.sr.catalog.in
catalog/systemd.zh_CN.catalog.in
catalog/systemd.zh_TW.catalog.in
docs/BOOT_LOADER_SPECIFICATION.md
docs/CODING_STYLE.md
docs/ENVIRONMENT.md
docs/TRANSIENT-SETTINGS.md
docs/sysvinit/meson.build
docs/var-log/meson.build
hwdb.d/20-OUI.hwdb
hwdb.d/20-acpi-vendor.hwdb
hwdb.d/20-acpi-vendor.hwdb.patch
hwdb.d/20-pci-vendor-model.hwdb
hwdb.d/60-autosuspend.hwdb
hwdb.d/60-evdev.hwdb
hwdb.d/60-input-id.hwdb
hwdb.d/60-keyboard.hwdb
hwdb.d/60-sensor.hwdb
hwdb.d/70-joystick.hwdb
hwdb.d/70-mouse.hwdb
hwdb.d/70-pointingstick.hwdb
hwdb.d/70-touchpad.hwdb
hwdb.d/ma-large.txt
hwdb.d/ma-medium.txt
hwdb.d/ma-small.txt
hwdb.d/meson.build
hwdb.d/parse_hwdb.py
hwdb.d/pci.ids
hwdb.d/pnp_id_registry.html
man/binfmt.d.xml
man/bootctl.xml
man/bootup.xml
man/busctl.xml
man/coredump.conf.xml
man/coredumpctl.xml
man/crypttab.xml
man/custom-entities.ent.in
man/custom-html.xsl
man/custom-man.xsl
man/daemon.xml
man/directives-template.xml
man/dnssec-trust-anchors.d.xml
man/environment.d.xml
man/file-hierarchy.xml
man/halt.xml
man/homectl.xml
man/homed.conf.xml
man/hostname.xml
man/hostnamectl.xml
man/hwdb.xml
man/journal-remote.conf.xml
man/journal-upload.conf.xml
man/journalctl.xml
man/journald.conf.xml
man/kernel-command-line.xml
man/kernel-install.xml
man/less-variables.xml
man/libsystemd-pkgconfig.xml
man/libudev.xml
man/loader.conf.xml
man/locale.conf.xml
man/localectl.xml
man/localtime.xml
man/loginctl.xml
man/logind.conf.xml
man/machine-id.xml
man/machine-info.xml
man/machinectl.xml
man/meson.build
man/modules-load.d.xml
man/networkctl.xml
man/networkd.conf.xml
man/nss-myhostname.xml
man/nss-mymachines.xml
man/nss-resolve.xml
man/nss-systemd.xml
man/oomctl.xml
man/oomd.conf.xml
man/org.freedesktop.LogControl1.xml
man/org.freedesktop.home1.xml
man/org.freedesktop.hostname1.xml
man/org.freedesktop.import1.xml
man/org.freedesktop.locale1.xml
man/org.freedesktop.login1.xml
man/org.freedesktop.machine1.xml
man/org.freedesktop.oom1.xml
man/org.freedesktop.resolve1.xml
man/org.freedesktop.systemd1.xml
man/org.freedesktop.timedate1.xml
man/os-release.xml
man/pam_systemd.xml
man/pam_systemd_home.xml
man/portablectl.xml
man/pstore.conf.xml
man/resolvectl.xml
man/resolved.conf.xml
man/rules/meson.build
man/runlevel.xml
man/sd-bus-errors.xml
man/sd-bus.xml
man/sd-daemon.xml
man/sd-event.xml
man/sd-hwdb.xml
man/sd-id128.xml
man/sd-journal.xml
man/sd-login.xml
man/sd_booted.xml
man/sd_bus_add_match.xml
man/sd_bus_add_node_enumerator.xml
man/sd_bus_add_object.xml
man/sd_bus_add_object_manager.xml
man/sd_bus_attach_event.xml
man/sd_bus_call.xml
man/sd_bus_call_method.xml
man/sd_bus_can_send.xml
man/sd_bus_close.xml
man/sd_bus_creds_get_pid.xml
man/sd_bus_creds_new_from_pid.xml
man/sd_bus_default.xml
man/sd_bus_emit_signal.xml
man/sd_bus_enqueue_for_read.xml
man/sd_bus_error.xml
man/sd_bus_error_add_map.xml
man/sd_bus_get_current_handler.xml
man/sd_bus_get_fd.xml
man/sd_bus_get_n_queued_read.xml
man/sd_bus_get_name_creds.xml
man/sd_bus_get_name_machine_id.xml
man/sd_bus_interface_name_is_valid.xml
man/sd_bus_is_open.xml
man/sd_bus_list_names.xml
man/sd_bus_message_append.xml
man/sd_bus_message_append_array.xml
man/sd_bus_message_append_basic.xml
man/sd_bus_message_append_string_memfd.xml
man/sd_bus_message_append_strv.xml
man/sd_bus_message_at_end.xml
man/sd_bus_message_copy.xml
man/sd_bus_message_dump.xml
man/sd_bus_message_get_cookie.xml
man/sd_bus_message_get_monotonic_usec.xml
man/sd_bus_message_get_signature.xml
man/sd_bus_message_get_type.xml
man/sd_bus_message_new.xml
man/sd_bus_message_new_method_call.xml
man/sd_bus_message_new_method_error.xml
man/sd_bus_message_new_signal.xml
man/sd_bus_message_open_container.xml
man/sd_bus_message_read.xml
man/sd_bus_message_read_array.xml
man/sd_bus_message_read_basic.xml
man/sd_bus_message_read_strv.xml
man/sd_bus_message_rewind.xml
man/sd_bus_message_seal.xml
man/sd_bus_message_sensitive.xml
man/sd_bus_message_set_destination.xml
man/sd_bus_message_set_expect_reply.xml
man/sd_bus_message_skip.xml
man/sd_bus_message_verify_type.xml
man/sd_bus_negotiate_fds.xml
man/sd_bus_new.xml
man/sd_bus_path_encode.xml
man/sd_bus_process.xml
man/sd_bus_query_sender_creds.xml
man/sd_bus_reply_method_error.xml
man/sd_bus_reply_method_return.xml
man/sd_bus_request_name.xml
man/sd_bus_send.xml
man/sd_bus_set_address.xml
man/sd_bus_set_close_on_exit.xml
man/sd_bus_set_connected_signal.xml
man/sd_bus_set_description.xml
man/sd_bus_set_exit_on_disconnect.xml
man/sd_bus_set_method_call_timeout.xml
man/sd_bus_set_property.xml
man/sd_bus_set_sender.xml
man/sd_bus_set_server.xml
man/sd_bus_set_watch_bind.xml
man/sd_bus_slot_get_bus.xml
man/sd_bus_slot_ref.xml
man/sd_bus_slot_set_description.xml
man/sd_bus_slot_set_destroy_callback.xml
man/sd_bus_slot_set_floating.xml
man/sd_bus_slot_set_userdata.xml
man/sd_bus_start.xml
man/sd_bus_track_add_name.xml
man/sd_bus_track_new.xml
man/sd_bus_wait.xml
man/sd_event_add_child.xml
man/sd_event_add_defer.xml
man/sd_event_add_inotify.xml
man/sd_event_add_io.xml
man/sd_event_add_signal.xml
man/sd_event_add_time.xml
man/sd_event_exit.xml
man/sd_event_get_fd.xml
man/sd_event_new.xml
man/sd_event_now.xml
man/sd_event_run.xml
man/sd_event_set_watchdog.xml
man/sd_event_source_get_event.xml
man/sd_event_source_get_pending.xml
man/sd_event_source_set_description.xml
man/sd_event_source_set_destroy_callback.xml
man/sd_event_source_set_enabled.xml
man/sd_event_source_set_exit_on_failure.xml
man/sd_event_source_set_floating.xml
man/sd_event_source_set_prepare.xml
man/sd_event_source_set_priority.xml
man/sd_event_source_set_userdata.xml
man/sd_event_source_unref.xml
man/sd_event_wait.xml
man/sd_get_seats.xml
man/sd_hwdb_get.xml
man/sd_hwdb_new.xml
man/sd_id128_get_machine.xml
man/sd_id128_randomize.xml
man/sd_id128_to_string.xml
man/sd_is_fifo.xml
man/sd_journal_add_match.xml
man/sd_journal_enumerate_fields.xml
man/sd_journal_get_catalog.xml
man/sd_journal_get_cursor.xml
man/sd_journal_get_cutoff_realtime_usec.xml
man/sd_journal_get_data.xml
man/sd_journal_get_fd.xml
man/sd_journal_get_realtime_usec.xml
man/sd_journal_get_usage.xml
man/sd_journal_has_runtime_files.xml
man/sd_journal_next.xml
man/sd_journal_open.xml
man/sd_journal_print.xml
man/sd_journal_query_unique.xml
man/sd_journal_seek_head.xml
man/sd_journal_stream_fd.xml
man/sd_listen_fds.xml
man/sd_login_monitor_new.xml
man/sd_machine_get_class.xml
man/sd_notify.xml
man/sd_path_lookup.xml
man/sd_pid_get_owner_uid.xml
man/sd_seat_get_active.xml
man/sd_session_is_active.xml
man/sd_uid_get_state.xml
man/sd_watchdog_enabled.xml
man/shutdown.xml
man/standard-conf.xml
man/standard-options.xml
man/standard-specifiers.xml
man/supported-controllers.xml
man/sysctl.d.xml
man/system-only.xml
man/systemctl.xml
man/systemd-analyze.xml
man/systemd-ask-password-console.service.xml
man/systemd-ask-password.xml
man/systemd-backlight@.service.xml
man/systemd-binfmt.service.xml
man/systemd-bless-boot-generator.xml
man/systemd-bless-boot.service.xml
man/systemd-boot-check-no-failures.service.xml
man/systemd-boot-system-token.service.xml
man/systemd-boot.xml
man/systemd-cat.xml
man/systemd-cgls.xml
man/systemd-cgtop.xml
man/systemd-coredump.xml
man/systemd-cryptsetup-generator.xml
man/systemd-cryptsetup@.service.xml
man/systemd-debug-generator.xml
man/systemd-delta.xml
man/systemd-detect-virt.xml
man/systemd-dissect.xml
man/systemd-environment-d-generator.xml
man/systemd-escape.xml
man/systemd-firstboot.xml
man/systemd-fsck@.service.xml
man/systemd-fstab-generator.xml
man/systemd-getty-generator.xml
man/systemd-gpt-auto-generator.xml
man/systemd-halt.service.xml
man/systemd-hibernate-resume-generator.xml
man/systemd-hibernate-resume@.service.xml
man/systemd-homed.service.xml
man/systemd-hostnamed.service.xml
man/systemd-hwdb.xml
man/systemd-id128.xml
man/systemd-importd.service.xml
man/systemd-inhibit.xml
man/systemd-initctl.service.xml
man/systemd-journal-gatewayd.service.xml
man/systemd-journal-remote.service.xml
man/systemd-journal-upload.service.xml
man/systemd-journald.service.xml
man/systemd-localed.service.xml
man/systemd-logind.service.xml
man/systemd-machine-id-commit.service.xml
man/systemd-machine-id-setup.xml
man/systemd-machined.service.xml
man/systemd-makefs@.service.xml
man/systemd-modules-load.service.xml
man/systemd-mount.xml
man/systemd-network-generator.service.xml
man/systemd-networkd-wait-online.service.xml
man/systemd-networkd.service.xml
man/systemd-notify.xml
man/systemd-nspawn.xml
man/systemd-oomd.service.xml
man/systemd-path.xml
man/systemd-portabled.service.xml
man/systemd-pstore.service.xml
man/systemd-quotacheck.service.xml
man/systemd-random-seed.service.xml
man/systemd-rc-local-generator.xml
man/systemd-remount-fs.service.xml
man/systemd-repart.xml
man/systemd-resolved.service.xml
man/systemd-rfkill.service.xml
man/systemd-run-generator.xml
man/systemd-run.xml
man/systemd-sleep.conf.xml
man/systemd-socket-activate.xml
man/systemd-socket-proxyd.xml
man/systemd-suspend.service.xml
man/systemd-sysctl.service.xml
man/systemd-system-update-generator.xml
man/systemd-system.conf.xml
man/systemd-sysusers.xml
man/systemd-sysv-generator.xml
man/systemd-time-wait-sync.service.xml
man/systemd-timedated.service.xml
man/systemd-timesyncd.service.xml
man/systemd-tmpfiles.xml
man/systemd-tty-ask-password-agent.xml
man/systemd-udev-settle.service.xml
man/systemd-udevd.service.xml
man/systemd-update-done.service.xml
man/systemd-update-utmp.service.xml
man/systemd-user-sessions.service.xml
man/systemd-userdbd.service.xml
man/systemd-vconsole-setup.service.xml
man/systemd-veritysetup-generator.xml
man/systemd-veritysetup@.service.xml
man/systemd-volatile-root.service.xml
man/systemd-xdg-autostart-generator.xml
man/systemd.automount.xml
man/systemd.device.xml
man/systemd.dnssd.xml
man/systemd.environment-generator.xml
man/systemd.exec.xml
man/systemd.generator.xml
man/systemd.journal-fields.xml
man/systemd.kill.xml
man/systemd.link.xml
man/systemd.mount.xml
man/systemd.net-naming-scheme.xml
man/systemd.netdev.xml
man/systemd.network.xml
man/systemd.nspawn.xml
man/systemd.offline-updates.xml
man/systemd.path.xml
man/systemd.preset.xml
man/systemd.resource-control.xml
man/systemd.scope.xml
man/systemd.service.xml
man/systemd.slice.xml
man/systemd.socket.xml
man/systemd.special.xml
man/systemd.swap.xml
man/systemd.syntax.xml
man/systemd.target.xml
man/systemd.time.xml
man/systemd.timer.xml
man/systemd.unit.xml
man/systemd.xml
man/sysusers.d.xml
man/tc.xml
man/telinit.xml
man/threads-aware.xml
man/timedatectl.xml
man/timesyncd.conf.xml
man/tmpfiles.d.xml
man/udev.conf.xml
man/udev.xml
man/udev_device_get_syspath.xml
man/udev_device_has_tag.xml
man/udev_device_new_from_syspath.xml
man/udev_enumerate_add_match_subsystem.xml
man/udev_enumerate_new.xml
man/udev_enumerate_scan_devices.xml
man/udev_list_entry.xml
man/udev_monitor_filter_update.xml
man/udev_monitor_new_from_netlink.xml
man/udev_monitor_receive_device.xml
man/udev_new.xml
man/udevadm.xml
man/user-system-options.xml
man/user@.service.xml
man/userdbctl.xml
man/vconsole.conf.xml
meson.build
meson_options.txt
modprobe.d/systemd.conf
network/80-container-host0.network
network/80-container-ve.network
network/80-container-vz.network
network/80-vm-vt.network
network/99-default.link
network/meson.build
po/be.po
po/be@latin.po
po/bg.po
po/ca.po
po/cs.po
po/da.po
po/de.po
po/el.po
po/es.po
po/fr.po
po/gl.po
po/hr.po
po/hu.po
po/id.po
po/it.po
po/ja.po
po/ko.po
po/meson.build
po/pl.po
po/pt_BR.po
po/ro.po
po/ru.po
po/sk.po
po/sr.po
po/sv.po
po/tr.po
po/uk.po
po/zh_CN.po
po/zh_TW.po
presets/90-systemd.preset
presets/meson.build
presets/user/90-systemd.preset
rules.d/99-systemd.rules.in
rules.d/meson.build
shell-completion/bash/bootctl
shell-completion/bash/busctl
shell-completion/bash/coredumpctl
shell-completion/bash/homectl
shell-completion/bash/hostnamectl
shell-completion/bash/journalctl
shell-completion/bash/kernel-install
shell-completion/bash/localectl
shell-completion/bash/loginctl
shell-completion/bash/machinectl
shell-completion/bash/meson.build
shell-completion/bash/networkctl
shell-completion/bash/portablectl
shell-completion/bash/resolvectl
shell-completion/bash/systemctl.in
shell-completion/bash/systemd-analyze
shell-completion/bash/systemd-cat
shell-completion/bash/systemd-cgls
shell-completion/bash/systemd-cgtop
shell-completion/bash/systemd-delta
shell-completion/bash/systemd-detect-virt
shell-completion/bash/systemd-id128
shell-completion/bash/systemd-nspawn
shell-completion/bash/systemd-path
shell-completion/bash/systemd-resolve
shell-completion/bash/systemd-run
shell-completion/bash/timedatectl
shell-completion/bash/udevadm
shell-completion/zsh/_bootctl
shell-completion/zsh/_busctl
shell-completion/zsh/_coredumpctl
shell-completion/zsh/_hostnamectl
shell-completion/zsh/_journalctl
shell-completion/zsh/_kernel-install
shell-completion/zsh/_localectl
shell-completion/zsh/_loginctl
shell-completion/zsh/_machinectl
shell-completion/zsh/_networkctl
shell-completion/zsh/_resolvectl
shell-completion/zsh/_sd_hosts_or_user_at_host
shell-completion/zsh/_sd_machines
shell-completion/zsh/_sd_outputmodes
shell-completion/zsh/_sd_unit_files
shell-completion/zsh/_systemctl.in
shell-completion/zsh/_systemd
shell-completion/zsh/_systemd-analyze
shell-completion/zsh/_systemd-delta
shell-completion/zsh/_systemd-inhibit
shell-completion/zsh/_systemd-nspawn
shell-completion/zsh/_systemd-run
shell-completion/zsh/_systemd-tmpfiles
shell-completion/zsh/_timedatectl
shell-completion/zsh/_udevadm
shell-completion/zsh/meson.build
src/ac-power/ac-power.c
src/activate/activate.c
src/analyze/analyze-condition.c
src/analyze/analyze-condition.h
src/analyze/analyze-security.c
src/analyze/analyze-security.h
src/analyze/analyze-verify.c
src/analyze/analyze-verify.h
src/analyze/analyze.c
src/analyze/meson.build
src/analyze/test-verify.c
src/ask-password/ask-password.c
src/backlight/backlight.c
src/basic/MurmurHash2.c
src/basic/MurmurHash2.h
src/basic/af-list.c
src/basic/af-list.h
src/basic/alloc-util.c
src/basic/alloc-util.h
src/basic/architecture.c
src/basic/architecture.h
src/basic/arphrd-list.c
src/basic/arphrd-list.h
src/basic/async.c
src/basic/async.h
src/basic/audit-util.c
src/basic/audit-util.h
src/basic/blockdev-util.c
src/basic/blockdev-util.h
src/basic/btrfs-util.c
src/basic/btrfs-util.h
src/basic/build.h
src/basic/bus-label.c
src/basic/bus-label.h
src/basic/cap-list.c
src/basic/cap-list.h
src/basic/capability-util.c
src/basic/capability-util.h
src/basic/cgroup-util.c
src/basic/cgroup-util.h
src/basic/chattr-util.c
src/basic/chattr-util.h
src/basic/conf-files.c
src/basic/conf-files.h
src/basic/copy.c
src/basic/copy.h
src/basic/def.h
src/basic/device-nodes.c
src/basic/device-nodes.h
src/basic/dirent-util.c
src/basic/dirent-util.h
src/basic/dlfcn-util.c
src/basic/dlfcn-util.h
src/basic/efivars.c
src/basic/efivars.h
src/basic/env-file.c
src/basic/env-file.h
src/basic/env-util.c
src/basic/env-util.h
src/basic/errno-list.c
src/basic/errno-list.h
src/basic/errno-util.h
src/basic/escape.c
src/basic/escape.h
src/basic/ether-addr-util.c
src/basic/ether-addr-util.h
src/basic/extract-word.c
src/basic/extract-word.h
src/basic/fd-util.c
src/basic/fd-util.h
src/basic/fileio.c
src/basic/fileio.h
src/basic/format-util.c
src/basic/format-util.h
src/basic/fs-util.c
src/basic/fs-util.h
src/basic/gcrypt-util.c
src/basic/gcrypt-util.h
src/basic/glob-util.c
src/basic/glob-util.h
src/basic/gunicode.c
src/basic/gunicode.h
src/basic/hash-funcs.c
src/basic/hash-funcs.h
src/basic/hashmap.c
src/basic/hashmap.h
src/basic/hexdecoct.c
src/basic/hexdecoct.h
src/basic/hostname-util.c
src/basic/hostname-util.h
src/basic/in-addr-util.c
src/basic/in-addr-util.h
src/basic/io-util.c
src/basic/io-util.h
src/basic/kbd-util.c
src/basic/kbd-util.h
src/basic/khash.c
src/basic/khash.h
src/basic/label.c
src/basic/label.h
src/basic/limits-util.c
src/basic/limits-util.h
src/basic/list.h
src/basic/locale-util.c
src/basic/locale-util.h
src/basic/log.c
src/basic/log.h
src/basic/login-util.c
src/basic/login-util.h
src/basic/macro.h
src/basic/memfd-util.c
src/basic/memfd-util.h
src/basic/memory-util.c
src/basic/memory-util.h
src/basic/mempool.c
src/basic/mempool.h
src/basic/meson.build
src/basic/missing_audit.h
src/basic/missing_capability.h
src/basic/missing_drm.h
src/basic/missing_fcntl.h
src/basic/missing_fs.h
src/basic/missing_input.h
src/basic/missing_keyctl.h
src/basic/missing_loop.h
src/basic/missing_magic.h
src/basic/missing_mman.h
src/basic/missing_network.h
src/basic/missing_prctl.h
src/basic/missing_random.h
src/basic/missing_resource.h
src/basic/missing_sched.h
src/basic/missing_socket.h
src/basic/missing_stat.h
src/basic/missing_stdlib.h
src/basic/missing_syscall.h
src/basic/missing_timerfd.h
src/basic/missing_type.h
src/basic/missing_xfs.h
src/basic/mkdir-label.c
src/basic/mkdir.c
src/basic/mkdir.h
src/basic/mountpoint-util.c
src/basic/mountpoint-util.h
src/basic/namespace-util.c
src/basic/namespace-util.h
src/basic/nss-util.h
src/basic/nulstr-util.c
src/basic/nulstr-util.h
src/basic/ordered-set.c
src/basic/ordered-set.h
src/basic/parse-util.c
src/basic/parse-util.h
src/basic/path-lookup.c
src/basic/path-lookup.h
src/basic/path-util.c
src/basic/path-util.h
src/basic/prioq.c
src/basic/prioq.h
src/basic/proc-cmdline.c
src/basic/proc-cmdline.h
src/basic/process-util.c
src/basic/process-util.h
src/basic/procfs-util.c
src/basic/procfs-util.h
src/basic/pthread-util.h
src/basic/quota-util.c
src/basic/quota-util.h
src/basic/random-util.c
src/basic/random-util.h
src/basic/ratelimit.c
src/basic/ratelimit.h
src/basic/raw-clone.h
src/basic/raw-reboot.h
src/basic/replace-var.c
src/basic/replace-var.h
src/basic/rlimit-util.c
src/basic/rlimit-util.h
src/basic/rm-rf.c
src/basic/rm-rf.h
src/basic/selinux-util.c
src/basic/selinux-util.h
src/basic/set.h
src/basic/sigbus.c
src/basic/sigbus.h
src/basic/signal-util.c
src/basic/signal-util.h
src/basic/siphash24.c
src/basic/siphash24.h
src/basic/smack-util.c
src/basic/smack-util.h
src/basic/socket-label.c
src/basic/socket-util.c
src/basic/socket-util.h
src/basic/sort-util.c
src/basic/sort-util.h
src/basic/special.h
src/basic/stat-util.c
src/basic/stat-util.h
src/basic/static-destruct.h
src/basic/stdio-util.h
src/basic/strbuf.c
src/basic/strbuf.h
src/basic/string-table.c
src/basic/string-table.h
src/basic/string-util.c
src/basic/string-util.h
src/basic/strv.c
src/basic/strv.h
src/basic/strxcpyx.c
src/basic/strxcpyx.h
src/basic/syslog-util.c
src/basic/syslog-util.h
src/basic/terminal-util.c
src/basic/terminal-util.h
src/basic/time-util.c
src/basic/time-util.h
src/basic/tmpfile-util.c
src/basic/tmpfile-util.h
src/basic/umask-util.h
src/basic/unaligned.h
src/basic/unit-def.c
src/basic/unit-def.h
src/basic/unit-name.c
src/basic/unit-name.h
src/basic/user-util.c
src/basic/user-util.h
src/basic/utf8.c
src/basic/utf8.h
src/basic/util.c
src/basic/util.h
src/basic/virt.c
src/basic/virt.h
src/basic/xattr-util.c
src/basic/xattr-util.h
src/binfmt/binfmt.c
src/boot/bless-boot-generator.c
src/boot/bless-boot.c
src/boot/boot-check-no-failures.c
src/boot/bootctl.c
src/boot/efi/boot.c
src/boot/efi/console.c
src/boot/efi/console.h
src/boot/efi/crc32.c
src/boot/efi/crc32.h
src/boot/efi/disk.c
src/boot/efi/disk.h
src/boot/efi/graphics.c
src/boot/efi/graphics.h
src/boot/efi/linux.c
src/boot/efi/linux.h
src/boot/efi/loader-features.h
src/boot/efi/measure.c
src/boot/efi/measure.h
src/boot/efi/meson.build
src/boot/efi/missing_efi.h
src/boot/efi/pe.c
src/boot/efi/pe.h
src/boot/efi/random-seed.c
src/boot/efi/random-seed.h
src/boot/efi/sha256.c
src/boot/efi/sha256.h
src/boot/efi/shim.c
src/boot/efi/shim.h
src/boot/efi/splash.c
src/boot/efi/splash.h
src/boot/efi/stub.c
src/boot/efi/util.c
src/boot/efi/util.h
src/busctl/busctl-introspect.c
src/busctl/busctl-introspect.h
src/busctl/busctl.c
src/cgls/cgls.c
src/cgroups-agent/cgroups-agent.c
src/cgtop/cgtop.c
src/core/all-units.h
src/core/apparmor-setup.c
src/core/apparmor-setup.h
src/core/audit-fd.c
src/core/audit-fd.h
src/core/automount.c
src/core/automount.h
src/core/bpf-devices.c
src/core/bpf-devices.h
src/core/bpf-firewall.c
src/core/bpf-firewall.h
src/core/cgroup.c
src/core/cgroup.h
src/core/core-varlink.c
src/core/core-varlink.h
src/core/dbus-automount.c
src/core/dbus-automount.h
src/core/dbus-cgroup.c
src/core/dbus-cgroup.h
src/core/dbus-device.c
src/core/dbus-device.h
src/core/dbus-execute.c
src/core/dbus-execute.h
src/core/dbus-job.c
src/core/dbus-job.h
src/core/dbus-kill.c
src/core/dbus-kill.h
src/core/dbus-manager.c
src/core/dbus-manager.h
src/core/dbus-mount.c
src/core/dbus-mount.h
src/core/dbus-path.c
src/core/dbus-path.h
src/core/dbus-scope.c
src/core/dbus-scope.h
src/core/dbus-service.c
src/core/dbus-service.h
src/core/dbus-slice.c
src/core/dbus-slice.h
src/core/dbus-socket.c
src/core/dbus-socket.h
src/core/dbus-swap.c
src/core/dbus-swap.h
src/core/dbus-target.c
src/core/dbus-target.h
src/core/dbus-timer.c
src/core/dbus-timer.h
src/core/dbus-unit.c
src/core/dbus-unit.h
src/core/dbus-util.c
src/core/dbus-util.h
src/core/dbus.c
src/core/dbus.h
src/core/device.c
src/core/device.h
src/core/dynamic-user.c
src/core/dynamic-user.h
src/core/efi-random.c
src/core/efi-random.h
src/core/emergency-action.c
src/core/emergency-action.h
src/core/execute.c
src/core/execute.h
src/core/generator-setup.c
src/core/generator-setup.h
src/core/hostname-setup.c
src/core/hostname-setup.h
src/core/ima-setup.c
src/core/ima-setup.h
src/core/ip-address-access.c
src/core/ip-address-access.h
src/core/job.c
src/core/job.h
src/core/kill.c
src/core/kill.h
src/core/killall.c
src/core/killall.h
src/core/kmod-setup.c
src/core/kmod-setup.h
src/core/load-dropin.c
src/core/load-dropin.h
src/core/load-fragment-gperf.gperf.m4
src/core/load-fragment.c
src/core/load-fragment.h
src/core/locale-setup.c
src/core/locale-setup.h
src/core/loopback-setup.c
src/core/loopback-setup.h
src/core/machine-id-setup.c
src/core/machine-id-setup.h
src/core/macros.systemd.in
src/core/main.c
src/core/manager.c
src/core/manager.h
src/core/meson.build
src/core/mount-setup.c
src/core/mount-setup.h
src/core/mount.c
src/core/mount.h
src/core/namespace.c
src/core/namespace.h
src/core/org.freedesktop.systemd1.conf
src/core/org.freedesktop.systemd1.policy.in
src/core/org.freedesktop.systemd1.service
src/core/path.c
src/core/path.h
src/core/scope.c
src/core/scope.h
src/core/selinux-access.c
src/core/selinux-access.h
src/core/selinux-setup.c
src/core/selinux-setup.h
src/core/service.c
src/core/service.h
src/core/show-status.c
src/core/show-status.h
src/core/slice.c
src/core/slice.h
src/core/smack-setup.c
src/core/smack-setup.h
src/core/socket.c
src/core/socket.h
src/core/swap.c
src/core/swap.h
src/core/systemd.pc.in
src/core/target.c
src/core/target.h
src/core/timer.c
src/core/timer.h
src/core/transaction.c
src/core/transaction.h
src/core/triggers.systemd.in
src/core/unit-printf.c
src/core/unit-printf.h
src/core/unit.c
src/core/unit.h
src/coredump/coredump-vacuum.c
src/coredump/coredump-vacuum.h
src/coredump/coredump.c
src/coredump/coredumpctl.c
src/coredump/meson.build
src/coredump/stacktrace.c
src/coredump/stacktrace.h
src/coredump/test-coredump-vacuum.c
src/cryptsetup/cryptsetup-generator.c
src/cryptsetup/cryptsetup-keyfile.c
src/cryptsetup/cryptsetup-keyfile.h
src/cryptsetup/cryptsetup-pkcs11.c
src/cryptsetup/cryptsetup-pkcs11.h
src/cryptsetup/cryptsetup.c
src/debug-generator/debug-generator.c
src/delta/delta.c
src/detect-virt/detect-virt.c
src/dissect/dissect.c
src/environment-d-generator/environment-d-generator.c
src/escape/escape.c
src/firstboot/firstboot.c
src/fsck/fsck.c
src/fstab-generator/fstab-generator.c
src/fuzz/fuzz-bus-label.c
src/fuzz/fuzz-bus-message.c
src/fuzz/fuzz-calendarspec.c
src/fuzz/fuzz-catalog.c
src/fuzz/fuzz-compress.c
src/fuzz/fuzz-dhcp-server.c
src/fuzz/fuzz-dhcp6-client.c
src/fuzz/fuzz-dns-packet.c
src/fuzz/fuzz-env-file.c
src/fuzz/fuzz-hostname-util.c
src/fuzz/fuzz-journal-remote.c
src/fuzz/fuzz-journald-audit.c
src/fuzz/fuzz-journald-kmsg.c
src/fuzz/fuzz-journald-native-fd.c
src/fuzz/fuzz-journald-native.c
src/fuzz/fuzz-journald-stream.c
src/fuzz/fuzz-journald-syslog.c
src/fuzz/fuzz-journald.c
src/fuzz/fuzz-journald.h
src/fuzz/fuzz-json.c
src/fuzz/fuzz-lldp.c
src/fuzz/fuzz-main.c
src/fuzz/fuzz-ndisc-rs.c
src/fuzz/fuzz-nspawn-oci.c
src/fuzz/fuzz-nspawn-settings.c
src/fuzz/fuzz-time-util.c
src/fuzz/fuzz-udev-database.c
src/fuzz/fuzz-udev-rule-parse-value.c [new file with mode: 0644]
src/fuzz/fuzz-udev-rules.c
src/fuzz/fuzz-unit-file.c
src/fuzz/fuzz-varlink.c
src/fuzz/fuzz-xdg-desktop.c
src/fuzz/fuzz.h
src/fuzz/meson.build
src/getty-generator/getty-generator.c
src/gpt-auto-generator/gpt-auto-generator.c
src/hibernate-resume/hibernate-resume-generator.c
src/hibernate-resume/hibernate-resume.c
src/home/home-util.c
src/home/home-util.h
src/home/homectl-fido2.c
src/home/homectl-fido2.h
src/home/homectl-pkcs11.c
src/home/homectl-pkcs11.h
src/home/homectl-recovery-key.c
src/home/homectl-recovery-key.h
src/home/homectl.c
src/home/homed-bus.c
src/home/homed-bus.h
src/home/homed-conf.c
src/home/homed-conf.h
src/home/homed-home-bus.c
src/home/homed-home-bus.h
src/home/homed-home.c
src/home/homed-home.h
src/home/homed-manager-bus.c
src/home/homed-manager-bus.h
src/home/homed-manager.c
src/home/homed-manager.h
src/home/homed-operation.c
src/home/homed-operation.h
src/home/homed-varlink.c
src/home/homed-varlink.h
src/home/homed.c
src/home/homework-cifs.c
src/home/homework-cifs.h
src/home/homework-directory.c
src/home/homework-directory.h
src/home/homework-fido2.c
src/home/homework-fido2.h
src/home/homework-fscrypt.c
src/home/homework-fscrypt.h
src/home/homework-luks.c
src/home/homework-luks.h
src/home/homework-mount.c
src/home/homework-mount.h
src/home/homework-pkcs11.c
src/home/homework-pkcs11.h
src/home/homework-quota.c
src/home/homework-quota.h
src/home/homework.c
src/home/homework.h
src/home/meson.build
src/home/modhex.c
src/home/modhex.h
src/home/org.freedesktop.home1.conf
src/home/org.freedesktop.home1.policy
src/home/org.freedesktop.home1.service
src/home/pam_systemd_home.c
src/home/pam_systemd_home.sym
src/home/test-modhex.c
src/home/user-record-pwquality.c
src/home/user-record-pwquality.h
src/home/user-record-sign.c
src/home/user-record-sign.h
src/home/user-record-util.c
src/home/user-record-util.h
src/hostname/hostnamectl.c
src/hostname/hostnamed.c
src/hostname/meson.build
src/hostname/org.freedesktop.hostname1.conf
src/hostname/org.freedesktop.hostname1.policy
src/hostname/org.freedesktop.hostname1.service
src/hwdb/hwdb.c
src/id128/id128.c
src/import/curl-util.c
src/import/curl-util.h
src/import/export-raw.c
src/import/export-raw.h
src/import/export-tar.c
src/import/export-tar.h
src/import/export.c
src/import/import-common.c
src/import/import-common.h
src/import/import-compress.c
src/import/import-compress.h
src/import/import-fs.c
src/import/import-raw.c
src/import/import-raw.h
src/import/import-tar.c
src/import/import-tar.h
src/import/import.c
src/import/importd.c
src/import/meson.build
src/import/org.freedesktop.import1.conf
src/import/org.freedesktop.import1.policy
src/import/org.freedesktop.import1.service
src/import/pull-common.c
src/import/pull-common.h
src/import/pull-job.c
src/import/pull-job.h
src/import/pull-raw.c
src/import/pull-raw.h
src/import/pull-tar.c
src/import/pull-tar.h
src/import/pull.c
src/import/qcow2-util.c
src/import/qcow2-util.h
src/import/test-qcow2.c
src/initctl/initctl.c
src/journal-remote/journal-gatewayd.c
src/journal-remote/journal-remote-main.c
src/journal-remote/journal-remote-parse.c
src/journal-remote/journal-remote-parse.h
src/journal-remote/journal-remote-write.c
src/journal-remote/journal-remote-write.h
src/journal-remote/journal-remote.c
src/journal-remote/journal-remote.h
src/journal-remote/journal-upload-journal.c
src/journal-remote/journal-upload.c
src/journal-remote/journal-upload.h
src/journal-remote/meson.build
src/journal-remote/microhttpd-util.c
src/journal-remote/microhttpd-util.h
src/journal/audit-type.c
src/journal/audit-type.h
src/journal/cat.c
src/journal/catalog.c
src/journal/catalog.h
src/journal/compress.c
src/journal/compress.h
src/journal/fsprg.c
src/journal/fsprg.h
src/journal/journal-authenticate.c
src/journal/journal-authenticate.h
src/journal/journal-def.h
src/journal/journal-file.c
src/journal/journal-file.h
src/journal/journal-internal.h
src/journal/journal-qrcode.c [deleted file]
src/journal/journal-qrcode.h [deleted file]
src/journal/journal-send.c
src/journal/journal-vacuum.c
src/journal/journal-vacuum.h
src/journal/journal-verify.c
src/journal/journal-verify.h
src/journal/journalctl.c
src/journal/journald-audit.c
src/journal/journald-audit.h
src/journal/journald-console.c
src/journal/journald-console.h
src/journal/journald-context.c
src/journal/journald-context.h
src/journal/journald-kmsg.c
src/journal/journald-kmsg.h
src/journal/journald-native.c
src/journal/journald-native.h
src/journal/journald-rate-limit.c
src/journal/journald-rate-limit.h
src/journal/journald-server.c
src/journal/journald-server.h
src/journal/journald-stream.c
src/journal/journald-stream.h
src/journal/journald-syslog.c
src/journal/journald-syslog.h
src/journal/journald-wall.c
src/journal/journald-wall.h
src/journal/journald.c
src/journal/lookup3.c
src/journal/lookup3.h
src/journal/meson.build
src/journal/mmap-cache.c
src/journal/mmap-cache.h
src/journal/pcre2-dlopen.c
src/journal/pcre2-dlopen.h
src/journal/sd-journal.c
src/journal/test-audit-type.c
src/journal/test-catalog.c
src/journal/test-compress-benchmark.c
src/journal/test-compress.c
src/journal/test-journal-config.c
src/journal/test-journal-enum.c
src/journal/test-journal-flush.c
src/journal/test-journal-init.c
src/journal/test-journal-interleaving.c
src/journal/test-journal-match.c
src/journal/test-journal-send.c
src/journal/test-journal-stream.c
src/journal/test-journal-syslog.c
src/journal/test-journal-verify.c
src/journal/test-journal.c
src/journal/test-mmap-cache.c
src/kernel-install/kernel-install
src/kernel-install/meson.build
src/libsystemd-network/arp-util.c
src/libsystemd-network/arp-util.h
src/libsystemd-network/dhcp-client-internal.h
src/libsystemd-network/dhcp-identifier.c
src/libsystemd-network/dhcp-identifier.h
src/libsystemd-network/dhcp-internal.h
src/libsystemd-network/dhcp-lease-internal.h
src/libsystemd-network/dhcp-network.c
src/libsystemd-network/dhcp-option.c
src/libsystemd-network/dhcp-packet.c
src/libsystemd-network/dhcp-protocol.h
src/libsystemd-network/dhcp-server-internal.h
src/libsystemd-network/dhcp6-internal.h
src/libsystemd-network/dhcp6-lease-internal.h
src/libsystemd-network/dhcp6-network.c
src/libsystemd-network/dhcp6-option.c
src/libsystemd-network/dhcp6-protocol.h
src/libsystemd-network/icmp6-util.c
src/libsystemd-network/icmp6-util.h
src/libsystemd-network/lldp-internal.h
src/libsystemd-network/lldp-neighbor.c
src/libsystemd-network/lldp-neighbor.h
src/libsystemd-network/lldp-network.c
src/libsystemd-network/lldp-network.h
src/libsystemd-network/meson.build
src/libsystemd-network/ndisc-internal.h
src/libsystemd-network/ndisc-router.c
src/libsystemd-network/ndisc-router.h
src/libsystemd-network/network-internal.c
src/libsystemd-network/network-internal.h
src/libsystemd-network/radv-internal.h
src/libsystemd-network/sd-dhcp-client.c
src/libsystemd-network/sd-dhcp-lease.c
src/libsystemd-network/sd-dhcp-server.c
src/libsystemd-network/sd-dhcp6-client.c
src/libsystemd-network/sd-dhcp6-lease.c
src/libsystemd-network/sd-ipv4acd.c
src/libsystemd-network/sd-ipv4ll.c
src/libsystemd-network/sd-lldp.c
src/libsystemd-network/sd-ndisc.c
src/libsystemd-network/sd-radv.c
src/libsystemd-network/test-acd.c
src/libsystemd-network/test-dhcp-client.c
src/libsystemd-network/test-dhcp-option.c
src/libsystemd-network/test-dhcp-server.c
src/libsystemd-network/test-dhcp6-client.c
src/libsystemd-network/test-ipv4ll-manual.c
src/libsystemd-network/test-ipv4ll.c
src/libsystemd-network/test-lldp.c
src/libsystemd-network/test-ndisc-ra.c
src/libsystemd-network/test-ndisc-rs.c
src/libsystemd-network/test-sd-dhcp-lease.c
src/libsystemd/disable-mempool.c
src/libsystemd/libsystemd.pc.in
src/libsystemd/libsystemd.sym
src/libsystemd/meson.build
src/libsystemd/sd-bus/bus-common-errors.c
src/libsystemd/sd-bus/bus-common-errors.h
src/libsystemd/sd-bus/bus-container.c
src/libsystemd/sd-bus/bus-container.h
src/libsystemd/sd-bus/bus-control.c
src/libsystemd/sd-bus/bus-control.h
src/libsystemd/sd-bus/bus-convenience.c
src/libsystemd/sd-bus/bus-creds.c
src/libsystemd/sd-bus/bus-creds.h
src/libsystemd/sd-bus/bus-dump.c
src/libsystemd/sd-bus/bus-dump.h
src/libsystemd/sd-bus/bus-error.c
src/libsystemd/sd-bus/bus-error.h
src/libsystemd/sd-bus/bus-gvariant.c
src/libsystemd/sd-bus/bus-gvariant.h
src/libsystemd/sd-bus/bus-internal.c
src/libsystemd/sd-bus/bus-internal.h
src/libsystemd/sd-bus/bus-introspect.c
src/libsystemd/sd-bus/bus-introspect.h
src/libsystemd/sd-bus/bus-kernel.c
src/libsystemd/sd-bus/bus-kernel.h
src/libsystemd/sd-bus/bus-match.c
src/libsystemd/sd-bus/bus-match.h
src/libsystemd/sd-bus/bus-message.c
src/libsystemd/sd-bus/bus-message.h
src/libsystemd/sd-bus/bus-objects.c
src/libsystemd/sd-bus/bus-objects.h
src/libsystemd/sd-bus/bus-protocol.h
src/libsystemd/sd-bus/bus-signature.c
src/libsystemd/sd-bus/bus-signature.h
src/libsystemd/sd-bus/bus-slot.c
src/libsystemd/sd-bus/bus-slot.h
src/libsystemd/sd-bus/bus-socket.c
src/libsystemd/sd-bus/bus-socket.h
src/libsystemd/sd-bus/bus-track.c
src/libsystemd/sd-bus/bus-track.h
src/libsystemd/sd-bus/bus-type.c
src/libsystemd/sd-bus/bus-type.h
src/libsystemd/sd-bus/sd-bus.c
src/libsystemd/sd-bus/test-bus-address.c
src/libsystemd/sd-bus/test-bus-benchmark.c
src/libsystemd/sd-bus/test-bus-chat.c
src/libsystemd/sd-bus/test-bus-cleanup.c
src/libsystemd/sd-bus/test-bus-creds.c
src/libsystemd/sd-bus/test-bus-error.c
src/libsystemd/sd-bus/test-bus-gvariant.c
src/libsystemd/sd-bus/test-bus-introspect.c
src/libsystemd/sd-bus/test-bus-marshal.c
src/libsystemd/sd-bus/test-bus-match.c
src/libsystemd/sd-bus/test-bus-objects.c
src/libsystemd/sd-bus/test-bus-queue-ref-cycle.c
src/libsystemd/sd-bus/test-bus-server.c
src/libsystemd/sd-bus/test-bus-signature.c
src/libsystemd/sd-bus/test-bus-track.c
src/libsystemd/sd-bus/test-bus-vtable.c
src/libsystemd/sd-bus/test-bus-watch-bind.c
src/libsystemd/sd-bus/test-vtable-data.h
src/libsystemd/sd-daemon/sd-daemon.c
src/libsystemd/sd-device/device-enumerator-private.h
src/libsystemd/sd-device/device-enumerator.c
src/libsystemd/sd-device/device-internal.h
src/libsystemd/sd-device/device-monitor-private.h
src/libsystemd/sd-device/device-monitor.c
src/libsystemd/sd-device/device-private.c
src/libsystemd/sd-device/device-private.h
src/libsystemd/sd-device/device-util.h
src/libsystemd/sd-device/sd-device.c
src/libsystemd/sd-device/test-sd-device-monitor.c
src/libsystemd/sd-device/test-sd-device-thread.c
src/libsystemd/sd-device/test-sd-device.c
src/libsystemd/sd-device/test-udev-device-thread.c
src/libsystemd/sd-event/event-source.h
src/libsystemd/sd-event/event-util.c
src/libsystemd/sd-event/event-util.h
src/libsystemd/sd-event/sd-event.c
src/libsystemd/sd-event/test-event.c
src/libsystemd/sd-hwdb/hwdb-internal.h
src/libsystemd/sd-hwdb/hwdb-util.c
src/libsystemd/sd-hwdb/hwdb-util.h
src/libsystemd/sd-hwdb/sd-hwdb.c
src/libsystemd/sd-id128/id128-util.c
src/libsystemd/sd-id128/id128-util.h
src/libsystemd/sd-id128/sd-id128.c
src/libsystemd/sd-login/sd-login.c
src/libsystemd/sd-login/test-login.c
src/libsystemd/sd-netlink/generic-netlink.c
src/libsystemd/sd-netlink/generic-netlink.h
src/libsystemd/sd-netlink/netlink-internal.h
src/libsystemd/sd-netlink/netlink-message.c
src/libsystemd/sd-netlink/netlink-slot.c
src/libsystemd/sd-netlink/netlink-slot.h
src/libsystemd/sd-netlink/netlink-socket.c
src/libsystemd/sd-netlink/netlink-types.c
src/libsystemd/sd-netlink/netlink-types.h
src/libsystemd/sd-netlink/netlink-util.c
src/libsystemd/sd-netlink/netlink-util.h
src/libsystemd/sd-netlink/rtnl-message.c
src/libsystemd/sd-netlink/sd-netlink.c
src/libsystemd/sd-netlink/test-netlink.c
src/libsystemd/sd-network/network-util.c
src/libsystemd/sd-network/network-util.h
src/libsystemd/sd-network/sd-network.c
src/libsystemd/sd-path/sd-path.c
src/libsystemd/sd-resolve/resolve-private.h
src/libsystemd/sd-resolve/sd-resolve.c
src/libsystemd/sd-resolve/test-resolve.c
src/libsystemd/sd-utf8/sd-utf8.c
src/libudev/libudev-device-internal.h
src/libudev/libudev-device.c
src/libudev/libudev-enumerate.c
src/libudev/libudev-hwdb.c
src/libudev/libudev-list-internal.h
src/libudev/libudev-list.c
src/libudev/libudev-monitor.c
src/libudev/libudev-queue.c
src/libudev/libudev-util.c
src/libudev/libudev-util.h
src/libudev/libudev.c
src/libudev/libudev.h
src/libudev/libudev.pc.in
src/libudev/libudev.sym
src/libudev/meson.build
src/locale/keymap-util.c
src/locale/keymap-util.h
src/locale/localectl.c
src/locale/localed.c
src/locale/meson.build
src/locale/org.freedesktop.locale1.conf
src/locale/org.freedesktop.locale1.policy
src/locale/org.freedesktop.locale1.service
src/locale/test-keymap-util.c
src/login/70-power-switch.rules
src/login/70-uaccess.rules.m4
src/login/71-seat.rules.in
src/login/73-seat-late.rules.m4
src/login/inhibit.c
src/login/loginctl.c
src/login/logind-acl.c
src/login/logind-acl.h
src/login/logind-action.c
src/login/logind-action.h
src/login/logind-brightness.c
src/login/logind-brightness.h
src/login/logind-button.c
src/login/logind-button.h
src/login/logind-core.c
src/login/logind-dbus.c
src/login/logind-dbus.h
src/login/logind-device.c
src/login/logind-device.h
src/login/logind-inhibit.c
src/login/logind-inhibit.h
src/login/logind-seat-dbus.c
src/login/logind-seat-dbus.h
src/login/logind-seat.c
src/login/logind-seat.h
src/login/logind-session-dbus.c
src/login/logind-session-dbus.h
src/login/logind-session-device.c
src/login/logind-session-device.h
src/login/logind-session.c
src/login/logind-session.h
src/login/logind-user-dbus.c
src/login/logind-user-dbus.h
src/login/logind-user.c
src/login/logind-user.h
src/login/logind-utmp.c
src/login/logind.c
src/login/logind.h
src/login/meson.build
src/login/org.freedesktop.login1.conf
src/login/org.freedesktop.login1.policy
src/login/org.freedesktop.login1.service
src/login/pam_systemd.c
src/login/pam_systemd.sym
src/login/sysfs-show.c
src/login/sysfs-show.h
src/login/test-inhibit.c
src/login/test-login-shared.c
src/login/test-login-tables.c
src/login/user-runtime-dir.c
src/machine-id-setup/machine-id-setup-main.c
src/machine/image-dbus.c
src/machine/image-dbus.h
src/machine/machine-dbus.c
src/machine/machine-dbus.h
src/machine/machine.c
src/machine/machine.h
src/machine/machinectl.c
src/machine/machined-core.c
src/machine/machined-dbus.c
src/machine/machined-varlink.c
src/machine/machined-varlink.h
src/machine/machined.c
src/machine/machined.h
src/machine/meson.build
src/machine/operation.c
src/machine/operation.h
src/machine/org.freedesktop.machine1.policy
src/machine/org.freedesktop.machine1.service
src/machine/test-machine-tables.c
src/modules-load/modules-load.c
src/mount/mount-tool.c
src/network/fuzz-netdev-parser.c
src/network/fuzz-network-parser.c
src/network/generator/main.c
src/network/generator/network-generator.c
src/network/generator/network-generator.h
src/network/generator/test-network-generator.c
src/network/meson.build
src/network/netdev/bareudp.c
src/network/netdev/bareudp.h
src/network/netdev/bond.c
src/network/netdev/bond.h
src/network/netdev/bridge.c
src/network/netdev/bridge.h
src/network/netdev/dummy.c
src/network/netdev/dummy.h
src/network/netdev/fou-tunnel.c
src/network/netdev/fou-tunnel.h
src/network/netdev/geneve.c
src/network/netdev/geneve.h
src/network/netdev/ifb.c
src/network/netdev/ifb.h
src/network/netdev/ipvlan.c
src/network/netdev/ipvlan.h
src/network/netdev/l2tp-tunnel.c
src/network/netdev/l2tp-tunnel.h
src/network/netdev/macsec.c
src/network/netdev/macsec.h
src/network/netdev/macvlan.c
src/network/netdev/macvlan.h
src/network/netdev/netdev.c
src/network/netdev/netdev.h
src/network/netdev/netdevsim.c
src/network/netdev/netdevsim.h
src/network/netdev/nlmon.c
src/network/netdev/nlmon.h
src/network/netdev/tunnel.c
src/network/netdev/tunnel.h
src/network/netdev/tuntap.c
src/network/netdev/tuntap.h
src/network/netdev/vcan.c
src/network/netdev/vcan.h
src/network/netdev/veth.c
src/network/netdev/veth.h
src/network/netdev/vlan.c
src/network/netdev/vlan.h
src/network/netdev/vrf.c
src/network/netdev/vrf.h
src/network/netdev/vxcan.c
src/network/netdev/vxcan.h
src/network/netdev/vxlan.c
src/network/netdev/vxlan.h
src/network/netdev/wireguard.c
src/network/netdev/wireguard.h
src/network/netdev/xfrm.c
src/network/netdev/xfrm.h
src/network/networkctl.c
src/network/networkd-address-label.c
src/network/networkd-address-label.h
src/network/networkd-address-pool.c
src/network/networkd-address-pool.h
src/network/networkd-address.c
src/network/networkd-address.h
src/network/networkd-brvlan.c
src/network/networkd-brvlan.h
src/network/networkd-can.c
src/network/networkd-can.h
src/network/networkd-conf.c
src/network/networkd-conf.h
src/network/networkd-dhcp-common.c
src/network/networkd-dhcp-common.h
src/network/networkd-dhcp-server-bus.c
src/network/networkd-dhcp-server-bus.h
src/network/networkd-dhcp-server.c
src/network/networkd-dhcp-server.h
src/network/networkd-dhcp4.c
src/network/networkd-dhcp4.h
src/network/networkd-dhcp6.c
src/network/networkd-dhcp6.h
src/network/networkd-fdb.c
src/network/networkd-fdb.h
src/network/networkd-ipv4ll.c
src/network/networkd-ipv4ll.h
src/network/networkd-ipv6-proxy-ndp.c
src/network/networkd-ipv6-proxy-ndp.h
src/network/networkd-link-bus.c
src/network/networkd-link-bus.h
src/network/networkd-link.c
src/network/networkd-link.h
src/network/networkd-lldp-rx.c
src/network/networkd-lldp-rx.h
src/network/networkd-lldp-tx.c
src/network/networkd-lldp-tx.h
src/network/networkd-manager-bus.c
src/network/networkd-manager-bus.h
src/network/networkd-manager.c
src/network/networkd-manager.h
src/network/networkd-mdb.c
src/network/networkd-mdb.h
src/network/networkd-ndisc.c
src/network/networkd-ndisc.h
src/network/networkd-neighbor.c
src/network/networkd-neighbor.h
src/network/networkd-network-bus.c
src/network/networkd-network-bus.h
src/network/networkd-network.c
src/network/networkd-network.h
src/network/networkd-nexthop.c
src/network/networkd-nexthop.h
src/network/networkd-radv.c
src/network/networkd-radv.h
src/network/networkd-route.c
src/network/networkd-route.h
src/network/networkd-routing-policy-rule.c
src/network/networkd-routing-policy-rule.h
src/network/networkd-speed-meter.c
src/network/networkd-speed-meter.h
src/network/networkd-sriov.c
src/network/networkd-sriov.h
src/network/networkd-sysctl.c
src/network/networkd-sysctl.h
src/network/networkd-util.c
src/network/networkd-util.h
src/network/networkd-wifi.c
src/network/networkd-wifi.h
src/network/networkd.c
src/network/org.freedesktop.network1.policy
src/network/org.freedesktop.network1.service
src/network/tc/cake.c
src/network/tc/cake.h
src/network/tc/codel.c
src/network/tc/codel.h
src/network/tc/drr.c
src/network/tc/drr.h
src/network/tc/ets.c
src/network/tc/ets.h
src/network/tc/fifo.c
src/network/tc/fifo.h
src/network/tc/fq-codel.c
src/network/tc/fq-codel.h
src/network/tc/fq-pie.c
src/network/tc/fq-pie.h
src/network/tc/fq.c
src/network/tc/fq.h
src/network/tc/gred.c
src/network/tc/gred.h
src/network/tc/hhf.c
src/network/tc/hhf.h
src/network/tc/htb.c
src/network/tc/htb.h
src/network/tc/netem.c
src/network/tc/netem.h
src/network/tc/pie.c
src/network/tc/pie.h
src/network/tc/qdisc.c
src/network/tc/qdisc.h
src/network/tc/qfq.c
src/network/tc/qfq.h
src/network/tc/sfb.c
src/network/tc/sfb.h
src/network/tc/sfq.c
src/network/tc/sfq.h
src/network/tc/tbf.c
src/network/tc/tbf.h
src/network/tc/tc-util.c
src/network/tc/tc-util.h
src/network/tc/tc.c
src/network/tc/tc.h
src/network/tc/tclass.c
src/network/tc/tclass.h
src/network/tc/teql.c
src/network/tc/teql.h
src/network/test-network-tables.c
src/network/test-network.c
src/network/test-networkd-conf.c
src/network/test-routing-policy-rule.c
src/network/wait-online/link.c
src/network/wait-online/link.h
src/network/wait-online/manager.c
src/network/wait-online/manager.h
src/network/wait-online/wait-online.c
src/notify/notify.c
src/nspawn/meson.build
src/nspawn/nspawn-cgroup.c
src/nspawn/nspawn-cgroup.h
src/nspawn/nspawn-creds.c
src/nspawn/nspawn-creds.h
src/nspawn/nspawn-def.h
src/nspawn/nspawn-expose-ports.c
src/nspawn/nspawn-expose-ports.h
src/nspawn/nspawn-mount.c
src/nspawn/nspawn-mount.h
src/nspawn/nspawn-network.c
src/nspawn/nspawn-network.h
src/nspawn/nspawn-oci.c
src/nspawn/nspawn-oci.h
src/nspawn/nspawn-patch-uid.c
src/nspawn/nspawn-patch-uid.h
src/nspawn/nspawn-register.c
src/nspawn/nspawn-register.h
src/nspawn/nspawn-seccomp.c
src/nspawn/nspawn-seccomp.h
src/nspawn/nspawn-settings.c
src/nspawn/nspawn-settings.h
src/nspawn/nspawn-setuid.c
src/nspawn/nspawn-setuid.h
src/nspawn/nspawn-stub-pid1.c
src/nspawn/nspawn-stub-pid1.h
src/nspawn/nspawn.c
src/nspawn/test-nspawn-tables.c
src/nspawn/test-patch-uid.c
src/nss-myhostname/nss-myhostname.c
src/nss-myhostname/nss-myhostname.sym
src/nss-mymachines/nss-mymachines.c
src/nss-mymachines/nss-mymachines.sym
src/nss-resolve/nss-resolve.c
src/nss-resolve/nss-resolve.sym
src/nss-systemd/nss-systemd.c
src/nss-systemd/nss-systemd.h
src/nss-systemd/nss-systemd.sym
src/nss-systemd/userdb-glue.c
src/nss-systemd/userdb-glue.h
src/oom/meson.build
src/oom/oomctl.c
src/oom/oomd-manager-bus.c
src/oom/oomd-manager-bus.h
src/oom/oomd-manager.c
src/oom/oomd-manager.h
src/oom/oomd-util.c
src/oom/oomd-util.h
src/oom/oomd.c
src/oom/org.freedesktop.oom1.conf
src/oom/org.freedesktop.oom1.service
src/oom/test-oomd-util.c
src/partition/growfs.c
src/partition/makefs.c
src/partition/meson.build
src/partition/repart.c
src/path/path.c
src/portable/meson.build
src/portable/org.freedesktop.portable1.conf
src/portable/org.freedesktop.portable1.policy
src/portable/org.freedesktop.portable1.service
src/portable/portable.c
src/portable/portable.h
src/portable/portablectl.c
src/portable/portabled-bus.c
src/portable/portabled-bus.h
src/portable/portabled-image-bus.c
src/portable/portabled-image-bus.h
src/portable/portabled-image.c
src/portable/portabled-image.h
src/portable/portabled-operation.c
src/portable/portabled-operation.h
src/portable/portabled.c
src/portable/portabled.h
src/pstore/meson.build
src/pstore/pstore.c
src/quotacheck/quotacheck.c
src/random-seed/random-seed.c
src/rc-local-generator/rc-local-generator.c
src/remount-fs/remount-fs.c
src/reply-password/reply-password.c
src/resolve/dns-type.c
src/resolve/dns-type.h
src/resolve/meson.build
src/resolve/org.freedesktop.resolve1.policy
src/resolve/org.freedesktop.resolve1.service
src/resolve/resolvconf-compat.c
src/resolve/resolvconf-compat.h
src/resolve/resolvectl.c
src/resolve/resolvectl.h
src/resolve/resolved-bus.c
src/resolve/resolved-bus.h
src/resolve/resolved-conf.c
src/resolve/resolved-conf.h
src/resolve/resolved-def.h
src/resolve/resolved-dns-answer.c
src/resolve/resolved-dns-answer.h
src/resolve/resolved-dns-cache.c
src/resolve/resolved-dns-cache.h
src/resolve/resolved-dns-dnssec.c
src/resolve/resolved-dns-dnssec.h
src/resolve/resolved-dns-packet.c
src/resolve/resolved-dns-packet.h
src/resolve/resolved-dns-query.c
src/resolve/resolved-dns-query.h
src/resolve/resolved-dns-question.c
src/resolve/resolved-dns-question.h
src/resolve/resolved-dns-rr.c
src/resolve/resolved-dns-rr.h
src/resolve/resolved-dns-scope.c
src/resolve/resolved-dns-scope.h
src/resolve/resolved-dns-search-domain.c
src/resolve/resolved-dns-search-domain.h
src/resolve/resolved-dns-server.c
src/resolve/resolved-dns-server.h
src/resolve/resolved-dns-stream.c
src/resolve/resolved-dns-stream.h
src/resolve/resolved-dns-stub.c
src/resolve/resolved-dns-stub.h
src/resolve/resolved-dns-synthesize.c
src/resolve/resolved-dns-synthesize.h
src/resolve/resolved-dns-transaction.c
src/resolve/resolved-dns-transaction.h
src/resolve/resolved-dns-trust-anchor.c
src/resolve/resolved-dns-trust-anchor.h
src/resolve/resolved-dns-zone.c
src/resolve/resolved-dns-zone.h
src/resolve/resolved-dnssd-bus.c
src/resolve/resolved-dnssd-bus.h
src/resolve/resolved-dnssd.c
src/resolve/resolved-dnssd.h
src/resolve/resolved-dnstls-gnutls.c
src/resolve/resolved-dnstls-gnutls.h
src/resolve/resolved-dnstls-openssl.c
src/resolve/resolved-dnstls-openssl.h
src/resolve/resolved-dnstls.h
src/resolve/resolved-etc-hosts.c
src/resolve/resolved-etc-hosts.h
src/resolve/resolved-link-bus.c
src/resolve/resolved-link-bus.h
src/resolve/resolved-link.c
src/resolve/resolved-link.h
src/resolve/resolved-llmnr.c
src/resolve/resolved-llmnr.h
src/resolve/resolved-manager.c
src/resolve/resolved-manager.h
src/resolve/resolved-mdns.c
src/resolve/resolved-mdns.h
src/resolve/resolved-resolv-conf.c
src/resolve/resolved-resolv-conf.h
src/resolve/resolved-varlink.c
src/resolve/resolved-varlink.h
src/resolve/resolved.c
src/resolve/test-dns-packet.c
src/resolve/test-dnssec-complex.c
src/resolve/test-dnssec.c
src/resolve/test-resolve-tables.c
src/resolve/test-resolved-etc-hosts.c
src/resolve/test-resolved-packet.c
src/rfkill/rfkill.c
src/run-generator/run-generator.c
src/run/run.c
src/shared/acl-util.c
src/shared/acl-util.h
src/shared/acpi-fpdt.c
src/shared/acpi-fpdt.h
src/shared/apparmor-util.c
src/shared/apparmor-util.h
src/shared/ask-password-api.c
src/shared/ask-password-api.h
src/shared/barrier.c
src/shared/barrier.h
src/shared/base-filesystem.c
src/shared/base-filesystem.h
src/shared/binfmt-util.c
src/shared/binfmt-util.h
src/shared/bitmap.c
src/shared/bitmap.h
src/shared/blkid-util.h
src/shared/bond-util.c
src/shared/bond-util.h
src/shared/boot-timestamps.c
src/shared/boot-timestamps.h
src/shared/bootspec.c
src/shared/bootspec.h
src/shared/bpf-program.c
src/shared/bpf-program.h
src/shared/bridge-util.c
src/shared/bridge-util.h
src/shared/bus-get-properties.c
src/shared/bus-get-properties.h
src/shared/bus-locator.c
src/shared/bus-locator.h
src/shared/bus-log-control-api.c
src/shared/bus-log-control-api.h
src/shared/bus-map-properties.c
src/shared/bus-map-properties.h
src/shared/bus-message-util.c
src/shared/bus-message-util.h
src/shared/bus-object.c
src/shared/bus-object.h
src/shared/bus-polkit.c
src/shared/bus-polkit.h
src/shared/bus-print-properties.c
src/shared/bus-print-properties.h
src/shared/bus-unit-procs.c
src/shared/bus-unit-procs.h
src/shared/bus-unit-util.c
src/shared/bus-unit-util.h
src/shared/bus-util.c
src/shared/bus-util.h
src/shared/bus-wait-for-jobs.c
src/shared/bus-wait-for-jobs.h
src/shared/bus-wait-for-units.c
src/shared/bus-wait-for-units.h
src/shared/calendarspec.c
src/shared/calendarspec.h
src/shared/cgroup-setup.c
src/shared/cgroup-setup.h
src/shared/cgroup-show.c
src/shared/cgroup-show.h
src/shared/chown-recursive.c
src/shared/chown-recursive.h
src/shared/clean-ipc.c
src/shared/clean-ipc.h
src/shared/clock-util.c
src/shared/clock-util.h
src/shared/condition.c
src/shared/condition.h
src/shared/conf-parser.c
src/shared/conf-parser.h
src/shared/coredump-util.c
src/shared/coredump-util.h
src/shared/cpu-set-util.c
src/shared/cpu-set-util.h
src/shared/cryptsetup-util.c
src/shared/cryptsetup-util.h
src/shared/daemon-util.h
src/shared/dev-setup.c
src/shared/dev-setup.h
src/shared/dissect-image.c
src/shared/dissect-image.h
src/shared/dm-util.c
src/shared/dm-util.h
src/shared/dns-domain.c
src/shared/dns-domain.h
src/shared/dropin.c
src/shared/dropin.h
src/shared/efi-loader.c
src/shared/efi-loader.h
src/shared/enable-mempool.c
src/shared/env-file-label.c
src/shared/env-file-label.h
src/shared/ethtool-util.c
src/shared/ethtool-util.h
src/shared/exec-util.c
src/shared/exec-util.h
src/shared/exit-status.c
src/shared/exit-status.h
src/shared/fdset.c
src/shared/fdset.h
src/shared/fileio-label.c
src/shared/fileio-label.h
src/shared/firewall-util.c
src/shared/firewall-util.h
src/shared/format-table.c
src/shared/format-table.h
src/shared/fsck-util.h
src/shared/fstab-util.c
src/shared/fstab-util.h
src/shared/generator.c
src/shared/generator.h
src/shared/geneve-util.c
src/shared/geneve-util.h
src/shared/gpt.c
src/shared/gpt.h
src/shared/group-record.c
src/shared/group-record.h
src/shared/id128-print.c
src/shared/id128-print.h
src/shared/idn-util.c
src/shared/idn-util.h
src/shared/ima-util.c
src/shared/ima-util.h
src/shared/import-util.c
src/shared/import-util.h
src/shared/initreq.h
src/shared/install-printf.c
src/shared/install-printf.h
src/shared/install.c
src/shared/install.h
src/shared/ip-protocol-list.c
src/shared/ip-protocol-list.h
src/shared/ipvlan-util.c
src/shared/ipvlan-util.h
src/shared/journal-importer.c
src/shared/journal-importer.h
src/shared/journal-util.c
src/shared/journal-util.h
src/shared/json-internal.h
src/shared/json.c
src/shared/json.h
src/shared/libcrypt-util.c
src/shared/libcrypt-util.h
src/shared/libmount-util.h
src/shared/linux/nl80211.h
src/shared/local-addresses.c
src/shared/local-addresses.h
src/shared/lockfile-util.c
src/shared/lockfile-util.h
src/shared/log-link.h
src/shared/logs-show.c
src/shared/logs-show.h
src/shared/loop-util.c
src/shared/loop-util.h
src/shared/machine-image.c
src/shared/machine-image.h
src/shared/machine-pool.c
src/shared/machine-pool.h
src/shared/macvlan-util.c
src/shared/macvlan-util.h
src/shared/main-func.h
src/shared/meson.build
src/shared/mkfs-util.c
src/shared/mkfs-util.h
src/shared/module-util.c
src/shared/module-util.h
src/shared/mount-util.c
src/shared/mount-util.h
src/shared/netif-naming-scheme.c
src/shared/netif-naming-scheme.h
src/shared/nscd-flush.c
src/shared/nscd-flush.h
src/shared/nsflags.c
src/shared/nsflags.h
src/shared/numa-util.c
src/shared/numa-util.h
src/shared/offline-passwd.c
src/shared/offline-passwd.h
src/shared/openssl-util.h
src/shared/os-util.c
src/shared/os-util.h
src/shared/output-mode.c
src/shared/output-mode.h
src/shared/pager.c
src/shared/pager.h
src/shared/pam-util.c
src/shared/pam-util.h
src/shared/pe-header.h
src/shared/pkcs11-util.c
src/shared/pkcs11-util.h
src/shared/pretty-print.c
src/shared/pretty-print.h
src/shared/psi-util.c
src/shared/psi-util.h
src/shared/ptyfwd.c
src/shared/ptyfwd.h
src/shared/pwquality-util.c
src/shared/pwquality-util.h
src/shared/qrcode-util.c
src/shared/qrcode-util.h
src/shared/reboot-util.c
src/shared/reboot-util.h
src/shared/resize-fs.c
src/shared/resize-fs.h
src/shared/resolve-util.c
src/shared/resolve-util.h
src/shared/seccomp-util.c
src/shared/seccomp-util.h
src/shared/securebits-util.c
src/shared/securebits-util.h
src/shared/serialize.c
src/shared/serialize.h
src/shared/service-util.c
src/shared/service-util.h
src/shared/sleep-config.c
src/shared/sleep-config.h
src/shared/socket-netlink.c
src/shared/socket-netlink.h
src/shared/spawn-ask-password-agent.c
src/shared/spawn-ask-password-agent.h
src/shared/spawn-polkit-agent.c
src/shared/spawn-polkit-agent.h
src/shared/specifier.c
src/shared/specifier.h
src/shared/switch-root.c
src/shared/switch-root.h
src/shared/syscall-names.text
src/shared/sysctl-util.c
src/shared/sysctl-util.h
src/shared/test-tables.h
src/shared/tests.c
src/shared/tests.h
src/shared/tmpfile-util-label.c
src/shared/tmpfile-util-label.h
src/shared/tomoyo-util.c
src/shared/tomoyo-util.h
src/shared/udev-util.c
src/shared/udev-util.h
src/shared/uid-range.c
src/shared/uid-range.h
src/shared/unit-file.c
src/shared/unit-file.h
src/shared/user-record-nss.c
src/shared/user-record-nss.h
src/shared/user-record-show.c
src/shared/user-record-show.h
src/shared/user-record.c
src/shared/user-record.h
src/shared/userdb.c
src/shared/userdb.h
src/shared/utmp-wtmp.c
src/shared/utmp-wtmp.h
src/shared/varlink.c
src/shared/varlink.h
src/shared/verbs.c
src/shared/verbs.h
src/shared/vlan-util.c
src/shared/vlan-util.h
src/shared/volatile-util.c
src/shared/volatile-util.h
src/shared/watchdog.c
src/shared/watchdog.h
src/shared/web-util.c
src/shared/web-util.h
src/shared/wifi-util.c
src/shared/wifi-util.h
src/shared/xml.c
src/shared/xml.h
src/shutdown/shutdown.c
src/shutdown/umount.c
src/shutdown/umount.h
src/sleep/sleep.c
src/socket-proxy/socket-proxyd.c
src/stdio-bridge/stdio-bridge.c
src/sulogin-shell/sulogin-shell.c
src/sysctl/sysctl.c
src/system-update-generator/system-update-generator.c
src/systemctl/systemctl-add-dependency.c
src/systemctl/systemctl-add-dependency.h
src/systemctl/systemctl-cancel-job.c
src/systemctl/systemctl-cancel-job.h
src/systemctl/systemctl-clean-or-freeze.c
src/systemctl/systemctl-clean-or-freeze.h
src/systemctl/systemctl-compat-halt.c
src/systemctl/systemctl-compat-halt.h
src/systemctl/systemctl-compat-runlevel.c
src/systemctl/systemctl-compat-runlevel.h
src/systemctl/systemctl-compat-shutdown.c
src/systemctl/systemctl-compat-shutdown.h
src/systemctl/systemctl-compat-telinit.c
src/systemctl/systemctl-compat-telinit.h
src/systemctl/systemctl-daemon-reload.c
src/systemctl/systemctl-daemon-reload.h
src/systemctl/systemctl-edit.c
src/systemctl/systemctl-edit.h
src/systemctl/systemctl-enable.c
src/systemctl/systemctl-enable.h
src/systemctl/systemctl-is-active.c
src/systemctl/systemctl-is-active.h
src/systemctl/systemctl-is-enabled.c
src/systemctl/systemctl-is-enabled.h
src/systemctl/systemctl-is-system-running.c
src/systemctl/systemctl-is-system-running.h
src/systemctl/systemctl-kill.c
src/systemctl/systemctl-kill.h
src/systemctl/systemctl-list-dependencies.c
src/systemctl/systemctl-list-dependencies.h
src/systemctl/systemctl-list-jobs.c
src/systemctl/systemctl-list-jobs.h
src/systemctl/systemctl-list-machines.c
src/systemctl/systemctl-list-machines.h
src/systemctl/systemctl-list-unit-files.c
src/systemctl/systemctl-list-unit-files.h
src/systemctl/systemctl-list-units.c
src/systemctl/systemctl-list-units.h
src/systemctl/systemctl-log-setting.c
src/systemctl/systemctl-log-setting.h
src/systemctl/systemctl-logind.c
src/systemctl/systemctl-logind.h
src/systemctl/systemctl-preset-all.c
src/systemctl/systemctl-preset-all.h
src/systemctl/systemctl-reset-failed.c
src/systemctl/systemctl-reset-failed.h
src/systemctl/systemctl-service-watchdogs.c
src/systemctl/systemctl-service-watchdogs.h
src/systemctl/systemctl-set-default.c
src/systemctl/systemctl-set-default.h
src/systemctl/systemctl-set-environment.c
src/systemctl/systemctl-set-environment.h
src/systemctl/systemctl-set-property.c
src/systemctl/systemctl-set-property.h
src/systemctl/systemctl-show.c
src/systemctl/systemctl-show.h
src/systemctl/systemctl-start-special.c
src/systemctl/systemctl-start-special.h
src/systemctl/systemctl-start-unit.c
src/systemctl/systemctl-start-unit.h
src/systemctl/systemctl-switch-root.c
src/systemctl/systemctl-switch-root.h
src/systemctl/systemctl-sysv-compat.c
src/systemctl/systemctl-sysv-compat.h
src/systemctl/systemctl-trivial-method.c
src/systemctl/systemctl-trivial-method.h
src/systemctl/systemctl-util.c
src/systemctl/systemctl-util.h
src/systemctl/systemctl.c
src/systemctl/systemctl.h
src/systemd/_sd-common.h
src/systemd/meson.build
src/systemd/sd-bus-protocol.h
src/systemd/sd-bus-vtable.h
src/systemd/sd-bus.h
src/systemd/sd-daemon.h
src/systemd/sd-device.h
src/systemd/sd-dhcp-client.h
src/systemd/sd-dhcp-lease.h
src/systemd/sd-dhcp-option.h
src/systemd/sd-dhcp-server.h
src/systemd/sd-dhcp6-client.h
src/systemd/sd-dhcp6-lease.h
src/systemd/sd-dhcp6-option.h
src/systemd/sd-event.h
src/systemd/sd-hwdb.h
src/systemd/sd-id128.h
src/systemd/sd-ipv4acd.h
src/systemd/sd-ipv4ll.h
src/systemd/sd-journal.h
src/systemd/sd-lldp.h
src/systemd/sd-login.h
src/systemd/sd-messages.h
src/systemd/sd-ndisc.h
src/systemd/sd-netlink.h
src/systemd/sd-network.h
src/systemd/sd-path.h
src/systemd/sd-radv.h
src/systemd/sd-resolve.h
src/systemd/sd-utf8.h
src/sysusers/sysusers.c
src/sysv-generator/sysv-generator.c
src/test/meson.build
src/test/test-acl-util.c
src/test/test-af-list.c
src/test/test-alloc-util.c
src/test/test-architecture.c
src/test/test-arphrd-list.c
src/test/test-ask-password-api.c
src/test/test-async.c
src/test/test-barrier.c
src/test/test-bitmap.c
src/test/test-boot-timestamps.c
src/test/test-bpf-devices.c
src/test/test-bpf-firewall.c
src/test/test-btrfs.c
src/test/test-bus-util.c
src/test/test-calendarspec.c
src/test/test-cap-list.c
src/test/test-capability.c
src/test/test-cgroup-cpu.c
src/test/test-cgroup-mask.c
src/test/test-cgroup-setup.c
src/test/test-cgroup-unit-default.c
src/test/test-cgroup-util.c
src/test/test-cgroup.c
src/test/test-chase-symlinks.c
src/test/test-chown-rec.c
src/test/test-clock.c
src/test/test-condition.c
src/test/test-conf-files.c
src/test/test-conf-parser.c
src/test/test-copy.c
src/test/test-coredump-util.c
src/test/test-cpu-set-util.c
src/test/test-daemon.c
src/test/test-date.c
src/test/test-dev-setup.c
src/test/test-device-nodes.c
src/test/test-dlopen.c
src/test/test-dns-domain.c
src/test/test-ellipsize.c
src/test/test-emergency-action.c
src/test/test-engine.c
src/test/test-env-file.c
src/test/test-env-util.c
src/test/test-escape.c
src/test/test-exec-util.c
src/test/test-execute.c
src/test/test-exit-status.c
src/test/test-extract-word.c
src/test/test-fd-util.c
src/test/test-fdset.c
src/test/test-fileio.c
src/test/test-firewall-util.c
src/test/test-format-table.c
src/test/test-format-util.c
src/test/test-fs-util.c
src/test/test-fstab-util.c
src/test/test-gcrypt-util.c
src/test/test-glob-util.c
src/test/test-hash.c
src/test/test-hashmap-plain.c
src/test/test-hashmap.c
src/test/test-hexdecoct.c
src/test/test-hostname-util.c
src/test/test-hostname.c
src/test/test-id128.c
src/test/test-in-addr-util.c
src/test/test-install-root.c
src/test/test-install.c
src/test/test-io-util.c
src/test/test-ip-protocol-list.c
src/test/test-ipcrm.c
src/test/test-job-type.c
src/test/test-journal-importer.c
src/test/test-json.c
src/test/test-libcrypt-util.c
src/test/test-libmount.c
src/test/test-libudev.c
src/test/test-list.c
src/test/test-load-fragment.c
src/test/test-local-addresses.c
src/test/test-locale-util.c
src/test/test-log.c
src/test/test-loop-block.c [new file with mode: 0644]
src/test/test-loopback.c
src/test/test-mount-util.c
src/test/test-mountpoint-util.c
src/test/test-namespace.c
src/test/test-netlink-manual.c
src/test/test-ns.c
src/test/test-nscd-flush.c
src/test/test-nss.c
src/test/test-offline-passwd.c
src/test/test-ordered-set.c
src/test/test-os-util.c
src/test/test-parse-util.c
src/test/test-path-lookup.c
src/test/test-path-util.c
src/test/test-path.c
src/test/test-pretty-print.c
src/test/test-prioq.c
src/test/test-proc-cmdline.c
src/test/test-process-util.c
src/test/test-procfs-util.c
src/test/test-psi-util.c
src/test/test-qrcode-util.c [new file with mode: 0644]
src/test/test-random-util.c
src/test/test-ratelimit.c
src/test/test-replace-var.c
src/test/test-rlimit-util.c
src/test/test-rm-rf.c
src/test/test-sched-prio.c
src/test/test-sd-hwdb.c
src/test/test-sd-path.c
src/test/test-seccomp.c
src/test/test-selinux.c
src/test/test-serialize.c
src/test/test-set-disable-mempool.c
src/test/test-set.c
src/test/test-sigbus.c
src/test/test-signal-util.c
src/test/test-siphash24.c
src/test/test-sizeof.c
src/test/test-sleep.c
src/test/test-socket-netlink.c
src/test/test-socket-util.c
src/test/test-specifier.c
src/test/test-stat-util.c
src/test/test-static-destruct.c
src/test/test-strbuf.c
src/test/test-string-util.c
src/test/test-strip-tab-ansi.c
src/test/test-strv.c
src/test/test-strxcpyx.c
src/test/test-sysctl-util.c
src/test/test-systemd-tmpfiles.py
src/test/test-tables.c
src/test/test-terminal-util.c
src/test/test-time-util.c
src/test/test-tmpfiles.c
src/test/test-udev-util.c [new file with mode: 0644]
src/test/test-udev.c
src/test/test-uid-range.c
src/test/test-umask-util.c
src/test/test-umount.c
src/test/test-unaligned.c
src/test/test-unit-file.c
src/test/test-unit-name.c
src/test/test-user-record.c
src/test/test-user-util.c
src/test/test-utf8.c
src/test/test-util.c
src/test/test-varlink.c
src/test/test-verbs.c
src/test/test-watch-pid.c
src/test/test-watchdog.c
src/test/test-web-util.c
src/test/test-xattr-util.c
src/test/test-xdg-autostart.c
src/test/test-xml.c
src/time-wait-sync/time-wait-sync.c
src/timedate/meson.build
src/timedate/org.freedesktop.timedate1.conf
src/timedate/org.freedesktop.timedate1.policy
src/timedate/org.freedesktop.timedate1.service
src/timedate/timedatectl.c
src/timedate/timedated.c
src/timesync/meson.build
src/timesync/org.freedesktop.timesync1.service
src/timesync/test-timesync.c
src/timesync/timesyncd-bus.c
src/timesync/timesyncd-bus.h
src/timesync/timesyncd-conf.c
src/timesync/timesyncd-conf.h
src/timesync/timesyncd-manager.c
src/timesync/timesyncd-manager.h
src/timesync/timesyncd-ntp-message.h
src/timesync/timesyncd-server.c
src/timesync/timesyncd-server.h
src/timesync/timesyncd.c
src/tmpfiles/meson.build
src/tmpfiles/tmpfiles.c
src/tty-ask-password-agent/tty-ask-password-agent.c
src/udev/ata_id/ata_id.c
src/udev/cdrom_id/cdrom_id.c
src/udev/fido_id/fido_id.c
src/udev/fido_id/fido_id_desc.c
src/udev/fido_id/fido_id_desc.h
src/udev/fido_id/fuzz-fido-id-desc.c
src/udev/fido_id/test-fido-id-desc.c
src/udev/meson.build
src/udev/mtd_probe/mtd_probe.c
src/udev/mtd_probe/mtd_probe.h
src/udev/mtd_probe/probe_smartmedia.c
src/udev/net/fuzz-link-parser.c
src/udev/net/link-config.c
src/udev/net/link-config.h
src/udev/scsi_id/scsi.h
src/udev/scsi_id/scsi_id.c
src/udev/scsi_id/scsi_id.h
src/udev/scsi_id/scsi_serial.c
src/udev/udev-builtin-blkid.c
src/udev/udev-builtin-btrfs.c
src/udev/udev-builtin-hwdb.c
src/udev/udev-builtin-input_id.c
src/udev/udev-builtin-keyboard.c
src/udev/udev-builtin-kmod.c
src/udev/udev-builtin-net_id.c
src/udev/udev-builtin-net_setup_link.c
src/udev/udev-builtin-path_id.c
src/udev/udev-builtin-uaccess.c
src/udev/udev-builtin-usb_id.c
src/udev/udev-builtin.c
src/udev/udev-builtin.h
src/udev/udev-ctrl.c
src/udev/udev-ctrl.h
src/udev/udev-event.c
src/udev/udev-event.h
src/udev/udev-node.c
src/udev/udev-node.h
src/udev/udev-rules.c
src/udev/udev-rules.h
src/udev/udev-watch.c
src/udev/udev-watch.h
src/udev/udevadm-control.c
src/udev/udevadm-hwdb.c
src/udev/udevadm-info.c
src/udev/udevadm-monitor.c
src/udev/udevadm-settle.c
src/udev/udevadm-test-builtin.c
src/udev/udevadm-test.c
src/udev/udevadm-trigger.c
src/udev/udevadm-util.c
src/udev/udevadm-util.h
src/udev/udevadm.c
src/udev/udevadm.h
src/udev/udevd.c
src/udev/udevd.h
src/udev/v4l_id/v4l_id.c
src/update-done/update-done.c
src/update-utmp/update-utmp.c
src/user-sessions/user-sessions.c
src/userdb/meson.build
src/userdb/userdbctl.c
src/userdb/userdbd-manager.c
src/userdb/userdbd-manager.h
src/userdb/userdbd.c
src/userdb/userwork.c
src/vconsole/90-vconsole.rules.in
src/vconsole/meson.build
src/vconsole/vconsole-setup.c
src/veritysetup/veritysetup-generator.c
src/veritysetup/veritysetup.c
src/volatile-root/volatile-root.c
src/xdg-autostart-generator/xdg-autostart-condition.c
src/xdg-autostart-generator/xdg-autostart-generator.c
src/xdg-autostart-generator/xdg-autostart-service.c
src/xdg-autostart-generator/xdg-autostart-service.h
sysctl.d/meson.build
sysusers.d/meson.build
test/TEST-56-OOMD/Makefile [new symlink]
test/TEST-56-OOMD/test.sh [new file with mode: 0755]
test/create-sys-script.py
test/fuzz/fuzz-catalog/systemd.pl.catalog
test/fuzz/fuzz-link-parser/99-default.link
test/fuzz/fuzz-udev-rules/99-systemd.rules
test/fuzz/fuzz-unit-file/directives.service
test/fuzz/fuzz-unit-file/machine.slice
test/fuzz/fuzz-unit-file/proc-sys-fs-binfmt_misc.automount
test/fuzz/fuzz-unit-file/syslog.socket
test/fuzz/fuzz-unit-file/systemd-ask-password-console.path
test/fuzz/fuzz-unit-file/systemd-machined.service
test/fuzz/fuzz-unit-file/systemd-resolved.service
test/fuzz/fuzz-unit-file/systemd-tmpfiles-clean.timer
test/fuzz/fuzz-unit-file/timers.target
test/fuzz/fuzz-unit-file/var-lib-machines.mount
test/fuzz/meson.build
test/hwdb-test.sh
test/meson.build
test/networkd-test.py
test/rule-syntax-check.py
test/sd-script.py [new file with mode: 0644]
test/sys-script.py
test/sysv-generator-test.py
test/test-exec-deserialization.py
test/test-functions
test/test-network/conf/ipv6-prefix-veth.network
test/test-network/conf/ipv6-prefix.network
test/test-network/systemd-networkd-tests.py
test/test-path/basic.target
test/test-path/paths.target
test/test-path/sysinit.target
test/udev-test.pl
test/units/basic.target
test/units/shutdown.target
test/units/sockets.target
test/units/sysinit.target
test/units/testsuite-56-slowgrowth.sh [new file with mode: 0755]
test/units/testsuite-56-testbloat.service [new file with mode: 0644]
test/units/testsuite-56-testchill.service [new file with mode: 0644]
test/units/testsuite-56-workload.slice [new file with mode: 0644]
test/units/testsuite-56.service [new file with mode: 0644]
test/units/testsuite-56.sh [new file with mode: 0755]
test/units/timers.target
tmpfiles.d/meson.build
tmpfiles.d/portables.conf
tmpfiles.d/systemd-pstore.conf
tools/find-double-newline.sh
tools/find-tabs.sh
tools/gdb-sd_dump_hashmaps.py
tools/generate-gperfs.py
tools/git-contrib.sh
tools/make-autosuspend-rules.py
tools/make-directive-index.py
tools/make-man-index.py
tools/oss-fuzz.sh
tools/update-dbus-docs.py
tools/update-man-rules.py
tools/xml_helper.py
units/basic.target
units/blockdev@.target
units/bluetooth.target
units/boot-complete.target
units/console-getty.service.m4
units/container-getty@.service.m4
units/cryptsetup-pre.target
units/cryptsetup.target
units/debug-shell.service.in
units/dev-hugepages.mount
units/dev-mqueue.mount
units/emergency.service.in
units/emergency.target
units/exit.target
units/final.target
units/first-boot-complete.target
units/getty-pre.target
units/getty.target
units/getty@.service.m4
units/graphical.target
units/halt.target
units/hibernate.target
units/hybrid-sleep.target
units/initrd-cleanup.service
units/initrd-cryptsetup.target [deleted file]
units/initrd-fs.target
units/initrd-parse-etc.service
units/initrd-root-device.target
units/initrd-root-fs.target
units/initrd-switch-root.service
units/initrd-switch-root.target
units/initrd-udevadm-cleanup-db.service
units/initrd.target
units/kexec.target
units/kmod-static-nodes.service.in
units/ldconfig.service
units/local-fs-pre.target
units/local-fs.target
units/machine.slice
units/machines.target
units/meson.build
units/modprobe@.service
units/multi-user.target
units/network-online.target
units/network-pre.target
units/network.target
units/nss-lookup.target
units/nss-user-lookup.target
units/paths.target
units/poweroff.target
units/printer.target
units/proc-sys-fs-binfmt_misc.automount
units/proc-sys-fs-binfmt_misc.mount
units/quotaon.service.in
units/rc-local.service.in
units/reboot.target
units/remote-cryptsetup.target
units/remote-fs-pre.target
units/remote-fs.target
units/rescue.service.in
units/rescue.target
units/rpcbind.target
units/serial-getty@.service.m4
units/shutdown.target
units/sigpwr.target
units/sleep.target
units/slices.target
units/smartcard.target
units/sockets.target
units/sound.target
units/suspend-then-hibernate.target
units/suspend.target
units/swap.target
units/sys-fs-fuse-connections.mount
units/sys-kernel-config.mount
units/sys-kernel-debug.mount
units/sys-kernel-tracing.mount
units/sysinit.target
units/syslog.socket
units/system-systemd\x2dcryptsetup.slice
units/system-update-cleanup.service
units/system-update-pre.target
units/system-update.target
units/systemd-ask-password-console.path
units/systemd-ask-password-console.service
units/systemd-ask-password-wall.path
units/systemd-ask-password-wall.service
units/systemd-backlight@.service.in
units/systemd-binfmt.service.in
units/systemd-bless-boot.service.in
units/systemd-boot-check-no-failures.service.in
units/systemd-boot-system-token.service
units/systemd-coredump.socket
units/systemd-coredump@.service.in
units/systemd-exit.service
units/systemd-firstboot.service
units/systemd-fsck-root.service.in
units/systemd-fsck@.service.in
units/systemd-halt.service
units/systemd-hibernate-resume@.service.in
units/systemd-hibernate.service.in
units/systemd-homed-activate.service
units/systemd-homed.service.in
units/systemd-hostnamed.service.in
units/systemd-hwdb-update.service.in
units/systemd-hybrid-sleep.service.in
units/systemd-importd.service.in
units/systemd-initctl.service.in
units/systemd-initctl.socket
units/systemd-journal-catalog-update.service
units/systemd-journal-flush.service
units/systemd-journal-gatewayd.service.in
units/systemd-journal-gatewayd.socket
units/systemd-journal-remote.service.in
units/systemd-journal-remote.socket
units/systemd-journal-upload.service.in
units/systemd-journald-audit.socket
units/systemd-journald-dev-log.socket
units/systemd-journald-varlink@.socket
units/systemd-journald.service.in
units/systemd-journald.socket
units/systemd-journald@.service.in
units/systemd-journald@.socket
units/systemd-kexec.service
units/systemd-localed.service.in
units/systemd-logind.service.in
units/systemd-machine-id-commit.service
units/systemd-machined.service.in
units/systemd-modules-load.service.in
units/systemd-network-generator.service.in
units/systemd-networkd-wait-online.service.in
units/systemd-networkd.service.in
units/systemd-networkd.socket
units/systemd-nspawn@.service.in
units/systemd-oomd.service.in
units/systemd-portabled.service.in
units/systemd-poweroff.service
units/systemd-pstore.service.in
units/systemd-quotacheck.service.in
units/systemd-random-seed.service.in
units/systemd-reboot.service
units/systemd-remount-fs.service.in
units/systemd-repart.service.in
units/systemd-resolved.service.in
units/systemd-rfkill.service.in
units/systemd-rfkill.socket
units/systemd-suspend-then-hibernate.service.in
units/systemd-suspend.service.in
units/systemd-sysctl.service.in
units/systemd-sysusers.service
units/systemd-time-wait-sync.service.in
units/systemd-timedated.service.in
units/systemd-timesyncd.service.in
units/systemd-tmpfiles-clean.service
units/systemd-tmpfiles-clean.timer
units/systemd-tmpfiles-setup-dev.service
units/systemd-tmpfiles-setup.service
units/systemd-udev-settle.service
units/systemd-udev-trigger.service
units/systemd-udevd-control.socket
units/systemd-udevd-kernel.socket
units/systemd-udevd.service.in
units/systemd-update-done.service.in
units/systemd-update-utmp-runlevel.service.in
units/systemd-update-utmp.service.in
units/systemd-user-sessions.service.in
units/systemd-userdbd.service.in
units/systemd-userdbd.socket
units/systemd-vconsole-setup.service.in
units/systemd-volatile-root.service.in
units/time-set.target
units/time-sync.target
units/timers.target
units/tmp.mount
units/umount.target
units/usb-gadget.target
units/user-.slice.d/10-defaults.conf
units/user-runtime-dir@.service.in
units/user.slice
units/user/basic.target
units/user/bluetooth.target
units/user/default.target
units/user/exit.target
units/user/graphical-session-pre.target
units/user/graphical-session.target
units/user/meson.build
units/user/paths.target
units/user/printer.target
units/user/shutdown.target
units/user/smartcard.target
units/user/sockets.target
units/user/sound.target
units/user/systemd-exit.service
units/user/systemd-tmpfiles-clean.service
units/user/systemd-tmpfiles-clean.timer
units/user/systemd-tmpfiles-setup.service
units/user/timers.target
units/user/xdg-desktop-autostart.target
units/user@.service.in
units/var-lib-machines.mount

index 3ac3d55e4a547b8197081d2d09ee2b9878d01c62..c50ee4923c2b466137394504c8f03cf75c2abc29 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Copyright © 2016 Zeal Jagannatha
 
index cf2e3dfa0d5862f82f5e4987e38e0c7fa89073dd..b5ed5768cbde79d00d4531a637b3874a7548c3b3 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
 # Symlink this file to mkosi.default in the project root directory and invoke "mkosi" to build an OS image.
index e7edb6dbbc32d645cbe877ac6b278eaab1cb4e87..a2b7d4c43f923db0719a4e56652427129bd20f5a 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
 # Symlink this file to mkosi.default in the project root directory and invoke "mkosi" to build an OS image.
index 53837b6be8fb83c0969fdd28ed8c318a80d13807..9f3abbc74b2df72b6194db905261d987862176c2 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
 # Symlink this file to mkosi.default in the project root directory and invoke "mkosi" to build an OS image.
index 3e97beebafb515b1e64cb5e8d14f21ed9ba9a5f6..baf4daec4ba1404a812b2c39f1ff634b713d393e 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
 # Symlink this file to mkosi.default in the project root directory and invoke "mkosi" to build an OS image.
diff --git a/NEWS b/NEWS
index 843aefe7e3abd9d2490fe5d5d329723afe9bdb71..4bda0b2977019b7a7fd1a3f3a4d40b208155b07d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -158,6 +158,15 @@ CHANGES WITH 247 in spe:
           mounting additional disk images into the file system tree accessible
           to the service.
 
+        * Timer units gained a new FixedRandomDelay= boolean setting. If
+          enabled, the random delay configured with RandomizedDelaySec= is
+          selected in a way that is stable on a given system (though still
+          different for different units).
+
+        * Socket units gained a new setting Timestamping= that takes "us", "ns"
+          or "off". This controls the SO_TIMESTAMP/SO_TIMESTAMPNS socket
+          options.
+
         * systemd-repart now generates JSON output when requested with the new
           --json= switch.
 
@@ -299,6 +308,10 @@ CHANGES WITH 247 in spe:
           invoked by container payloads that are prohibited by the container's
           system call filter policy.
 
+        * If the $SYSTEMD_SECCOMP=0 environment variable is set for
+          systemd-nspawn (and other programs that use seccomp) all seccomp
+          filtering is turned off.
+
         * Two new unit file settings ProtectProc= and ProcSubset= have been
           added that expose the hidepid= and subset= mount options of procfs.
           All processes of the unit will only see processes in /proc that are
@@ -453,6 +466,11 @@ CHANGES WITH 247 in spe:
           defined, explicit routes to the gateway acquired via DHCP or IPv6
           Router Advertisements.
 
+        * systemd-networkd's [IPv6PrefixDelegation] section and
+          IPv6PrefixDelegation= options have been renamed as [IPv6SendRA] and
+          IPv6SendRA= (the old names are still accepted for backwards
+          compatibility).
+
         * systemctl gained support for two new verbs: "service-log-level" and
           "service-log-target" may be used on services that implement the
           generic org.freedesktop.LogControl1 D-Bus interface to dynamically
@@ -577,16 +595,43 @@ CHANGES WITH 247 in spe:
           a command "bootctl set-default @current" may be used to make the
           currently boot menu item the new default for all subsequent boots.
 
-        * A new generic target unit "initrd-cryptsetup.target" has been added
-          that is supposed to pull in all encrypted volumes that shall be set
-          up during the initrd phase. It takes the place of "cryptsetup.target"
-          and "remote-cryptsetup.target" that exist during the host boot
-          phase. In other words, the new "initrd-cryptsetup.target" is supposed
-          to take the role for "initrd-fs.target", but for encrypted volumes.
-
         * "systemctl edit" has been updated to show the original effective unit
           contents in commented form in the text editor.
 
+        Contributions from: Adolfo Jayme Barrientos, afg, Alec Moskvin, Alyssa
+        Ross, Amitanand Chikorde, Andrew Hangsleben, Anita Zhang, Ansgar
+        Burchardt, Arian van Putten, Aurelien Jarno, Axel Rasmussen, bauen1,
+        Beniamino Galvani, Benjamin Berg, Bjørn Mork, brainrom, Chandradeep
+        Dey, Charles Lee, Chris Down, Christian Göttsche, Clemens Gruber, Daan
+        De Meyer, Daniele Medri, Daniel Mack, Daniel Rusek, Dan Streetman,
+        David Tardon, Dimitri John Ledkov, Dmitry Borodaenko, Elias Probst,
+        Elisei Roca, ErrantSpore, Etienne Doms, Fabrice Fontaine, fangxiuning,
+        Felix Riemann, Florian Klink, Franck Bui, Frantisek Sumsal, fwSmit,
+        George Rawlinson, germanztz, Gibeom Gwon, Glen Whitney, Gogo Gogsi,
+        Göran Uddeborg, Grant Mathews, Hans de Goede, Hans Ulrich Niedermann,
+        Haochen Tong, Harald Seiler, huangyong, Hubert Kario, Ikey Doherty, Jan
+        Chren, Jan Schlüter, Jérémy Nouhaud, Jian-Hong Pan, Joerg Behrmann,
+        Jonathan Lebon, Josh Brobst, Juergen Hoetzel, Julien Humbert, Kai-Chuan
+        Hsieh, Kairui Song, Kamil Dudka, Kir Kolyshkin, Kristijan Gjoshev, Kyle
+        Huey, Kyle Russell, Lennart Poettering, lichangze, Luca Boccassi, Lucas
+        Werkmeister, Luca Weiss, Marc Kleine-Budde, Marco Wang, Martin Wilck,
+        Marti Raudsepp, masmullin2000, Máté Pozsgay, Matt Fenwick, Michael
+        Biebl, Michael Scherer, Michal Koutný, Michal Sekletár, Michal
+        Suchanek, Mikael Szreder, Milo Casagrande, mirabilos, Mitsuha_QuQ,
+        mog422, Muhammet Kara, Nazar Vinnichuk, Nicholas Narsing, Nicolas
+        Fella, Njibhu, nl6720, Oğuz Ersen, Olivier Le Moal, Ondrej Kozina,
+        onlybugreports, Pass Automated Testing Suite, Pat Coulthard, Pedro
+        Ruiz, Peter Hutterer, Phaedrus Leeds, PhoenixDiscord, Piotr Drąg, Plan
+        C, Purushottam choudhary, Rasmus Villemoes, Renaud Métrich, Robert
+        Marko, Ronan Pigott, Roy Chen (陳彥廷), RussianNeuroMancer, Samanta
+        Navarro, Samuel BF, scootergrisen, Sorin Ionescu, Steve Dodd, Susant
+        Sahani, Timo Rothenpieler, Tobias Hunger, Tobias Kaufmann, Topi
+        Miettinen, Vito Caputo, Weblate, Wen Yang, williamvds, Yu, Li-Yu, Yuri
+        Chornoivan, Yu Watanabe, Zbigniew Jędrzejewski-Szmek, Zmicer Turok,
+        Дамјан Георгиевски
+
+        – Warsaw, 2020-11-10
+
 CHANGES WITH 246:
 
         * The service manager gained basic support for cgroup v2 freezer. Units
@@ -1223,7 +1268,7 @@ CHANGES WITH 245:
           configuration drop-ins are present, no action is taken.
 
         * A new component "userdb" has been added, along with a small daemon
-          "systemd-userdb.service" and a client tool "userdbctl". The framework
+          "systemd-userdbd.service" and a client tool "userdbctl". The framework
           allows defining rich user and group records in a JSON format,
           extending on the classic "struct passwd" and "struct group"
           structures. Various components in systemd have been updated to
diff --git a/TODO b/TODO
index c6c00a5e9bc4a1f4fecf1424eb52ea8fbc010ea6..89303f1220d23d429b02b8cfd69bc967bf690b0e 100644 (file)
--- a/TODO
+++ b/TODO
@@ -20,6 +20,18 @@ Janitorial Clean-ups:
 
 Features:
 
+* homed: try to unmount in regular intervals when home dir was busy when we
+  tried because idle.
+
+* sd-bus: when connecting to some dbus server socker, set originating AF_UNIX
+  socket name in abstract namespace to include "description" string, and pick
+  it up from there in sd_bus_creds logic. i.e. we can use the socket peer
+  address as conduit for some minimal connection metainfo, and use it to
+  restore the "description" logic that kdbus used to have.
+
+* teach LoadCredential= the ability to load all files from a specified dir as
+  individual creds
+
 * systemd-analyze netif that explains predictable interface (or networkctl)
 
 * port selinux code from mallinfo() to mallinfo2() once added to glibc
@@ -46,7 +58,7 @@ Features:
   that the kernel does what we otherwise do.
 
 * homed: keep an fd to the homedir open at all times, to keep the fs pinned
-  (autofs and such) while user is loged in.
+  (autofs and such) while user is logged in.
 
 * nss-systemd: also synthesize shadow records for users/groups
 
index 3db8e390f2a631fde7531de301f4dcd5cbf19efb..d61fc2cbf6ee95a8233b824246dce6203b364cc1 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 in_files = '''
         systemd.bg.catalog
index f8816c7601e318a7bcfe4d3fa093a559b8c48c77..89c82c2e9c456ffc76e9fb6faadae417cad5a1ed 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Message catalog for systemd's own messages
 # Belarusian translation
index ef9682c9b543c2ca469e25b004de864b2507d7a7..9b6d346b0d48b3299d8ba6a768bf488727485f57 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Message catalog for systemd's own messages
 # Belarusian Latin translation
index fcb245c154de7330ec566353be37943ed5127b47..65e0833970ccacfeee54053ad5c913c36955cbdc 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  Copyright © 2016 Alexander Shopov <ash@kambanaria.org>
 
index 3ad20e04ce35a4b6f264e1b746b1fb8b423e469e..3e08f564a64069200babc5fe76e18bb711bb7c8a 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # Message catalog for systemd's own messages
 
index eed98fa18dc35181cde8243a1650a97a56edc00b..656fb0509bdc77fbe256ca1109c5cf7328bc5b9e 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # Message catalog for systemd's own messages
 # Danish translation
index 5f63a2d6b54f634258354adea518f9d01c9c8ec2..97b16d0767ae35fb663d8207317f35e24f754679 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 -- fc2e22bc6ee647b6b90729ab34a250b1
 Subject: Speicherabbild für Prozess @COREDUMP_PID@ (@COREDUMP_COMM@) generiert
index c2319b8228dc6996efcaf28958857a17c2230632..32156bf8a1139a31600fab90a8c55e81485720fa 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  Copyright © 2013-2016 Sylvain Plantefève
 
index 43d69623cdd0b93bd84de8083a4b717d8772f52e..20a71a38cb4013f039ee6719be5f8f9a27bb0988 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # Message catalog for systemd's own messages
 # Croatian translation
index ea60af20b2e8e80f7ea0dd7f161efecb3e33360b..d60200b6c48fce8f5a0b729c0ac238de65d69d58 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  Copyright © 2016 Gabor Kelemen
 
index c7ef447e5a03b97156a9146b7ed6a0e6db5d437f..88e118fced4faf1b31e88659439862aebf45fabb 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  Copyright © 2013-2019 Daniele Medri
 
index 73d414d92d804c6e3406c6884780c22b273c4233..5f8fda002f09f43f3321933834ed3d37c62b6f19 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # Message catalog for systemd's own messages
 # Korean translation
index 9881a6c6d1560cb57e5d3b963b17be968d681c60..58706f55d23250346ed36347e752b0ab286c86eb 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # Message catalog for systemd's own messages
 # Polish translation
index c07171674dacc66bd2f80c1a5cc004263e4a9813..d44c6884dbc6286edab705f58d01843949c8048a 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  Copyright © 2015 Rafael Ferreira (translation)
 
index 9f100551dc9e6aa0fe7f9e333b1630be2660aeea..728a5435cba68e55aed217aa3199432b6c57aaa6 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  Copyright © 2013-2017 Sergey Ptashnick
 
index 26c44b2a2b9e7d1a03c2b46075ab4cf19628d7ef..cbceab8d0dd23d1315dc8d09efc4b4976a8a6b72 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # Message catalog for systemd's own messages
 # Serbian translation
index 5bae69911a07135a57ff64f3383e8213d511392a..cc6a5197102826693409668ab9ac6047d6a0a9a5 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  Copyright © 2015 Boyuan Yang
 
index a6ddf2c1333a7a9de762f7156f2e8c849f5a9a31..47208782184a2750185c4f6839b2dc334a1cad8e 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  Copyright © 2015 Jeff Huang
 
index 715b14e0e493ba524c1cd04b0567ae05f2a79a31..290977142cc6055acb47a0e83f577e926bf7c362 100644 (file)
@@ -127,7 +127,7 @@ identifier (The ID field of `/etc/os-release`). Example:
 
 In order to maximize compatibility with file system implementations and
 restricted boot loader environments, and to minimize conflicting character use
-with other progams, file names shall be chosen from a restricted character set:
+with other programs, file names shall be chosen from a restricted character set:
 ASCII upper and lower case characters, digits, "+", "-", "_" and ".". Also, the
 file names should have a length of at least one and at most 255 characters
 (including file name suffix).
index 8f9b2d43b8474c042a35a45b7d8f76838aef11d5..851676bc2bda1bdcb0d16083cc0968d41f0daf83 100644 (file)
@@ -318,6 +318,14 @@ layout: default
   unlink("/foo/bar/baz");
   ```
 
+  When returning from a `void` function, you may also want to shorten the error
+  path boilerplate by returning a function invocation cast to `(void)` like so:
+
+  ```c
+  if (condition_not_met)
+          return (void) log_tests_skipped("Cannot run ...");
+  ```
+
   Don't cast function calls to `(void)` that return no error
   conditions. Specifically, the various `xyz_unref()` calls that return a
   `NULL` object shouldn't be cast to `(void)`, since not using the return value
index 38752c916948690838c47e655d86508f50c50d44..74a71bba9371bdcebe135cab433675cd671adc87 100644 (file)
@@ -83,6 +83,13 @@ All tools:
 * `$SYSTEMD_RDRAND=0` — if set, the RDRAND instruction will never be used,
   even if the CPU supports it.
 
+* `$SYSTEMD_SECCOMP=0` – if set, seccomp filters will not be enforced, even if
+  support for it is compiled in and available in the kernel.
+
+* `$SYSTEMD_LOG_SECCOMP=1` — if set, system calls blocked by seccomp filtering,
+  for example in systemd-nspawn, will be logged to the audit log, if the current
+  kernel version supports this.
+
 systemctl:
 
 * `$SYSTEMCTL_FORCE_BUS=1` — if set, do not connect to PID1's private D-Bus
@@ -93,10 +100,6 @@ systemctl:
 
 * `$SYSTEMCTL_SKIP_SYSV=1` — if set, do not call out to SysV compatibility hooks.
 
-* `$SYSTEMD_LOG_SECCOMP=1` — if set, system calls blocked by seccomp filtering,
-  for example in systemd-nspawn, will be logged to the audit log, if the current
-  kernel version supports this.
-
 systemd-nspawn:
 
 * `$SYSTEMD_NSPAWN_UNIFIED_HIERARCHY=1` — if set, force nspawn into unified
index f0dc2ee20ffb88cc6ee5301ae88f27dc8d26351c..50b9a42fa11d00d7a426debf53d9d0a7778c4509 100644 (file)
@@ -374,6 +374,7 @@ Most timer unit settings are available to transient units.
 ✓ RemainAfterElapse=
 ✓ AccuracySec=
 ✓ RandomizedDelaySec=
+✓ FixedRandomDelay=
   Unit=
 ```
 
index fbac59ae498cfe50702ce73d433c3cf858725567..261bd68ca39a764e18b3c777571767cd49e7a943 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 file = configure_file(
         input : 'README.in',
index 81b786543885955d5f46811f64de374b6dc9d4af..ba7957711dd6d955332a9f775756d7283a76affb 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 if conf.get('HAVE_SYSV_COMPAT') == 1 and get_option('create-log-dirs')
         install_data('README',
index ba8f4c215e3db370321c02a5bccf21569077c72c..367779019d70076c7d8eacca3b6e1facadd47f43 100644 (file)
@@ -6597,7 +6597,7 @@ OUI:0008AF*
  ID_OUI_FROM_DATABASE=Novatec Corporation
 
 OUI:0008B0*
- ID_OUI_FROM_DATABASE=BKtel communications GmbH
+ ID_OUI_FROM_DATABASE=HUBER+SUHNER
 
 OUI:0008B1*
  ID_OUI_FROM_DATABASE=ProQuent Systems
@@ -14187,7 +14187,7 @@ OUI:001292*
  ID_OUI_FROM_DATABASE=Griffin Technology
 
 OUI:001293*
- ID_OUI_FROM_DATABASE=GE Energy
+ ID_OUI_FROM_DATABASE=ABB Power Protection (CH)
 
 OUI:001294*
  ID_OUI_FROM_DATABASE=SUMITOMO ELECTRIC DEVICE INNOVATIONS, INC
@@ -14265,7 +14265,7 @@ OUI:0012AC*
  ID_OUI_FROM_DATABASE=ONTIMETEK INC.
 
 OUI:0012AD*
- ID_OUI_FROM_DATABASE=IDS GmbH
+ ID_OUI_FROM_DATABASE=VIVAVIS AG
 
 OUI:0012AE*
  ID_OUI_FROM_DATABASE=HLS HARD-LINE Solutions Inc.
@@ -26052,7 +26052,7 @@ OUI:00213D*
  ID_OUI_FROM_DATABASE=Cermetek Microelectronics, Inc.
 
 OUI:00213E*
- ID_OUI_FROM_DATABASE=TomTom
+ ID_OUI_FROM_DATABASE=TomTom International BV
 
 OUI:00213F*
  ID_OUI_FROM_DATABASE=A-Team Technology Ltd.
@@ -29592,7 +29592,7 @@ OUI:0025DE*
  ID_OUI_FROM_DATABASE=Probits Co., LTD.
 
 OUI:0025DF*
- ID_OUI_FROM_DATABASE=Private
+ ID_OUI_FROM_DATABASE=Taser International Inc.
 
 OUI:0025E0*
  ID_OUI_FROM_DATABASE=CeedTec Sdn Bhd
@@ -33128,6 +33128,9 @@ OUI:005D73*
 OUI:005E0C*
  ID_OUI_FROM_DATABASE=HMD Global Oy
 
+OUI:005F67*
+ ID_OUI_FROM_DATABASE=TP-Link Corporation Limited
+
 OUI:005F86*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -33977,6 +33980,9 @@ OUI:006967D*
 OUI:006967E*
  ID_OUI_FROM_DATABASE=Tianjin Lianwu Technology Co., Ltd.
 
+OUI:006B6F*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:006B8E*
  ID_OUI_FROM_DATABASE=Shanghai Feixun Communication Co.,Ltd.
 
@@ -34065,7 +34071,7 @@ OUI:00778D*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
 OUI:0077E4*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
 
 OUI:007888*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
@@ -39638,6 +39644,9 @@ OUI:0446CF*
 OUI:04489A*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:04495D*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:044A50*
  ID_OUI_FROM_DATABASE=Ramaxel Technology (Shenzhen) limited company
 
@@ -39848,6 +39857,9 @@ OUI:047970*
 OUI:0479B7*
  ID_OUI_FROM_DATABASE=Texas Instruments
 
+OUI:047A0B*
+ ID_OUI_FROM_DATABASE=Beijing Xiaomi Electronics Co., Ltd.
+
 OUI:047D50*
  ID_OUI_FROM_DATABASE=Shenzhen Kang Ying Technology Co.Ltd.
 
@@ -41135,6 +41147,9 @@ OUI:0876FF*
 OUI:087808*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
+OUI:08798C*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:087999*
  ID_OUI_FROM_DATABASE=AIM GmbH
 
@@ -41222,11 +41237,14 @@ OUI:089758*
 OUI:089798*
  ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD.
 
+OUI:089AC7*
+ ID_OUI_FROM_DATABASE=zte corporation
+
 OUI:089B4B*
  ID_OUI_FROM_DATABASE=iKuai Networks
 
 OUI:089BB9*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
 
 OUI:089C86*
  ID_OUI_FROM_DATABASE=Nokia Shanghai Bell Co., Ltd.
@@ -41895,7 +41913,7 @@ OUI:0C7A15*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
 OUI:0C7C28*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
 
 OUI:0C7D7C*
  ID_OUI_FROM_DATABASE=Kexiang Information Technology Co, Ltd.
@@ -41987,6 +42005,9 @@ OUI:0C924E*
 OUI:0C9301*
  ID_OUI_FROM_DATABASE=PT. Prasimax Inovasi Teknologi
 
+OUI:0C938F*
+ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
+
 OUI:0C93FB*
  ID_OUI_FROM_DATABASE=BNS Solutions
 
@@ -41996,6 +42017,9 @@ OUI:0C9541*
 OUI:0C96BF*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:0C96CD*
+ ID_OUI_FROM_DATABASE=MERCURY CORPORATION
+
 OUI:0C96E6*
  ID_OUI_FROM_DATABASE=Cloud Network Technology (Samoa) Limited
 
@@ -43337,6 +43361,9 @@ OUI:14169E*
 OUI:141877*
  ID_OUI_FROM_DATABASE=Dell Inc.
 
+OUI:1418C3*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:141A51*
  ID_OUI_FROM_DATABASE=Treetech Sistemas Digitais
 
@@ -43412,6 +43439,9 @@ OUI:142233*
 OUI:1422DB*
  ID_OUI_FROM_DATABASE=eero inc.
 
+OUI:14230A*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:1423D7*
  ID_OUI_FROM_DATABASE=EUTRONIX CO., LTD.
 
@@ -43502,6 +43532,9 @@ OUI:143EBF*
 OUI:143F27*
  ID_OUI_FROM_DATABASE=Noccela Oy
 
+OUI:143FA6*
+ ID_OUI_FROM_DATABASE=Sony Home Entertainment&Sound Products Inc
+
 OUI:143FC3*
  ID_OUI_FROM_DATABASE=SnapAV
 
@@ -43646,6 +43679,9 @@ OUI:145BE1*
 OUI:145E45*
  ID_OUI_FROM_DATABASE=Bamboo Systems Group
 
+OUI:145E69*
+ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
+
 OUI:145F94*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -43811,6 +43847,9 @@ OUI:14A32F*
 OUI:14A364*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
+OUI:14A3B4*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:14A51A*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -43901,6 +43940,9 @@ OUI:14B126*
 OUI:14B1C8*
  ID_OUI_FROM_DATABASE=InfiniWing, Inc.
 
+OUI:14B2E5*
+ ID_OUI_FROM_DATABASE=Shenzhen iComm Semiconductor CO.,LTD
+
 OUI:14B31F*
  ID_OUI_FROM_DATABASE=Dell Inc.
 
@@ -44144,6 +44186,9 @@ OUI:181420*
 OUI:181456*
  ID_OUI_FROM_DATABASE=Nokia Corporation
 
+OUI:18146C*
+ ID_OUI_FROM_DATABASE=Zhejiang Tmall Technology Co., Ltd.
+
 OUI:1816C9*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
@@ -44153,6 +44198,9 @@ OUI:181714*
 OUI:181725*
  ID_OUI_FROM_DATABASE=Cameo Communications, Inc.
 
+OUI:18188B*
+ ID_OUI_FROM_DATABASE=FUJITSU CONNECTED TECHNOLOGIES LIMITED
+
 OUI:18193F*
  ID_OUI_FROM_DATABASE=Tamtron Oy
 
@@ -45209,6 +45257,9 @@ OUI:1C36BB*
 OUI:1C37BF*
  ID_OUI_FROM_DATABASE=Cloudium Systems Ltd.
 
+OUI:1C3929*
+ ID_OUI_FROM_DATABASE=OHSUNG
+
 OUI:1C3947*
  ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD.
 
@@ -46034,6 +46085,9 @@ OUI:1CCCD6*
 OUI:1CCDE5*
  ID_OUI_FROM_DATABASE=Shanghai Wind Technologies Co.,Ltd
 
+OUI:1CD1BA*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
 OUI:1CD40C*
  ID_OUI_FROM_DATABASE=Kriwan Industrie-Elektronik GmbH
 
@@ -46250,6 +46304,9 @@ OUI:200A5E*
 OUI:200BC7*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:200BCF*
+ ID_OUI_FROM_DATABASE=Nintendo Co.,Ltd
+
 OUI:200CC8*
  ID_OUI_FROM_DATABASE=NETGEAR
 
@@ -46569,7 +46626,7 @@ OUI:20780B*
  ID_OUI_FROM_DATABASE=Delta Faucet Company
 
 OUI:207852*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
 
 OUI:2078F0*
  ID_OUI_FROM_DATABASE=Apple, Inc.
@@ -46910,6 +46967,9 @@ OUI:20EE28*
 OUI:20EEC6*
  ID_OUI_FROM_DATABASE=Elefirst Science & Tech Co ., ltd
 
+OUI:20EFBD*
+ ID_OUI_FROM_DATABASE=Roku, Inc
+
 OUI:20F002*
  ID_OUI_FROM_DATABASE=MTData Developments Pty. Ltd.
 
@@ -46961,6 +47021,9 @@ OUI:20FECD*
 OUI:20FEDB*
  ID_OUI_FROM_DATABASE=M2M Solution S.A.S.
 
+OUI:20FF36*
+ ID_OUI_FROM_DATABASE=IFLYTEK CO.,LTD.
+
 OUI:2400BA*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -47009,6 +47072,9 @@ OUI:240B0A*
 OUI:240B2A*
  ID_OUI_FROM_DATABASE=Viettel Group
 
+OUI:240B88*
+ ID_OUI_FROM_DATABASE=Taicang T&W Electronics
+
 OUI:240BB1*
  ID_OUI_FROM_DATABASE=KOSTAL Industrie Elektrik GmbH
 
@@ -47687,6 +47753,9 @@ OUI:24E314*
 OUI:24E43F*
  ID_OUI_FROM_DATABASE=Wenzhou Kunmei Communication Technology Co.,Ltd.
 
+OUI:24E4C8*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
 OUI:24E5AA*
  ID_OUI_FROM_DATABASE=Philips Oral Healthcare, Inc.
 
@@ -47714,6 +47783,9 @@ OUI:24EC99*
 OUI:24ECD6*
  ID_OUI_FROM_DATABASE=CSG Science & Technology Co.,Ltd.Hefei
 
+OUI:24EDFD*
+ ID_OUI_FROM_DATABASE=Siemens Canada Limited
+
 OUI:24EE3A*
  ID_OUI_FROM_DATABASE=Chengdu Yingji Electronic Hi-tech Co Ltd
 
@@ -49340,6 +49412,9 @@ OUI:2C768A*
 OUI:2C780E*
  ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
 
+OUI:2C793D*
+ ID_OUI_FROM_DATABASE=Boditech Med
+
 OUI:2C79D7*
  ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
 
@@ -49445,6 +49520,9 @@ OUI:2CA30E*
 OUI:2CA539*
  ID_OUI_FROM_DATABASE=Parallel Wireless, Inc
 
+OUI:2CA59C*
+ ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd.
+
 OUI:2CA780*
  ID_OUI_FROM_DATABASE=True Technologies Inc.
 
@@ -50081,6 +50159,9 @@ OUI:304B07*
 OUI:304C7E*
  ID_OUI_FROM_DATABASE=Panasonic Electric Works Automation Controls Techno Co.,Ltd.
 
+OUI:304E1B*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:304EC3*
  ID_OUI_FROM_DATABASE=Tianjin Techua Technology Co., Ltd.
 
@@ -51233,6 +51314,9 @@ OUI:34ADE4*
 OUI:34AF2C*
  ID_OUI_FROM_DATABASE=Nintendo Co., Ltd.
 
+OUI:34AFB3*
+ ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
+
 OUI:34B1F7*
  ID_OUI_FROM_DATABASE=Texas Instruments
 
@@ -51311,6 +51395,9 @@ OUI:34C731*
 OUI:34C803*
  ID_OUI_FROM_DATABASE=Nokia Corporation
 
+OUI:34C93D*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:34C99D*
  ID_OUI_FROM_DATABASE=EIDOLON COMMUNICATIONS TECHNOLOGY CO. LTD.
 
@@ -51587,6 +51674,9 @@ OUI:34FCEF*
 OUI:34FD6A*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:34FEC5*
+ ID_OUI_FROM_DATABASE=Shenzhen Sunwoda intelligent hardware Co.,Ltd
+
 OUI:380025*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
@@ -51824,6 +51914,9 @@ OUI:383F10*
 OUI:383FB3*
  ID_OUI_FROM_DATABASE=Technicolor CH USA Inc.
 
+OUI:38420B*
+ ID_OUI_FROM_DATABASE=Sonos, Inc.
+
 OUI:384233*
  ID_OUI_FROM_DATABASE=Wildeboer Bauteile GmbH
 
@@ -52067,6 +52160,9 @@ OUI:388E7A*
 OUI:388EE7*
  ID_OUI_FROM_DATABASE=Fanhattan LLC
 
+OUI:389052*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:3890A5*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -52688,6 +52784,9 @@ OUI:3C1E04*
 OUI:3C1E13*
  ID_OUI_FROM_DATABASE=HANGZHOU SUNRISE TECHNOLOGY CO., LTD
 
+OUI:3C2093*
+ ID_OUI_FROM_DATABASE=GD Midea Air-Conditioning Equipment Co.,Ltd.
+
 OUI:3C20F6*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
@@ -52949,6 +53048,9 @@ OUI:3C5282*
 OUI:3C53D7*
  ID_OUI_FROM_DATABASE=CEDES AG
 
+OUI:3C5447*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:3C5731*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -54056,6 +54158,9 @@ OUI:40882F*
 OUI:4088E0*
  ID_OUI_FROM_DATABASE=Beijing Ereneben Information Technology Limited Shenzhen Branch
 
+OUI:4089A8*
+ ID_OUI_FROM_DATABASE=WiredIQ, LLC
+
 OUI:408A9A*
  ID_OUI_FROM_DATABASE=TITENG CO., Ltd.
 
@@ -54071,6 +54176,9 @@ OUI:408C4C*
 OUI:408D5C*
  ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD.
 
+OUI:408F9D*
+ ID_OUI_FROM_DATABASE=Juniper Networks
+
 OUI:409505*
  ID_OUI_FROM_DATABASE=ACOINFO TECHNOLOGY CO.,LTD
 
@@ -55097,6 +55205,9 @@ OUI:44ADB1*
 OUI:44ADD9*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
+OUI:44AE25*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
 OUI:44AEAB*
  ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
 
@@ -55202,6 +55313,9 @@ OUI:44D3CA*
 OUI:44D437*
  ID_OUI_FROM_DATABASE=Inteno Broadband Technology AB
 
+OUI:44D453*
+ ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
+
 OUI:44D4E0*
  ID_OUI_FROM_DATABASE=Sony Mobile Communications Inc
 
@@ -55598,6 +55712,9 @@ OUI:484BAA*
 OUI:484BD4*
  ID_OUI_FROM_DATABASE=Technicolor CH USA Inc.
 
+OUI:484C29*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:484C86*
  ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
 
@@ -55616,6 +55733,9 @@ OUI:485169*
 OUI:4851B7*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
+OUI:4851C5*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:485261*
  ID_OUI_FROM_DATABASE=SOREEL
 
@@ -56103,7 +56223,7 @@ OUI:48EB62*
  ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd.
 
 OUI:48EC5B*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
 
 OUI:48ED80*
  ID_OUI_FROM_DATABASE=daesung eltec
@@ -56219,6 +56339,9 @@ OUI:4C0F6E*
 OUI:4C0FC7*
  ID_OUI_FROM_DATABASE=Earda Technologies co Ltd
 
+OUI:4C1154*
+ ID_OUI_FROM_DATABASE=Mobiwire Mobiles (NingBo) Co., LTD
+
 OUI:4C1159*
  ID_OUI_FROM_DATABASE=Vision Information & Communications
 
@@ -56588,6 +56711,9 @@ OUI:4C7487*
 OUI:4C74BF*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:4C7525*
+ ID_OUI_FROM_DATABASE=Espressif Inc.
+
 OUI:4C7625*
  ID_OUI_FROM_DATABASE=Dell Inc.
 
@@ -56724,7 +56850,7 @@ OUI:4C93A63*
  ID_OUI_FROM_DATABASE=Commsignia, Ltd.
 
 OUI:4C93A64*
- ID_OUI_FROM_DATABASE=4D Sistem Ticaret A.S.
+ ID_OUI_FROM_DATABASE=4TheWall - 4D Sistem A.S
 
 OUI:4C93A65*
  ID_OUI_FROM_DATABASE=Private
@@ -57389,6 +57515,9 @@ OUI:503CEA*
 OUI:503DA1*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
+OUI:503DC6*
+ ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
+
 OUI:503DE5*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -57458,6 +57587,9 @@ OUI:5050CE*
 OUI:5051A9*
  ID_OUI_FROM_DATABASE=Texas Instruments
 
+OUI:50523B*
+ ID_OUI_FROM_DATABASE=Nokia
+
 OUI:5052D2*
  ID_OUI_FROM_DATABASE=Hangzhou Telin Technologies Co., Limited
 
@@ -57875,6 +58007,9 @@ OUI:50C006*
 OUI:50C271*
  ID_OUI_FROM_DATABASE=SECURETECH INC
 
+OUI:50C3A2*
+ ID_OUI_FROM_DATABASE=nFore Technology Co.,Ltd.
+
 OUI:50C4DD*
  ID_OUI_FROM_DATABASE=BUFFALO.INC
 
@@ -58178,6 +58313,9 @@ OUI:5405DB*
 OUI:54068B*
  ID_OUI_FROM_DATABASE=Ningbo Deli Kebei Technology Co.LTD
 
+OUI:540764*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:540955*
  ID_OUI_FROM_DATABASE=zte corporation
 
@@ -58235,6 +58373,9 @@ OUI:541FD5*
 OUI:542018*
  ID_OUI_FROM_DATABASE=Tely Labs
 
+OUI:54211D*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:542160*
  ID_OUI_FROM_DATABASE=Alula
 
@@ -58313,6 +58454,9 @@ OUI:543968*
 OUI:5439DF*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:543AD6*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
 OUI:543B30*
  ID_OUI_FROM_DATABASE=duagon AG
 
@@ -58331,6 +58475,9 @@ OUI:544249*
 OUI:544408*
  ID_OUI_FROM_DATABASE=Nokia Corporation
 
+OUI:544617*
+ ID_OUI_FROM_DATABASE=zte corporation
+
 OUI:54466B*
  ID_OUI_FROM_DATABASE=Shenzhen CZTIC Electronic Technology Co., Ltd
 
@@ -58421,6 +58568,9 @@ OUI:54666C*
 OUI:546751*
  ID_OUI_FROM_DATABASE=Compal Broadband Networks, Inc.
 
+OUI:5467E6*
+ ID_OUI_FROM_DATABASE=SHENZHEN MTC CO LTD
+
 OUI:546AD8*
  ID_OUI_FROM_DATABASE=Elster Water Metering
 
@@ -58793,6 +58943,9 @@ OUI:54D9C6*
 OUI:54D9E4*
  ID_OUI_FROM_DATABASE=BRILLIANTTS CO., LTD
 
+OUI:54DBA2*
+ ID_OUI_FROM_DATABASE=Fibrain
+
 OUI:54DC1D*
  ID_OUI_FROM_DATABASE=Yulong Computer Telecommunication Scientific (Shenzhen) Co.,Ltd
 
@@ -58886,6 +59039,9 @@ OUI:54F294*
 OUI:54F5B6*
  ID_OUI_FROM_DATABASE=ORIENTAL PACIFIC INTERNATIONAL LIMITED
 
+OUI:54F607*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:54F666*
  ID_OUI_FROM_DATABASE=Berthold Technologies GmbH and Co.KG
 
@@ -58899,7 +59055,7 @@ OUI:54FA3E*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
 OUI:54FA96*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
 
 OUI:54FB58*
  ID_OUI_FROM_DATABASE=WISEWARE, Lda
@@ -59417,12 +59573,21 @@ OUI:58A87B*
 OUI:58AC78*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
+OUI:58AE2B*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
+OUI:58AEA8*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:58B035*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
 OUI:58B0D4*
  ID_OUI_FROM_DATABASE=ZuniData Systems Inc.
 
+OUI:58B0FE*
+ ID_OUI_FROM_DATABASE=Team EPS GmbH
+
 OUI:58B10F*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
@@ -60011,6 +60176,9 @@ OUI:5C6D20*
 OUI:5C6F4F*
  ID_OUI_FROM_DATABASE=S.A. SISTEL
 
+OUI:5C6F69*
+ ID_OUI_FROM_DATABASE=Broadcom Limited
+
 OUI:5C70A3*
  ID_OUI_FROM_DATABASE=LG Electronics (Mobile Communications)
 
@@ -60095,6 +60263,9 @@ OUI:5C857ED*
 OUI:5C857EE*
  ID_OUI_FROM_DATABASE=Guoyi Liangzi (Hefei) Technology Co., Ltd(CIQTEK)
 
+OUI:5C85F8*
+ ID_OUI_FROM_DATABASE=SHENZHEN KAIFA TECHNOLOGY CO.,LTD.
+
 OUI:5C8613*
  ID_OUI_FROM_DATABASE=Beijing Zhoenet Technology Co., Ltd
 
@@ -60170,6 +60341,9 @@ OUI:5C97F3*
 OUI:5C9960*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
+OUI:5C9AA1*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:5C9AD8*
  ID_OUI_FROM_DATABASE=FUJITSU LIMITED
 
@@ -60266,6 +60440,9 @@ OUI:5CBA37*
 OUI:5CBAEF*
  ID_OUI_FROM_DATABASE=CHONGQING FUGUI ELECTRONICS CO.,LTD.
 
+OUI:5CBD9A*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:5CBD9E*
  ID_OUI_FROM_DATABASE=HONGKONG MIRACLE EAGLE TECHNOLOGY(GROUP) LIMITED
 
@@ -60368,6 +60545,9 @@ OUI:5CDC96*
 OUI:5CDD70*
  ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited
 
+OUI:5CDE34*
+ ID_OUI_FROM_DATABASE=SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.
+
 OUI:5CE0C5*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
@@ -60401,6 +60581,9 @@ OUI:5CE3B6*
 OUI:5CE50C*
  ID_OUI_FROM_DATABASE=Beijing Xiaomi Mobile Software Co., Ltd
 
+OUI:5CE747*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:5CE7A0*
  ID_OUI_FROM_DATABASE=Nokia
 
@@ -60788,6 +60971,9 @@ OUI:605317*
 OUI:605464*
  ID_OUI_FROM_DATABASE=Eyedro Green Solutions Inc.
 
+OUI:6055F9*
+ ID_OUI_FROM_DATABASE=Espressif Inc.
+
 OUI:605661*
  ID_OUI_FROM_DATABASE=IXECLOUD Tech
 
@@ -60944,6 +61130,9 @@ OUI:608CE6*
 OUI:608D17*
  ID_OUI_FROM_DATABASE=Sentrus Government Systems Division, Inc
 
+OUI:608D26*
+ ID_OUI_FROM_DATABASE=Arcadyan Corporation
+
 OUI:608E08*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
@@ -61065,7 +61254,7 @@ OUI:60A730*
  ID_OUI_FROM_DATABASE=Shenzhen Yipinfang Internet Technology Co.,Ltd
 
 OUI:60A8FE*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
 
 OUI:60A9B0*
  ID_OUI_FROM_DATABASE=Merchandising Technologies, Inc
@@ -61406,6 +61595,9 @@ OUI:64037F*
 OUI:6405BE*
  ID_OUI_FROM_DATABASE=NEW LIGHT LED
 
+OUI:6405E4*
+ ID_OUI_FROM_DATABASE=ALPSALPINE CO .,LTD
+
 OUI:6405E9*
  ID_OUI_FROM_DATABASE=Shenzhen WayOS Technology Crop., Ltd.
 
@@ -61922,6 +62114,9 @@ OUI:649FF7*
 OUI:64A0E7*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
+OUI:64A198*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:64A200*
  ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
 
@@ -62084,6 +62279,9 @@ OUI:64D4BD*
 OUI:64D4DA*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
+OUI:64D7C0*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:64D814*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -62432,6 +62630,9 @@ OUI:683EEC*
 OUI:683F1E*
  ID_OUI_FROM_DATABASE=EFFECT Photonics B.V.
 
+OUI:683F7D*
+ ID_OUI_FROM_DATABASE=INGRAM MICRO SERVICES
+
 OUI:684352*
  ID_OUI_FROM_DATABASE=Bhuu Limited
 
@@ -62558,11 +62759,14 @@ OUI:6872C3*
 OUI:6872DC*
  ID_OUI_FROM_DATABASE=CETORY.TV Company Limited
 
+OUI:687627*
+ ID_OUI_FROM_DATABASE=Zhuhai Dingzhi Electronic Technology Co., Ltd
+
 OUI:68764F*
  ID_OUI_FROM_DATABASE=Sony Mobile Communications Inc
 
 OUI:687848*
- ID_OUI_FROM_DATABASE=Westunitis Co., Ltd.
+ ID_OUI_FROM_DATABASE=WESTUNITIS CO., LTD.
 
 OUI:68784C*
  ID_OUI_FROM_DATABASE=Nortel Networks
@@ -63653,6 +63857,9 @@ OUI:6CC7EC*
 OUI:6CCA08*
  ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
 
+OUI:6CCDD6*
+ ID_OUI_FROM_DATABASE=NETGEAR
+
 OUI:6CCE44*
  ID_OUI_FROM_DATABASE=1MORE
 
@@ -63671,6 +63878,9 @@ OUI:6CD2BA*
 OUI:6CD68A*
  ID_OUI_FROM_DATABASE=LG Electronics (Mobile Communications)
 
+OUI:6CD704*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:6CD71F*
  ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
 
@@ -63807,7 +64017,7 @@ OUI:6CF5E8*
  ID_OUI_FROM_DATABASE=Mooredoll Inc.
 
 OUI:6CF712*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
 
 OUI:6CF97C*
  ID_OUI_FROM_DATABASE=Nanoptix Inc.
@@ -65460,7 +65670,7 @@ OUI:70B3D513E*
  ID_OUI_FROM_DATABASE=Stara S/A Indústria de Implementos Agrícolas
 
 OUI:70B3D513F*
- ID_OUI_FROM_DATABASE=Farmobile
+ ID_OUI_FROM_DATABASE=Farmobile, LLC
 
 OUI:70B3D5140*
  ID_OUI_FROM_DATABASE=Virta Laboratories, Inc.
@@ -65798,6 +66008,9 @@ OUI:70B3D51B5*
 OUI:70B3D51B6*
  ID_OUI_FROM_DATABASE=DACOM West GmbH
 
+OUI:70B3D51B7*
+ ID_OUI_FROM_DATABASE=ULSee Inc
+
 OUI:70B3D51B8*
  ID_OUI_FROM_DATABASE=OES Inc.
 
@@ -66239,6 +66452,9 @@ OUI:70B3D5254*
 OUI:70B3D5255*
  ID_OUI_FROM_DATABASE=Asystems Corporation
 
+OUI:70B3D5256*
+ ID_OUI_FROM_DATABASE=Telco Antennas Pty Ltd
+
 OUI:70B3D5257*
  ID_OUI_FROM_DATABASE=LG Electronics
 
@@ -66404,6 +66620,9 @@ OUI:70B3D528E*
 OUI:70B3D528F*
  ID_OUI_FROM_DATABASE=Overline Systems
 
+OUI:70B3D5290*
+ ID_OUI_FROM_DATABASE=GETT Geraetetechnik GmbH
+
 OUI:70B3D5291*
  ID_OUI_FROM_DATABASE=Sequent AG
 
@@ -66440,6 +66659,9 @@ OUI:70B3D529C*
 OUI:70B3D529D*
  ID_OUI_FROM_DATABASE=XTech2 SIA
 
+OUI:70B3D529E*
+ ID_OUI_FROM_DATABASE=B2cloud lda
+
 OUI:70B3D529F*
  ID_OUI_FROM_DATABASE=Code Hardware SA
 
@@ -66776,6 +66998,9 @@ OUI:70B3D5317*
 OUI:70B3D5319*
  ID_OUI_FROM_DATABASE=ISO/TC 22/SC 31
 
+OUI:70B3D531A*
+ ID_OUI_FROM_DATABASE=Terratel Technology s.r.o.
+
 OUI:70B3D531B*
  ID_OUI_FROM_DATABASE=SilTerra Malaysia Sdn. Bhd.
 
@@ -67508,6 +67733,9 @@ OUI:70B3D541A*
 OUI:70B3D541B*
  ID_OUI_FROM_DATABASE=SYS TEC electronic GmbH
 
+OUI:70B3D541C*
+ ID_OUI_FROM_DATABASE=Twoway Communications, Inc.
+
 OUI:70B3D541D*
  ID_OUI_FROM_DATABASE=Azmoon Keifiat
 
@@ -67745,6 +67973,9 @@ OUI:70B3D5472*
 OUI:70B3D5473*
  ID_OUI_FROM_DATABASE=KeyProd
 
+OUI:70B3D5474*
+ ID_OUI_FROM_DATABASE=DAYOUPLUS
+
 OUI:70B3D5475*
  ID_OUI_FROM_DATABASE=EWATTCH
 
@@ -68043,7 +68274,7 @@ OUI:70B3D54DC*
  ID_OUI_FROM_DATABASE=JK DEVICE CORPORATION
 
 OUI:70B3D54DD*
- ID_OUI_FROM_DATABASE=Road-iQ, LLC
+ ID_OUI_FROM_DATABASE=Velvac Incorporated
 
 OUI:70B3D54DE*
  ID_OUI_FROM_DATABASE=Oso Technologies, Inc.
@@ -68225,6 +68456,9 @@ OUI:70B3D551D*
 OUI:70B3D551E*
  ID_OUI_FROM_DATABASE=Fundación Cardiovascular de Colombia
 
+OUI:70B3D551F*
+ ID_OUI_FROM_DATABASE=VALEO CDA
+
 OUI:70B3D5521*
  ID_OUI_FROM_DATABASE=Selex ES Inc.
 
@@ -68315,6 +68549,9 @@ OUI:70B3D553E*
 OUI:70B3D553F*
  ID_OUI_FROM_DATABASE=Abbott Diagnostics Technologies AS
 
+OUI:70B3D5540*
+ ID_OUI_FROM_DATABASE=KMtronic ltd
+
 OUI:70B3D5541*
  ID_OUI_FROM_DATABASE=Nanjing Pingguang Electronic Technology Co., Ltd
 
@@ -68408,6 +68645,9 @@ OUI:70B3D555E*
 OUI:70B3D555F*
  ID_OUI_FROM_DATABASE=Deep BV
 
+OUI:70B3D5560*
+ ID_OUI_FROM_DATABASE=DaiShin Information & Communications Co., Ltd
+
 OUI:70B3D5561*
  ID_OUI_FROM_DATABASE=Liberator Pty Ltd
 
@@ -68607,7 +68847,7 @@ OUI:70B3D55A7*
  ID_OUI_FROM_DATABASE=ABB S.p.A.
 
 OUI:70B3D55A8*
- ID_OUI_FROM_DATABASE=Farmobile
+ ID_OUI_FROM_DATABASE=Farmobile, LLC
 
 OUI:70B3D55A9*
  ID_OUI_FROM_DATABASE=Bunka Shutter Co., Ltd.
@@ -68963,6 +69203,9 @@ OUI:70B3D5625*
 OUI:70B3D5626*
  ID_OUI_FROM_DATABASE=KRONOTECH SRL
 
+OUI:70B3D5627*
+ ID_OUI_FROM_DATABASE=EarTex
+
 OUI:70B3D5628*
  ID_OUI_FROM_DATABASE=MECT SRL
 
@@ -69077,6 +69320,9 @@ OUI:70B3D564D*
 OUI:70B3D564E*
  ID_OUI_FROM_DATABASE=BigStuff3, Inc.
 
+OUI:70B3D564F*
+ ID_OUI_FROM_DATABASE=GUNMA ELECTRONICS CO LTD
+
 OUI:70B3D5650*
  ID_OUI_FROM_DATABASE=GIFAS-ELECTRIC GmbH
 
@@ -70343,6 +70589,9 @@ OUI:70B3D580C*
 OUI:70B3D580D*
  ID_OUI_FROM_DATABASE=Data Physics Corporation
 
+OUI:70B3D580E*
+ ID_OUI_FROM_DATABASE=Utopi Ltd
+
 OUI:70B3D580F*
  ID_OUI_FROM_DATABASE=Quickware Eng & Des LLC
 
@@ -70379,6 +70628,9 @@ OUI:70B3D581A*
 OUI:70B3D581B*
  ID_OUI_FROM_DATABASE=bobz GmbH
 
+OUI:70B3D581C*
+ ID_OUI_FROM_DATABASE=QIT Co., Ltd.
+
 OUI:70B3D581D*
  ID_OUI_FROM_DATABASE=DEUTA-WERKE GmbH
 
@@ -70688,6 +70940,9 @@ OUI:70B3D5885*
 OUI:70B3D5886*
  ID_OUI_FROM_DATABASE=MB connect line GmbH Fernwartungssysteme
 
+OUI:70B3D5887*
+ ID_OUI_FROM_DATABASE=Entec Solar S.L.
+
 OUI:70B3D5888*
  ID_OUI_FROM_DATABASE=Zetechtics Ltd
 
@@ -70901,6 +71156,9 @@ OUI:70B3D58CF*
 OUI:70B3D58D0*
  ID_OUI_FROM_DATABASE=Raft Technologies
 
+OUI:70B3D58D1*
+ ID_OUI_FROM_DATABASE=Field Design Inc.
+
 OUI:70B3D58D3*
  ID_OUI_FROM_DATABASE=PERFORMANCE CONTROLS, INC.
 
@@ -70958,6 +71216,9 @@ OUI:70B3D58E6*
 OUI:70B3D58E7*
  ID_OUI_FROM_DATABASE=REO AG
 
+OUI:70B3D58E8*
+ ID_OUI_FROM_DATABASE=PREO INDUSTRIES FAR EAST LTD
+
 OUI:70B3D58EA*
  ID_OUI_FROM_DATABASE=JLCooper Electronics
 
@@ -71186,6 +71447,9 @@ OUI:70B3D593A*
 OUI:70B3D593B*
  ID_OUI_FROM_DATABASE=Changchun FAW Yanfeng Visteon Automotive Electronics.,Ltd.
 
+OUI:70B3D593C*
+ ID_OUI_FROM_DATABASE=GSP Sprachtechnologie GmbH
+
 OUI:70B3D593D*
  ID_OUI_FROM_DATABASE=Elmeasure India Pvt Ltd
 
@@ -72029,6 +72293,9 @@ OUI:70B3D5A62*
 OUI:70B3D5A64*
  ID_OUI_FROM_DATABASE=Newshine
 
+OUI:70B3D5A65*
+ ID_OUI_FROM_DATABASE=CREATIVE
+
 OUI:70B3D5A66*
  ID_OUI_FROM_DATABASE=Trapeze Software Group Inc
 
@@ -72461,6 +72728,9 @@ OUI:70B3D5AFA*
 OUI:70B3D5AFB*
  ID_OUI_FROM_DATABASE=Shanghai Tianhe Automation Instrumentation Co., Ltd.
 
+OUI:70B3D5AFC*
+ ID_OUI_FROM_DATABASE=BAE Systems
+
 OUI:70B3D5AFE*
  ID_OUI_FROM_DATABASE=MESOTECHNIC
 
@@ -72584,6 +72854,9 @@ OUI:70B3D5B2A*
 OUI:70B3D5B2B*
  ID_OUI_FROM_DATABASE=Vtron Pty Ltd
 
+OUI:70B3D5B2C*
+ ID_OUI_FROM_DATABASE=Elman srl
+
 OUI:70B3D5B2D*
  ID_OUI_FROM_DATABASE=Plexus
 
@@ -72644,6 +72917,9 @@ OUI:70B3D5B40*
 OUI:70B3D5B41*
  ID_OUI_FROM_DATABASE=T&M Media Pty Ltd
 
+OUI:70B3D5B42*
+ ID_OUI_FROM_DATABASE=Samwell International Inc
+
 OUI:70B3D5B43*
  ID_OUI_FROM_DATABASE=ZAO ZEO
 
@@ -73070,6 +73346,12 @@ OUI:70B3D5BD9*
 OUI:70B3D5BDA*
  ID_OUI_FROM_DATABASE=5-D Systems, Inc.
 
+OUI:70B3D5BDB*
+ ID_OUI_FROM_DATABASE=Power Electronics Espana, S.L.
+
+OUI:70B3D5BDC*
+ ID_OUI_FROM_DATABASE=EDF Lab
+
 OUI:70B3D5BDD*
  ID_OUI_FROM_DATABASE=CDR SRL
 
@@ -73127,6 +73409,9 @@ OUI:70B3D5BEE*
 OUI:70B3D5BEF*
  ID_OUI_FROM_DATABASE=Sensortech Systems Inc.
 
+OUI:70B3D5BF0*
+ ID_OUI_FROM_DATABASE=Alfa Elettronica srl
+
 OUI:70B3D5BF1*
  ID_OUI_FROM_DATABASE=Flashnet SRL
 
@@ -73226,6 +73511,9 @@ OUI:70B3D5C11*
 OUI:70B3D5C12*
  ID_OUI_FROM_DATABASE=Beijing Wisetone Information Technology Co.,Ltd.
 
+OUI:70B3D5C13*
+ ID_OUI_FROM_DATABASE=Guangzhou Xianhe Technology Engineering Co., Ltd
+
 OUI:70B3D5C14*
  ID_OUI_FROM_DATABASE=Grupo Epelsa S.L.
 
@@ -73283,6 +73571,9 @@ OUI:70B3D5C26*
 OUI:70B3D5C27*
  ID_OUI_FROM_DATABASE=GD Mission Systems
 
+OUI:70B3D5C28*
+ ID_OUI_FROM_DATABASE=Mitech Integrated Systems Inc.
+
 OUI:70B3D5C29*
  ID_OUI_FROM_DATABASE=SOFTLAND INDIA LTD
 
@@ -73370,6 +73661,9 @@ OUI:70B3D5C45*
 OUI:70B3D5C46*
  ID_OUI_FROM_DATABASE=eumig industrie-TV GmbH.
 
+OUI:70B3D5C47*
+ ID_OUI_FROM_DATABASE=ABB
+
 OUI:70B3D5C48*
  ID_OUI_FROM_DATABASE=Weltek Technologies Co. Ltd.
 
@@ -73730,6 +74024,9 @@ OUI:70B3D5CC5*
 OUI:70B3D5CC6*
  ID_OUI_FROM_DATABASE=MB connect line GmbH Fernwartungssysteme
 
+OUI:70B3D5CC7*
+ ID_OUI_FROM_DATABASE=SOtM
+
 OUI:70B3D5CC8*
  ID_OUI_FROM_DATABASE=PROFEN COMMUNICATIONS
 
@@ -73778,6 +74075,9 @@ OUI:70B3D5CD6*
 OUI:70B3D5CD7*
  ID_OUI_FROM_DATABASE=AutomationX GmbH
 
+OUI:70B3D5CD8*
+ ID_OUI_FROM_DATABASE=Nexus Electric S.A.
+
 OUI:70B3D5CD9*
  ID_OUI_FROM_DATABASE=Peter Huber Kaeltemaschinenbau GmbH
 
@@ -73829,6 +74129,9 @@ OUI:70B3D5CEC*
 OUI:70B3D5CED*
  ID_OUI_FROM_DATABASE=Advanced Products Corporation Pte Ltd
 
+OUI:70B3D5CEE*
+ ID_OUI_FROM_DATABASE=ACRIOS Systems s.r.o.
+
 OUI:70B3D5CEF*
  ID_OUI_FROM_DATABASE=Ellego Powertec Oy
 
@@ -73883,6 +74186,9 @@ OUI:70B3D5D01*
 OUI:70B3D5D02*
  ID_OUI_FROM_DATABASE=Arctos Showlasertechnik GmbH
 
+OUI:70B3D5D03*
+ ID_OUI_FROM_DATABASE=Digitella Inc.
+
 OUI:70B3D5D05*
  ID_OUI_FROM_DATABASE=Colmek
 
@@ -74039,6 +74345,9 @@ OUI:70B3D5D3C*
 OUI:70B3D5D3D*
  ID_OUI_FROM_DATABASE=Netzikon GmbH
 
+OUI:70B3D5D3E*
+ ID_OUI_FROM_DATABASE=enders GmbH
+
 OUI:70B3D5D3F*
  ID_OUI_FROM_DATABASE=GLOBALCOM ENGINEERING SPA
 
@@ -74435,6 +74744,9 @@ OUI:70B3D5DC9*
 OUI:70B3D5DCA*
  ID_OUI_FROM_DATABASE=DSan Corporation
 
+OUI:70B3D5DCB*
+ ID_OUI_FROM_DATABASE=MIJIENETRTECH CO.,LTD
+
 OUI:70B3D5DCC*
  ID_OUI_FROM_DATABASE=Eutron SPA
 
@@ -75119,6 +75431,9 @@ OUI:70B3D5EBF*
 OUI:70B3D5EC1*
  ID_OUI_FROM_DATABASE=Xafax Nederland bv
 
+OUI:70B3D5EC2*
+ ID_OUI_FROM_DATABASE=Lightside Instruments AS
+
 OUI:70B3D5EC3*
  ID_OUI_FROM_DATABASE=Virtual Control Systems Ltd
 
@@ -75135,7 +75450,7 @@ OUI:70B3D5EC7*
  ID_OUI_FROM_DATABASE=Neoptix Inc.
 
 OUI:70B3D5EC8*
- ID_OUI_FROM_DATABASE=Viko Elektrik-Elektronik A.Ş.
+ ID_OUI_FROM_DATABASE=PANASONIC LIFE SOLUTIONS ELEKTRİK SANAYİ VE TİCARE
 
 OUI:70B3D5EC9*
  ID_OUI_FROM_DATABASE=Qlinx Technologies
@@ -75182,6 +75497,9 @@ OUI:70B3D5ED7*
 OUI:70B3D5ED8*
  ID_OUI_FROM_DATABASE=Wartsila Voyage Limited
 
+OUI:70B3D5ED9*
+ ID_OUI_FROM_DATABASE=AADONA Communication Pvt Ltd
+
 OUI:70B3D5EDA*
  ID_OUI_FROM_DATABASE=Breas Medical AB
 
@@ -75740,6 +76058,9 @@ OUI:70B3D5F9B*
 OUI:70B3D5F9C*
  ID_OUI_FROM_DATABASE=SureFlap Ltd
 
+OUI:70B3D5F9D*
+ ID_OUI_FROM_DATABASE=Teledyne API
+
 OUI:70B3D5F9E*
  ID_OUI_FROM_DATABASE=International Center for Elementary Particle Physics, The University of Tokyo
 
@@ -76085,6 +76406,9 @@ OUI:70CD91*
 OUI:70CE8C*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
+OUI:70CF49*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:70D081*
  ID_OUI_FROM_DATABASE=Beijing Netpower Technologies Inc.
 
@@ -76292,6 +76616,9 @@ OUI:7403BD*
 OUI:74042B*
  ID_OUI_FROM_DATABASE=Lenovo Mobile Communication (Wuhan) Company Limited
 
+OUI:7404F0*
+ ID_OUI_FROM_DATABASE=Mobiwire Mobiles (NingBo) Co., LTD
+
 OUI:7405A5*
  ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD.
 
@@ -76547,12 +76874,18 @@ OUI:744AA4*
 OUI:744BE9*
  ID_OUI_FROM_DATABASE=EXPLORER HYPERTECH CO.,LTD
 
+OUI:744CA1*
+ ID_OUI_FROM_DATABASE=Liteon Technology Corporation
+
 OUI:744D28*
  ID_OUI_FROM_DATABASE=Routerboard.com
 
 OUI:744D79*
  ID_OUI_FROM_DATABASE=Arrive Systems Inc.
 
+OUI:74504E*
+ ID_OUI_FROM_DATABASE=New H3C Technologies Co., Ltd
+
 OUI:7451BA*
  ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
 
@@ -76790,6 +77123,9 @@ OUI:748A28*
 OUI:748A69*
  ID_OUI_FROM_DATABASE=Korea Image Technology Co., Ltd
 
+OUI:748B29*
+ ID_OUI_FROM_DATABASE=Micobiomed
+
 OUI:748B34*
  ID_OUI_FROM_DATABASE=Shanghai Smart System Technology Co., Ltd
 
@@ -76809,7 +77145,7 @@ OUI:748F3C*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
 OUI:748F4D*
- ID_OUI_FROM_DATABASE=MEN Mikro Elektronik GmbH
+ ID_OUI_FROM_DATABASE=duagon Germany GmbH
 
 OUI:74901F*
  ID_OUI_FROM_DATABASE=Ragile Networks Inc.
@@ -77147,6 +77483,9 @@ OUI:74E6E2*
 OUI:74E7C6*
  ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
 
+OUI:74E9BF*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:74EA3A*
  ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD.
 
@@ -78041,6 +78380,9 @@ OUI:78CC2B*
 OUI:78CD8E*
  ID_OUI_FROM_DATABASE=SMC Networks Inc
 
+OUI:78CF2F*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:78D004*
  ID_OUI_FROM_DATABASE=Neousys Technology Inc.
 
@@ -78062,6 +78404,12 @@ OUI:78D34F*
 OUI:78D38D*
  ID_OUI_FROM_DATABASE=HONGKONG YUNLINK TECHNOLOGY LIMITED
 
+OUI:78D4F11*
+ ID_OUI_FROM_DATABASE=Cartender
+
+OUI:78D4F15*
+ ID_OUI_FROM_DATABASE=Huaqin Telecom Technology Co.,Ltd.
+
 OUI:78D5B5*
  ID_OUI_FROM_DATABASE=NAVIELEKTRO KY
 
@@ -78231,7 +78579,7 @@ OUI:78F944*
  ID_OUI_FROM_DATABASE=Private
 
 OUI:78F9B4*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
 
 OUI:78FC14*
  ID_OUI_FROM_DATABASE=Family Zone Cyber Safety Ltd
@@ -79007,6 +79355,9 @@ OUI:7CBFB1*
 OUI:7CC294*
  ID_OUI_FROM_DATABASE=Beijing Xiaomi Mobile Software Co., Ltd
 
+OUI:7CC2C6*
+ ID_OUI_FROM_DATABASE=TP-Link Corporation Limited
+
 OUI:7CC385*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -79400,6 +79751,9 @@ OUI:8020FD*
 OUI:802275*
  ID_OUI_FROM_DATABASE=Beijing Beny Wave Technology Co Ltd
 
+OUI:802278*
+ ID_OUI_FROM_DATABASE=China Mobile IOT Company Limited
+
 OUI:8022A7*
  ID_OUI_FROM_DATABASE=NEC Platforms, Ltd.
 
@@ -79517,6 +79871,9 @@ OUI:804A14*
 OUI:804B20*
  ID_OUI_FROM_DATABASE=Ventilation Control
 
+OUI:804B50*
+ ID_OUI_FROM_DATABASE=Silicon Laboratories
+
 OUI:804E70*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
@@ -79883,6 +80240,9 @@ OUI:80B709*
 OUI:80B95C*
  ID_OUI_FROM_DATABASE=ELFTECH Co., Ltd.
 
+OUI:80B97A*
+ ID_OUI_FROM_DATABASE=eero inc.
+
 OUI:80BAAC*
  ID_OUI_FROM_DATABASE=TeleAdapt Ltd
 
@@ -80405,6 +80765,9 @@ OUI:844167*
 OUI:844464*
  ID_OUI_FROM_DATABASE=ServerU Inc
 
+OUI:8444AF*
+ ID_OUI_FROM_DATABASE=Zhejiang Tmall Technology Co., Ltd.
+
 OUI:8446FE*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -80456,6 +80819,9 @@ OUI:845B12*
 OUI:845C93*
  ID_OUI_FROM_DATABASE=Chabrier Services
 
+OUI:845CF3*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:845DD7*
  ID_OUI_FROM_DATABASE=Shenzhen Netcom Electronics Co.,Ltd
 
@@ -80474,6 +80840,9 @@ OUI:8462A6*
 OUI:8463D6*
  ID_OUI_FROM_DATABASE=Microsoft Corporation
 
+OUI:846569*
+ ID_OUI_FROM_DATABASE=New H3C Technologies Co., Ltd
+
 OUI:84683E*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
@@ -81170,6 +81539,9 @@ OUI:8821E3*
 OUI:882364*
  ID_OUI_FROM_DATABASE=Watchnet DVR Inc
 
+OUI:88238C*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
 OUI:8823FE*
  ID_OUI_FROM_DATABASE=TTTech Computertechnik AG
 
@@ -81338,6 +81710,9 @@ OUI:8857EE*
 OUI:885A06*
  ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
 
+OUI:885A85*
+ ID_OUI_FROM_DATABASE=Wistron Neweb Corporation
+
 OUI:885A92*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -82028,6 +82403,9 @@ OUI:8C0F83*
 OUI:8C0FA0*
  ID_OUI_FROM_DATABASE=di-soric GmbH & Co. KG
 
+OUI:8C0FC9*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:8C0FFA*
  ID_OUI_FROM_DATABASE=Hutec co.,ltd
 
@@ -82487,6 +82865,9 @@ OUI:8C640B*
 OUI:8C6422*
  ID_OUI_FROM_DATABASE=Sony Mobile Communications Inc
 
+OUI:8C64D4*
+ ID_OUI_FROM_DATABASE=Hyeco Smart Tech Co.,Ltd
+
 OUI:8C683A*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -82616,6 +82997,9 @@ OUI:8C8ABB*
 OUI:8C8B83*
  ID_OUI_FROM_DATABASE=Texas Instruments
 
+OUI:8C8CAA*
+ ID_OUI_FROM_DATABASE=LCFC(HeFei) Electronics Technology co., ltd
+
 OUI:8C8D28*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
@@ -82688,12 +83072,51 @@ OUI:8CAAB5*
 OUI:8CAB8E*
  ID_OUI_FROM_DATABASE=Shanghai Feixun Communication Co.,Ltd.
 
+OUI:8CAE490*
+ ID_OUI_FROM_DATABASE=Ouman Oy
+
+OUI:8CAE491*
+ ID_OUI_FROM_DATABASE=H3 Platform
+
+OUI:8CAE492*
+ ID_OUI_FROM_DATABASE=SEVERIN Elektrogeräte GmbH
+
+OUI:8CAE493*
+ ID_OUI_FROM_DATABASE=BERTIN TECHNOLOGIES
+
+OUI:8CAE494*
+ ID_OUI_FROM_DATABASE=Jiangsu Sixingda Information Technology Co., Ltd.
+
+OUI:8CAE495*
+ ID_OUI_FROM_DATABASE=Gati Information Technolog(Kunshan)Co.,Ltd.
+
 OUI:8CAE496*
  ID_OUI_FROM_DATABASE=Chengdu BillDTE Technology Co., Ltd
 
+OUI:8CAE497*
+ ID_OUI_FROM_DATABASE=Precitec Optronik GmbH
+
+OUI:8CAE498*
+ ID_OUI_FROM_DATABASE=LLC Taipit - Measuring Equipment
+
+OUI:8CAE499*
+ ID_OUI_FROM_DATABASE=TTR Corporation
+
 OUI:8CAE49A*
  ID_OUI_FROM_DATABASE=Gigawave
 
+OUI:8CAE49B*
+ ID_OUI_FROM_DATABASE=Suzhou Guowang Electronics Technology Co., Ltd.
+
+OUI:8CAE49C*
+ ID_OUI_FROM_DATABASE=Parametric GmbH
+
+OUI:8CAE49D*
+ ID_OUI_FROM_DATABASE=Larch Networks
+
+OUI:8CAE49E*
+ ID_OUI_FROM_DATABASE=Shenzhen C & D Electronics Co., Ltd.
+
 OUI:8CAE4C*
  ID_OUI_FROM_DATABASE=Plugable Technologies
 
@@ -82868,6 +83291,9 @@ OUI:8CDE52*
 OUI:8CDE99*
  ID_OUI_FROM_DATABASE=Comlab Inc.
 
+OUI:8CDEF9*
+ ID_OUI_FROM_DATABASE=Beijing Xiaomi Mobile Software Co., Ltd
+
 OUI:8CDF9D*
  ID_OUI_FROM_DATABASE=NEC Corporation
 
@@ -82904,6 +83330,9 @@ OUI:8CE7B3*
 OUI:8CEA1B*
  ID_OUI_FROM_DATABASE=Edgecore Networks Corporation
 
+OUI:8CEA48*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
 OUI:8CEBC6*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -82919,6 +83348,9 @@ OUI:8CF112*
 OUI:8CF228*
  ID_OUI_FROM_DATABASE=MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.
 
+OUI:8CF319*
+ ID_OUI_FROM_DATABASE=Siemens Industrial Automation Products Ltd., Chengdu
+
 OUI:8CF5A3*
  ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO-MECHANICS(THAILAND)
 
@@ -82976,6 +83408,9 @@ OUI:90013B*
 OUI:900218*
  ID_OUI_FROM_DATABASE=BSkyB Ltd
 
+OUI:90027A*
+ ID_OUI_FROM_DATABASE=Shenzhen Sworix Techonlogy Co., Ltd
+
 OUI:90028A*
  ID_OUI_FROM_DATABASE=Shenzhen Shidean Legrand Electronic Products Co.,Ltd
 
@@ -83030,6 +83465,9 @@ OUI:900E83*
 OUI:900EB3*
  ID_OUI_FROM_DATABASE=Shenzhen Amediatech Technology Co., Ltd.
 
+OUI:900F0C*
+ ID_OUI_FROM_DATABASE=CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.
+
 OUI:901234*
  ID_OUI_FROM_DATABASE=Shenzhen YOUHUA Technology Co., Ltd
 
@@ -83162,6 +83600,9 @@ OUI:903C92*
 OUI:903CAE*
  ID_OUI_FROM_DATABASE=Yunnan KSEC Digital Technology Co.,Ltd.
 
+OUI:903CB3*
+ ID_OUI_FROM_DATABASE=Edgecore Networks Corporation
+
 OUI:903D5A*
  ID_OUI_FROM_DATABASE=Shenzhen Wision Technology Holding Limited
 
@@ -84194,6 +84635,9 @@ OUI:945B7E*
 OUI:945F34*
  ID_OUI_FROM_DATABASE=Renesas Electronics (Penang) Sdn. Bhd.
 
+OUI:946010*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:94611E*
  ID_OUI_FROM_DATABASE=Wata Electronics Co.,Ltd.
 
@@ -84302,6 +84746,9 @@ OUI:948DEF*
 OUI:948E89*
  ID_OUI_FROM_DATABASE=INDUSTRIAS UNIDAS SA DE CV
 
+OUI:948ED3*
+ ID_OUI_FROM_DATABASE=Arista Networks
+
 OUI:948FCF*
  ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
 
@@ -85256,6 +85703,9 @@ OUI:9876B6*
 OUI:987770*
  ID_OUI_FROM_DATABASE=Pep Digital Technology (Guangzhou) Co., Ltd
 
+OUI:9877E7*
+ ID_OUI_FROM_DATABASE=Kaonmedia CO., LTD.
+
 OUI:987A10*
  ID_OUI_FROM_DATABASE=Ericsson AB
 
@@ -85301,6 +85751,9 @@ OUI:988B0A*
 OUI:988B5D*
  ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
 
+OUI:988B69*
+ ID_OUI_FROM_DATABASE=Shenzhen hylitech Co.,LTD
+
 OUI:988BAD*
  ID_OUI_FROM_DATABASE=Corintech Ltd.
 
@@ -85574,6 +86027,9 @@ OUI:98EC65*
 OUI:98ED5C*
  ID_OUI_FROM_DATABASE=Tesla,Inc.
 
+OUI:98ED7E*
+ ID_OUI_FROM_DATABASE=eero inc.
+
 OUI:98EECB*
  ID_OUI_FROM_DATABASE=Wistron Infocomm (Zhongshan) Corporation
 
@@ -85763,6 +86219,9 @@ OUI:9C0473*
 OUI:9C04EB*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:9C0567*
+ ID_OUI_FROM_DATABASE=Honor Device Co., Ltd.
+
 OUI:9C061B*
  ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited
 
@@ -86186,6 +86645,9 @@ OUI:9C807D*
 OUI:9C80DF*
  ID_OUI_FROM_DATABASE=Arcadyan Technology Corporation
 
+OUI:9C823F*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:9C8275*
  ID_OUI_FROM_DATABASE=Yichip Microelectronics (Hangzhou) Co.,Ltd
 
@@ -86363,6 +86825,9 @@ OUI:9CB793*
 OUI:9CBB98*
  ID_OUI_FROM_DATABASE=Shen Zhen RND Electronic Co.,LTD
 
+OUI:9CBCF0*
+ ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
+
 OUI:9CBD6E*
  ID_OUI_FROM_DATABASE=DERA Co., Ltd
 
@@ -86498,6 +86963,9 @@ OUI:9CE91C*
 OUI:9CE951*
  ID_OUI_FROM_DATABASE=Shenzhen Sang Fei Consumer Communications Ltd., Co.
 
+OUI:9CEA97*
+ ID_OUI_FROM_DATABASE=Honor Device Co., Ltd.
+
 OUI:9CEBE8*
  ID_OUI_FROM_DATABASE=BizLink (Kunshan) Co.,Ltd
 
@@ -86600,6 +87068,48 @@ OUI:9CFFBE*
 OUI:9CFFC2*
  ID_OUI_FROM_DATABASE=AVI Systems GmbH
 
+OUI:A0024A0*
+ ID_OUI_FROM_DATABASE=Zhejiang Hechuan Technology Co.,Ltd
+
+OUI:A0024A1*
+ ID_OUI_FROM_DATABASE=Vitec Imaging Solutions Spa
+
+OUI:A0024A2*
+ ID_OUI_FROM_DATABASE=Danriver Technologies Corp.
+
+OUI:A0024A3*
+ ID_OUI_FROM_DATABASE=SomaDetect Inc
+
+OUI:A0024A4*
+ ID_OUI_FROM_DATABASE=Argos Solutions AS
+
+OUI:A0024A5*
+ ID_OUI_FROM_DATABASE=Donguan Amsamotion Automation Technology Co., Ltd
+
+OUI:A0024A6*
+ ID_OUI_FROM_DATABASE=Xiaojie Technology (Shenzhen) Co., Ltd
+
+OUI:A0024A8*
+ ID_OUI_FROM_DATABASE=Beijing Lyratone Technology Co., Ltd
+
+OUI:A0024A9*
+ ID_OUI_FROM_DATABASE=Kontakt Micro-Location Sp z o.o.
+
+OUI:A0024AA*
+ ID_OUI_FROM_DATABASE=Guangdong Jinpeng Technology Co. LTD
+
+OUI:A0024AB*
+ ID_OUI_FROM_DATABASE=Xi'an Yingsheng Electric Technology Co.,Ltd.
+
+OUI:A0024AC*
+ ID_OUI_FROM_DATABASE=Encroute AB
+
+OUI:A0024AD*
+ ID_OUI_FROM_DATABASE=bitbee Inc
+
+OUI:A0024AE*
+ ID_OUI_FROM_DATABASE=IoTecha Corp
+
 OUI:A002DC*
  ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
 
@@ -86882,6 +87392,9 @@ OUI:A039F7*
 OUI:A03A75*
  ID_OUI_FROM_DATABASE=PSS Belgium N.V.
 
+OUI:A03B01*
+ ID_OUI_FROM_DATABASE=Kyung In Electronics
+
 OUI:A03B1B*
  ID_OUI_FROM_DATABASE=Inspire Tech
 
@@ -86891,6 +87404,9 @@ OUI:A03BE3*
 OUI:A03C31*
  ID_OUI_FROM_DATABASE=Shenzhen Belon Technology CO.,LTD
 
+OUI:A03D6E*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
 OUI:A03D6F*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -87257,6 +87773,9 @@ OUI:A0A3B8*
 OUI:A0A3E2*
  ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc
 
+OUI:A0A3F0*
+ ID_OUI_FROM_DATABASE=D-Link International
+
 OUI:A0A4C5*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
@@ -87908,6 +88427,9 @@ OUI:A43EA0*
 OUI:A44027*
  ID_OUI_FROM_DATABASE=zte corporation
 
+OUI:A4423B*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:A444D1*
  ID_OUI_FROM_DATABASE=Wingtech Group (HongKong)Limited
 
@@ -88019,6 +88541,45 @@ OUI:A4530E*
 OUI:A45385*
  ID_OUI_FROM_DATABASE=WEIFANG GOERTEK ELECTRONICS CO.,LTD
 
+OUI:A453EE0*
+ ID_OUI_FROM_DATABASE=MAHLE ELECTRONICS, SLU
+
+OUI:A453EE1*
+ ID_OUI_FROM_DATABASE=Stellamore
+
+OUI:A453EE2*
+ ID_OUI_FROM_DATABASE=Ubisafe Smart Devices
+
+OUI:A453EE3*
+ ID_OUI_FROM_DATABASE=Larva.io OÜ
+
+OUI:A453EE4*
+ ID_OUI_FROM_DATABASE=Williamson Corporation
+
+OUI:A453EE5*
+ ID_OUI_FROM_DATABASE=Foshan Yisihang Electrical Technology Co., Ltd.
+
+OUI:A453EE6*
+ ID_OUI_FROM_DATABASE=Aura Home, Inc.
+
+OUI:A453EE7*
+ ID_OUI_FROM_DATABASE=Beijing Lanke Science and Technology Co.,LTd.
+
+OUI:A453EE8*
+ ID_OUI_FROM_DATABASE=T-Touching Co., Ltd.
+
+OUI:A453EE9*
+ ID_OUI_FROM_DATABASE=Dongguan HuaFuu industrial co., LTD
+
+OUI:A453EEB*
+ ID_OUI_FROM_DATABASE=Viper Design, LLC
+
+OUI:A453EEC*
+ ID_OUI_FROM_DATABASE=SOS LAB Co., Ltd.
+
+OUI:A453EED*
+ ID_OUI_FROM_DATABASE=SSK CORPORATION
+
 OUI:A45602*
  ID_OUI_FROM_DATABASE=fenglian Technology Co.,Ltd.
 
@@ -88115,6 +88676,9 @@ OUI:A46706*
 OUI:A468BC*
  ID_OUI_FROM_DATABASE=Oakley Inc.
 
+OUI:A46BB6*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:A46C2A*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -88826,6 +89390,9 @@ OUI:A83759*
 OUI:A83944*
  ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc
 
+OUI:A83B5C*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:A83CCB*
  ID_OUI_FROM_DATABASE=ROSSMA
 
@@ -89138,6 +89705,9 @@ OUI:A8995C*
 OUI:A89969*
  ID_OUI_FROM_DATABASE=Dell Inc.
 
+OUI:A899DC*
+ ID_OUI_FROM_DATABASE=i-TOP DESING TECHNOLOGY CO.,LTD
+
 OUI:A89A93*
  ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
 
@@ -89264,6 +89834,9 @@ OUI:A8CAB9*
 OUI:A8CB95*
  ID_OUI_FROM_DATABASE=EAST BEST CO., LTD.
 
+OUI:A8CC6F*
+ ID_OUI_FROM_DATABASE=HMD Global Oy
+
 OUI:A8CCC5*
  ID_OUI_FROM_DATABASE=Saab AB (publ)
 
@@ -89363,6 +89936,9 @@ OUI:A8F5AC*
 OUI:A8F5DD*
  ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
 
+OUI:A8F766*
+ ID_OUI_FROM_DATABASE=ITE Tech Inc
+
 OUI:A8F7E0*
  ID_OUI_FROM_DATABASE=PLANET Technology Corporation
 
@@ -89378,6 +89954,9 @@ OUI:A8FB70*
 OUI:A8FCB7*
  ID_OUI_FROM_DATABASE=Consolidated Resource Imaging
 
+OUI:A8FFBA*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:AA0000*
  ID_OUI_FROM_DATABASE=DIGITAL EQUIPMENT CORPORATION
 
@@ -89864,6 +90443,9 @@ OUI:AC751D*
 OUI:AC7713*
  ID_OUI_FROM_DATABASE=Honeywell Safety Products (Shanghai) Co.,Ltd
 
+OUI:AC78D1*
+ ID_OUI_FROM_DATABASE=Juniper Networks
+
 OUI:AC7A42*
  ID_OUI_FROM_DATABASE=iConnectivity
 
@@ -90620,6 +91202,9 @@ OUI:B0793C*
 OUI:B07994*
  ID_OUI_FROM_DATABASE=Motorola Mobility LLC, a Lenovo Company
 
+OUI:B07B25*
+ ID_OUI_FROM_DATABASE=Dell Inc.
+
 OUI:B07D47*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -90668,6 +91253,9 @@ OUI:B089C2*
 OUI:B08BCF*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
+OUI:B08BD0*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
 OUI:B08C75*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
@@ -90866,6 +91454,9 @@ OUI:B0BB8B*
 OUI:B0BBE5*
  ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
 
+OUI:B0BD1B*
+ ID_OUI_FROM_DATABASE=Dongguan Liesheng Electronic Co., Ltd.
+
 OUI:B0BD6D*
  ID_OUI_FROM_DATABASE=Echostreams Innovative Solutions
 
@@ -91781,6 +92372,9 @@ OUI:B4B15A*
 OUI:B4B265*
  ID_OUI_FROM_DATABASE=DAEHO I&T
 
+OUI:B4B291*
+ ID_OUI_FROM_DATABASE=LG Electronics
+
 OUI:B4B362*
  ID_OUI_FROM_DATABASE=zte corporation
 
@@ -91796,6 +92390,9 @@ OUI:B4B542*
 OUI:B4B5AF*
  ID_OUI_FROM_DATABASE=Minsung Electronics
 
+OUI:B4B5B6*
+ ID_OUI_FROM_DATABASE=CHONGQING FUGUI ELECTRONICS CO.,LTD.
+
 OUI:B4B676*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
@@ -93062,6 +93659,9 @@ OUI:BC3E07*
 OUI:BC3E13*
  ID_OUI_FROM_DATABASE=Accordance Systems Inc.
 
+OUI:BC3ECB*
+ ID_OUI_FROM_DATABASE=vivo Mobile Communication Co., Ltd.
+
 OUI:BC3F4E*
  ID_OUI_FROM_DATABASE=Teleepoch Ltd
 
@@ -93260,6 +93860,9 @@ OUI:BC6B4D*
 OUI:BC6C21*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:BC6D05*
+ ID_OUI_FROM_DATABASE=Dusun Electron Co.,Ltd.
+
 OUI:BC6E64*
  ID_OUI_FROM_DATABASE=Sony Mobile Communications Inc
 
@@ -93443,6 +94046,9 @@ OUI:BC9930*
 OUI:BC99BC*
  ID_OUI_FROM_DATABASE=FonSee Technology Inc.
 
+OUI:BC9A53*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:BC9B68*
  ID_OUI_FROM_DATABASE=Technicolor CH USA Inc.
 
@@ -93452,6 +94058,9 @@ OUI:BC9C31*
 OUI:BC9CC5*
  ID_OUI_FROM_DATABASE=Beijing Huafei Technology Co., Ltd.
 
+OUI:BC9D42*
+ ID_OUI_FROM_DATABASE=SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.
+
 OUI:BC9DA5*
  ID_OUI_FROM_DATABASE=DASCOM Europe GmbH
 
@@ -93623,6 +94232,9 @@ OUI:BCE63F*
 OUI:BCE67C*
  ID_OUI_FROM_DATABASE=Cambium Networks Limited
 
+OUI:BCE712*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
 OUI:BCE767*
  ID_OUI_FROM_DATABASE=Quanzhou  TDX Electronics Co., Ltd
 
@@ -93662,6 +94274,9 @@ OUI:BCF2AF*
 OUI:BCF310*
  ID_OUI_FROM_DATABASE=Extreme Networks, Inc.
 
+OUI:BCF45F*
+ ID_OUI_FROM_DATABASE=zte corporation
+
 OUI:BCF5AC*
  ID_OUI_FROM_DATABASE=LG Electronics (Mobile Communications)
 
@@ -93782,6 +94397,9 @@ OUI:C025E9*
 OUI:C027B9*
  ID_OUI_FROM_DATABASE=Beijing National Railway Research & Design Institute  of Signal & Communication Co., Ltd.
 
+OUI:C0280B*
+ ID_OUI_FROM_DATABASE=Honor Device Co., Ltd.
+
 OUI:C0288D*
  ID_OUI_FROM_DATABASE=Logitech, Inc
 
@@ -93879,7 +94497,7 @@ OUI:C04004*
  ID_OUI_FROM_DATABASE=Medicaroid Corporation
 
 OUI:C04121*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
 
 OUI:C041F6*
  ID_OUI_FROM_DATABASE=LG ELECTRONICS INC
@@ -94478,9 +95096,15 @@ OUI:C0DCDA*
 OUI:C0DF77*
  ID_OUI_FROM_DATABASE=Conrad Electronic SE
 
+OUI:C0E018*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:C0E3A0*
  ID_OUI_FROM_DATABASE=Renesas Electronics (Penang) Sdn. Bhd.
 
+OUI:C0E3FB*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:C0E422*
  ID_OUI_FROM_DATABASE=Texas Instruments
 
@@ -94526,6 +95150,9 @@ OUI:C0F636*
 OUI:C0F6C2*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:C0F6EC*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:C0F79D*
  ID_OUI_FROM_DATABASE=Powercode
 
@@ -95231,6 +95858,9 @@ OUI:C4BE84*
 OUI:C4BED4*
  ID_OUI_FROM_DATABASE=Avaya Inc
 
+OUI:C4BF60*
+ ID_OUI_FROM_DATABASE=TECNO MOBILE LIMITED
+
 OUI:C4C0AE*
  ID_OUI_FROM_DATABASE=MIDORI ELECTRONIC CO., LTD.
 
@@ -95273,6 +95903,9 @@ OUI:C4CD82*
 OUI:C4D197*
  ID_OUI_FROM_DATABASE=Ventia Utility Services
 
+OUI:C4D438*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:C4D489*
  ID_OUI_FROM_DATABASE=JiangSu Joyque Information Industry Co.,Ltd
 
@@ -95312,6 +95945,9 @@ OUI:C4E17C*
 OUI:C4E1A1*
  ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
 
+OUI:C4E287*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:C4E39F*
  ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
 
@@ -95813,6 +96449,9 @@ OUI:C869CD*
 OUI:C86C1E*
  ID_OUI_FROM_DATABASE=Display Systems Ltd
 
+OUI:C86C3D*
+ ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
+
 OUI:C86C87*
  ID_OUI_FROM_DATABASE=Zyxel Communications Corporation
 
@@ -95990,6 +96629,9 @@ OUI:C8A1BA*
 OUI:C8A2CE*
  ID_OUI_FROM_DATABASE=Oasis Media Systems LLC
 
+OUI:C8A40D*
+ ID_OUI_FROM_DATABASE=Cooler Master Technology Inc
+
 OUI:C8A620*
  ID_OUI_FROM_DATABASE=Nebula, Inc
 
@@ -96194,6 +96836,9 @@ OUI:C8E130*
 OUI:C8E1A7*
  ID_OUI_FROM_DATABASE=Vertu Corporation Limited
 
+OUI:C8E265*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:C8E42F*
  ID_OUI_FROM_DATABASE=Technical Research Design and Development
 
@@ -96422,6 +97067,9 @@ OUI:CC1EFF*
 OUI:CC1FC4*
  ID_OUI_FROM_DATABASE=InVue
 
+OUI:CC208C*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:CC20E8*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
@@ -97352,6 +98000,9 @@ OUI:D00F6D*
 OUI:D01242*
  ID_OUI_FROM_DATABASE=BIOS Corporation
 
+OUI:D012CB*
+ ID_OUI_FROM_DATABASE=AVM Audiovisuelles Marketing und Computersysteme GmbH
+
 OUI:D0131E*
  ID_OUI_FROM_DATABASE=Sunrex Technology Corp
 
@@ -97538,6 +98189,9 @@ OUI:D039B3*
 OUI:D039EA*
  ID_OUI_FROM_DATABASE=NetApp
 
+OUI:D03C1F*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:D03D52*
  ID_OUI_FROM_DATABASE=Ava Security Limited
 
@@ -97550,6 +98204,9 @@ OUI:D03E5C*
 OUI:D03FAA*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:D040EF*
+ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd.
+
 OUI:D041C9*
  ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
 
@@ -97601,6 +98258,9 @@ OUI:D05509*
 OUI:D055B2*
  ID_OUI_FROM_DATABASE=Integrated Device Technology (Malaysia) Sdn. Bhd.
 
+OUI:D056BF*
+ ID_OUI_FROM_DATABASE=AMOSENSE
+
 OUI:D0574C*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -97649,6 +98309,9 @@ OUI:D05A0F*
 OUI:D05AF1*
  ID_OUI_FROM_DATABASE=Shenzhen Pulier Tech CO.,Ltd
 
+OUI:D05AFD*
+ ID_OUI_FROM_DATABASE=Realme Chongqing Mobile Telecommunications Corp.,Ltd.
+
 OUI:D05BA8*
  ID_OUI_FROM_DATABASE=zte corporation
 
@@ -98441,6 +99104,9 @@ OUI:D437D7*
 OUI:D4389C*
  ID_OUI_FROM_DATABASE=Sony Mobile Communications Inc
 
+OUI:D439B8*
+ ID_OUI_FROM_DATABASE=Ciena Corporation
+
 OUI:D43A2E*
  ID_OUI_FROM_DATABASE=SHENZHEN MTC CO LTD
 
@@ -99080,6 +99746,9 @@ OUI:D4EC0C*
 OUI:D4EC86*
  ID_OUI_FROM_DATABASE=LinkedHope Intelligent Technologies Co., Ltd
 
+OUI:D4ECAB*
+ ID_OUI_FROM_DATABASE=vivo Mobile Communication Co., Ltd.
+
 OUI:D4EE07*
  ID_OUI_FROM_DATABASE=HIWIFI Co., Ltd.
 
@@ -99140,6 +99809,9 @@ OUI:D4FC13*
 OUI:D8004D*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:D80093*
+ ID_OUI_FROM_DATABASE=Aurender Inc.
+
 OUI:D8052E*
  ID_OUI_FROM_DATABASE=Skyviia Corporation
 
@@ -99176,6 +99848,9 @@ OUI:D80DE3*
 OUI:D80F99*
  ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
 
+OUI:D8109F*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:D810CB*
  ID_OUI_FROM_DATABASE=Andrea Informatique
 
@@ -99188,6 +99863,9 @@ OUI:D81399*
 OUI:D814D6*
  ID_OUI_FROM_DATABASE=SURE SYSTEM Co Ltd
 
+OUI:D814DF*
+ ID_OUI_FROM_DATABASE=TCL King Electrical Appliances (Huizhou) Co., Ltd
+
 OUI:D8150D*
  ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD.
 
@@ -99909,7 +100587,7 @@ OUI:D8EF42*
  ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
 
 OUI:D8EFCD*
- ID_OUI_FROM_DATABASE=Nokia
+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks GmbH & Co. KG
 
 OUI:D8F0F2*
  ID_OUI_FROM_DATABASE=Zeebo Inc
@@ -100055,6 +100733,9 @@ OUI:DC21B9*
 OUI:DC21E2*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:DC2727*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:DC2834*
  ID_OUI_FROM_DATABASE=HAKKO Corporation
 
@@ -100466,6 +101147,9 @@ OUI:DC9FA4*
 OUI:DC9FDB*
  ID_OUI_FROM_DATABASE=Ubiquiti Networks Inc.
 
+OUI:DCA120*
+ ID_OUI_FROM_DATABASE=Nokia
+
 OUI:DCA266*
  ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
 
@@ -100586,6 +101270,9 @@ OUI:DCCC8D*
 OUI:DCCD2F*
  ID_OUI_FROM_DATABASE=Seiko Epson Corporation
 
+OUI:DCCD74*
+ ID_OUI_FROM_DATABASE=Japan E.M.Solutions Co., Ltd.
+
 OUI:DCCE41*
  ID_OUI_FROM_DATABASE=FE GLOBAL HONG KONG LIMITED
 
@@ -100622,6 +101309,9 @@ OUI:DCD444*
 OUI:DCD52A*
  ID_OUI_FROM_DATABASE=Sunny Heart Limited
 
+OUI:DCD7A0*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:DCD87C*
  ID_OUI_FROM_DATABASE=Beijing Jingdong Century Trading Co., LTD.
 
@@ -100934,6 +101624,9 @@ OUI:E02861*
 OUI:E0286D*
  ID_OUI_FROM_DATABASE=AVM Audiovisuelles Marketing und Computersysteme GmbH
 
+OUI:E02967*
+ ID_OUI_FROM_DATABASE=HMD Global Oy
+
 OUI:E02A82*
  ID_OUI_FROM_DATABASE=Universal Global Scientific Industrial Co., Ltd.
 
@@ -100952,6 +101645,9 @@ OUI:E02CB2*
 OUI:E02CF3*
  ID_OUI_FROM_DATABASE=MRS Electronic GmbH
 
+OUI:E02E3F*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:E02F6D*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -101765,6 +102461,9 @@ OUI:E42686*
 OUI:E4268B*
  ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
 
+OUI:E42761*
+ ID_OUI_FROM_DATABASE=Honor Device Co., Ltd.
+
 OUI:E42771*
  ID_OUI_FROM_DATABASE=Smartlabs
 
@@ -102281,6 +102980,9 @@ OUI:E4BD4B*
 OUI:E4BEED*
  ID_OUI_FROM_DATABASE=Netcore Technology Inc.
 
+OUI:E4BFFA*
+ ID_OUI_FROM_DATABASE=Technicolor CH USA Inc.
+
 OUI:E4C0CC*
  ID_OUI_FROM_DATABASE=China Mobile Group Device Co.,Ltd.
 
@@ -103130,6 +103832,9 @@ OUI:E8D0FC*
 OUI:E8D11B*
  ID_OUI_FROM_DATABASE=ASKEY COMPUTER CORP
 
+OUI:E8D2FF*
+ ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
+
 OUI:E8D483*
  ID_OUI_FROM_DATABASE=ULTIMATE Europe Transportation Equipment GmbH
 
@@ -103247,6 +103952,9 @@ OUI:E8F2E2*
 OUI:E8F2E3*
  ID_OUI_FROM_DATABASE=Starcor Beijing Co.,Limited
 
+OUI:E8F408*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:E8F724*
  ID_OUI_FROM_DATABASE=Hewlett Packard Enterprise
 
@@ -103565,6 +104273,9 @@ OUI:EC74BA*
 OUI:EC753E*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:EC75ED*
+ ID_OUI_FROM_DATABASE=Citrix Systems, Inc.
+
 OUI:EC7949*
  ID_OUI_FROM_DATABASE=FUJITSU LIMITED
 
@@ -103799,6 +104510,9 @@ OUI:ECBD09*
 OUI:ECBD1D*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
+OUI:ECBE5F*
+ ID_OUI_FROM_DATABASE=Vestel Elektronik San ve Tic. A.Ş.
+
 OUI:ECBEDD*
  ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
 
@@ -104243,6 +104957,9 @@ OUI:F041C8E*
 OUI:F0421C*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
+OUI:F042F5*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:F04335*
  ID_OUI_FROM_DATABASE=DVN(Shanghai)Ltd.
 
@@ -104894,6 +105611,9 @@ OUI:F0FDA0*
 OUI:F0FE6B*
  ID_OUI_FROM_DATABASE=Shanghai High-Flying Electronics Technology Co., Ltd
 
+OUI:F0FEE7*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
 OUI:F40270*
  ID_OUI_FROM_DATABASE=Dell Inc.
 
@@ -105500,6 +106220,9 @@ OUI:F4AFE7*
 OUI:F4B164*
  ID_OUI_FROM_DATABASE=Lightning Telecommunications Technology Co. Ltd
 
+OUI:F4B301*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:F4B381*
  ID_OUI_FROM_DATABASE=WindowMaster A/S
 
@@ -106835,6 +107558,9 @@ OUI:FC09F6*
 OUI:FC0A81*
  ID_OUI_FROM_DATABASE=Extreme Networks, Inc.
 
+OUI:FC0C45*
+ ID_OUI_FROM_DATABASE=Shenzhen SuperElectron Technology Co.,Ltd.
+
 OUI:FC0F4B*
  ID_OUI_FROM_DATABASE=Texas Instruments
 
index f06de58509d2425ccdcd28eb47363d3954ec85f5..ac8710870ea66bc3565043967212f959bd51059c 100644 (file)
@@ -7191,6 +7191,9 @@ acpi:USI*:
 acpi:USR*:
  ID_VENDOR_FROM_DATABASE=U.S. Robotics Inc
 
+acpi:UTC*:
+ ID_VENDOR_FROM_DATABASE=Unicompute Technology Co., Ltd.
+
 acpi:UTD*:
  ID_VENDOR_FROM_DATABASE=Up to Date Tech
 
index a3cfdf90ab943d75ff196c5f4ee83028575a483d..8de3e3a4e88d799377b7bfe5663acff4c69ba6b6 100644 (file)
@@ -1,5 +1,5 @@
---- 20-acpi-vendor.hwdb.base   2020-10-13 09:40:27.449819401 +0200
-+++ 20-acpi-vendor.hwdb        2020-10-13 09:40:27.464819680 +0200
+--- 20-acpi-vendor.hwdb.base   2020-11-10 14:13:39.257693009 +0100
++++ 20-acpi-vendor.hwdb        2020-11-10 14:13:39.264693047 +0100
 @@ -3,6 +3,8 @@
  # Data imported from:
  #     https://uefi.org/uefi-pnp-export
  acpi:USD*:
   ID_VENDOR_FROM_DATABASE=U.S. Digital Corporation
  
-@@ -7354,9 +7422,6 @@
+@@ -7357,9 +7425,6 @@
  acpi:WAL*:
   ID_VENDOR_FROM_DATABASE=Wave Access
  
  acpi:WAV*:
   ID_VENDOR_FROM_DATABASE=Wavephore
  
-@@ -7481,7 +7546,7 @@
+@@ -7484,7 +7549,7 @@
   ID_VENDOR_FROM_DATABASE=WyreStorm Technologies LLC
  
  acpi:WYS*:
  
  acpi:WYT*:
   ID_VENDOR_FROM_DATABASE=Wooyoung Image & Information Co.,Ltd.
-@@ -7495,9 +7560,6 @@
+@@ -7498,9 +7563,6 @@
  acpi:XDM*:
   ID_VENDOR_FROM_DATABASE=XDM Ltd.
  
  acpi:XES*:
   ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc.
  
-@@ -7528,9 +7590,6 @@
+@@ -7531,9 +7593,6 @@
  acpi:XNT*:
   ID_VENDOR_FROM_DATABASE=XN Technologies, Inc.
  
  acpi:XQU*:
   ID_VENDOR_FROM_DATABASE=SHANGHAI SVA-DAV ELECTRONICS CO., LTD
  
-@@ -7597,6 +7656,9 @@
+@@ -7600,6 +7659,9 @@
  acpi:ZBX*:
   ID_VENDOR_FROM_DATABASE=Zebax Technologies
  
index a19490ed56af36116069ef128eb757950c60b17d..4f09ebe049ff7040fd190220afb273d328d7d5af 100644 (file)
@@ -1994,6 +1994,9 @@ pci:v00001000d000000AFsv00001D49sd00000202*
 pci:v00001000d000000AFsv00001D49sd00000204*
  ID_MODEL_FROM_DATABASE=SAS3408 Fusion-MPT Tri-Mode I/O Controller Chip (IOC) (ThinkSystem 430-8i SAS/SATA 12Gb Dense HBA)
 
+pci:v00001000d000000B2*
+ ID_MODEL_FROM_DATABASE=PEX880xx PCIe Gen 4 Switch SES management endpoint
+
 pci:v00001000d000000BE*
  ID_MODEL_FROM_DATABASE=SAS3504 Fusion-MPT Tri-Mode RAID On Chip (ROC)
 
@@ -7742,6 +7745,9 @@ pci:v00001002d000067EB*
 pci:v00001002d000067EF*
  ID_MODEL_FROM_DATABASE=Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X]
 
+pci:v00001002d000067EFsv00001025sd00001367*
+ ID_MODEL_FROM_DATABASE=Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X] (RX560X 4GB)
+
 pci:v00001002d000067EFsv00001028sd00001703*
  ID_MODEL_FROM_DATABASE=Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X] (RX 560D OEM OC 2 GB)
 
@@ -10538,6 +10544,15 @@ pci:v00001002d0000734F*
 pci:v00001002d00007360*
  ID_MODEL_FROM_DATABASE=Navi 12 [Radeon Pro 5600M]
 
+pci:v00001002d000073BF*
+ ID_MODEL_FROM_DATABASE=Navi 21 [Radeon RX 6900 Series]
+
+pci:v00001002d000073C3*
+ ID_MODEL_FROM_DATABASE=Navi 23
+
+pci:v00001002d000073DF*
+ ID_MODEL_FROM_DATABASE=Navi 22
+
 pci:v00001002d00007833*
  ID_MODEL_FROM_DATABASE=RS350 Host Bridge
 
@@ -35018,6 +35033,9 @@ pci:v000010DEd00001401*
 pci:v000010DEd00001402*
  ID_MODEL_FROM_DATABASE=GM206 [GeForce GTX 950]
 
+pci:v000010DEd00001404*
+ ID_MODEL_FROM_DATABASE=GM206 [GeForce GTX 960 FAKE]
+
 pci:v000010DEd00001406*
  ID_MODEL_FROM_DATABASE=GM206 [GeForce GTX 960 OEM]
 
@@ -35333,6 +35351,9 @@ pci:v000010DEd00001C31*
 pci:v000010DEd00001C35*
  ID_MODEL_FROM_DATABASE=GP106
 
+pci:v000010DEd00001C36*
+ ID_MODEL_FROM_DATABASE=GP106
+
 pci:v000010DEd00001C60*
  ID_MODEL_FROM_DATABASE=GP106BM [GeForce GTX 1060 Mobile 6GB]
 
@@ -35789,6 +35810,9 @@ pci:v000010DEd00001FF9*
 pci:v000010DEd000020B0*
  ID_MODEL_FROM_DATABASE=GA100 [A100 SXM4 40GB]
 
+pci:v000010DEd000020B1*
+ ID_MODEL_FROM_DATABASE=GA100 [A100 PCIe 40GB]
+
 pci:v000010DEd000020BE*
  ID_MODEL_FROM_DATABASE=GA100 [GRID A100A]
 
@@ -35859,26 +35883,44 @@ pci:v000010DEd00002482*
  ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070 Ti]
 
 pci:v000010DEd00002484*
- ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070]
+ ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070 8GB / 16GB]
+
+pci:v000010DEd00002484sv000010DEsd0000146B*
+ ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070 8GB / 16GB] (GA104 [GeForce RTX 3070])
+
+pci:v000010DEd00002484sv000010DEsd000014AE*
+ ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070 8GB / 16GB] (GA104 [GeForce RTX 3070 16GB])
 
 pci:v000010DEd00002486*
  ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3060 Ti]
 
 pci:v000010DEd0000249C*
- ID_MODEL_FROM_DATABASE=GA104M [GeForce RTX 3070 Mobile]
+ ID_MODEL_FROM_DATABASE=GA104M [GeForce RTX 3070 Mobile / Max-Q]
 
 pci:v000010DEd0000249D*
  ID_MODEL_FROM_DATABASE=GA104M [GeForce RTX 3070 Mobile / Max-Q]
 
+pci:v000010DEd000024AC*
+ ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 30x0 Engineering Sample]
+
+pci:v000010DEd000024AD*
+ ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3060 Engineering Sample]
+
 pci:v000010DEd000024AF*
  ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070 Engineering Sample]
 
 pci:v000010DEd000024BF*
  ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070 Engineering Sample]
 
+pci:v000010DEd000024DC*
+ ID_MODEL_FROM_DATABASE=GA104 [GeForce RTX 3070 16GB Engineering Sample]
+
 pci:v000010DEd0000252F*
  ID_MODEL_FROM_DATABASE=GA106 [GeForce RTX 3060 Engineering Sample]
 
+pci:v000010DEd000025AF*
+ ID_MODEL_FROM_DATABASE=GA107 [GeForce RTX 3050 Engineering Sample]
+
 pci:v000010DF*
  ID_VENDOR_FROM_DATABASE=Emulex Corporation
 
@@ -41543,6 +41585,12 @@ pci:v00001137d00000042sv00001137sd0000012E*
 pci:v00001137d00000042sv00001137sd0000014D*
  ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1385 PCIe Management Controller)
 
+pci:v00001137d00000042sv00001137sd00000217*
+ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1455 PCIe Management Controller)
+
+pci:v00001137d00000042sv00001137sd00000218*
+ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1457 PCIe Management Controller)
+
 pci:v00001137d00000043*
  ID_MODEL_FROM_DATABASE=VIC Ethernet NIC
 
@@ -46757,6 +46805,21 @@ pci:v0000125Bd00001400*
 pci:v0000125Bd00001400sv00001186sd00001100*
  ID_MODEL_FROM_DATABASE=AX88141 Fast Ethernet Controller (AX8814X Based PCI Fast Ethernet Adapter)
 
+pci:v0000125Bd00009100*
+ ID_MODEL_FROM_DATABASE=AX99100 PCIe to Multi I/O Controller
+
+pci:v0000125Bd00009100sv0000A000sd00001000*
+ ID_MODEL_FROM_DATABASE=AX99100 PCIe to Multi I/O Controller (Serial Port)
+
+pci:v0000125Bd00009100sv0000A000sd00002000*
+ ID_MODEL_FROM_DATABASE=AX99100 PCIe to Multi I/O Controller (Parallel Port)
+
+pci:v0000125Bd00009100sv0000A000sd00006000*
+ ID_MODEL_FROM_DATABASE=AX99100 PCIe to Multi I/O Controller (SPI)
+
+pci:v0000125Bd00009100sv0000A000sd00007000*
+ ID_MODEL_FROM_DATABASE=AX99100 PCIe to Multi I/O Controller (Local Bus)
+
 pci:v0000125C*
  ID_VENDOR_FROM_DATABASE=Aurora Technologies, Inc.
 
@@ -59943,10 +60006,19 @@ pci:v000015B7d00005001*
  ID_MODEL_FROM_DATABASE=WD Black NVMe SSD
 
 pci:v000015B7d00005002*
- ID_MODEL_FROM_DATABASE=WD Black 2018/PC SN720 NVMe SSD
+ ID_MODEL_FROM_DATABASE=WD Black 2018 / PC SN720 NVMe SSD
 
 pci:v000015B7d00005003*
- ID_MODEL_FROM_DATABASE=WD Black 2018/PC SN520 NVMe SSD
+ ID_MODEL_FROM_DATABASE=WD Black 2018 / PC SN520 NVMe SSD
+
+pci:v000015B7d00005006*
+ ID_MODEL_FROM_DATABASE=WD Black 2019/PC SN750 NVMe SSD
+
+pci:v000015B7d00005009*
+ ID_MODEL_FROM_DATABASE=WD Blue SN550 NVMe SSD
+
+pci:v000015B7d00005009sv000015B7sd00005009*
+ ID_MODEL_FROM_DATABASE=WD Blue SN550 NVMe SSD
 
 pci:v000015B8*
  ID_VENDOR_FROM_DATABASE=ADDI-DATA GmbH
@@ -65363,6 +65435,12 @@ pci:v00001974d00000009*
 pci:v00001974d00000011*
  ID_MODEL_FROM_DATABASE=FlexCard PMC-II Ethernet
 
+pci:v00001974d00000018*
+ ID_MODEL_FROM_DATABASE=FlexCard PXIe3
+
+pci:v00001974d00000019*
+ ID_MODEL_FROM_DATABASE=FlexCard PCIe3
+
 pci:v00001976*
  ID_VENDOR_FROM_DATABASE=TRENDnet
 
@@ -67514,10 +67592,16 @@ pci:v00001C5Cd00001327*
 pci:v00001C5Cd00001504*
  ID_MODEL_FROM_DATABASE=SC300 512GB M.2 2280 SATA Solid State Drive
 
+pci:v00001C5Cd0000243B*
+ ID_MODEL_FROM_DATABASE=PE6110 NVMe Solid State Drive
+
+pci:v00001C5Cd0000243Bsv00001C5Csd00000100*
+ ID_MODEL_FROM_DATABASE=PE6110 NVMe Solid State Drive
+
 pci:v00001C5Cd00002839*
  ID_MODEL_FROM_DATABASE=PE8000 Series NVMe Solid State Drive
 
-pci:v00001C5Cd00002839sv00000100sd00001C5C*
+pci:v00001C5Cd00002839sv00001C5Csd00000100*
  ID_MODEL_FROM_DATABASE=PE8000 Series NVMe Solid State Drive
 
 pci:v00001C5F*
@@ -68820,10 +68904,10 @@ pci:v00001E4C*
  ID_VENDOR_FROM_DATABASE=GSI Technology
 
 pci:v00001E4Cd00000010*
- ID_MODEL_FROM_DATABASE=Gemini [ Lida ]
+ ID_MODEL_FROM_DATABASE=APU [Leda-G]
 
 pci:v00001E4Cd00000010sv00001E4Csd00000120*
- ID_MODEL_FROM_DATABASE=Gemini [ Lida ] (SE120)
+ ID_MODEL_FROM_DATABASE=APU [Leda-G] (SE120)
 
 pci:v00001E57*
  ID_VENDOR_FROM_DATABASE=Beijing Panyi Technology Co., Ltd
@@ -68837,6 +68921,9 @@ pci:v00001E57d00000100sv00000000sd00000100*
 pci:v00001E6B*
  ID_VENDOR_FROM_DATABASE=Axiado Corp.
 
+pci:v00001E7B*
+ ID_VENDOR_FROM_DATABASE=Dataland
+
 pci:v00001E7C*
  ID_VENDOR_FROM_DATABASE=Brainchip Inc
 
@@ -68861,6 +68948,9 @@ pci:v00001E94*
 pci:v00001E95*
  ID_VENDOR_FROM_DATABASE=Solid State Storage Technology Corporation
 
+pci:v00001EAE*
+ ID_VENDOR_FROM_DATABASE=XFX Limited
+
 pci:v00001EB1*
  ID_VENDOR_FROM_DATABASE=VeriSilicon Inc
 
@@ -77492,6 +77582,9 @@ pci:v00008086d000015F2sv00008086sd00000002*
 pci:v00008086d000015F3*
  ID_MODEL_FROM_DATABASE=Ethernet Controller I225-V
 
+pci:v00008086d000015F3sv00008086sd00000003*
+ ID_MODEL_FROM_DATABASE=Ethernet Controller I225-V (Intel(R) Ethernet Controller (3) I225-V)
+
 pci:v00008086d000015F4*
  ID_MODEL_FROM_DATABASE=Ethernet Connection (15) I219-LM
 
@@ -77684,6 +77777,33 @@ pci:v00008086d0000163E*
 pci:v00008086d00001889*
  ID_MODEL_FROM_DATABASE=Ethernet Adaptive Virtual Function
 
+pci:v00008086d00001890*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-C for backplane
+
+pci:v00008086d00001891*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-C for QSFP
+
+pci:v00008086d00001892*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-C for SFP
+
+pci:v00008086d00001893*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-C/X557-AT 10GBASE-T
+
+pci:v00008086d00001894*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-C 1GbE
+
+pci:v00008086d00001897*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-L for backplane
+
+pci:v00008086d00001898*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-L for SFP
+
+pci:v00008086d00001899*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-L/X557-AT 10GBASE-T
+
+pci:v00008086d0000189A*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection E822-L 1GbE
+
 pci:v00008086d000018A0*
  ID_MODEL_FROM_DATABASE=C4xxx Series QAT
 
@@ -89942,6 +90062,9 @@ pci:v00008086d00003E33*
 pci:v00008086d00003E34*
  ID_MODEL_FROM_DATABASE=Coffee Lake HOST and DRAM Controller
 
+pci:v00008086d00003E35*
+ ID_MODEL_FROM_DATABASE=Coffee Lake Host Bridge/DRAM Registers
+
 pci:v00008086d00003E81*
  ID_MODEL_FROM_DATABASE=8th Gen Core Processor PCIe Controller (x16)
 
@@ -95570,6 +95693,18 @@ pci:v00009005d0000028Fsv0000152Dsd00008A36*
 pci:v00009005d0000028Fsv0000152Dsd00008A37*
  ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (QS-8242-24i)
 
+pci:v00009005d0000028Fsv0000193Dsd00001104*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (RAID P2404-Mf-4i-2GB)
+
+pci:v00009005d0000028Fsv0000193Dsd00001105*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (RAID P4408-Mf-8i-2GB)
+
+pci:v00009005d0000028Fsv0000193Dsd00001106*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (RAID P2404-Mf-4i-1GB)
+
+pci:v00009005d0000028Fsv0000193Dsd00001107*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (RAID P4408-Mf-8i-4GB)
+
 pci:v00009005d0000028Fsv0000193Dsd00008460*
  ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (HBA H460-M1)
 
@@ -95657,6 +95792,12 @@ pci:v00009005d0000028Fsv00009005sd00000806*
 pci:v00009005d0000028Fsv00009005sd00000807*
  ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (SmartRAID 3162-8i)
 
+pci:v00009005d0000028Fsv00009005sd00000808*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (SmartRAID 3101E-4i)
+
+pci:v00009005d0000028Fsv00009005sd00000809*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (SmartRAID 3102E-8i)
+
 pci:v00009005d0000028Fsv00009005sd00000900*
  ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (SmartHBA 2100-8i)
 
@@ -95702,6 +95843,9 @@ pci:v00009005d0000028Fsv00009005sd00001280*
 pci:v00009005d0000028Fsv00009005sd00001281*
  ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (HBA 1100-16e)
 
+pci:v00009005d0000028Fsv00009005sd00001282*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (SmartHBA 2100-16i)
+
 pci:v00009005d0000028Fsv00009005sd00001300*
  ID_MODEL_FROM_DATABASE=Smart Storage PQI SAS (HBA 1100-8i8e)
 
@@ -96059,6 +96203,9 @@ pci:v00009D32d00001203*
 pci:v00009D32d00001204*
  ID_MODEL_FROM_DATABASE=STAR1200E NVMe SSD
 
+pci:v0000A000*
+ ID_VENDOR_FROM_DATABASE=Asix Electronics Corporation (Wrong ID)
+
 pci:v0000A0A0*
  ID_VENDOR_FROM_DATABASE=AOPEN Inc.
 
index 3b42f5a2e702b294b4f535459347586d64bd3725..55d3fcc3b082553e5e9bffb7fd596a7207662fcb 100644 (file)
@@ -5,8 +5,8 @@
 # Match string formats:
 # <subsystem>:<modalias>
 #
-# pci:v<vendor>d<device>:
-# usb:v<vendor>p<product>:
+# pci:v<vendor>d<device>
+# usb:v<vendor>p<product>
 #
 # To add local entries, create a new file
 #   /etc/udev/hwdb.d/61-autosuspend-local.hwdb
@@ -24,8 +24,6 @@
 #
 # Allowed properties are:
 #    ID_AUTOSUSPEND=1
-#
-# All matches should end in ':*' to allow future expansions of the match key.
 
 # Sort by brand, model
 
@@ -34,7 +32,7 @@
 #########################################
 
 # AU9540 Smartcard Reader
-usb:v058Fp9540:*
+usb:v058Fp9540*
  ID_AUTOSUSPEND=1
 
 #########################################
@@ -42,9 +40,9 @@ usb:v058Fp9540:*
 #########################################
 
 # X1C8 Touchscreen
-usb:v04F3p2B7C:*
+usb:v04F3p2B7C*
 # T14 Gen 1 Touchscreen
-usb:v04F3p2ACC:*
+usb:v04F3p2ACC*
  ID_AUTOSUSPEND=1
 
 #########################################
@@ -52,14 +50,14 @@ usb:v04F3p2ACC:*
 #########################################
 
 # Emulated USB HID devices
-usb:v0627p0001:*QEMU USB Keyboard*:*
-usb:v0627p0001:*QEMU USB Mouse*:*
-usb:v0627p0001:*QEMU USB Tablet*:*
+usb:v0627p0001:*QEMU USB Keyboard*
+usb:v0627p0001:*QEMU USB Mouse*
+usb:v0627p0001:*QEMU USB Tablet*
  ID_AUTOSUSPEND=1
 
 #########################################
 # Wacom
 #########################################
 
-usb:v056Ap51A0:*
+usb:v056Ap51A0*
  ID_AUTOSUSPEND=1
index 31475ed71ce43e3fac7a53888927334588b14dc9..9635fb4e4c109721f329855fa26fd5547f23d729 100644 (file)
@@ -35,8 +35,6 @@
 # the struct input_absinfo as listed in linux/input.h. If a field is missing
 # the field will be left as-is. Not all fields need to be present. e.g. ::45
 # sets the resolution to 45 units/mm.
-#
-# All matches should end in ':*' to allow future expansions of the match key.
 
 # Sort by brand, model
 
@@ -45,9 +43,9 @@
 #########################################
 
 # Hyperpen 12000U
-evdev:input:b0003v08CAp0010:*
+evdev:input:b0003v08CAp0010*
 # Hyperpen 6000U
-evdev:input:b0003v08CAp0020:*
+evdev:input:b0003v08CAp0020*
  EVDEV_ABS_00=::20
  EVDEV_ABS_01=::20
 
@@ -56,48 +54,48 @@ evdev:input:b0003v08CAp0020:*
 #########################################
 
 # Macbook2,1 (late 2006), single-button touchpad
-evdev:input:b0003v05ACp021B:*
+evdev:input:b0003v05ACp021B*
 # Macbook4,1
-evdev:input:b0003v05ACp0229:*
-evdev:input:b0003v05ACp022A:*
+evdev:input:b0003v05ACp0229*
+evdev:input:b0003v05ACp022A*
  EVDEV_ABS_00=256:1471:12
  EVDEV_ABS_01=256:831:12
 
 # Macbook5,1 (unibody), aka wellspring3
-evdev:input:b0003v05ACp0236:*
-evdev:input:b0003v05ACp0237:*
-evdev:input:b0003v05ACp0238:*
+evdev:input:b0003v05ACp0236*
+evdev:input:b0003v05ACp0237*
+evdev:input:b0003v05ACp0238*
  EVDEV_ABS_00=::92
  EVDEV_ABS_01=::90
  EVDEV_ABS_35=::92
  EVDEV_ABS_36=::90
 
 # Macbook8 (unibody, March 2011)
-evdev:input:b0003v05ACp0245:*
-evdev:input:b0003v05ACp0246:*
-evdev:input:b0003v05ACp0247:*
+evdev:input:b0003v05ACp0245*
+evdev:input:b0003v05ACp0246*
+evdev:input:b0003v05ACp0247*
  EVDEV_ABS_00=::92
  EVDEV_ABS_01=::91
  EVDEV_ABS_35=::92
  EVDEV_ABS_36=::91
 
 # Macbook8,2 (unibody)
-evdev:input:b0003v05ACp0252:*
-evdev:input:b0003v05ACp0253:*
-evdev:input:b0003v05ACp0254:*
+evdev:input:b0003v05ACp0252*
+evdev:input:b0003v05ACp0253*
+evdev:input:b0003v05ACp0254*
  EVDEV_ABS_00=::94
  EVDEV_ABS_01=::92
  EVDEV_ABS_35=::94
  EVDEV_ABS_36=::92
 
 # MacbookPro10,1 (unibody, June 2012)
-evdev:input:b0003v05ACp0262:*
-evdev:input:b0003v05ACp0263:*
-evdev:input:b0003v05ACp0264:*
+evdev:input:b0003v05ACp0262*
+evdev:input:b0003v05ACp0263*
+evdev:input:b0003v05ACp0264*
 # MacbookPro10,2 (unibody, October 2012)
-evdev:input:b0003v05ACp0259:*
-evdev:input:b0003v05ACp025A:*
-evdev:input:b0003v05ACp025B:*
+evdev:input:b0003v05ACp0259*
+evdev:input:b0003v05ACp025A*
+evdev:input:b0003v05ACp025B*
  EVDEV_ABS_00=::94
  EVDEV_ABS_01=::92
  EVDEV_ABS_35=::94
@@ -294,7 +292,7 @@ evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:bvn*:bvr*:bd*:svnDellInc.:pnXPSM1530:*
 #####
 
 # Fujitsu Component - USB Touch Panel
-evdev:input:b0003v0430p0530:*
+evdev:input:b0003v0430p0530*
  EVDEV_ABS_00=0:4096:16
  EVDEV_ABS_01=0:4096:16
 
@@ -446,7 +444,7 @@ evdev:name:Synaptics TM3289-002:dmi:*svnLENOVO*:pvrThinkPadX1Carbon5th:*
  EVDEV_ABS_36=::19
 
 # Lenovo Thinkpad X1 Tablet Gen3
-evdev:input:b0003v17EFp60B5:*
+evdev:input:b0003v17EFp60B5*
  EVDEV_ABS_00=::12
  EVDEV_ABS_01=::11
  EVDEV_ABS_35=::12
@@ -639,7 +637,7 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnTOSHIBA:pnSATELLITER830:*
 #########################################
 
 # Trust Flex Graphics Tablet
-evdev:input:b0003v2179p0004:*
+evdev:input:b0003v2179p0004*
  EVDEV_ABS_00=::234
  EVDEV_ABS_01=::328
 
@@ -648,11 +646,11 @@ evdev:input:b0003v2179p0004:*
 #########################################
 
 # WALTOP International Corp. Slim Tablet
-evdev:input:b0003v172Fp0031:*
+evdev:input:b0003v172Fp0031*
  EVDEV_ABS_00=0:10000:400
  EVDEV_ABS_01=0:6250:400
 
 #WALTOP International Corp. Graphics Tablet
-evdev:input:b0003v172Fp0047:*
+evdev:input:b0003v172Fp0047*
  EVDEV_ABS_00=0:20000:80
  EVDEV_ABS_01=0:12500:80
index 3fe850847bcd6cd857fb914e34cc540bc883e1df..1eec776885ba076d149d3a8041a8bab3d5f69cca 100644 (file)
@@ -9,7 +9,7 @@
 # ABI.
 #
 # Match string formats:
-# id-input:modalias:<modalias pattern>
+# id-input:modalias:<modalias>
 #
 # To add local entries, create a new file
 #   /etc/udev/hwdb.d/61-input-id-local.hwdb
 # NOT allowed in this file are:
 #    ID_INPUT_WIDTH_MM, ID_INPUT_HEIGHT_MM, ID_INPUT_TOUCHPAD_INTEGRATION
 #
-# All matches should end in ':*' to allow future expansions of the match key.
 
 # Example:
-# id-input:modalias:input:b0003v1234pABCD:*
+# id-input:modalias:input:b0003v1234pABCD*
 #  ID_INPUT_TOUCHPAD=1
 #  ID_INPUT=1
 
 # Sort by brand, model
 
 # UC-Logic TABLET 1060N Pad
-id-input:modalias:input:b0003v5543p0081:*
+id-input:modalias:input:b0003v5543p0081*
  ID_INPUT_TABLET=1
  ID_INPUT_TABLET_PAD=1
 
 # XP-PEN STAR 06
-id-input:modalias:input:b0003v28bdp0078:*
+id-input:modalias:input:b0003v28bdp0078*
  ID_INPUT_TABLET=1
 
 # Lite-On Tech IBM USB Travel Keyboard with Ultra Nav Mouse
-id-input:modalias:input:b0003v04B3p301Ee0100-e0,1,2,4*:*
+id-input:modalias:input:b0003v04B3p301Ee0100-e0,1,2,4*
  ID_INPUT_POINTINGSTICK=1
 
 # Logitech Ultrathin Touch Mouse
-id-input:modalias:input:b0005v046DpB00De0700:*
+id-input:modalias:input:b0005v046DpB00De0700*
  ID_INPUT_MOUSE=1
index 97800f4364073b4c48329a1d6d4da722245651ea..7267aee86b96f182a55ad78ac4c9ac397e7a9b50 100644 (file)
@@ -47,8 +47,6 @@
 #    /sys/class/input/input?/capabilities/ev" and <vendor> is the
 #    firmware-provided string exported by the kernel DMI modalias,
 #    see /sys/class/dmi/id/modalias
-#
-# All matches should end in ':*' to allow future expansions of the match key.
 
 # ######################### KEY MAPPING ######################################
 #
@@ -230,7 +228,7 @@ evdev:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
  KEYBOARD_KEY_6b=f21                                    # Touchpad Toggle
 
 # USB keyboard in Asus FX503VD
-evdev:input:b0003v0B05p1869:*
+evdev:input:b0003v0B05p1869*
  KEYBOARD_KEY_ff31007c=f20                              # Remap micmute to f20
 
 ###########################################################
@@ -268,7 +266,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*Evo*N*:*
  KEYBOARD_KEY_9e=email
  KEYBOARD_KEY_9f=homepage
 
-evdev:input:b0003v049Fp0051:*
+evdev:input:b0003v049Fp0051*
  KEYBOARD_KEY_0c0011=presentation
  KEYBOARD_KEY_0c0012=addressbook
  KEYBOARD_KEY_0c0013=info
@@ -465,7 +463,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGeminiDevices:pnNC14V1006:*
 ###########################################################
 
 # Slimstar 320
-evdev:input:b0003v0458p0708:*
+evdev:input:b0003v0458p0708*
  KEYBOARD_KEY_0900f0=scrollup
  KEYBOARD_KEY_0900f1=scrolldown
  KEYBOARD_KEY_0900f3=back
@@ -622,6 +620,13 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook*:*
 evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBook*:*
  KEYBOARD_KEY_81=f20                                    # Fn+F8; Microphone mute button, should be micmute
 
+# HP ZBook Studio G5
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBookStudioG5*:*
+ KEYBOARD_KEY_64=calendar                               # Calendar icon (Fn + F12)
+ KEYBOARD_KEY_6d=displaytoggle                          # Display icon
+ KEYBOARD_KEY_66=connect                                # Pickup phone button → connect → XF86Go
+ KEYBOARD_KEY_65=cancel                                 # Hangup phone button → cancel → Cancel
+
 # HP ZBook 15 G2
 evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook15G2:*
  KEYBOARD_KEY_f8=wlan                                   # Wireless HW switch button
@@ -715,7 +720,7 @@ evdev:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnIBM*:pn*:*
  KEYBOARD_KEY_17=prog1                                  # ThinkPad/ThinkVantage button (high keycode: "vendor")
 
 # IBM Thinkpad USB Keyboard Trackpoint
-evdev:input:b0003v04B3p301[89]:*
+evdev:input:b0003v04B3p301[89]*
  KEYBOARD_KEY_900f0=screenlock
  KEYBOARD_KEY_900f1=wlan
  KEYBOARD_KEY_900f2=switchvideomode
@@ -759,7 +764,7 @@ evdev:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
  KEYBOARD_KEY_45=bookmarks
 
 # ThinkPad Keyboard with TrackPoint
-evdev:input:b0003v17EFp6009:*
+evdev:input:b0003v17EFp6009*
  KEYBOARD_KEY_090012=screenlock                         # Fn+F2
  KEYBOARD_KEY_090013=battery                            # Fn+F3
  KEYBOARD_KEY_090014=wlan                               # Fn+F5
@@ -866,7 +871,7 @@ evdev:name:Microphone Mute Button:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
  KEYBOARD_KEY_00=f20
 
 # enhanced USB keyboard
-evdev:input:b0003v04B3p301B:*
+evdev:input:b0003v04B3p301B*
  KEYBOARD_KEY_90001=prog1 # ThinkVantage
  KEYBOARD_KEY_90002=screenlock
  KEYBOARD_KEY_90003=file
@@ -884,7 +889,7 @@ evdev:input:b0003v04B3p301B:*
 # 27MHz wireless keyboards, these all have a PID of 00?? and all send c10xx
 # logitech custom consumer usage-page codes. The mappings below are the most
 # common, but some mapping may differ, especially the Fn F1-F12 mappings
-evdev:input:b0003v046Dp00??:*
+evdev:input:b0003v046Dp00*
  KEYBOARD_KEY_c0183=media           # HUT:config, kbd:Media/Music player button
  KEYBOARD_KEY_c1001=chat            # Messenger button
  KEYBOARD_KEY_c1002=camera          # Webcam button
@@ -934,7 +939,7 @@ evdev:input:b0003v046Dp00??:*
  KEYBOARD_KEY_c104c=prog4           # Smartkey D (Fn + F12) → XF86Launch4
 
 # Cordless Access Keyboard (27 MHz, modelnumber Y-RH35)
-evdev:input:b0003v046Dp0042:*
+evdev:input:b0003v046Dp0042*
  KEYBOARD_KEY_c1041=new
  KEYBOARD_KEY_c1042=reply
  KEYBOARD_KEY_c1043=forward
@@ -949,7 +954,7 @@ evdev:input:b0003v046Dp0042:*
  KEYBOARD_KEY_c104c=audio
 
 # "Cordless Rechargeable Desktop" keyboard (27 MHz, modelnumber Y-RK49)
-evdev:input:b0003v046Dp0045:*
+evdev:input:b0003v046Dp0045*
  KEYBOARD_KEY_c1041=new
  KEYBOARD_KEY_c1042=reply
  KEYBOARD_KEY_c1043=forward
@@ -960,7 +965,7 @@ evdev:input:b0003v046Dp0045:*
  KEYBOARD_KEY_c104c=audio
 
 # S510 keyboard (27 MHz, modelnumber Y-RAK73)
-evdev:input:b0003v046Dp0056:*
+evdev:input:b0003v046Dp0056*
  KEYBOARD_KEY_c1041=battery      # Battery icon (Fn + F1)
 
 # MX3000 keyboard (27 MHz, modelnumber Y-RAM74)
@@ -969,7 +974,7 @@ evdev:input:b0003v046Dp0056:*
 # Note if the "Special Button Function" in the HID++ features register gets
 # cleared then the scroll-wheel events for these buttons go away and then
 # tilting the scrollwheel left/right starts sending c1022 / c1024 events
-evdev:input:b0003v046Dp0057:*
+evdev:input:b0003v046Dp0057*
  KEYBOARD_KEY_c1041=battery      # Battery icon (Fn + F1)
 
 #KEYBOARD_KEY_c101d=scrolldown   # Button below scrollwheel (see note above)
@@ -978,7 +983,7 @@ evdev:input:b0003v046Dp0057:*
 #KEYBOARD_KEY_c1024=scrollright  # Right click on scroll-wheel (see note above)
 
 # MX3200 keyboard (27 MHz, modelnumber Y-RAV80)
-evdev:input:b0003v046Dp005C:*
+evdev:input:b0003v046Dp005C*
  KEYBOARD_KEY_c1001=phone           # VOIP button
  KEYBOARD_KEY_c1016=record          # Record button
  KEYBOARD_KEY_c1041=wordprocessor   # Word icon (Fn + F1)
@@ -991,13 +996,13 @@ evdev:input:b0003v046Dp005C:*
  KEYBOARD_KEY_c1048=prog4           # Smartkey D (Fn + F8) → XF86Launch4
 
 # EX100 keyboard (27 MHz, modelnumber Y-RBH94)
-evdev:input:b0003v046Dp0065:*
+evdev:input:b0003v046Dp0065*
  KEYBOARD_KEY_c104b=battery         # Battery icon (Fn + F11)
  KEYBOARD_KEY_c104c=ejectcd         # Eject icon (Fn + F12)
 
 # S520 keyboard (27 MHz, modelnumber Y-RBA97)
 # Note this one uses non-standard codes for FN + F9 - Fn + F12?
-evdev:input:b0003v046Dp0066:*
+evdev:input:b0003v046Dp0066*
  KEYBOARD_KEY_c100e=prog4           # Smartkey D (Fn + F12) → XF86Launch4
  KEYBOARD_KEY_c1019=prog1           # Smartkey A (Fn + F9)  → XF86Launch1
  KEYBOARD_KEY_c101a=prog2           # Smartkey B (Fn + F10) → XF86Launch2
@@ -1013,12 +1018,12 @@ evdev:input:b0003v046Dp0066:*
  KEYBOARD_KEY_c106f=battery         # Battery icon
 
 # S510 remote control (27 MHz)
-evdev:input:b0003v046Dp00FE:*
+evdev:input:b0003v046Dp00FE*
  KEYBOARD_KEY_c1018=media           # Media button
 
 # MX5000 keyboard (HID proxy mode and bluetooth matches)
-evdev:input:b0003v046DpB305:*
-evdev:input:b0005v046DpB305:*
+evdev:input:b0003v046DpB305*
+evdev:input:b0005v046DpB305*
  KEYBOARD_KEY_c0230=zoomreset  # HUT says fullscreen, kbd says 100%
  KEYBOARD_KEY_c1004=send       # Send and receive / sync button
  KEYBOARD_KEY_c1006=coffee     # Status (online/away) button
@@ -1033,8 +1038,8 @@ evdev:input:b0005v046DpB305:*
  KEYBOARD_KEY_c103b=prog4      # Smartkey D → XF86Launch4
 
 # MX5500 keyboard (HID proxy mode and bluetooth matches)
-evdev:input:b0003v046DpB30B:*
-evdev:input:b0005v046DpB30B:*
+evdev:input:b0003v046DpB30B*
+evdev:input:b0005v046DpB30B*
  KEYBOARD_KEY_c0183=media      # HUT says consumer control configuration, kbd says Media Center
  KEYBOARD_KEY_c100e=images      # Camera icon, "Photo Gallery"
  KEYBOARD_KEY_c100f=config      # Window with gear icon
@@ -1044,12 +1049,12 @@ evdev:input:b0005v046DpB30B:*
  KEYBOARD_KEY_c103b=prog4      # Smartkey D → XF86Launch4
 
 # Logitech K811
-evdev:input:b0005v046DpB317:*
+evdev:input:b0005v046DpB317*
  KEYBOARD_KEY_70047=brightnessdown
  KEYBOARD_KEY_70048=brightnessup
 
 # iTouch
-evdev:input:b0003v046DpC308:*
+evdev:input:b0003v046DpC308*
  KEYBOARD_KEY_90001=shop                                # Shopping
  KEYBOARD_KEY_90002=config                              # iTouch
  KEYBOARD_KEY_90003=finance                             # Finance
@@ -1058,12 +1063,12 @@ evdev:input:b0003v046DpC308:*
  KEYBOARD_KEY_c0183=media                               # Media
 
 # Cordless Desktop S510
-evdev:input:b0003v046DpC50C:*
+evdev:input:b0003v046DpC50C*
  KEYBOARD_KEY_d4=up                                     # zoomin
  KEYBOARD_KEY_cc=down                                   # zoomout
 
 # Wave cordless
-evdev:input:b0003v046DpC317:*
+evdev:input:b0003v046DpC317*
  KEYBOARD_KEY_9001c=scale                               # expo
  KEYBOARD_KEY_9001f=down                                # zoomout
  KEYBOARD_KEY_90020=up                                  # zoomin
@@ -1082,7 +1087,7 @@ evdev:input:b0003v046DpC317:*
  KEYBOARD_KEY_9004c=ejectclosecd
 
 # Wave cordless
-evdev:input:b0003v046DpC517:*
+evdev:input:b0003v046DpC517*
  KEYBOARD_KEY_c101f=down                                # zoomout
  KEYBOARD_KEY_c1020=up                                  # zoomin
  KEYBOARD_KEY_c1005=camera
@@ -1098,7 +1103,7 @@ evdev:input:b0003v046DpC517:*
  KEYBOARD_KEY_c104c=ejectclosecd
 
 # Cordless Wave Pro
-evdev:input:b0003v046DpC529:*
+evdev:input:b0003v046DpC529*
  KEYBOARD_KEY_0c01b6=camera
  KEYBOARD_KEY_0c0183=media
  KEYBOARD_KEY_0c0184=wordprocessor
@@ -1113,13 +1118,13 @@ evdev:input:b0003v046DpC529:*
  KEYBOARD_KEY_0c022e=down                               # zoomout
 
 # Logitech Presenter R400
-evdev:input:b0003v046DpC52D:*
+evdev:input:b0003v046DpC52D*
  KEYBOARD_KEY_070029=presentation
  KEYBOARD_KEY_07003e=presentation
  KEYBOARD_KEY_070037=displaytoggle
 
 # Internet Navigator
-evdev:input:b0003v046DpC309:*
+evdev:input:b0003v046DpC309*
  KEYBOARD_KEY_90001=chat         # Messenger/SMS
  KEYBOARD_KEY_90002=camera       # webcam
  KEYBOARD_KEY_90003=prog1        # iTouch
@@ -1191,12 +1196,12 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMedion*:pnErazer*:*
 ###########################################################
 
 # Microsoft Natural Ergonomic Keyboard 4000
-evdev:input:b0003v045Ep00DB:*
+evdev:input:b0003v045Ep00DB*
  KEYBOARD_KEY_c022d=up                                  # zoomin
  KEYBOARD_KEY_c022e=down                                # zoomout
 
 # Microsoft (Razer produced) Reclusa keyboard
-evdev:input:b0003v1532p0200:*
+evdev:input:b0003v1532p0200*
  KEYBOARD_KEY_c01c9=shuffle
  KEYBOARD_KEY_c01ca=up                                  # zoomin
  KEYBOARD_KEY_c01cb=down                                # zoomout
@@ -1259,7 +1264,7 @@ evdev:name:MSI Laptop hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnM[iI][cC][rR][oO]-S[tT][a
 ###########################################################
 
 # Teres-I
-evdev:input:b0003v15BAp003C:*
+evdev:input:b0003v15BAp003C*
  KEYBOARD_KEY_70066=sleep                               # Fn+F1
  KEYBOARD_KEY_700f6=wlan                                # Fn+F2
  KEYBOARD_KEY_700c7=f21                                 # Fn+F3 touchpad toggle
@@ -1371,7 +1376,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnOQO*Inc.*:pnOQO*Model*2*:*
 # The key code identifiers used below exactly match the text
 # labels on the keys/buttons (or standard icons on the buttons
 # that have no text labels), except as noted.
-evdev:input:b0003v05A4p9735:*
+evdev:input:b0003v05A4p9735*
  KEYBOARD_KEY_c0015=back
  KEYBOARD_KEY_c0012=forward
  KEYBOARD_KEY_c000c=stop
@@ -1397,12 +1402,22 @@ evdev:input:b0003v05A4p9735:*
  KEYBOARD_KEY_c00bb=prog2        # Key labeled "pf2"
  KEYBOARD_KEY_c00b8=prog3        # Key labeled "pf3"
 
+###########################################################
+# Pine64
+###########################################################
+
+# Pinebook Pro
+evdev:input:b0003v258Ap001E*
+ KEYBOARD_KEY_700a5=brightnessdown
+ KEYBOARD_KEY_700a6=brightnessup
+ KEYBOARD_KEY_70066=sleep
+
 ###########################################################
 # Plantronics
 ###########################################################
 
 # Plantronics .Audio 626 DSP
-evdev:input:b0003v047FpC006:*
+evdev:input:b0003v047FpC006*
  KEYBOARD_KEY_b002f=f20                                # Microphone mute button; should be micmute
 
 ###########################################################
@@ -1699,7 +1714,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnZepto:pnZnote*6615WD:*
 ##########################################
 
 # Ideazon Zboard Merc
-evdev:input:b0003v1038p0210:*
+evdev:input:b0003v1038p0210*
  KEYBOARD_KEY_c0227=q
  KEYBOARD_KEY_c0223=w
  KEYBOARD_KEY_c0221=e
@@ -1737,7 +1752,7 @@ evdev:input:b0003v1038p0210:*
  KEYBOARD_KEY_70079=f6
 
 # Ideazon Zboard Fang
-evdev:input:b0003v1038p0310:*
+evdev:input:b0003v1038p0310*
  KEYBOARD_KEY_70059=1
  KEYBOARD_KEY_7005b=3
  KEYBOARD_KEY_70040=equal
@@ -1789,13 +1804,13 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDIXONSP:pnDIXON*:*
 # with an accompanying variant (defined with XKB_FIXED_VARIANT) if necessary.
 
 # Yubico Yubico Yubikey II"
-evdev:input:b0003v1050p0010:*
+evdev:input:b0003v1050p0010*
 # Yubico Yubikey NEO OTP+CCID
-evdev:input:b0003v1050p0111:*
+evdev:input:b0003v1050p0111*
 # Yubico Yubikey NEO OTP+U2F+CCID
-evdev:input:b0003v1050p0116:*
+evdev:input:b0003v1050p0116*
 # OKE Electron Company USB barcode reader
-evdev:input:b0003v05FEp1010:*
+evdev:input:b0003v05FEp1010*
  XKB_FIXED_LAYOUT=us
  XKB_FIXED_VARIANT=
 
@@ -1808,12 +1823,12 @@ evdev:input:b0003v05FEp1010:*
 # Presence of a LED is implicit when the property is absent.
 
 # Logitech K750
-evdev:input:b0003v046Dp4002:*
+evdev:input:b0003v046Dp4002*
  KEYBOARD_LED_NUMLOCK=0
  KEYBOARD_LED_CAPSLOCK=0
 
 # PFU Limited HHKB Professional JP
-evdev:input:b0003v04FEp000D:*
+evdev:input:b0003v04FEp000D*
  KEYBOARD_LED_NUMLOCK=0
  KEYBOARD_LED_CAPSLOCK=0
 
index 7079736a8faa718c05ebd851727575a822eaafca..b0d0d084de56ecb8c53bcd8926ad57e3ade5f822 100644 (file)
@@ -67,8 +67,6 @@
 # or 'display'. The default, when unset, is equivalent to:
 #    ACCEL_LOCATION=display
 #
-# All matches should end in ':*' to allow future expansions of the match key.
-
 # Sort by brand, model
 
 #########################################
@@ -650,6 +648,14 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:rvnPOV:rnI102A:*
 sensor:modalias:i2c:bmc150_accel:dmi:bvnINSYDECorp.:*:svnInsyde:pnBayTrail:*:rvn105B:rn0E57:*
  ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
 
+#########################################
+# Predia
+#########################################
+
+# Predia Basic tablet, most DMI strings are generic, match on BIOS version
+sensor:modalias:acpi:BOSC0200*:dmi:bvnINSYDECorp.:bvrMx.WT107.KUBNGEA*svnInsyde:pnCherryTrail:*
+ ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
+
 #########################################
 # Prowise
 #########################################
index f72a69dd27021135f08ca126d51f1ee81563e327..9d5c4fc06916e5cd2cb284dd94120d19a2962b84 100644 (file)
@@ -36,8 +36,6 @@
 #
 #   If the property is missing, user-space can assume:
 #   ID_INPUT_JOYSTICK_INTEGRATION=external
-#
-# All matches should end in ':*' to allow future expansions of the match key.
 
 joystick:bluetooth:*
  ID_INPUT_JOYSTICK_INTEGRATION=external
@@ -47,6 +45,6 @@ joystick:bluetooth:*
 ###########################################################
 
 # GPD Win, Classic and XBox 360 compat modes
-joystick:usb:v11c5p5507:*
-joystick:usb:v045ep028e:*
+joystick:usb:v11c5p5507*
+joystick:usb:v045ep028e*
  ID_INPUT_JOYSTICK_INTEGRATION=internal
index 0bdac6cdb44b744722f317e6981a7c01f6c14f8f..98b79dc0d2fbb28c35c44acf08449c50218a3dc1 100644 (file)
@@ -343,6 +343,10 @@ mouse:usb:v046dpc24c:name:Logitech G400s Optical Gaming Mouse:*
 mouse:usb:v046dpc07e:name:Logitech Gaming Mouse G402:*
  MOUSE_DPI=400@1000 *800@1000 1600@1000 3200@1000
 
+# Logitech G403 Prodigy (Wired)
+mouse:usb:v046dpc083:name:Logitech G403 Prodigy Gaming Mouse:*
+ MOUSE_DPI=400@1000 *800@1000 1600@1000 3200@1000
+
 # Logitech G500 Mouse
 mouse:usb:v046dpc068:name:Logitech G500:*
  MOUSE_DPI=*1600@500 2600@500 3600@500
index bcc993644e56f7fdad30f525785dc1a5bd5d5e6d..b427f21ea54cd21536e69825730c1faff3e7dc13 100644 (file)
@@ -13,7 +13,7 @@
 #
 # Supported hardware matches are:
 #  - Generic input devices match:
-#      evdev:input:bZZZZvYYYYpXXXXeWWWW-VVVV:*
+#      evdev:input:bZZZZvYYYYpXXXXeWWWW-VVVV
 #    This matches on the kernel modalias of the input-device, mainly:
 #    ZZZZ is the bus-id (see /usr/include/linux/input.h BUS_*), YYYY, XXXX and
 #    WWW are the 4-digit hex uppercase vendor, product and version ID and VVVV
@@ -27,8 +27,6 @@
 #    <vendor> is the firmware-provided string from the kernel DMI modalias,
 #    see /sys/class/dmi/id/modalias
 #
-# All matches should end in ':*' to allow future expansions of the match key.
-#
 # To add local entries, create a new file
 #   /etc/udev/hwdb.d/71-pointingstick-local.hwdb
 # and add your rules there. To load the new rules execute (as root):
@@ -157,6 +155,6 @@ evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX20?
  POINTINGSTICK_CONST_ACCEL=1.25
 
 # Lenovo UltraNav SK-8845 (USB keyboard)
-evdev:input:b0003v06CBp0009:*
+evdev:input:b0003v06CBp0009*
  POINTINGSTICK_CONST_ACCEL=2.5
  POINTINGSTICK_SENSITIVITY=200
index 797ed3925f18f7df09eef9ad5a543d2e32c9f3b4..8194d983587df17f1c8684d5af5fdb4c7acce38b 100644 (file)
@@ -15,8 +15,6 @@
 #
 # vid/pid as 4-digit hex lowercase vendor/product
 #
-# All matches should end in ':*' to allow future expansions of the match key.
-#
 # To add local entries, create a new file
 #   /etc/udev/hwdb.d/71-touchpad-local.hwdb
 # and add your rules there. To load the new rules execute (as root):
@@ -61,11 +59,11 @@ touchpad:usb:v044ep1221:*
 ###########################################################
 # Logitech
 ###########################################################
-touchpad:usb:v046dp????:*
+touchpad:usb:v046d*
  ID_INPUT_TOUCHPAD_INTEGRATION=external
 
 ###########################################################
 # Wacom
 ###########################################################
-touchpad:usb:v056ap????:*
+touchpad:usb:v056a*
  ID_INPUT_TOUCHPAD_INTEGRATION=external
index dcc442f8e91545b5c011061b8d33a873be1b39e7..2e60a4688d5fdcb993525fa82301b9c0128080b4 100644 (file)
@@ -4499,12 +4499,6 @@ D8ED1C     (base 16)             Magna Technology SL
                                Madrid    28006\r
                                ES\r
 \r
-D8-31-34   (hex)               Roku, Inc\r
-D83134     (base 16)           Roku, Inc\r
-                               150 Winchester Circle\r
-                               Los Gatos  CA  95032\r
-                               US\r
-\r
 40-8B-F6   (hex)               Shenzhen TCL New Technology Co., Ltd\r
 408BF6     (base 16)           Shenzhen TCL New Technology Co., Ltd\r
                                TCL Building, #5 Central Nanhai Road, Nanshan District,\r
@@ -6209,12 +6203,6 @@ B47447     (base 16)             CoreOS
                                San Francisco  null  94158\r
                                US\r
 \r
-B0-EE-7B   (hex)               Roku, Inc\r
-B0EE7B     (base 16)           Roku, Inc\r
-                               150 Winchester Circle\r
-                               Los Gatos  CA  95032\r
-                               US\r
-\r
 AC-58-7B   (hex)               JCT Healthcare\r
 AC587B     (base 16)           JCT Healthcare\r
                                1/25 London Road\r
@@ -8006,12 +7994,6 @@ FC55DC     (base 16)             Baltic Latvian Universal Electronics LLC
                                Beaverton  OR  97003\r
                                US\r
 \r
-00-25-50   (hex)               Riverbed Technology, Inc.\r
-002550     (base 16)           Riverbed Technology, Inc.\r
-                               125 Cambridge Park Drive\r
-                               Cambridge  MA  02140\r
-                               US\r
-\r
 D0-B2-C4   (hex)               Technicolor CH USA Inc.\r
 D0B2C4     (base 16)           Technicolor CH USA Inc.\r
                                5030 Sugarloaf Parkway Bldg 6\r
@@ -13430,12 +13412,6 @@ E817FC     (base 16)           Fujitsu Cloud Technologies Limited
                                Shenzhen  Guangdong  518172\r
                                CN\r
 \r
-68-78-48   (hex)               Westunitis Co., Ltd.\r
-687848     (base 16)           Westunitis Co., Ltd.\r
-                               North Building 7F, 3-1 Ofuka-cho, Kita-ku\r
-                               Osaka-city  Osaka-pref  5300011\r
-                               JP\r
-\r
 48-D0-CF   (hex)               Universal Electronics, Inc.\r
 48D0CF     (base 16)           Universal Electronics, Inc.\r
                                201 E. Sandpointe Ave\r
@@ -23219,12 +23195,6 @@ D4C766     (base 16)           Acentic GmbH
                                Irving  Texas  75063\r
                                US\r
 \r
-00-12-93   (hex)               GE Energy\r
-001293     (base 16)           GE Energy\r
-                               1501 Roanoke Blvd.\r
-                               Salem  VA  24153\r
-                               US\r
-\r
 00-12-94   (hex)               SUMITOMO ELECTRIC DEVICE INNOVATIONS, INC\r
 001294     (base 16)           SUMITOMO ELECTRIC DEVICE INNOVATIONS, INC\r
                                1000 Kamisukiawara,Showa-cho\r
@@ -32219,12 +32189,6 @@ F05136     (base 16)           TCT mobile ltd
                                Hui Zhou  Guang Dong  516006\r
                                CN\r
 \r
-10-59-32   (hex)               Roku, Inc\r
-105932     (base 16)           Roku, Inc\r
-                               150 Winchester Circle\r
-                               Los Gatos  CA  95032\r
-                               US\r
-\r
 20-74-54   (hex)               vivo Mobile Communication Co., Ltd.\r
 207454     (base 16)           vivo Mobile Communication Co., Ltd.\r
                                #283,BBK Road\r
@@ -32666,29 +32630,17 @@ D807B6     (base 16)          TP-LINK TECHNOLOGIES CO.,LTD.
                                Poznan  Wielkopolska  60-681\r
                                PL\r
 \r
-6C-16-32   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-6C1632     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
-2C-1A-01   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-2C1A01     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
 34-78-39   (hex)               zte corporation\r
 347839     (base 16)           zte corporation\r
                                12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
                                shenzhen  guangdong  518057\r
                                CN\r
 \r
-24-16-9D   (hex)               Cisco Systems, Inc\r
-24169D     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
+6C-16-32   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+6C1632     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
 \r
 F4-19-E2   (hex)               Volterra\r
 F419E2     (base 16)           Volterra\r
@@ -32702,6 +32654,18 @@ F419E2     (base 16)           Volterra
                                Chatillon    92320\r
                                FR\r
 \r
+2C-1A-01   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+2C1A01     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+24-16-9D   (hex)               Cisco Systems, Inc\r
+24169D     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
 64-F2-FB   (hex)               Hangzhou Ezviz Software Co.,Ltd.\r
 64F2FB     (base 16)           Hangzhou Ezviz Software Co.,Ltd.\r
                                Room 302, Unit B, Building 2, 399 Danfeng Road,Binjiang District\r
@@ -32744,18 +32708,18 @@ B440A4     (base 16)          Apple, Inc.
                                Cupertino  CA  95014\r
                                US\r
 \r
-F4-DB-E3   (hex)               Apple, Inc.\r
-F4DBE3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 F0-7C-C7   (hex)               Juniper Networks\r
 F07CC7     (base 16)           Juniper Networks\r
                                1133 Innovation Way\r
                                Sunnyvale  CA  94089\r
                                US\r
 \r
+F4-DB-E3   (hex)               Apple, Inc.\r
+F4DBE3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
 D4-5E-EC   (hex)               Beijing Xiaomi Electronics Co., Ltd.\r
 D45EEC     (base 16)           Beijing Xiaomi Electronics Co., Ltd.\r
                                Building C, QingHe ShunShiJiaYe Technology Park, #66 ZhuFang Rd, HaiDian District\r
@@ -32810,6 +32774,12 @@ F0F6C1     (base 16)           Sonos, Inc.
                                Santa Barbara  CA  93101\r
                                US\r
 \r
+54-03-84   (hex)               Hongkong Nano IC Technologies Co., Ltd\r
+540384     (base 16)           Hongkong Nano IC Technologies Co., Ltd\r
+                               Rm. 19C, Lockhart Ctr., 301-307 Lockhart Rd., Wan Chai, Hong Kong\r
+                               Hong Kong  Hong Kong  999077\r
+                               CN\r
+\r
 60-68-4E   (hex)               Samsung Electronics Co.,Ltd\r
 60684E     (base 16)           Samsung Electronics Co.,Ltd\r
                                #94-1, Imsoo-Dong\r
@@ -32828,11 +32798,11 @@ B4CE40     (base 16)          Samsung Electronics Co.,Ltd
                                Gumi  Gyeongbuk  730-350\r
                                KR\r
 \r
-54-03-84   (hex)               Hongkong Nano IC Technologies Co., Ltd\r
-540384     (base 16)           Hongkong Nano IC Technologies Co., Ltd\r
-                               Rm. 19C, Lockhart Ctr., 301-307 Lockhart Rd., Wan Chai, Hong Kong\r
-                               Hong Kong  Hong Kong  999077\r
-                               CN\r
+30-50-75   (hex)               GN Audio A/S\r
+305075     (base 16)           GN Audio A/S\r
+                               Lautrupbjerg 7\r
+                               Ballerup    DK-2750\r
+                               DK\r
 \r
 04-BD-BF   (hex)               Samsung Electronics Co.,Ltd\r
 04BDBF     (base 16)           Samsung Electronics Co.,Ltd\r
@@ -32846,54 +32816,42 @@ BC7ABF     (base 16)          Samsung Electronics Co.,Ltd
                                Gumi  Gyeongbuk  730-350\r
                                KR\r
 \r
-B4-09-31   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-B40931     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
-94-E7-EA   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-94E7EA     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
-94-E4-BA   (hex)               Huawei Device Co., Ltd.\r
-94E4BA     (base 16)           Huawei Device Co., Ltd.\r
+2C-C5-46   (hex)               Huawei Device Co., Ltd.\r
+2CC546     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-34-71-46   (hex)               Huawei Device Co., Ltd.\r
-347146     (base 16)           Huawei Device Co., Ltd.\r
+0C-83-9A   (hex)               Huawei Device Co., Ltd.\r
+0C839A     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-2C-C5-46   (hex)               Huawei Device Co., Ltd.\r
-2CC546     (base 16)           Huawei Device Co., Ltd.\r
+E0-E0-FC   (hex)               Huawei Device Co., Ltd.\r
+E0E0FC     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-0C-83-9A   (hex)               Huawei Device Co., Ltd.\r
-0C839A     (base 16)           Huawei Device Co., Ltd.\r
+94-E7-EA   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+94E7EA     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+94-E4-BA   (hex)               Huawei Device Co., Ltd.\r
+94E4BA     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-E0-E0-FC   (hex)               Huawei Device Co., Ltd.\r
-E0E0FC     (base 16)           Huawei Device Co., Ltd.\r
+34-71-46   (hex)               Huawei Device Co., Ltd.\r
+347146     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-30-50-75   (hex)               GN Audio A/S\r
-305075     (base 16)           GN Audio A/S\r
-                               Lautrupbjerg 7\r
-                               Ballerup    DK-2750\r
-                               DK\r
-\r
 F4-B7-8D   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 F4B78D     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
@@ -32906,12 +32864,24 @@ A416E7     (base 16)          HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
+B4-09-31   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+B40931     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
 30-B9-B0   (hex)               Intracom Asia Co., Ltd\r
 30B9B0     (base 16)           Intracom Asia Co., Ltd\r
                                4F., No77, Sec. 1, Xintai 5th Rd., Xizhi Dist.\r
                                New Taipei City  Taiwan  221\r
                                TW\r
 \r
+D4-DA-CD   (hex)               BSkyB Ltd\r
+D4DACD     (base 16)           BSkyB Ltd\r
+                               130 Kings Road\r
+                               Brentwood  Essex  08854\r
+                               GB\r
+\r
 0C-35-FE   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
 0C35FE     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
                                No.5 DongXin Road\r
@@ -32930,18 +32900,18 @@ AC4B1E     (base 16)          Integri-Sys.Com LLC
                                Miami  FL  33156\r
                                US\r
 \r
+4C-B9-11   (hex)               Raisecom Technology CO.,LTD\r
+4CB911     (base 16)           Raisecom Technology CO.,LTD\r
+                               No. 11, East Area, No. 10 Block, East Xibeiwang Road\r
+                               Beijing    100094\r
+                               CN\r
+\r
 B0-E4-D5   (hex)               Google, Inc.\r
 B0E4D5     (base 16)           Google, Inc.\r
                                1600 Amphitheatre Parkway\r
                                Mountain View  CA  94043\r
                                US\r
 \r
-D4-DA-CD   (hex)               BSkyB Ltd\r
-D4DACD     (base 16)           BSkyB Ltd\r
-                               130 Kings Road\r
-                               Brentwood  Essex  08854\r
-                               GB\r
-\r
 68-69-CA   (hex)               Hitachi, Ltd.\r
 6869CA     (base 16)           Hitachi, Ltd.\r
                                27-18, Minami Oi 6-chome, Shinagawa-ku\r
@@ -32996,12 +32966,6 @@ B0B5C3     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
                                Santa Clara  CA  95054\r
                                US\r
 \r
-4C-B9-11   (hex)               Raisecom Technology CO.,LTD\r
-4CB911     (base 16)           Raisecom Technology CO.,LTD\r
-                               No. 11, East Area, No. 10 Block, East Xibeiwang Road\r
-                               Beijing    100094\r
-                               CN\r
-\r
 40-47-6A   (hex)               Astro Gaming\r
 40476A     (base 16)           Astro Gaming\r
                                340 Bryant St., Suite 101\r
@@ -33014,65 +32978,77 @@ B0B5C3     (base 16)          GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
                                Farmington Hills  MI  48335\r
                                US\r
 \r
+B8-7C-F2   (hex)               Extreme Networks, Inc.\r
+B87CF2     (base 16)           Extreme Networks, Inc.\r
+                               1011 McCarthy Blvd\r
+                               Milpitas  CA  95035\r
+                               US\r
+\r
 30-B2-37   (hex)               GD Midea Air-Conditioning Equipment Co.,Ltd.\r
 30B237     (base 16)           GD Midea Air-Conditioning Equipment Co.,Ltd.\r
                                Midea Global Innovation Center,Beijiao Town,Shunde\r
                                Foshan  Guangdong  528311\r
                                CN\r
 \r
+24-62-CE   (hex)               Aruba, a Hewlett Packard Enterprise Company\r
+2462CE     (base 16)           Aruba, a Hewlett Packard Enterprise Company\r
+                               3333 Scott Blvd\r
+                               Santa Clara  CA  95054\r
+                               US\r
+\r
 BC-5A-56   (hex)               Cisco Systems, Inc\r
 BC5A56     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
                                San Jose  CA  94568\r
                                US\r
 \r
-B8-7C-F2   (hex)               Extreme Networks, Inc.\r
-B87CF2     (base 16)           Extreme Networks, Inc.\r
-                               1011 McCarthy Blvd\r
-                               Milpitas  CA  95035\r
+C0-9B-F4   (hex)               IEEE Registration Authority\r
+C09BF4     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
                                US\r
 \r
-88-2B-94   (hex)               MADOKA SYSTEM Co.,Ltd.\r
-882B94     (base 16)           MADOKA SYSTEM Co.,Ltd.\r
-                               2-105 Hanasakidai Moriyama-ku\r
-                               Nagoya    463-0808\r
-                               JP\r
-\r
 7C-EF-61   (hex)               STR Elektronik Josef Schlechtinger GmbH\r
 7CEF61     (base 16)           STR Elektronik Josef Schlechtinger GmbH\r
                                Auf dem Ohl 9\r
                                Wenden    57482\r
                                DE\r
 \r
+40-05-89   (hex)               T-Mobile, USA\r
+400589     (base 16)           T-Mobile, USA\r
+                               3625 132nd Ave SE\r
+                               BELLEVUE  WA  98006\r
+                               US\r
+\r
+70-03-9F   (hex)               Espressif Inc.\r
+70039F     (base 16)           Espressif Inc.\r
+                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+                               Shanghai  Shanghai  201203\r
+                               CN\r
+\r
 64-A9-65   (hex)               Linkflow Co., Ltd.\r
 64A965     (base 16)           Linkflow Co., Ltd.\r
                                54, Nonhyeon-ro 2-gil, Gangnam-gu\r
                                Seoul    06313\r
                                KR\r
 \r
-24-62-CE   (hex)               Aruba, a Hewlett Packard Enterprise Company\r
-2462CE     (base 16)           Aruba, a Hewlett Packard Enterprise Company\r
-                               3333 Scott Blvd\r
-                               Santa Clara  CA  95054\r
-                               US\r
-\r
 68-E2-09   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 68E209     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
                                Dongguan    523808\r
                                CN\r
 \r
-40-05-89   (hex)               T-Mobile, USA\r
-400589     (base 16)           T-Mobile, USA\r
-                               3625 132nd Ave SE\r
-                               BELLEVUE  WA  98006\r
+04-5F-B9   (hex)               Cisco Systems, Inc\r
+045FB9     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
                                US\r
 \r
-C0-9B-F4   (hex)               IEEE Registration Authority\r
-C09BF4     (base 16)           IEEE Registration Authority\r
-                               445 Hoes Lane\r
-                               Piscataway  NJ  08554\r
-                               US\r
+88-2B-94   (hex)               MADOKA SYSTEM Co.,Ltd.\r
+882B94     (base 16)           MADOKA SYSTEM Co.,Ltd.\r
+                               2-105 Hanasakidai Moriyama-ku\r
+                               Nagoya    463-0808\r
+                               JP\r
 \r
 F4-30-8B   (hex)               Xiaomi Communications Co Ltd\r
 F4308B     (base 16)           Xiaomi Communications Co Ltd\r
@@ -33086,11 +33062,11 @@ DC6B12     (base 16)          worldcns inc.
                                Jeju-si  Jeju-do  63335\r
                                KR\r
 \r
-70-03-9F   (hex)               Espressif Inc.\r
-70039F     (base 16)           Espressif Inc.\r
-                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
-                               Shanghai  Shanghai  201203\r
-                               CN\r
+74-58-F3   (hex)               Amazon Technologies Inc.\r
+7458F3     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102\r
+                               Reno  NV  89507\r
+                               US\r
 \r
 A0-DE-0F   (hex)               Huawei Device Co., Ltd.\r
 A0DE0F     (base 16)           Huawei Device Co., Ltd.\r
@@ -33104,6 +33080,18 @@ F487C5     (base 16)           Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
+98-DF-82   (hex)               Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+98DF82     (base 16)           Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+                               No.555 Qianmo Road\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
+\r
+3C-F6-52   (hex)               zte corporation\r
+3CF652     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
 08-00-88   (hex)               Brocade Communications Systems LLC\r
 080088     (base 16)           Brocade Communications Systems LLC\r
                                1320 Ridder Park Dr\r
@@ -33122,12 +33110,6 @@ F487C5     (base 16)           Huawei Device Co., Ltd.
                                NEW TAIPEI  TAIWAN  23585\r
                                TW\r
 \r
-04-5F-B9   (hex)               Cisco Systems, Inc\r
-045FB9     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
-\r
 CC-4E-24   (hex)               Brocade Communications Systems LLC\r
 CC4E24     (base 16)           Brocade Communications Systems LLC\r
                                1320 Ridder Park Dr\r
@@ -33140,17 +33122,11 @@ CC4E24     (base 16)          Brocade Communications Systems LLC
                                San Jose  CA  95131\r
                                US\r
 \r
-98-DF-82   (hex)               Hangzhou Hikvision Digital Technology Co.,Ltd.\r
-98DF82     (base 16)           Hangzhou Hikvision Digital Technology Co.,Ltd.\r
-                               No.555 Qianmo Road\r
-                               Hangzhou  Zhejiang  310052\r
-                               CN\r
-\r
-3C-F6-52   (hex)               zte corporation\r
-3CF652     (base 16)           zte corporation\r
-                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
-                               shenzhen  guangdong  518057\r
-                               CN\r
+08-AA-55   (hex)               Motorola Mobility LLC, a Lenovo Company\r
+08AA55     (base 16)           Motorola Mobility LLC, a Lenovo Company\r
+                               222 West Merchandise Mart Plaza\r
+                               Chicago  IL  60654\r
+                               US\r
 \r
 5C-0F-FB   (hex)               Amino Communications Ltd\r
 5C0FFB     (base 16)           Amino Communications Ltd\r
@@ -33158,12 +33134,24 @@ CC4E24     (base 16)          Brocade Communications Systems LLC
                                Cambourne  Cambs  CB23 6DP\r
                                GB\r
 \r
-74-58-F3   (hex)               Amazon Technologies Inc.\r
-7458F3     (base 16)           Amazon Technologies Inc.\r
-                               P.O Box 8102\r
-                               Reno  NV  89507\r
+54-21-9D   (hex)               Samsung Electronics Co.,Ltd\r
+54219D     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+C8-8B-E8   (hex)               Masimo Corporation\r
+C88BE8     (base 16)           Masimo Corporation\r
+                               40 Parker\r
+                               Irvine  CA  92618\r
                                US\r
 \r
+40-40-28   (hex)               ZIV\r
+404028     (base 16)           ZIV\r
+                               Polígono Parque Tecnológico, 210\r
+                               ZAMUDIO  VIZCAYA  48170\r
+                               ES\r
+\r
 00-06-31   (hex)               Calix Inc.\r
 000631     (base 16)           Calix Inc.\r
                                2777 Orchard Pkwy\r
@@ -33176,47 +33164,17 @@ A80577     (base 16)          Netlist, Inc.
                                Irvine  CA  92618\r
                                US\r
 \r
-E4-3A-65   (hex)               MofiNetwork Inc\r
-E43A65     (base 16)           MofiNetwork Inc\r
-                               11 Boynton Cir\r
-                               Markham  Ontario  L6C 1A8\r
-                               CA\r
-\r
-08-AA-55   (hex)               Motorola Mobility LLC, a Lenovo Company\r
-08AA55     (base 16)           Motorola Mobility LLC, a Lenovo Company\r
-                               222 West Merchandise Mart Plaza\r
-                               Chicago  IL  60654\r
-                               US\r
-\r
-54-21-9D   (hex)               Samsung Electronics Co.,Ltd\r
-54219D     (base 16)           Samsung Electronics Co.,Ltd\r
-                               #94-1, Imsoo-Dong\r
-                               Gumi  Gyeongbuk  730-350\r
-                               KR\r
-\r
-C8-8B-E8   (hex)               Masimo Corporation\r
-C88BE8     (base 16)           Masimo Corporation\r
-                               40 Parker\r
-                               Irvine  CA  92618\r
-                               US\r
-\r
 F0-41-C6   (hex)               Heat Tech Company, Ltd.\r
 F041C6     (base 16)           Heat Tech Company, Ltd.\r
                                221A, Tikhookeanskaya st.\r
                                Khabarovsk    680033\r
                                RU\r
 \r
-40-40-28   (hex)               ZIV\r
-404028     (base 16)           ZIV\r
-                               Polígono Parque Tecnológico, 210\r
-                               ZAMUDIO  VIZCAYA  48170\r
-                               ES\r
-\r
-F8-6C-03   (hex)               Shenzhen Teleone Technology Co., Ltd\r
-F86C03     (base 16)           Shenzhen Teleone Technology Co., Ltd\r
-                               TOWER B 5/F, SHANSHUI BUILDING, NANSHAN YUNGU INNOVATION INDUSTRY PARK, 1183 LIUXIAN AVENUE, NANSHAN, SHENZHEN, CHINA\r
-                               Shenzhen    518000\r
-                               CN\r
+E4-3A-65   (hex)               MofiNetwork Inc\r
+E43A65     (base 16)           MofiNetwork Inc\r
+                               11 Boynton Cir\r
+                               Markham  Ontario  L6C 1A8\r
+                               CA\r
 \r
 D8-71-4D   (hex)               Texas Instruments\r
 D8714D     (base 16)           Texas Instruments\r
@@ -33230,24 +33188,6 @@ D8714D     (base 16)           Texas Instruments
                                Dallas  TX  75243\r
                                US\r
 \r
-10-5D-DC   (hex)               Huawei Device Co., Ltd.\r
-105DDC     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-DC-73-85   (hex)               Huawei Device Co., Ltd.\r
-DC7385     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-54-55-D5   (hex)               Huawei Device Co., Ltd.\r
-5455D5     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
 00-15-D2   (hex)               Xantech Corporation\r
 0015D2     (base 16)           Xantech Corporation\r
                                5919 Sea Otter Place\r
@@ -33260,10 +33200,10 @@ DC7385     (base 16)          Huawei Device Co., Ltd.
                                Carlsbad  CA  92010\r
                                US\r
 \r
-18-45-93   (hex)               Taicang T&W Electronics\r
-184593     (base 16)           Taicang T&W Electronics\r
-                               89# Jiang Nan RD\r
-                               Suzhou  Jiangsu  215412\r
+F8-6C-03   (hex)               Shenzhen Teleone Technology Co., Ltd\r
+F86C03     (base 16)           Shenzhen Teleone Technology Co., Ltd\r
+                               TOWER B 5/F, SHANSHUI BUILDING, NANSHAN YUNGU INNOVATION INDUSTRY PARK, 1183 LIUXIAN AVENUE, NANSHAN, SHENZHEN, CHINA\r
+                               Shenzhen    518000\r
                                CN\r
 \r
 CC-9E-CA   (hex)               HMD Global Oy\r
@@ -33278,6 +33218,42 @@ CC9ECA     (base 16)           HMD Global Oy
                                Dongguan    523808\r
                                CN\r
 \r
+80-E1-BF   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+80E1BF     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+48-2C-D0   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+482CD0     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+DC-73-85   (hex)               Huawei Device Co., Ltd.\r
+DC7385     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+54-55-D5   (hex)               Huawei Device Co., Ltd.\r
+5455D5     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+18-45-93   (hex)               Taicang T&W Electronics\r
+184593     (base 16)           Taicang T&W Electronics\r
+                               89# Jiang Nan RD\r
+                               Suzhou  Jiangsu  215412\r
+                               CN\r
+\r
+10-5D-DC   (hex)               Huawei Device Co., Ltd.\r
+105DDC     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 34-EA-E7   (hex)               Shanghai High-Flying Electronics  Technology Co., Ltd\r
 34EAE7     (base 16)           Shanghai High-Flying Electronics  Technology Co., Ltd\r
                                Room 1002,#1Building,No.3000 Longdong Avenue,Pudong\r
@@ -33290,17 +33266,35 @@ D4ABCD     (base 16)          Hui Zhou Gaoshengda Technology Co.,LTD
                                Hui Zhou  Guangdong  516006\r
                                CN\r
 \r
-80-E1-BF   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-80E1BF     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
+A0-CA-A5   (hex)               INTELLIGENCE TECHNOLOGY OF CEC CO., LTD\r
+A0CAA5     (base 16)           INTELLIGENCE TECHNOLOGY OF CEC CO., LTD\r
+                               Tower A, NO.2 Lutuan Road, The sountern Of Future Science and Tech Zone, Changping District\r
+                               Beijing  Beijing  102209\r
                                CN\r
 \r
-48-2C-D0   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-482CD0     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
+58-FD-B1   (hex)               LG Electronics\r
+58FDB1     (base 16)           LG Electronics\r
+                               222 LG-ro, JINWI-MYEON\r
+                               Pyeongtaek-si  Gyeonggi-do  451-713\r
+                               KR\r
+\r
+E8-85-4B   (hex)               Apple, Inc.\r
+E8854B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E0-2B-96   (hex)               Apple, Inc.\r
+E02B96     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+28-EC-95   (hex)               Apple, Inc.\r
+28EC95     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
 00-19-32   (hex)               Gude Systems GmbH\r
 001932     (base 16)           Gude Systems GmbH\r
@@ -33308,11 +33302,65 @@ D4ABCD     (base 16)          Hui Zhou Gaoshengda Technology Co.,LTD
                                Cologne  NRW  51149\r
                                DE\r
 \r
-A0-CA-A5   (hex)               INTELLIGENCE TECHNOLOGY OF CEC CO., LTD\r
-A0CAA5     (base 16)           INTELLIGENCE TECHNOLOGY OF CEC CO., LTD\r
-                               Tower A, NO.2 Lutuan Road, The sountern Of Future Science and Tech Zone, Changping District\r
-                               Beijing  Beijing  102209\r
-                               CN\r
+D0-AB-D5   (hex)               Intel Corporate\r
+D0ABD5     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+68-17-29   (hex)               Intel Corporate\r
+681729     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+B8-08-CF   (hex)               Intel Corporate\r
+B808CF     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+DC-71-96   (hex)               Intel Corporate\r
+DC7196     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+50-E0-85   (hex)               Intel Corporate\r
+50E085     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+1C-1B-B5   (hex)               Intel Corporate\r
+1C1BB5     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+98-3B-8F   (hex)               Intel Corporate\r
+983B8F     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+D0-C6-37   (hex)               Intel Corporate\r
+D0C637     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+04-EA-56   (hex)               Intel Corporate\r
+04EA56     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+D4-3B-04   (hex)               Intel Corporate\r
+D43B04     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
 \r
 5C-5F-67   (hex)               Intel Corporate\r
 5C5F67     (base 16)           Intel Corporate\r
@@ -33338,8 +33386,20 @@ DC8B28     (base 16)           Intel Corporate
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-1C-1B-B5   (hex)               Intel Corporate\r
-1C1BB5     (base 16)           Intel Corporate\r
+D8-3B-BF   (hex)               Intel Corporate\r
+D83BBF     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+14-F6-D8   (hex)               Intel Corporate\r
+14F6D8     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+E0-D4-E8   (hex)               Intel Corporate\r
+E0D4E8     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
                                Kulim  Kedah  09000\r
                                MY\r
@@ -33356,36 +33416,24 @@ E470B8     (base 16)          Intel Corporate
                                Kulim  Kedah  09000\r
                                MY\r
 \r
+94-E6-F7   (hex)               Intel Corporate\r
+94E6F7     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+4C-1D-96   (hex)               Intel Corporate\r
+4C1D96     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
 E0-0E-E4   (hex)               DWnet Technologies(Suzhou) Corporation\r
 E00EE4     (base 16)           DWnet Technologies(Suzhou) Corporation\r
                                No.8,Tangzhuang Road, Suzhou Industrial Park, Jiangsu, China\r
                                Suzhou    21500\r
                                CN\r
 \r
-E8-85-4B   (hex)               Apple, Inc.\r
-E8854B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-28-EC-95   (hex)               Apple, Inc.\r
-28EC95     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-58-FD-B1   (hex)               LG Electronics\r
-58FDB1     (base 16)           LG Electronics\r
-                               222 LG-ro, JINWI-MYEON\r
-                               Pyeongtaek-si  Gyeonggi-do  451-713\r
-                               KR\r
-\r
-E0-2B-96   (hex)               Apple, Inc.\r
-E02B96     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 A8-46-9D   (hex)               Cisco Meraki\r
 A8469D     (base 16)           Cisco Meraki\r
                                500 Terry A. Francois Blvd\r
@@ -33398,6 +33446,12 @@ A8469D     (base 16)           Cisco Meraki
                                San Francisco    94158\r
                                US\r
 \r
+70-3A-A6   (hex)               New H3C Technologies Co., Ltd\r
+703AA6     (base 16)           New H3C Technologies Co., Ltd\r
+                               466 Changhe Road, Binjiang District\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
+\r
 8C-CE-FD   (hex)               Shenzhen zhouhai technology co.,LTD\r
 8CCEFD     (base 16)           Shenzhen zhouhai technology co.,LTD\r
                                401-403,415-416, Area A, Block B, West Silicon Valley, 5010 Baoan Avenue, Baoan District, Shenzhen, China\r
@@ -33410,68 +33464,14 @@ A8469D     (base 16)          Cisco Meraki
                                SHEN ZHEN  GUANG DONG  518000\r
                                CN\r
 \r
-D0-AB-D5   (hex)               Intel Corporate\r
-D0ABD5     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-68-17-29   (hex)               Intel Corporate\r
-681729     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-B8-08-CF   (hex)               Intel Corporate\r
-B808CF     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-DC-71-96   (hex)               Intel Corporate\r
-DC7196     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-50-E0-85   (hex)               Intel Corporate\r
-50E085     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
 94-08-C7   (hex)               Huawei Device Co., Ltd.\r
 9408C7     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-C8-CA-63   (hex)               Huawei Device Co., Ltd.\r
-C8CA63     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-98-3B-8F   (hex)               Intel Corporate\r
-983B8F     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-D0-C6-37   (hex)               Intel Corporate\r
-D0C637     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-04-EA-56   (hex)               Intel Corporate\r
-04EA56     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-D4-3B-04   (hex)               Intel Corporate\r
-D43B04     (base 16)           Intel Corporate\r
+04-6C-59   (hex)               Intel Corporate\r
+046C59     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
                                Kulim  Kedah  09000\r
                                MY\r
@@ -33482,54 +33482,6 @@ D43B04     (base 16)           Intel Corporate
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-D8-3B-BF   (hex)               Intel Corporate\r
-D83BBF     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-14-F6-D8   (hex)               Intel Corporate\r
-14F6D8     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-E0-D4-E8   (hex)               Intel Corporate\r
-E0D4E8     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-94-E6-F7   (hex)               Intel Corporate\r
-94E6F7     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-4C-1D-96   (hex)               Intel Corporate\r
-4C1D96     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-70-3A-A6   (hex)               New H3C Technologies Co., Ltd\r
-703AA6     (base 16)           New H3C Technologies Co., Ltd\r
-                               466 Changhe Road, Binjiang District\r
-                               Hangzhou  Zhejiang  310052\r
-                               CN\r
-\r
-94-37-F7   (hex)               Huawei Device Co., Ltd.\r
-9437F7     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-04-6C-59   (hex)               Intel Corporate\r
-046C59     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
 90-3F-EA   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 903FEA     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
@@ -33548,11 +33500,17 @@ CCD73C     (base 16)          HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
-D4-40-D0   (hex)               OCOSMOS Co., LTD\r
-D440D0     (base 16)           OCOSMOS Co., LTD\r
-                               (Tamnip-Dong) #1, 263-1 Techno 2-Ro Yuseong-Gu\r
-                               Daejeon  Daejeon  34026\r
-                               KR\r
+C8-CA-63   (hex)               Huawei Device Co., Ltd.\r
+C8CA63     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+94-37-F7   (hex)               Huawei Device Co., Ltd.\r
+9437F7     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
 \r
 94-E7-0B   (hex)               Intel Corporate\r
 94E70B     (base 16)           Intel Corporate\r
@@ -33566,12 +33524,6 @@ D440D0     (base 16)           OCOSMOS Co., LTD
                                Torino  TO  I-10154\r
                                IT\r
 \r
-DC-D9-AE   (hex)               Nokia Shanghai Bell Co., Ltd.\r
-DCD9AE     (base 16)           Nokia Shanghai Bell Co., Ltd.\r
-                               No.388 Ning Qiao Road,Jin Qiao Pudong Shanghai\r
-                               Shanghai     201206\r
-                               CN\r
-\r
 98-B8-BC   (hex)               Samsung Electronics Co.,Ltd\r
 98B8BC     (base 16)           Samsung Electronics Co.,Ltd\r
                                #94-1, Imsoo-Dong\r
@@ -33602,23 +33554,29 @@ BCA993     (base 16)          Cambium Networks Limited
                                Ashburton  Devon  TQ13 7UP\r
                                GB\r
 \r
+D4-40-D0   (hex)               OCOSMOS Co., LTD\r
+D440D0     (base 16)           OCOSMOS Co., LTD\r
+                               (Tamnip-Dong) #1, 263-1 Techno 2-Ro Yuseong-Gu\r
+                               Daejeon  Daejeon  34026\r
+                               KR\r
+\r
 10-74-6F   (hex)               MOTOROLA SOLUTIONS MALAYSIA SDN. BHD.\r
 10746F     (base 16)           MOTOROLA SOLUTIONS MALAYSIA SDN. BHD.\r
                                INNOPLEX, NO. 2A, MEDAN BAYAN LEPAS, BAYAN LEPAS TECHNOPLEX\r
                                BAYAN LEPAS  PENANG  11900\r
                                MY\r
 \r
-00-92-7D   (hex)               Ficosa Internationa(Taicang) C0.,Ltd.\r
-00927D     (base 16)           Ficosa Internationa(Taicang) C0.,Ltd.\r
-                               No.518, Middle Suzhou Rd., Taicang Economy Developing Area,  Taicang,\r
-                               Suzhou  Jiangsu  215400\r
+DC-D9-AE   (hex)               Nokia Shanghai Bell Co., Ltd.\r
+DCD9AE     (base 16)           Nokia Shanghai Bell Co., Ltd.\r
+                               No.388 Ning Qiao Road,Jin Qiao Pudong Shanghai\r
+                               Shanghai     201206\r
                                CN\r
 \r
-44-16-22   (hex)               Microsoft Corporation\r
-441622     (base 16)           Microsoft Corporation\r
-                               One Microsoft Way\r
-                               REDMOND  WA  98052\r
-                               US\r
+1C-08-C1   (hex)               LG Innotek\r
+1C08C1     (base 16)           LG Innotek\r
+                               978-1 Jangduk dong, Gwangsangu\r
+                               Gwangju  Gwangju  506-731\r
+                               KR\r
 \r
 44-E6-B0   (hex)               China Mobile IOT Company Limited\r
 44E6B0     (base 16)           China Mobile IOT Company Limited\r
@@ -33650,11 +33608,23 @@ BCA993     (base 16)          Cambium Networks Limited
                                San Jose  CA  94568\r
                                US\r
 \r
-1C-08-C1   (hex)               LG Innotek\r
-1C08C1     (base 16)           LG Innotek\r
-                               978-1 Jangduk dong, Gwangsangu\r
-                               Gwangju  Gwangju  506-731\r
-                               KR\r
+00-92-7D   (hex)               Ficosa Internationa(Taicang) C0.,Ltd.\r
+00927D     (base 16)           Ficosa Internationa(Taicang) C0.,Ltd.\r
+                               No.518, Middle Suzhou Rd., Taicang Economy Developing Area,  Taicang,\r
+                               Suzhou  Jiangsu  215400\r
+                               CN\r
+\r
+44-16-22   (hex)               Microsoft Corporation\r
+441622     (base 16)           Microsoft Corporation\r
+                               One Microsoft Way\r
+                               REDMOND  WA  98052\r
+                               US\r
+\r
+FC-73-FB   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+FC73FB     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
 \r
 34-87-3D   (hex)               Quectel Wireless Solutions Co., Ltd.\r
 34873D     (base 16)           Quectel Wireless Solutions Co., Ltd.\r
@@ -33668,6 +33638,12 @@ BCA993     (base 16)           Cambium Networks Limited
                                DH Weert    6003\r
                                NL\r
 \r
+04-45-62   (hex)               ANDRA Sp. z o. o.\r
+044562     (base 16)           ANDRA Sp. z o. o.\r
+                               Pryzmaty 6/8\r
+                               Warszawa    02-226\r
+                               PL\r
+\r
 58-B6-23   (hex)               Beijing Xiaomi Mobile Software Co., Ltd\r
 58B623     (base 16)           Beijing Xiaomi Mobile Software Co., Ltd\r
                                Xiaomi Campus, No. 33 Xi erqi Middle Road, Haidian District\r
@@ -33680,18 +33656,12 @@ A022DE     (base 16)          vivo Mobile Communication Co., Ltd.
                                Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
                                CN\r
 \r
-FC-73-FB   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-FC73FB     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
+74-F7-F6   (hex)               Shanghai Sunmi Technology Co.,Ltd.\r
+74F7F6     (base 16)           Shanghai Sunmi Technology Co.,Ltd.\r
+                               Room 505, KIC Plaza, No.388 Song Hu Road, Yang Pu District, Shanghai, China\r
+                               Shanghai  Yang Pu District  200433\r
                                CN\r
 \r
-04-45-62   (hex)               ANDRA Sp. z o. o.\r
-044562     (base 16)           ANDRA Sp. z o. o.\r
-                               Pryzmaty 6/8\r
-                               Warszawa    02-226\r
-                               PL\r
-\r
 00-26-9E   (hex)               Quanta Computer Inc.\r
 00269E     (base 16)           Quanta Computer Inc.\r
                                NO. 211, WEN HWA 2RD., KUEI SHAN HSIANG, TAIPEI, SHIEN\r
@@ -33728,24 +33698,18 @@ C80AA9     (base 16)          Quanta Computer Inc.
                                Tao Yuan    33377\r
                                TW\r
 \r
-C0-8F-20   (hex)               Shenzhen Skyworth  Digital  Technology  CO., Ltd\r
-C08F20     (base 16)           Shenzhen Skyworth  Digital  Technology  CO., Ltd\r
-                               4F,Block A, Skyworth?Building,\r
-                               Shenzhen  Guangdong  518057\r
-                               CN\r
-\r
-74-F7-F6   (hex)               Shanghai Sunmi Technology Co.,Ltd.\r
-74F7F6     (base 16)           Shanghai Sunmi Technology Co.,Ltd.\r
-                               Room 505, KIC Plaza, No.388 Song Hu Road, Yang Pu District, Shanghai, China\r
-                               Shanghai  Yang Pu District  200433\r
-                               CN\r
-\r
 C0-CC-42   (hex)               Sichuan Tianyi Comheart Telecom Co., Ltd.\r
 C0CC42     (base 16)           Sichuan Tianyi Comheart Telecom Co., Ltd.\r
                                No.198,First Section,Snow Mountain Avenue, Jinyuan Town, Dayi County\r
                                Chengdu  Sichuan  611330\r
                                CN\r
 \r
+C0-8F-20   (hex)               Shenzhen Skyworth  Digital  Technology  CO., Ltd\r
+C08F20     (base 16)           Shenzhen Skyworth  Digital  Technology  CO., Ltd\r
+                               4F,Block A, Skyworth?Building,\r
+                               Shenzhen  Guangdong  518057\r
+                               CN\r
+\r
 24-1A-E6   (hex)               Huawei Device Co., Ltd.\r
 241AE6     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -33758,6 +33722,12 @@ C0CC42     (base 16)           Sichuan Tianyi Comheart Telecom Co., Ltd.
                                Mountain View  CA  94043\r
                                US\r
 \r
+1C-5D-80   (hex)               Mitubishi Hitachi Power Systems Industries Co., Ltd.\r
+1C5D80     (base 16)           Mitubishi Hitachi Power Systems Industries Co., Ltd.\r
+                               Nakaku Aioimachi\r
+                               Yokohama    2310012\r
+                               JP\r
+\r
 B4-23-30   (hex)               Itron Inc\r
 B42330     (base 16)           Itron Inc\r
                                2111 N Molter Rd\r
@@ -33770,29 +33740,35 @@ B42330     (base 16)          Itron Inc
                                Osaka    554-0024\r
                                JP\r
 \r
+3C-9C-0F   (hex)               Intel Corporate\r
+3C9C0F     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+08-FB-EA   (hex)               AMPAK Technology,Inc.\r
+08FBEA     (base 16)           AMPAK Technology,Inc.\r
+                               3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
+                               Hsinchu  Hsinchu,Taiwan R.O.C.  30352\r
+                               TW\r
+\r
 A8-02-DB   (hex)               zte corporation\r
 A802DB     (base 16)           zte corporation\r
                                12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
                                shenzhen  guangdong  518057\r
                                CN\r
 \r
-1C-5D-80   (hex)               Mitubishi Hitachi Power Systems Industries Co., Ltd.\r
-1C5D80     (base 16)           Mitubishi Hitachi Power Systems Industries Co., Ltd.\r
-                               Nakaku Aioimachi\r
-                               Yokohama    2310012\r
-                               JP\r
-\r
 80-16-05   (hex)               Vodafone Italia S.p.A.\r
 801605     (base 16)           Vodafone Italia S.p.A.\r
                                Via Lorenteggio nr. 240\r
                                Milan  Italy  20147\r
                                IT\r
 \r
-3C-9C-0F   (hex)               Intel Corporate\r
-3C9C0F     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
+58-65-E6   (hex)               infomark\r
+5865E6     (base 16)           infomark\r
+                               #801, KINS TOWER, JEONGJA-DONG\r
+                               SEONGNAM  GYOUNGGI  463-847\r
+                               KR\r
 \r
 5C-44-3E   (hex)               Skullcandy\r
 5C443E     (base 16)           Skullcandy\r
@@ -33806,11 +33782,11 @@ F88200     (base 16)          CaptionCall
                                Salt Lake City  UT  84123\r
                                US\r
 \r
-08-FB-EA   (hex)               AMPAK Technology,Inc.\r
-08FBEA     (base 16)           AMPAK Technology,Inc.\r
-                               3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
-                               Hsinchu  Hsinchu,Taiwan R.O.C.  30352\r
-                               TW\r
+60-EB-5A   (hex)               Asterfusion Data Technologies Co.,Ltd\r
+60EB5A     (base 16)           Asterfusion Data Technologies Co.,Ltd\r
+                               B401, Building 2, Creative Industry Park, No.328 Xinghu Street, SIP, Suzhou\r
+                               suzhou    215123\r
+                               CN\r
 \r
 34-0F-66   (hex)               Web Sensing LLC\r
 340F66     (base 16)           Web Sensing LLC\r
@@ -33818,12 +33794,6 @@ F88200     (base 16)           CaptionCall
                                Hanover  NH  03755\r
                                US\r
 \r
-58-65-E6   (hex)               infomark\r
-5865E6     (base 16)           infomark\r
-                               #801, KINS TOWER, JEONGJA-DONG\r
-                               SEONGNAM  GYOUNGGI  463-847\r
-                               KR\r
-\r
 00-50-F1   (hex)               Maxlinear, Inc\r
 0050F1     (base 16)           Maxlinear, Inc\r
                                94 Em-Hamoshavot Way.\r
@@ -33836,18 +33806,30 @@ F4E578     (base 16)          LLC Proizvodstvennaya Kompania TransService
                                Moscow  Moscow  117545\r
                                RU\r
 \r
+90-12-A1   (hex)               We Corporation Inc.\r
+9012A1     (base 16)           We Corporation Inc.\r
+                               201, 33, Deokcheon-ro, Manan-gu\r
+                               Anyang-si  Gyeonggi-do  14088\r
+                               KR\r
+\r
+64-B6-23   (hex)               CCS Care Communication Solutions GmbH\r
+64B623     (base 16)           CCS Care Communication Solutions GmbH\r
+                               Computerstrasse 6\r
+                               Vienna    1100\r
+                               AT\r
+\r
+B8-80-35   (hex)               Shenzhen Qihu Intelligent Technology Company Limited\r
+B88035     (base 16)           Shenzhen Qihu Intelligent Technology Company Limited\r
+                               Room 201, Block A, No.1, Qianwan Road 1,Qianhai Shenzhen HongKong Modern Service Industry Cooperation Zone\r
+                               Shenzhen  Guangdong  518057\r
+                               CN\r
+\r
 08-54-BB   (hex)               SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD\r
 0854BB     (base 16)           SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD\r
                                Unit East Block22-24/F,Skyworth semiconductor design  Bldg., Gaoxin Ave.4.S.,Nanshan District,Shenzhen,China\r
                                SHENZHEN  GUANGDONG  518057\r
                                CN\r
 \r
-60-EB-5A   (hex)               Asterfusion Data Technologies Co.,Ltd\r
-60EB5A     (base 16)           Asterfusion Data Technologies Co.,Ltd\r
-                               B401, Building 2, Creative Industry Park, No.328 Xinghu Street, SIP, Suzhou\r
-                               suzhou    215123\r
-                               CN\r
-\r
 E4-D3-73   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 E4D373     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
@@ -33866,12 +33848,6 @@ C0BC9A     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD
                                KYOTO  KYOTO  601-8501\r
                                JP\r
 \r
-E8-1B-69   (hex)               Sercomm Corporation.\r
-E81B69     (base 16)           Sercomm Corporation.\r
-                               3F,No.81,Yu-Yih Rd.,Chu-Nan Chen\r
-                               Miao-Lih Hsuan    115\r
-                               TW\r
-\r
 68-52-D6   (hex)               UGame Technology Co.,Ltd\r
 6852D6     (base 16)           UGame Technology Co.,Ltd\r
                                3F, Bld.7, F518 Idea Land, No. 1065 Baoyuan Road, Xixiang Street, Baoan District\r
@@ -33884,42 +33860,30 @@ FC1999     (base 16)          Xiaomi Communications Co Ltd
                                NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
                                CN\r
 \r
-90-12-A1   (hex)               We Corporation Inc.\r
-9012A1     (base 16)           We Corporation Inc.\r
-                               201, 33, Deokcheon-ro, Manan-gu\r
-                               Anyang-si  Gyeonggi-do  14088\r
-                               KR\r
-\r
-B8-80-35   (hex)               Shenzhen Qihu Intelligent Technology Company Limited\r
-B88035     (base 16)           Shenzhen Qihu Intelligent Technology Company Limited\r
-                               Room 201, Block A, No.1, Qianwan Road 1,Qianhai Shenzhen HongKong Modern Service Industry Cooperation Zone\r
-                               Shenzhen  Guangdong  518057\r
-                               CN\r
-\r
-00-17-11   (hex)               Cytiva Sweden AB\r
-001711     (base 16)           Cytiva Sweden AB\r
-                               Björkgatan 30\r
-                               Uppsala  SE  75184\r
-                               SE\r
-\r
 B4-C2-6A   (hex)               Garmin International\r
 B4C26A     (base 16)           Garmin International\r
                                1200 E. 151st St\r
                                Olathe  KS  66062\r
                                US\r
 \r
-64-B6-23   (hex)               CCS Care Communication Solutions GmbH\r
-64B623     (base 16)           CCS Care Communication Solutions GmbH\r
-                               Computerstrasse 6\r
-                               Vienna    1100\r
-                               AT\r
-\r
 E8-9F-80   (hex)               Belkin International Inc.\r
 E89F80     (base 16)           Belkin International Inc.\r
                                12045 East Waterfront Drive\r
                                Playa Vista    90094\r
                                US\r
 \r
+E8-1B-69   (hex)               Sercomm Corporation.\r
+E81B69     (base 16)           Sercomm Corporation.\r
+                               3F,No.81,Yu-Yih Rd.,Chu-Nan Chen\r
+                               Miao-Lih Hsuan    115\r
+                               TW\r
+\r
+00-17-11   (hex)               Cytiva Sweden AB\r
+001711     (base 16)           Cytiva Sweden AB\r
+                               Björkgatan 30\r
+                               Uppsala  SE  75184\r
+                               SE\r
+\r
 BC-5C-4C   (hex)               ELECOM CO.,LTD.\r
 BC5C4C     (base 16)           ELECOM CO.,LTD.\r
                                2F Kudan First Place Bldg. 4-1-28\r
@@ -33932,6 +33896,12 @@ BC5C4C     (base 16)           ELECOM CO.,LTD.
                                Chiyoda-ku  Kudan Kita  102-0073\r
                                JP\r
 \r
+A4-51-29   (hex)               XAG\r
+A45129     (base 16)           XAG\r
+                               Block C, 115 Gaopu Road\r
+                               Guangzhou    510663\r
+                               CN\r
+\r
 6C-E5-F7   (hex)               New H3C Technologies Co., Ltd\r
 6CE5F7     (base 16)           New H3C Technologies Co., Ltd\r
                                466 Changhe Road, Binjiang District\r
@@ -33956,12 +33926,6 @@ B8DD71     (base 16)           zte corporation
                                kouka  shiga  528-0061\r
                                JP\r
 \r
-A4-51-29   (hex)               XAG\r
-A45129     (base 16)           XAG\r
-                               Block C, 115 Gaopu Road\r
-                               Guangzhou    510663\r
-                               CN\r
-\r
 5C-02-72   (hex)               Silicon Laboratories\r
 5C0272     (base 16)           Silicon Laboratories\r
                                400 West Cesar Chavez Street\r
@@ -34004,12 +33968,6 @@ B436D1     (base 16)           Renesas Electronics (Penang) Sdn. Bhd.
                                Dongguan    523808\r
                                CN\r
 \r
-BC-76-C5   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-BC76C5     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
 DC-77-4C   (hex)               Cisco Systems, Inc\r
 DC774C     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
@@ -34022,23 +33980,11 @@ DC774C     (base 16)          Cisco Systems, Inc
                                Gunpo-si  Gyeonggi-do  15880\r
                                KR\r
 \r
-FC-44-82   (hex)               Intel Corporate\r
-FC4482     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-D8-F8-83   (hex)               Intel Corporate\r
-D8F883     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-B8-5F-98   (hex)               Amazon Technologies Inc.\r
-B85F98     (base 16)           Amazon Technologies Inc.\r
-                               P.O Box 8102\r
-                               Reno  NV  89507\r
-                               US\r
+BC-76-C5   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+BC76C5     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
 \r
 A0-85-FC   (hex)               Microsoft Corporation\r
 A085FC     (base 16)           Microsoft Corporation\r
@@ -34052,6 +33998,12 @@ C49886     (base 16)           Qorvo International Pte. Ltd.
                                #04-01    486058\r
                                SG\r
 \r
+B8-5F-98   (hex)               Amazon Technologies Inc.\r
+B85F98     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102\r
+                               Reno  NV  89507\r
+                               US\r
+\r
 94-FF-61   (hex)               China Mobile Group Device Co.,Ltd.\r
 94FF61     (base 16)           China Mobile Group Device Co.,Ltd.\r
                                32 Xuanwumen West Street,Xicheng District\r
@@ -34094,6 +34046,12 @@ C49886     (base 16)           Qorvo International Pte. Ltd.
                                Beijing    100095\r
                                CN\r
 \r
+F8-10-93   (hex)               Apple, Inc.\r
+F81093     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
 FC-66-CF   (hex)               Apple, Inc.\r
 FC66CF     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
@@ -34112,12 +34070,6 @@ AC1D06     (base 16)           Apple, Inc.
                                Cupertino  CA  95014\r
                                US\r
 \r
-F8-10-93   (hex)               Apple, Inc.\r
-F81093     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 5C-D8-9E   (hex)               Huawei Device Co., Ltd.\r
 5CD89E     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -34154,12 +34106,6 @@ DCE994     (base 16)           CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.
                                Wuhan  Hubei  430074\r
                                CN\r
 \r
-8C-CE-4E   (hex)               Espressif Inc.\r
-8CCE4E     (base 16)           Espressif Inc.\r
-                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
-                               Shanghai  Shanghai  201203\r
-                               CN\r
-\r
 B8-2D-28   (hex)               AMPAK Technology,Inc.\r
 B82D28     (base 16)           AMPAK Technology,Inc.\r
                                3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
@@ -34172,40 +34118,22 @@ C44137     (base 16)          Quectel Wireless Solutions Co., Ltd.
                                Shanghai    200233\r
                                CN\r
 \r
-EC-C8-9C   (hex)               Hangzhou Hikvision Digital Technology Co.,Ltd.\r
-ECC89C     (base 16)           Hangzhou Hikvision Digital Technology Co.,Ltd.\r
-                               No.555 Qianmo Road\r
-                               Hangzhou  Zhejiang  310052\r
-                               CN\r
-\r
-F0-13-C1   (hex)               Hannto Technology Co., Ltd\r
-F013C1     (base 16)           Hannto Technology Co., Ltd\r
-                               Rm 704,No.1,Lane 88,Shengrong Road, Free Trade Pilot Area,\r
-                               Shanghai  Shanghai  200120\r
+8C-CE-4E   (hex)               Espressif Inc.\r
+8CCE4E     (base 16)           Espressif Inc.\r
+                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+                               Shanghai  Shanghai  201203\r
                                CN\r
 \r
-F8-0D-AC   (hex)               HP Inc.\r
-F80DAC     (base 16)           HP Inc.\r
-                               10300 Energy Dr\r
-                               Spring  TX  77389\r
-                               US\r
-\r
 88-DA-1A   (hex)               Redpine Signals, Inc.\r
 88DA1A     (base 16)           Redpine Signals, Inc.\r
                                Plot 87, Sagar Society \r
                                Hyderabad  AP  500034\r
                                IN\r
 \r
-40-B5-C1   (hex)               Cisco Systems, Inc\r
-40B5C1     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
-\r
-E4-47-91   (hex)               Iris ID Systems, Inc.\r
-E44791     (base 16)           Iris ID Systems, Inc.\r
-                               8 Clarke Drive\r
-                               Cranbury    08512\r
+F8-0D-AC   (hex)               HP Inc.\r
+F80DAC     (base 16)           HP Inc.\r
+                               10300 Energy Dr\r
+                               Spring  TX  77389\r
                                US\r
 \r
 00-60-65   (hex)               B&R Industrial Automation GmbH \r
@@ -34214,58 +34142,52 @@ E44791     (base 16)          Iris ID Systems, Inc.
                                Eggelsberg    5142\r
                                AT\r
 \r
-84-9D-C2   (hex)               Shanghai MXCHIP Information Technology Co., Ltd.\r
-849DC2     (base 16)           Shanghai MXCHIP Information Technology Co., Ltd.\r
-                               9th Floor, No. 5 Building, 2145 Jinshajiang Rd., Putuo District\r
-                               Shanghai    200333\r
-                               CN\r
-\r
-18-45-16   (hex)               Texas Instruments\r
-184516     (base 16)           Texas Instruments\r
-                               12500 TI Blvd\r
-                               Dallas  TX  75243\r
+E4-47-91   (hex)               Iris ID Systems, Inc.\r
+E44791     (base 16)           Iris ID Systems, Inc.\r
+                               8 Clarke Drive\r
+                               Cranbury    08512\r
                                US\r
 \r
+F0-13-C1   (hex)               Hannto Technology Co., Ltd\r
+F013C1     (base 16)           Hannto Technology Co., Ltd\r
+                               Rm 704,No.1,Lane 88,Shengrong Road, Free Trade Pilot Area,\r
+                               Shanghai  Shanghai  200120\r
+                               CN\r
+\r
 D0-2E-AB   (hex)               Texas Instruments\r
 D02EAB     (base 16)           Texas Instruments\r
                                12500 TI Blvd\r
                                Dallas  TX  75243\r
                                US\r
 \r
+EC-C8-9C   (hex)               Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+ECC89C     (base 16)           Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+                               No.555 Qianmo Road\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
+\r
 84-54-DF   (hex)               Huawei Device Co., Ltd.\r
 8454DF     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-F0-F7-E7   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-F0F7E7     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
-E8-84-A5   (hex)               Intel Corporate\r
-E884A5     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-8C-55-BB   (hex)               Songwoo Information & Technology Co., Ltd\r
-8C55BB     (base 16)           Songwoo Information & Technology Co., Ltd\r
-                               24-9, Jinju-daero 404beon-gil, Jinju-si, Gyeongsangnam-do, Korea \r
-                               Jinju  Gyeongsangnam-do  52826\r
-                               KR\r
+40-B5-C1   (hex)               Cisco Systems, Inc\r
+40B5C1     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
 \r
-7C-8F-DE   (hex)               DWnet Technologies(Suzhou) Corporation\r
-7C8FDE     (base 16)           DWnet Technologies(Suzhou) Corporation\r
-                               No.8,Tangzhuang Road, Suzhou Industrial Park, Jiangsu, China\r
-                               Suzhou    21500\r
-                               CN\r
+18-45-16   (hex)               Texas Instruments\r
+184516     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
 \r
-98-F1-81   (hex)               New H3C Technologies Co., Ltd\r
-98F181     (base 16)           New H3C Technologies Co., Ltd\r
-                               466 Changhe Road, Binjiang District\r
-                               Hangzhou  Zhejiang  310052\r
+84-9D-C2   (hex)               Shanghai MXCHIP Information Technology Co., Ltd.\r
+849DC2     (base 16)           Shanghai MXCHIP Information Technology Co., Ltd.\r
+                               9th Floor, No. 5 Building, 2145 Jinshajiang Rd., Putuo District\r
+                               Shanghai    200333\r
                                CN\r
 \r
 90-80-8F   (hex)               Huawei Device Co., Ltd.\r
@@ -34274,6 +34196,12 @@ E884A5     (base 16)           Intel Corporate
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
+F0-F7-E7   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+F0F7E7     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
 40-A9-CF   (hex)               Amazon Technologies Inc.\r
 40A9CF     (base 16)           Amazon Technologies Inc.\r
                                P.O Box 8102\r
@@ -34298,23 +34226,23 @@ E8C2DD     (base 16)          Infinix mobility limited
                                HongKong  HongKong  999077\r
                                HK\r
 \r
-48-D8-90   (hex)               FN-LINK TECHNOLOGY LIMITED\r
-48D890     (base 16)           FN-LINK TECHNOLOGY LIMITED\r
-                               A Building,HuiXin industial park,No 31, YongHe road, Fuyong town, Bao'an District\r
-                               SHENZHEN  GUANGDONG  518100\r
-                               CN\r
+8C-55-BB   (hex)               Songwoo Information & Technology Co., Ltd\r
+8C55BB     (base 16)           Songwoo Information & Technology Co., Ltd\r
+                               24-9, Jinju-daero 404beon-gil, Jinju-si, Gyeongsangnam-do, Korea \r
+                               Jinju  Gyeongsangnam-do  52826\r
+                               KR\r
 \r
-78-1F-11   (hex)               RAB Lighting\r
-781F11     (base 16)           RAB Lighting\r
-                               Northvale (NJ) 141 Legrand  Ave. Northvale, NJ 07647\r
-                                Northvale  NJ  07647\r
-                               US\r
+7C-8F-DE   (hex)               DWnet Technologies(Suzhou) Corporation\r
+7C8FDE     (base 16)           DWnet Technologies(Suzhou) Corporation\r
+                               No.8,Tangzhuang Road, Suzhou Industrial Park, Jiangsu, China\r
+                               Suzhou    21500\r
+                               CN\r
 \r
-F8-B9-5A   (hex)               LG Innotek\r
-F8B95A     (base 16)           LG Innotek\r
-                               26, Hanamsandan 5beon-ro\r
-                               Gwangju  Gwangsan-gu  506-731\r
-                               KR\r
+98-F1-81   (hex)               New H3C Technologies Co., Ltd\r
+98F181     (base 16)           New H3C Technologies Co., Ltd\r
+                               466 Changhe Road, Binjiang District\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
 \r
 C4-1C-9C   (hex)               JiQiDao\r
 C41C9C     (base 16)           JiQiDao\r
@@ -34340,20 +34268,17 @@ B4FF98     (base 16)          HUAWEI TECHNOLOGIES CO.,LTD
                                Austin  TX  78701\r
                                US\r
 \r
-00-26-4E   (hex)               r2p GmbH\r
-00264E     (base 16)           r2p GmbH\r
-                               Norderhofenden 12-13\r
-                               Flensburg    24937\r
-                               DE\r
-\r
-B0-BB-E5   (hex)               Sagemcom Broadband SAS\r
-B0BBE5     (base 16)           Sagemcom Broadband SAS\r
-                               250, route de l'Empereur\r
-                               Rueil Malmaison Cedex  hauts de seine  92848\r
-                               FR\r
+48-D8-90   (hex)               FN-LINK TECHNOLOGY LIMITED\r
+48D890     (base 16)           FN-LINK TECHNOLOGY LIMITED\r
+                               A Building,HuiXin industial park,No 31, YongHe road, Fuyong town, Bao'an District\r
+                               SHENZHEN  GUANGDONG  518100\r
+                               CN\r
 \r
-90-B4-DD   (hex)               Private\r
-90B4DD     (base 16)           Private\r
+78-1F-11   (hex)               RAB Lighting\r
+781F11     (base 16)           RAB Lighting\r
+                               Northvale (NJ) 141 Legrand  Ave. Northvale, NJ 07647\r
+                                Northvale  NJ  07647\r
+                               US\r
 \r
 C4-18-E9   (hex)               Samsung Electronics Co.,Ltd\r
 C418E9     (base 16)           Samsung Electronics Co.,Ltd\r
@@ -34361,24 +34286,6 @@ C418E9     (base 16)           Samsung Electronics Co.,Ltd
                                Gumi  Gyeongbuk  730-350\r
                                KR\r
 \r
-1C-E5-7F   (hex)               Samsung Electronics Co.,Ltd\r
-1CE57F     (base 16)           Samsung Electronics Co.,Ltd\r
-                               #94-1, Imsoo-Dong\r
-                               Gumi  Gyeongbuk  730-350\r
-                               KR\r
-\r
-B0-C5-3C   (hex)               Cisco Systems, Inc\r
-B0C53C     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
-\r
-EC-CE-13   (hex)               Cisco Systems, Inc\r
-ECCE13     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
-\r
 10-71-00   (hex)               Huawei Device Co., Ltd.\r
 107100     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -34391,17 +34298,38 @@ ECCE13     (base 16)          Cisco Systems, Inc
                                Rueil Malmaison Cedex  hauts de seine  92848\r
                                FR\r
 \r
-A4-68-BC   (hex)               Oakley Inc.\r
-A468BC     (base 16)           Oakley Inc.\r
-                               1 Icon\r
-                               Foothill Ranch  CA  92610\r
-                               US\r
+F8-B9-5A   (hex)               LG Innotek\r
+F8B95A     (base 16)           LG Innotek\r
+                               26, Hanamsandan 5beon-ro\r
+                               Gwangju  Gwangsan-gu  506-731\r
+                               KR\r
 \r
-60-7E-A4   (hex)               Shanghai Imilab Technology Co.Ltd\r
-607EA4     (base 16)           Shanghai Imilab Technology Co.Ltd\r
-                               29F, A Tower, New Caohejing International Business Center, Guiping Road, Xuhui District\r
-                               Shanghai  Shanghai  200000\r
-                               CN\r
+00-26-4E   (hex)               r2p GmbH\r
+00264E     (base 16)           r2p GmbH\r
+                               Norderhofenden 12-13\r
+                               Flensburg    24937\r
+                               DE\r
+\r
+B0-BB-E5   (hex)               Sagemcom Broadband SAS\r
+B0BBE5     (base 16)           Sagemcom Broadband SAS\r
+                               250, route de l'Empereur\r
+                               Rueil Malmaison Cedex  hauts de seine  92848\r
+                               FR\r
+\r
+90-B4-DD   (hex)               Private\r
+90B4DD     (base 16)           Private\r
+\r
+1C-9F-4E   (hex)               COOSEA GROUP (HK) COMPANY LIMITED\r
+1C9F4E     (base 16)           COOSEA GROUP (HK) COMPANY LIMITED\r
+                               UNIT 5-6 16/F MULTIFIELD PLAZA 3-7A PRAT AVENUE TSIMSHATSUI\r
+                               KL    999077\r
+                               HK\r
+\r
+BC-5B-D5   (hex)               ARRIS Group, Inc.\r
+BC5BD5     (base 16)           ARRIS Group, Inc.\r
+                               6450 Sequence Drive\r
+                               San Diego  CA  92121\r
+                               US\r
 \r
 24-11-45   (hex)               Xiaomi Communications Co Ltd\r
 241145     (base 16)           Xiaomi Communications Co Ltd\r
@@ -34415,22 +34343,22 @@ A468BC     (base 16)          Oakley Inc.
                                Hong Kong  KOWLOON  999077\r
                                HK\r
 \r
-1C-9F-4E   (hex)               COOSEA GROUP (HK) COMPANY LIMITED\r
-1C9F4E     (base 16)           COOSEA GROUP (HK) COMPANY LIMITED\r
-                               UNIT 5-6 16/F MULTIFIELD PLAZA 3-7A PRAT AVENUE TSIMSHATSUI\r
-                               KL    999077\r
-                               HK\r
+1C-E5-7F   (hex)               Samsung Electronics Co.,Ltd\r
+1CE57F     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
 \r
-14-AB-02   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-14AB02     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
+B0-C5-3C   (hex)               Cisco Systems, Inc\r
+B0C53C     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
 \r
-BC-5B-D5   (hex)               ARRIS Group, Inc.\r
-BC5BD5     (base 16)           ARRIS Group, Inc.\r
-                               6450 Sequence Drive\r
-                               San Diego  CA  92121\r
+EC-CE-13   (hex)               Cisco Systems, Inc\r
+ECCE13     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
                                US\r
 \r
 08-55-31   (hex)               Routerboard.com\r
@@ -34439,28 +34367,58 @@ BC5BD5     (base 16)          ARRIS Group, Inc.
                                Riga  Riga  LV1009\r
                                LV\r
 \r
+A4-68-BC   (hex)               Oakley Inc.\r
+A468BC     (base 16)           Oakley Inc.\r
+                               1 Icon\r
+                               Foothill Ranch  CA  92610\r
+                               US\r
+\r
 3C-61-05   (hex)               Espressif Inc.\r
 3C6105     (base 16)           Espressif Inc.\r
                                Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
                                Shanghai  Shanghai  201203\r
                                CN\r
 \r
+60-7E-A4   (hex)               Shanghai Imilab Technology Co.Ltd\r
+607EA4     (base 16)           Shanghai Imilab Technology Co.Ltd\r
+                               29F, A Tower, New Caohejing International Business Center, Guiping Road, Xuhui District\r
+                               Shanghai  Shanghai  200000\r
+                               CN\r
+\r
 24-06-AA   (hex)               GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
 2406AA     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
                                NO.18 HAIBIN ROAD,\r
                                DONG GUAN  GUANG DONG  523860\r
                                CN\r
 \r
+08-65-F0   (hex)               JM Zengge Co., Ltd\r
+0865F0     (base 16)           JM Zengge Co., Ltd\r
+                               5/F Torch building, Jinou Road#288, Jianghai District\r
+                               Jiangmen  Guangdong  529080\r
+                               CN\r
+\r
+14-AB-02   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+14AB02     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
 84-30-95   (hex)               Hon Hai Precision IND.CO.,LTD\r
 843095     (base 16)           Hon Hai Precision IND.CO.,LTD\r
                                No. 66 Chung Shan Road TU-Cheng Industrial district TAIPEI TAIWAN \r
                                TAIPEI  TAIWAN  33859\r
                                CN\r
 \r
-08-65-F0   (hex)               JM Zengge Co., Ltd\r
-0865F0     (base 16)           JM Zengge Co., Ltd\r
-                               5/F Torch building, Jinou Road#288, Jianghai District\r
-                               Jiangmen  Guangdong  529080\r
+00-8A-55   (hex)               Huawei Device Co., Ltd.\r
+008A55     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+64-A2-8A   (hex)               Huawei Device Co., Ltd.\r
+64A28A     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
                                CN\r
 \r
 AC-47-1B   (hex)               Huawei Device Co., Ltd.\r
@@ -34469,6 +34427,12 @@ AC471B     (base 16)           Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
+4C-20-B8   (hex)               Apple, Inc.\r
+4C20B8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
 00-31-92   (hex)               TP-Link Corporation Limited\r
 003192     (base 16)           TP-Link Corporation Limited\r
                                Room 901,9/F.New East Ocean Centre, 9 Science Museum Road\r
@@ -34499,42 +34463,6 @@ A4CCB9     (base 16)           Realme Chongqing Mobile Telecommunications Corp.,Ltd.
                                shenzhen  guangdong  518057\r
                                CN\r
 \r
-00-8A-55   (hex)               Huawei Device Co., Ltd.\r
-008A55     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-64-A2-8A   (hex)               Huawei Device Co., Ltd.\r
-64A28A     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-B4-56-E3   (hex)               Apple, Inc.\r
-B456E3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-4C-20-B8   (hex)               Apple, Inc.\r
-4C20B8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-14-88-E6   (hex)               Apple, Inc.\r
-1488E6     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-EC-0D-E4   (hex)               Amazon Technologies Inc.\r
-EC0DE4     (base 16)           Amazon Technologies Inc.\r
-                               P.O Box 8102\r
-                               Reno  NV  89507\r
-                               US\r
-\r
 BC-0F-9A   (hex)               D-Link International\r
 BC0F9A     (base 16)           D-Link International\r
                                1 Internal Business Park, #03-12,The Synergy\r
@@ -34559,6 +34487,18 @@ B04530     (base 16)           BSkyB Ltd
                                Fort Lauderdale  FL  33301\r
                                US\r
 \r
+B4-56-E3   (hex)               Apple, Inc.\r
+B456E3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+14-88-E6   (hex)               Apple, Inc.\r
+1488E6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
 24-64-9F   (hex)               Huawei Device Co., Ltd.\r
 24649F     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -34589,24 +34529,6 @@ E81E92     (base 16)           Huawei Device Co., Ltd.
                                Hong Kong    999077\r
                                CN\r
 \r
-8C-AE-49   (hex)               IEEE Registration Authority\r
-8CAE49     (base 16)           IEEE Registration Authority\r
-                               445 Hoes Lane\r
-                               Piscataway  NJ  08554\r
-                               US\r
-\r
-74-95-EC   (hex)               ALPSALPINE CO,.LTD\r
-7495EC     (base 16)           ALPSALPINE CO,.LTD\r
-                               6-1\r
-                               Kakuda  Miyagi-Pref  981-1595\r
-                               JP\r
-\r
-00-21-4F   (hex)               ALPSALPINE CO,.LTD\r
-00214F     (base 16)           ALPSALPINE CO,.LTD\r
-                               1-2-1, Okinouchi,\r
-                               Soma-city,  Fukushima-pref.,  976-8501\r
-                               JP\r
-\r
 04-98-F3   (hex)               ALPSALPINE CO,.LTD\r
 0498F3     (base 16)           ALPSALPINE CO,.LTD\r
                                6-1 NISHIDA\r
@@ -34649,6 +34571,300 @@ BC428C     (base 16)          ALPSALPINE CO,.LTD
                                Kakuda-City  Miyagi-Pref  981-1595\r
                                JP\r
 \r
+20-FF-36   (hex)               IFLYTEK CO.,LTD.\r
+20FF36     (base 16)           IFLYTEK CO.,LTD.\r
+                               National Intelligent Speech High-tech Industrialization Base, No. 666, Wangjiang Road West,\r
+                               Hefei  An hui  230088\r
+                               CN\r
+\r
+74-95-EC   (hex)               ALPSALPINE CO,.LTD\r
+7495EC     (base 16)           ALPSALPINE CO,.LTD\r
+                               6-1\r
+                               Kakuda  Miyagi-Pref  981-1595\r
+                               JP\r
+\r
+8C-AE-49   (hex)               IEEE Registration Authority\r
+8CAE49     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
+\r
+00-21-4F   (hex)               ALPSALPINE CO,.LTD\r
+00214F     (base 16)           ALPSALPINE CO,.LTD\r
+                               1-2-1, Okinouchi,\r
+                               Soma-city,  Fukushima-pref.,  976-8501\r
+                               JP\r
+\r
+88-23-8C   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+88238C     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+B0-EE-7B   (hex)               Roku, Inc\r
+B0EE7B     (base 16)           Roku, Inc\r
+                               1155 Coleman Ave\r
+                               San Jose  CA  95110\r
+                               US\r
+\r
+D8-31-34   (hex)               Roku, Inc\r
+D83134     (base 16)           Roku, Inc\r
+                               1155 Coleman Ave\r
+                               San Jose  CA  95110\r
+                               US\r
+\r
+64-05-E4   (hex)               ALPSALPINE CO .,LTD\r
+6405E4     (base 16)           ALPSALPINE CO .,LTD\r
+                               nishida 6-1\r
+                               kakuda-City  Miyagi-Pref  981-1595\r
+                               JP\r
+\r
+98-ED-7E   (hex)               eero inc.\r
+98ED7E     (base 16)           eero inc.\r
+                               660 3rd Street\r
+                               San Francisco  CA  94107\r
+                               US\r
+\r
+10-59-32   (hex)               Roku, Inc\r
+105932     (base 16)           Roku, Inc\r
+                               1155 Coleman Ave\r
+                               San Jose  CA  95110\r
+                               US\r
+\r
+E8-F4-08   (hex)               Intel Corporate\r
+E8F408     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+5C-6F-69   (hex)               Broadcom Limited\r
+5C6F69     (base 16)           Broadcom Limited\r
+                               15191 Alton Parkway\r
+                               Irvine  CA  92618\r
+                               US\r
+\r
+D0-12-CB   (hex)               AVM Audiovisuelles Marketing und Computersysteme GmbH\r
+D012CB     (base 16)           AVM Audiovisuelles Marketing und Computersysteme GmbH\r
+                               Alt-Moabit 95\r
+                               Berlin  Berlin  10559\r
+                               DE\r
+\r
+FC-44-82   (hex)               Intel Corporate\r
+FC4482     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+D8-F8-83   (hex)               Intel Corporate\r
+D8F883     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+E8-84-A5   (hex)               Intel Corporate\r
+E884A5     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+78-CF-2F   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+78CF2F     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+A8-3B-5C   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+A83B5C     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+58-B0-FE   (hex)               Team EPS GmbH\r
+58B0FE     (base 16)           Team EPS GmbH\r
+                               Am Herdicksbach 2 - Halle 9\r
+                               Waltrop    45731\r
+                               DE\r
+\r
+A8-CC-6F   (hex)               HMD Global Oy\r
+A8CC6F     (base 16)           HMD Global Oy\r
+                               Bertel Jungin aukio 9\r
+                               Espoo    02600\r
+                               FI\r
+\r
+14-3F-A6   (hex)               Sony Home Entertainment&Sound Products Inc\r
+143FA6     (base 16)           Sony Home Entertainment&Sound Products Inc\r
+                               Sony City Osaki 2-10-1 Osaki Shinagawa-ku\r
+                               Tokyo  Japan  141-8610\r
+                               JP\r
+\r
+74-8B-29   (hex)               Micobiomed\r
+748B29     (base 16)           Micobiomed\r
+                               54 Changeop-ro\r
+                               54 Changeop-ro  Gyeonggi-do  13449\r
+                               KR\r
+\r
+04-49-5D   (hex)               Huawei Device Co., Ltd.\r
+04495D     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+44-D4-53   (hex)               Sagemcom Broadband SAS\r
+44D453     (base 16)           Sagemcom Broadband SAS\r
+                               250, route de l'Empereur\r
+                               Rueil Malmaison Cedex  hauts de seine  92848\r
+                               FR\r
+\r
+DC-CD-74   (hex)               Japan E.M.Solutions Co., Ltd.\r
+DCCD74     (base 16)           Japan E.M.Solutions Co., Ltd.\r
+                               35 Saho\r
+                               Kato    673-1447\r
+                               JP\r
+\r
+00-25-50   (hex)               Riverbed Technology, Inc.\r
+002550     (base 16)           Riverbed Technology, Inc.\r
+                               680 Folsom St\r
+                               San Francisco  CA  94107\r
+                               US\r
+\r
+00-12-93   (hex)               ABB Power Protection (CH)\r
+001293     (base 16)           ABB Power Protection (CH)\r
+                               1501 Roanoke Blvd.\r
+                               Salem  VA  24153\r
+                               US\r
+\r
+0C-96-CD   (hex)               MERCURY CORPORATION\r
+0C96CD     (base 16)           MERCURY CORPORATION\r
+                               90, Gajaeul-ro, Seo-gu\r
+                               INCHEON    22830\r
+                               KR\r
+\r
+A0-3B-01   (hex)               Kyung In Electronics\r
+A03B01     (base 16)           Kyung In Electronics\r
+                               #1411, Byucksan Digital Valley 2, 184, Gasan Digital2-ro, Geumcheon-gu\r
+                                Seoul    08501\r
+                               KR\r
+\r
+18-18-8B   (hex)               FUJITSU CONNECTED TECHNOLOGIES LIMITED\r
+18188B     (base 16)           FUJITSU CONNECTED TECHNOLOGIES LIMITED\r
+                               Sanki Yamato Building, 7-10-1 Chuorinkan\r
+                               Yamato  Kanagawa  242-8588\r
+                               JP\r
+\r
+14-5E-69   (hex)               GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+145E69     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+                               NO.18 HAIBIN ROAD,\r
+                               DONG GUAN  GUANG DONG  523860\r
+                               CN\r
+\r
+C4-D4-38   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+C4D438     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+C0-28-0B   (hex)               Honor Device Co., Ltd.\r
+C0280B     (base 16)           Honor Device Co., Ltd.\r
+                               A1701, Block AB, Building 1, Tianan Yungu Phase I, Gangtou Community, Bantian Street\r
+                               Shenzhen  Guangdong  518129\r
+                               CN\r
+\r
+9C-EA-97   (hex)               Honor Device Co., Ltd.\r
+9CEA97     (base 16)           Honor Device Co., Ltd.\r
+                               A1701, Block AB, Building 1, Tianan Yungu Phase I, Gangtou Community, Bantian Street\r
+                               Shenzhen  Guangdong  518129\r
+                               CN\r
+\r
+F0-FE-E7   (hex)               Huawei Device Co., Ltd.\r
+F0FEE7     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+54-21-1D   (hex)               Huawei Device Co., Ltd.\r
+54211D     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+C4-E2-87   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+C4E287     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+48-4C-29   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+484C29     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+EC-0D-E4   (hex)               Amazon Technologies Inc.\r
+EC0DE4     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102 \r
+                               Reno  NV  89507\r
+                               US\r
+\r
+DC-A1-20   (hex)               Nokia\r
+DCA120     (base 16)           Nokia\r
+                               600 March Road\r
+                               Kanata  Ontario  K2K 2E6\r
+                               CA\r
+\r
+50-52-3B   (hex)               Nokia\r
+50523B     (base 16)           Nokia\r
+                               600 March Road\r
+                               Kanata  Ontario  K2K 2E6\r
+                               CA\r
+\r
+E8-D2-FF   (hex)               Sagemcom Broadband SAS\r
+E8D2FF     (base 16)           Sagemcom Broadband SAS\r
+                               250, route de l'Empereur\r
+                               Rueil Malmaison Cedex  hauts de seine  92848\r
+                               FR\r
+\r
+F4-B3-01   (hex)               Intel Corporate\r
+F4B301     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+5C-DE-34   (hex)               SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
+5CDE34     (base 16)           SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
+                               3/F, Building R1-B, High-Tech Industrial Park, Nanshan District\r
+                               Shenzhen  Guangdong  518057\r
+                               CN\r
+\r
+A0-A3-F0   (hex)               D-Link International\r
+A0A3F0     (base 16)           D-Link International\r
+                               1 Internal Business Park, #03-12,The Synergy\r
+                               Singapore   Singapore  609917\r
+                               SG\r
+\r
+84-65-69   (hex)               New H3C Technologies Co., Ltd\r
+846569     (base 16)           New H3C Technologies Co., Ltd\r
+                               466 Changhe Road, Binjiang District\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
+\r
+68-78-48   (hex)               WESTUNITIS CO., LTD.\r
+687848     (base 16)           WESTUNITIS CO., LTD.\r
+                               29F Grand Front Osaka Tower-A, 4-20, Ofukacho,\r
+                               Osaka  Kita-ku  530-0011\r
+                               JP\r
+\r
+9C-82-3F   (hex)               Huawei Device Co., Ltd.\r
+9C823F     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+54-F6-07   (hex)               Huawei Device Co., Ltd.\r
+54F607     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 9C-FF-C2   (hex)               AVI Systems GmbH\r
 9CFFC2     (base 16)           AVI Systems GmbH\r
                                Dr. Franz Wilhelmstraße 2A\r
@@ -35744,12 +35960,6 @@ C85261     (base 16)           ARRIS Group, Inc.
                                San Diego  CA  92121\r
                                US\r
 \r
-C0-41-21   (hex)               Nokia\r
-C04121     (base 16)           Nokia\r
-                               Karaportti 3\r
-                               Espoo  Finland  02610\r
-                               FI\r
-\r
 74-88-BB   (hex)               Cisco Systems, Inc\r
 7488BB     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
@@ -36719,12 +36929,6 @@ A4ED43     (base 16)           IEEE Registration Authority
                                San Jose  CA  94568\r
                                US\r
 \r
-0C-7C-28   (hex)               Nokia\r
-0C7C28     (base 16)           Nokia\r
-                               Karaportti 3\r
-                               Espoo  Finland  02610\r
-                               FI\r
-\r
 68-43-D7   (hex)               Agilecom Photonics Solutions Guangdong Limited\r
 6843D7     (base 16)           Agilecom Photonics Solutions Guangdong Limited\r
                                No.1-6, Shenwan Industrial Park, Shenwan Town\r
@@ -38261,12 +38465,6 @@ D896E0     (base 16)           Alibaba Cloud Computing Ltd.
                                Dallas  TX  75243\r
                                US\r
 \r
-20-78-52   (hex)               Nokia\r
-207852     (base 16)           Nokia\r
-                               Karaportti 3\r
-                               Espoo  Finland  02610\r
-                               FI\r
-\r
 C8-DE-C9   (hex)               Coriant\r
 C8DEC9     (base 16)           Coriant\r
                                1415 W. Diehl Rd\r
@@ -39869,12 +40067,6 @@ E4E4AB     (base 16)           Apple, Inc.
                                Logrono  La Rioja  26001\r
                                ES\r
 \r
-54-FA-96   (hex)               Nokia\r
-54FA96     (base 16)           Nokia\r
-                               Karaportti 3\r
-                               Espoo  Finland  02610\r
-                               FI\r
-\r
 60-33-4B   (hex)               Apple, Inc.\r
 60334B     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
@@ -41651,12 +41843,6 @@ ECD68A     (base 16)           Shenzhen JMicron Intelligent Technology Developmen
                                Weifang  Shandong  261061\r
                                CN\r
 \r
-6C-98-EB   (hex)               Riverbed Technology, Inc.\r
-6C98EB     (base 16)           Riverbed Technology, Inc.\r
-                                680 Folsom St.\r
-                               San Francisco  CA  94107\r
-                               US\r
-\r
 00-9E-1E   (hex)               Cisco Systems, Inc\r
 009E1E     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
@@ -53687,12 +53873,6 @@ D4AAFF     (base 16)           MICRO WORLD
                                Daejeon    305-510\r
                                KR\r
 \r
-00-1F-F5   (hex)               Kongsberg Defence & Aerospace\r
-001FF5     (base 16)           Kongsberg Defence & Aerospace\r
-                               Olav Brunborgs vei 6\r
-                               Billingstad    1396\r
-                               NO\r
-\r
 00-1F-F2   (hex)               VIA Technologies, Inc.\r
 001FF2     (base 16)           VIA Technologies, Inc.\r
                                1F, 531, Chung-Cheng Road\r
@@ -56351,12 +56531,6 @@ D4AAFF     (base 16)           MICRO WORLD
                                SE-331 02  Värnamo    SE-331 02\r
                                SE\r
 \r
-00-15-E7   (hex)               Quantec Tontechnik\r
-0015E7     (base 16)           Quantec Tontechnik\r
-                               Mittenwalderstr.63\r
-                               München    D-81377\r
-                               DE\r
-\r
 00-15-D3   (hex)               Pantech&Curitel Communications, Inc.\r
 0015D3     (base 16)           Pantech&Curitel Communications, Inc.\r
                                1451-34, Seocho-dong, Seocho-Gu\r
@@ -66368,24 +66542,24 @@ B0B353     (base 16)          IEEE Registration Authority
                                Mill Valley  CA  94941\r
                                US\r
 \r
-7C-DF-A1   (hex)               Espressif Inc.\r
-7CDFA1     (base 16)           Espressif Inc.\r
-                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
-                               Shanghai  Shanghai  201203\r
-                               CN\r
-\r
-98-00-6A   (hex)               zte corporation\r
-98006A     (base 16)           zte corporation\r
-                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
-                               shenzhen  guangdong  518057\r
-                               CN\r
-\r
 00-26-74   (hex)               Hunter Douglas\r
 002674     (base 16)           Hunter Douglas\r
                                One Duette Way\r
                                Broomfield  CO  80020\r
                                US\r
 \r
+FC-E1-4F   (hex)               BRK Brands, Inc.\r
+FCE14F     (base 16)           BRK Brands, Inc.\r
+                               3901 Liberty Street\r
+                               Aurora  IL  60504\r
+                               US\r
+\r
+88-96-55   (hex)               Zitte corporation\r
+889655     (base 16)           Zitte corporation\r
+                               4F Yokohama Kusunoki-cho Building,4-7 Kusunoki-cho,Nishi-ku\r
+                               Yokohama  Kanagawa  2200003\r
+                               JP\r
+\r
 1C-97-C5   (hex)               Ynomia Pty Ltd\r
 1C97C5     (base 16)           Ynomia Pty Ltd\r
                                153 Tooronga Rd\r
@@ -66404,11 +66578,17 @@ B0B353     (base 16)          IEEE Registration Authority
                                shenzhen  guangdong  518000\r
                                CN\r
 \r
-88-96-55   (hex)               Zitte corporation\r
-889655     (base 16)           Zitte corporation\r
-                               4F Yokohama Kusunoki-cho Building,4-7 Kusunoki-cho,Nishi-ku\r
-                               Yokohama  Kanagawa  2200003\r
-                               JP\r
+98-00-6A   (hex)               zte corporation\r
+98006A     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+7C-DF-A1   (hex)               Espressif Inc.\r
+7CDFA1     (base 16)           Espressif Inc.\r
+                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+                               Shanghai  Shanghai  201203\r
+                               CN\r
 \r
 F4-A4-D6   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 F4A4D6     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
@@ -66416,18 +66596,30 @@ F4A4D6     (base 16)          HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
-FC-E1-4F   (hex)               BRK Brands, Inc.\r
-FCE14F     (base 16)           BRK Brands, Inc.\r
-                               3901 Liberty Street\r
-                               Aurora  IL  60504\r
-                               US\r
-\r
 74-B6-B6   (hex)               eero inc.\r
 74B6B6     (base 16)           eero inc.\r
                                660 3rd Street\r
                                San Francisco  CA  94107\r
                                US\r
 \r
+84-2E-14   (hex)               Silicon Laboratories\r
+842E14     (base 16)           Silicon Laboratories\r
+                               7000 W. William Cannon Dr.\r
+                               Austin  TX  78735\r
+                               US\r
+\r
+44-10-FE   (hex)               Huizhou Foryou General Electronics Co., Ltd.\r
+4410FE     (base 16)           Huizhou Foryou General Electronics Co., Ltd.\r
+                               North Shangxia Road, Dongjiang Hi-tech Industry Park\r
+                               Huizhou  Guangdong  516000\r
+                               CN\r
+\r
+EC-31-6D   (hex)               Hansgrohe\r
+EC316D     (base 16)           Hansgrohe\r
+                               Auestraße 5-9\r
+                               Schiltach    77761\r
+                               DE\r
+\r
 EC-97-B2   (hex)               SUMEC Machinery & Electric Co.,Ltd.\r
 EC97B2     (base 16)           SUMEC Machinery & Electric Co.,Ltd.\r
                                198# ChangJiang Road, XuanWu District, 17F, SUMEC Building\r
@@ -66440,18 +66632,6 @@ EC97B2     (base 16)           SUMEC Machinery & Electric Co.,Ltd.
                                Shenzhen  GuangDong  518000\r
                                CN\r
 \r
-84-2E-14   (hex)               Silicon Laboratories\r
-842E14     (base 16)           Silicon Laboratories\r
-                               7000 W. William Cannon Dr.\r
-                               Austin  TX  78735\r
-                               US\r
-\r
-10-05-E1   (hex)               Nokia\r
-1005E1     (base 16)           Nokia\r
-                               600 March Road\r
-                               Kanata  Ontario  K2K 2E6\r
-                               CA\r
-\r
 08-F4-58   (hex)               Huawei Device Co., Ltd.\r
 08F458     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -66470,23 +66650,23 @@ EC97B2     (base 16)          SUMEC Machinery & Electric Co.,Ltd.
                                Odawara  Kanagawa  250-0011\r
                                JP\r
 \r
+10-05-E1   (hex)               Nokia\r
+1005E1     (base 16)           Nokia\r
+                               600 March Road\r
+                               Kanata  Ontario  K2K 2E6\r
+                               CA\r
+\r
 6C-D9-4C   (hex)               vivo Mobile Communication Co., Ltd.\r
 6CD94C     (base 16)           vivo Mobile Communication Co., Ltd.\r
                                #283,BBK Road\r
                                Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
                                CN\r
 \r
-EC-31-6D   (hex)               Hansgrohe\r
-EC316D     (base 16)           Hansgrohe\r
-                               Auestraße 5-9\r
-                               Schiltach    77761\r
-                               DE\r
-\r
-44-10-FE   (hex)               Huizhou Foryou General Electronics Co., Ltd.\r
-4410FE     (base 16)           Huizhou Foryou General Electronics Co., Ltd.\r
-                               North Shangxia Road, Dongjiang Hi-tech Industry Park\r
-                               Huizhou  Guangdong  516000\r
-                               CN\r
+AC-1E-D0   (hex)               Temic Automotive Philippines Inc.\r
+AC1ED0     (base 16)           Temic Automotive Philippines Inc.\r
+                               Bagsakan Road, FTI estate\r
+                               Taguig    1630\r
+                               PH\r
 \r
 7C-AB-60   (hex)               Apple, Inc.\r
 7CAB60     (base 16)           Apple, Inc.\r
@@ -66536,18 +66716,42 @@ D03FAA     (base 16)          Apple, Inc.
                                North Point  Hong Kong  180\r
                                HK\r
 \r
+DC-35-F1   (hex)               Positivo Tecnologia S.A.\r
+DC35F1     (base 16)           Positivo Tecnologia S.A.\r
+                               João Bettega, 5200\r
+                               Curitiba  Paraná  81350-000\r
+                               BR\r
+\r
 D4-DC-09   (hex)               Mist Systems, Inc.\r
 D4DC09     (base 16)           Mist Systems, Inc.\r
                                1601 South De Anza Blvd, Suite 248\r
                                Cupertino  CA  95014\r
                                US\r
 \r
+E8-E9-8E   (hex)               SOLAR controls s.r.o.\r
+E8E98E     (base 16)           SOLAR controls s.r.o.\r
+                               Brojova 25\r
+                               Plzen    32600\r
+                               CZ\r
+\r
 00-88-BA   (hex)               NC&C\r
 0088BA     (base 16)           NC&C\r
                                Gurogu\r
                                Seoul    08390\r
                                KR\r
 \r
+40-2B-69   (hex)               Kumho Electric Inc.\r
+402B69     (base 16)           Kumho Electric Inc.\r
+                               309, Bongmu-ro, Namsa-myeon, Cheoin-gu\r
+                               Yongin-si  Gyeonggi-do  17118\r
+                               KR\r
+\r
+64-F6-BB   (hex)               Fibocom Wireless Inc.\r
+64F6BB     (base 16)           Fibocom Wireless Inc.\r
+                               5/F,TowerA,Technology Building 2,1057 Nanhai Blvd, Nanshan\r
+                               Shenzhen  518000  Guangdong\r
+                               CN\r
+\r
 F4-73-35   (hex)               Logitech Far East\r
 F47335     (base 16)           Logitech Far East\r
                                #2 Creation Rd. 4,\r
@@ -66560,29 +66764,17 @@ F47335     (base 16)          Logitech Far East
                                Seoul  Seoul  05510\r
                                KR\r
 \r
-5C-A6-2D   (hex)               Cisco Systems, Inc\r
-5CA62D     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
-\r
-40-2B-69   (hex)               Kumho Electric Inc.\r
-402B69     (base 16)           Kumho Electric Inc.\r
-                               309, Bongmu-ro, Namsa-myeon, Cheoin-gu\r
-                               Yongin-si  Gyeonggi-do  17118\r
-                               KR\r
-\r
-E8-E9-8E   (hex)               SOLAR controls s.r.o.\r
-E8E98E     (base 16)           SOLAR controls s.r.o.\r
-                               Brojova 25\r
-                               Plzen    32600\r
-                               CZ\r
+A4-CF-D2   (hex)               Ubee Interactive Co., Limited\r
+A4CFD2     (base 16)           Ubee Interactive Co., Limited\r
+                               Flat/RM 1202, 12/F, AT Tower, 180 Electric Road\r
+                               North Point    00000\r
+                               HK\r
 \r
-64-F6-BB   (hex)               Fibocom Wireless Inc.\r
-64F6BB     (base 16)           Fibocom Wireless Inc.\r
-                               5/F,TowerA,Technology Building 2,1057 Nanhai Blvd, Nanshan\r
-                               Shenzhen  518000  Guangdong\r
-                               CN\r
+A8-A0-97   (hex)               ScioTeq bvba\r
+A8A097     (base 16)           ScioTeq bvba\r
+                               President Kennedypark 35A\r
+                               Kortrijk    8500\r
+                               BE\r
 \r
 BC-16-95   (hex)               zte corporation\r
 BC1695     (base 16)           zte corporation\r
@@ -66590,28 +66782,16 @@ BC1695     (base 16)          zte corporation
                                shenzhen  guangdong  518057\r
                                CN\r
 \r
-DC-35-F1   (hex)               Positivo Tecnologia S.A.\r
-DC35F1     (base 16)           Positivo Tecnologia S.A.\r
-                               João Bettega, 5200\r
-                               Curitiba  Paraná  81350-000\r
-                               BR\r
-\r
 A4-08-01   (hex)               Amazon Technologies Inc.\r
 A40801     (base 16)           Amazon Technologies Inc.\r
                                P.O Box 8102\r
                                Reno  NV  89507\r
                                US\r
 \r
-AC-1E-D0   (hex)               Temic Automotive Philippines Inc.\r
-AC1ED0     (base 16)           Temic Automotive Philippines Inc.\r
-                               Bagsakan Road, FTI estate\r
-                               Taguig    1630\r
-                               PH\r
-\r
-2C-EA-7F   (hex)               Dell Inc.\r
-2CEA7F     (base 16)           Dell Inc.\r
-                               One Dell Way\r
-                               Round Rock  TX  78682\r
+5C-A6-2D   (hex)               Cisco Systems, Inc\r
+5CA62D     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
                                US\r
 \r
 34-51-80   (hex)               TCL King Electrical Appliances (Huizhou) Co., Ltd\r
@@ -66620,34 +66800,10 @@ AC1ED0     (base 16)          Temic Automotive Philippines Inc.
                                Shenzhen  Guangdong  518052\r
                                CN\r
 \r
-A4-CF-D2   (hex)               Ubee Interactive Co., Limited\r
-A4CFD2     (base 16)           Ubee Interactive Co., Limited\r
-                               Flat/RM 1202, 12/F, AT Tower, 180 Electric Road\r
-                               North Point    00000\r
-                               HK\r
-\r
-A8-A0-97   (hex)               ScioTeq bvba\r
-A8A097     (base 16)           ScioTeq bvba\r
-                               President Kennedypark 35A\r
-                               Kortrijk    8500\r
-                               BE\r
-\r
-08-6B-D1   (hex)               Shenzhen SuperElectron Technology Co.,Ltd.\r
-086BD1     (base 16)           Shenzhen SuperElectron Technology Co.,Ltd.\r
-                               1213-1214, haosheng business center, dongbin road, nanshan street, nanshan district, shenzhen city\r
-                               Shenzhen  Guangdong  518000\r
-                               CN\r
-\r
-AC-3A-67   (hex)               Cisco Systems, Inc\r
-AC3A67     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
-\r
-3C-B5-3D   (hex)               HUNAN GOKE MICROELECTRONICS CO.,LTD\r
-3CB53D     (base 16)           HUNAN GOKE MICROELECTRONICS CO.,LTD\r
-                               No.9, East 10th Road(South), Xingsha, Changsha\r
-                               Changsha  HUNAN  410131 \r
+B8-E3-B1   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+B8E3B1     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
                                CN\r
 \r
 98-0D-51   (hex)               Huawei Device Co., Ltd.\r
@@ -66662,6 +66818,30 @@ AC3A67     (base 16)           Cisco Systems, Inc
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
+3C-B5-3D   (hex)               HUNAN GOKE MICROELECTRONICS CO.,LTD\r
+3CB53D     (base 16)           HUNAN GOKE MICROELECTRONICS CO.,LTD\r
+                               No.9, East 10th Road(South), Xingsha, Changsha\r
+                               Changsha  HUNAN  410131 \r
+                               CN\r
+\r
+2C-EA-7F   (hex)               Dell Inc.\r
+2CEA7F     (base 16)           Dell Inc.\r
+                               One Dell Way\r
+                               Round Rock  TX  78682\r
+                               US\r
+\r
+08-6B-D1   (hex)               Shenzhen SuperElectron Technology Co.,Ltd.\r
+086BD1     (base 16)           Shenzhen SuperElectron Technology Co.,Ltd.\r
+                               1213-1214, haosheng business center, dongbin road, nanshan street, nanshan district, shenzhen city\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+AC-3A-67   (hex)               Cisco Systems, Inc\r
+AC3A67     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
 90-5D-7C   (hex)               New H3C Technologies Co., Ltd\r
 905D7C     (base 16)           New H3C Technologies Co., Ltd\r
                                466 Changhe Road, Binjiang District\r
@@ -66680,11 +66860,11 @@ AC3A67     (base 16)          Cisco Systems, Inc
                                Tsim Sha Tsui  Kowloon  999077\r
                                HK\r
 \r
-B8-E3-B1   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-B8E3B1     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
+EC-79-49   (hex)               FUJITSU LIMITED\r
+EC7949     (base 16)           FUJITSU LIMITED\r
+                               403, Kosugi-cho 1-chome, Nakahara-ku\r
+                               Kawasaki  Kanagawa  211-0063\r
+                               JP\r
 \r
 00-B7-A8   (hex)               Heinzinger electronic GmbH\r
 00B7A8     (base 16)           Heinzinger electronic GmbH\r
@@ -66692,12 +66872,6 @@ B8E3B1     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD
                                Rosenheim  BY  83026\r
                                DE\r
 \r
-EC-79-49   (hex)               FUJITSU LIMITED\r
-EC7949     (base 16)           FUJITSU LIMITED\r
-                               403, Kosugi-cho 1-chome, Nakahara-ku\r
-                               Kawasaki  Kanagawa  211-0063\r
-                               JP\r
-\r
 D4-D2-D6   (hex)               FN-LINK TECHNOLOGY LIMITED\r
 D4D2D6     (base 16)           FN-LINK TECHNOLOGY LIMITED\r
                                A Building,HuiXin industial park,No 31, YongHe road, Fuyong town, Bao'an District\r
@@ -66710,6 +66884,24 @@ D4D2D6     (base 16)           FN-LINK TECHNOLOGY LIMITED
                                Miao-Lih Hsuan    115\r
                                TW\r
 \r
+28-54-71   (hex)               Huawei Device Co., Ltd.\r
+285471     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+B8-8E-82   (hex)               Huawei Device Co., Ltd.\r
+B88E82     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+DC-33-3D   (hex)               Huawei Device Co., Ltd.\r
+DC333D     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 90-0A-84   (hex)               Mellanox Technologies, Inc.\r
 900A84     (base 16)           Mellanox Technologies, Inc.\r
                                350 Oakmead Parkway, Suite 100 \r
@@ -66734,6 +66926,18 @@ AC4A67     (base 16)           Cisco Systems, Inc
                                Charlottesville  VA  22911\r
                                US\r
 \r
+D8-78-7F   (hex)               Ubee Interactive Co., Limited\r
+D8787F     (base 16)           Ubee Interactive Co., Limited\r
+                               Flat/RM 1202, 12/F, AT Tower, 180 Electric Road\r
+                               North Point    00000\r
+                               HK\r
+\r
+BC-F3-10   (hex)               Extreme Networks, Inc.\r
+BCF310     (base 16)           Extreme Networks, Inc.\r
+                               1011 McCarthy Blvd\r
+                               Milpitas  CA  95035\r
+                               US\r
+\r
 C8-66-5D   (hex)               Extreme Networks, Inc.\r
 C8665D     (base 16)           Extreme Networks, Inc.\r
                                1011 McCarthy Blvd\r
@@ -66752,44 +66956,14 @@ D854A2     (base 16)          Extreme Networks, Inc.
                                Milpitas  CA  95035\r
                                US\r
 \r
-08-66-1F   (hex)               Palo Alto Networks\r
-08661F     (base 16)           Palo Alto Networks\r
+D4-1D-71   (hex)               Palo Alto Networks\r
+D41D71     (base 16)           Palo Alto Networks\r
                                3000 Tannery Way\r
                                Santa Clara  CA  95054\r
                                US\r
 \r
-BC-F3-10   (hex)               Extreme Networks, Inc.\r
-BCF310     (base 16)           Extreme Networks, Inc.\r
-                               1011 McCarthy Blvd\r
-                               Milpitas  CA  95035\r
-                               US\r
-\r
-28-54-71   (hex)               Huawei Device Co., Ltd.\r
-285471     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-B8-8E-82   (hex)               Huawei Device Co., Ltd.\r
-B88E82     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-DC-33-3D   (hex)               Huawei Device Co., Ltd.\r
-DC333D     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-D8-78-7F   (hex)               Ubee Interactive Co., Limited\r
-D8787F     (base 16)           Ubee Interactive Co., Limited\r
-                               Flat/RM 1202, 12/F, AT Tower, 180 Electric Road\r
-                               North Point    00000\r
-                               HK\r
-\r
-D4-1D-71   (hex)               Palo Alto Networks\r
-D41D71     (base 16)           Palo Alto Networks\r
+08-66-1F   (hex)               Palo Alto Networks\r
+08661F     (base 16)           Palo Alto Networks\r
                                3000 Tannery Way\r
                                Santa Clara  CA  95054\r
                                US\r
@@ -66848,6 +67022,30 @@ C4A402     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD
                                San Diego  CA  92121\r
                                US\r
 \r
+9C-BD-6E   (hex)               DERA Co., Ltd\r
+9CBD6E     (base 16)           DERA Co., Ltd\r
+                               Zhichun road NO7 Building B Room1203 Haidian District\r
+                               Beijing    100191\r
+                               CN\r
+\r
+4C-33-29   (hex)               Sweroam\r
+4C3329     (base 16)           Sweroam\r
+                               Stortorget 16\r
+                               Orebro  N/A  70211\r
+                               SE\r
+\r
+48-8F-5A   (hex)               Routerboard.com\r
+488F5A     (base 16)           Routerboard.com\r
+                               Mikrotikls SIA\r
+                               Riga  Riga  LV1009\r
+                               LV\r
+\r
+10-06-45   (hex)               Sagemcom Broadband SAS\r
+100645     (base 16)           Sagemcom Broadband SAS\r
+                               250, route de l'Empereur\r
+                               Rueil Malmaison Cedex  hauts de seine  92848\r
+                               FR\r
+\r
 68-33-2C   (hex)               KENSTEL NETWORKS LIMITED\r
 68332C     (base 16)           KENSTEL NETWORKS LIMITED\r
                                34D SECTOR 57 HSIIDC INDUSTRIAL AREA PHASE 4\r
@@ -66860,6 +67058,12 @@ C4A402     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD
                                Cambridge  CAMBRIDGESHIRE  CB3 0AX\r
                                GB\r
 \r
+AC-67-B2   (hex)               Espressif Inc.\r
+AC67B2     (base 16)           Espressif Inc.\r
+                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+                               Shanghai  Shanghai  201203\r
+                               CN\r
+\r
 70-61-7B   (hex)               Cisco Systems, Inc\r
 70617B     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
@@ -66872,23 +67076,17 @@ C4A402     (base 16)          HUAWEI TECHNOLOGIES CO.,LTD
                                Milano  MI  20132\r
                                IT\r
 \r
-AC-67-B2   (hex)               Espressif Inc.\r
-AC67B2     (base 16)           Espressif Inc.\r
-                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
-                               Shanghai  Shanghai  201203\r
-                               CN\r
-\r
-9C-BD-6E   (hex)               DERA Co., Ltd\r
-9CBD6E     (base 16)           DERA Co., Ltd\r
-                               Zhichun road NO7 Building B Room1203 Haidian District\r
-                               Beijing    100191\r
-                               CN\r
+C4-89-ED   (hex)               Solid Optics EU N.V.\r
+C489ED     (base 16)           Solid Optics EU N.V.\r
+                               De Huchtstraat 35\r
+                               Almere  Flevoland  1327 EC\r
+                               NL\r
 \r
-4C-33-29   (hex)               Sweroam\r
-4C3329     (base 16)           Sweroam\r
-                               Stortorget 16\r
-                               Orebro  N/A  70211\r
-                               SE\r
+58-A8-7B   (hex)               Fitbit, Inc.\r
+58A87B     (base 16)           Fitbit, Inc.\r
+                               199 Fremont Street, 14th Fl\r
+                               San Francisco  CA  94105\r
+                               US\r
 \r
 64-E1-72   (hex)               Shenzhen Qihoo Intelligent Technology Co.,Ltd\r
 64E172     (base 16)           Shenzhen Qihoo Intelligent Technology Co.,Ltd\r
@@ -66896,24 +67094,6 @@ AC67B2     (base 16)           Espressif Inc.
                                Shenzhen  Guangdong  5181000\r
                                CN\r
 \r
-48-8F-5A   (hex)               Routerboard.com\r
-488F5A     (base 16)           Routerboard.com\r
-                               Mikrotikls SIA\r
-                               Riga  Riga  LV1009\r
-                               LV\r
-\r
-10-06-45   (hex)               Sagemcom Broadband SAS\r
-100645     (base 16)           Sagemcom Broadband SAS\r
-                               250, route de l'Empereur\r
-                               Rueil Malmaison Cedex  hauts de seine  92848\r
-                               FR\r
-\r
-00-14-C9   (hex)               Brocade Communications Systems LLC\r
-0014C9     (base 16)           Brocade Communications Systems LLC\r
-                               1320 Ridder Park Dr\r
-                               San Jose  CA  95131\r
-                               US\r
-\r
 00-24-38   (hex)               Brocade Communications Systems LLC\r
 002438     (base 16)           Brocade Communications Systems LLC\r
                                1320 Ridder Park Dr\r
@@ -66950,17 +67130,23 @@ F84DFC     (base 16)          Hangzhou Hikvision Digital Technology Co.,Ltd.
                                Hangzhou  Zhejiang  310052\r
                                CN\r
 \r
+64-E8-81   (hex)               Aruba, a Hewlett Packard Enterprise Company\r
+64E881     (base 16)           Aruba, a Hewlett Packard Enterprise Company\r
+                               3333 Scott Blvd\r
+                               Santa Clara  CA  95054\r
+                               US\r
+\r
 D8-1F-CC   (hex)               Brocade Communications Systems LLC\r
 D81FCC     (base 16)           Brocade Communications Systems LLC\r
                                1320 Ridder Park Dr\r
                                San Jose  CA  95131\r
                                US\r
 \r
-C4-89-ED   (hex)               Solid Optics EU N.V.\r
-C489ED     (base 16)           Solid Optics EU N.V.\r
-                               De Huchtstraat 35\r
-                               Almere  Flevoland  1327 EC\r
-                               NL\r
+98-9D-5D   (hex)               Technicolor CH USA Inc.\r
+989D5D     (base 16)           Technicolor CH USA Inc.\r
+                               5030 Sugarloaf Parkway Bldg 6 \r
+                               Lawrenceville  GA  30044\r
+                               US\r
 \r
 60-F4-3A   (hex)               Edifier International\r
 60F43A     (base 16)           Edifier International\r
@@ -66968,10 +67154,10 @@ C489ED     (base 16)          Solid Optics EU N.V.
                                Hong Kong    070\r
                                CN\r
 \r
-58-A8-7B   (hex)               Fitbit, Inc.\r
-58A87B     (base 16)           Fitbit, Inc.\r
-                               199 Fremont Street, 14th Fl\r
-                               San Francisco  CA  94105\r
+00-14-C9   (hex)               Brocade Communications Systems LLC\r
+0014C9     (base 16)           Brocade Communications Systems LLC\r
+                               1320 Ridder Park Dr\r
+                               San Jose  CA  95131\r
                                US\r
 \r
 5C-6B-D7   (hex)               Foshan VIOMI Electric Appliance Technology Co. Ltd.\r
@@ -66986,42 +67172,12 @@ C489ED     (base 16)          Solid Optics EU N.V.
                                Nagaokakyo-shi  Kyoto  617-8555\r
                                JP\r
 \r
-90-EE-C7   (hex)               Samsung Electronics Co.,Ltd\r
-90EEC7     (base 16)           Samsung Electronics Co.,Ltd\r
-                               #94-1, Imsoo-Dong\r
-                               Gumi  Gyeongbuk  730-350\r
-                               KR\r
-\r
-10-29-AB   (hex)               Samsung Electronics Co.,Ltd\r
-1029AB     (base 16)           Samsung Electronics Co.,Ltd\r
-                               #94-1, Imsoo-Dong\r
-                               Gumi  Gyeongbuk  730-350\r
-                               KR\r
-\r
-18-4E-CB   (hex)               Samsung Electronics Co.,Ltd\r
-184ECB     (base 16)           Samsung Electronics Co.,Ltd\r
-                               #94-1, Imsoo-Dong\r
-                               Gumi  Gyeongbuk  730-350\r
-                               KR\r
-\r
 80-22-A7   (hex)               NEC Platforms, Ltd.\r
 8022A7     (base 16)           NEC Platforms, Ltd.\r
                                2-3 Kandatsukasamachi\r
                                Chiyodaku  Tokyo  101-8532\r
                                JP\r
 \r
-64-E8-81   (hex)               Aruba, a Hewlett Packard Enterprise Company\r
-64E881     (base 16)           Aruba, a Hewlett Packard Enterprise Company\r
-                               3333 Scott Blvd\r
-                               Santa Clara  CA  95054\r
-                               US\r
-\r
-98-9D-5D   (hex)               Technicolor CH USA Inc.\r
-989D5D     (base 16)           Technicolor CH USA Inc.\r
-                               5030 Sugarloaf Parkway Bldg 6 \r
-                               Lawrenceville  GA  30044\r
-                               US\r
-\r
 5C-23-16   (hex)               Squirrels Research Labs LLC\r
 5C2316     (base 16)           Squirrels Research Labs LLC\r
                                8050 Freedom Ave NW Suite B\r
@@ -67034,20 +67190,38 @@ C489ED     (base 16)          Solid Optics EU N.V.
                                Taipei County 231    231141\r
                                CN\r
 \r
-A0-27-B6   (hex)               Samsung Electronics Co.,Ltd\r
-A027B6     (base 16)           Samsung Electronics Co.,Ltd\r
+98-80-EE   (hex)               Samsung Electronics Co.,Ltd\r
+9880EE     (base 16)           Samsung Electronics Co.,Ltd\r
                                #94-1, Imsoo-Dong\r
                                Gumi  Gyeongbuk  730-350\r
                                KR\r
 \r
-10-39-17   (hex)               Samsung Electronics Co.,Ltd\r
-103917     (base 16)           Samsung Electronics Co.,Ltd\r
+90-EE-C7   (hex)               Samsung Electronics Co.,Ltd\r
+90EEC7     (base 16)           Samsung Electronics Co.,Ltd\r
                                #94-1, Imsoo-Dong\r
                                Gumi  Gyeongbuk  730-350\r
                                KR\r
 \r
-98-80-EE   (hex)               Samsung Electronics Co.,Ltd\r
-9880EE     (base 16)           Samsung Electronics Co.,Ltd\r
+10-29-AB   (hex)               Samsung Electronics Co.,Ltd\r
+1029AB     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+18-4E-CB   (hex)               Samsung Electronics Co.,Ltd\r
+184ECB     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+A0-27-B6   (hex)               Samsung Electronics Co.,Ltd\r
+A027B6     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+10-39-17   (hex)               Samsung Electronics Co.,Ltd\r
+103917     (base 16)           Samsung Electronics Co.,Ltd\r
                                #94-1, Imsoo-Dong\r
                                Gumi  Gyeongbuk  730-350\r
                                KR\r
@@ -67058,6 +67232,12 @@ CC0DF2     (base 16)           Motorola Mobility LLC, a Lenovo Company
                                Chicago  IL  60654\r
                                US\r
 \r
+A8-40-25   (hex)               Oxide Computer Company\r
+A84025     (base 16)           Oxide Computer Company\r
+                               1251 Park Avenue\r
+                               Emeryville  CA  94608\r
+                               US\r
+\r
 94-BF-94   (hex)               Juniper Networks\r
 94BF94     (base 16)           Juniper Networks\r
                                1133 Innovation Way\r
@@ -67070,10 +67250,22 @@ CC0DF2     (base 16)          Motorola Mobility LLC, a Lenovo Company
                                Hanover  MD  21076\r
                                US\r
 \r
-A8-40-25   (hex)               Oxide Computer Company\r
-A84025     (base 16)           Oxide Computer Company\r
-                               1251 Park Avenue\r
-                               Emeryville  CA  94608\r
+B8-80-4F   (hex)               Texas Instruments\r
+B8804F     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
+\r
+00-12-E3   (hex)               Agat Soft LLC\r
+0012E3     (base 16)           Agat Soft LLC\r
+                               building 14, stroenie 15, room 7\r
+                               Moscow  Serebryakova proezd  129343\r
+                               RU\r
+\r
+00-13-51   (hex)               Niles Audio Corporation\r
+001351     (base 16)           Niles Audio Corporation\r
+                               5919 Sea Otter Place\r
+                               Carlsbad  CA  92010\r
                                US\r
 \r
 10-65-A3   (hex)               Panamax LLC\r
@@ -67082,6 +67274,12 @@ A84025     (base 16)           Oxide Computer Company
                                Carlsbad   CA  92010\r
                                US\r
 \r
+FC-A5-D0   (hex)               GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+FCA5D0     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+                               NO.18 HAIBIN ROAD,\r
+                               DONG GUAN  GUANG DONG  523860\r
+                               CN\r
+\r
 C8-5B-A0   (hex)               Shenzhen Qihu Intelligent Technology Company Limited\r
 C85BA0     (base 16)           Shenzhen Qihu Intelligent Technology Company Limited\r
                                Room 201, Block A, No.1, Qianwan Road 1,Qianhai Shenzhen HongKong Modern Service Industry Cooperation Zone\r
@@ -67106,54 +67304,36 @@ E0BE03     (base 16)          Lite-On Network Communication (Dongguan) Limited
                                Piscataway  NJ  08554\r
                                US\r
 \r
-98-CB-A4   (hex)               Benchmark Electronics\r
-98CBA4     (base 16)           Benchmark Electronics\r
-                               Free Industrial Zone, Phase 1, \r
-                               Bayan Lepas  Penang  11900\r
-                               MY\r
-\r
-00-12-E3   (hex)               Agat Soft LLC\r
-0012E3     (base 16)           Agat Soft LLC\r
-                               building 14, stroenie 15, room 7\r
-                               Moscow  Serebryakova proezd  129343\r
-                               RU\r
-\r
-00-13-51   (hex)               Niles Audio Corporation\r
-001351     (base 16)           Niles Audio Corporation\r
-                               5919 Sea Otter Place\r
-                               Carlsbad  CA  92010\r
-                               US\r
-\r
 18-3C-B7   (hex)               Huawei Device Co., Ltd.\r
 183CB7     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
+98-CB-A4   (hex)               Benchmark Electronics\r
+98CBA4     (base 16)           Benchmark Electronics\r
+                               Free Industrial Zone, Phase 1, \r
+                               Bayan Lepas  Penang  11900\r
+                               MY\r
+\r
 A4-88-73   (hex)               Cisco Systems, Inc\r
 A48873     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
                                San Jose  CA  94568\r
                                US\r
 \r
-B8-80-4F   (hex)               Texas Instruments\r
-B8804F     (base 16)           Texas Instruments\r
-                               12500 TI Blvd\r
-                               Dallas  TX  75243\r
-                               US\r
-\r
-FC-A5-D0   (hex)               GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
-FCA5D0     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
-                               NO.18 HAIBIN ROAD,\r
-                               DONG GUAN  GUANG DONG  523860\r
-                               CN\r
-\r
 04-CB-88   (hex)               Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd\r
 04CB88     (base 16)           Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd\r
                                3/F,A5 Building Zhiyuan Community No.1001,Xueyuan Road Nanshan District\r
                                Shenzhen  Guangdong  518055\r
                                CN\r
 \r
+24-14-07   (hex)               Xiamen Sigmastar Technology Ltd.\r
+241407     (base 16)           Xiamen Sigmastar Technology Ltd.\r
+                               15th Floor ,Unit A,Chuangxin Building, Software Park, Xiamen Torch Hi-Tech Industrial Development Zone, Xiamen,China\r
+                               Xiamen  Fujian  361005\r
+                               CN\r
+\r
 A0-62-60   (hex)               Private\r
 A06260     (base 16)           Private\r
 \r
@@ -67187,12 +67367,6 @@ B47947     (base 16)           Nutanix
                                Hsinchu    30077\r
                                TW\r
 \r
-38-F0-C8   (hex)               Mevo Inc.\r
-38F0C8     (base 16)           Mevo Inc.\r
-                               19 Morris Avenue\r
-                               Brooklyn  NY  11205\r
-                               US\r
-\r
 5C-FE-9E   (hex)               Wiwynn Corporation Tainan Branch\r
 5CFE9E     (base 16)           Wiwynn Corporation Tainan Branch\r
                                4F, NO. 8, Beiyuan 3rd Rd., Anding Dist.,\r
@@ -67211,12 +67385,6 @@ F46942     (base 16)           ASKEY COMPUTER CORP
                                NEW TAIPEI  TAIWAN  23585\r
                                TW\r
 \r
-24-14-07   (hex)               Xiamen Sigmastar Technology Ltd.\r
-241407     (base 16)           Xiamen Sigmastar Technology Ltd.\r
-                               15th Floor ,Unit A,Chuangxin Building, Software Park, Xiamen Torch Hi-Tech Industrial Development Zone, Xiamen,China\r
-                               Xiamen  Fujian  361005\r
-                               CN\r
-\r
 08-E9-F6   (hex)               AMPAK Technology,Inc.\r
 08E9F6     (base 16)           AMPAK Technology,Inc.\r
                                3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
@@ -67235,6 +67403,18 @@ CCC261     (base 16)           IEEE Registration Authority
                                Piscataway  NJ  08554\r
                                US\r
 \r
+38-F0-C8   (hex)               Mevo Inc.\r
+38F0C8     (base 16)           Mevo Inc.\r
+                               19 Morris Avenue\r
+                               Brooklyn  NY  11205\r
+                               US\r
+\r
+7C-76-35   (hex)               Intel Corporate\r
+7C7635     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
 74-70-FD   (hex)               Intel Corporate\r
 7470FD     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
@@ -67265,66 +67445,48 @@ C0B6F9     (base 16)          Intel Corporate
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-48-A4-72   (hex)               Intel Corporate\r
-48A472     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-D8-F2-CA   (hex)               Intel Corporate\r
-D8F2CA     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-48-F1-7F   (hex)               Intel Corporate\r
-48F17F     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
 44-56-E2   (hex)               Sichuan Tianyi Comheart Telecom Co., Ltd.\r
 4456E2     (base 16)           Sichuan Tianyi Comheart Telecom Co., Ltd.\r
                                No.198,First Section,Snow Mountain Avenue, Jinyuan Town, Dayi County\r
                                Chengdu  Sichuan  611330\r
                                CN\r
 \r
+4C-C9-5E   (hex)               Samsung Electronics Co.,Ltd\r
+4CC95E     (base 16)           Samsung Electronics Co.,Ltd\r
+                               129, Samsung-ro, Youngtongl-Gu\r
+                               Suwon  Gyeonggi-Do  16677\r
+                               KR\r
+\r
 68-EC-C5   (hex)               Intel Corporate\r
 68ECC5     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-7C-76-35   (hex)               Intel Corporate\r
-7C7635     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-64-0B-D7   (hex)               Apple, Inc.\r
-640BD7     (base 16)           Apple, Inc.\r
+A8-91-3D   (hex)               Apple, Inc.\r
+A8913D     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-A8-91-3D   (hex)               Apple, Inc.\r
-A8913D     (base 16)           Apple, Inc.\r
+64-0B-D7   (hex)               Apple, Inc.\r
+640BD7     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-4C-C9-5E   (hex)               Samsung Electronics Co.,Ltd\r
-4CC95E     (base 16)           Samsung Electronics Co.,Ltd\r
-                               129, Samsung-ro, Youngtongl-Gu\r
-                               Suwon  Gyeonggi-Do  16677\r
-                               KR\r
-\r
 0C-3B-50   (hex)               Apple, Inc.\r
 0C3B50     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
+34-CF-F6   (hex)               Intel Corporate\r
+34CFF6     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
 78-2B-46   (hex)               Intel Corporate\r
 782B46     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
@@ -67349,6 +67511,18 @@ CCD9AC     (base 16)           Intel Corporate
                                Kulim  Kedah  09000\r
                                MY\r
 \r
+0C-7A-15   (hex)               Intel Corporate\r
+0C7A15     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+54-8D-5A   (hex)               Intel Corporate\r
+548D5A     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
 B8-9A-2A   (hex)               Intel Corporate\r
 B89A2A     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
@@ -67391,12 +67565,6 @@ BC542F     (base 16)           Intel Corporate
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-34-CF-F6   (hex)               Intel Corporate\r
-34CFF6     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
 C8-7E-A1   (hex)               TCL MOKA International Limited\r
 C87EA1     (base 16)           TCL MOKA International Limited\r
                                7/F, Building 22E 22 Science Park East Avenue\r
@@ -67457,14 +67625,20 @@ DCFB48     (base 16)          Intel Corporate
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-0C-7A-15   (hex)               Intel Corporate\r
-0C7A15     (base 16)           Intel Corporate\r
+48-A4-72   (hex)               Intel Corporate\r
+48A472     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-54-8D-5A   (hex)               Intel Corporate\r
-548D5A     (base 16)           Intel Corporate\r
+D8-F2-CA   (hex)               Intel Corporate\r
+D8F2CA     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+48-F1-7F   (hex)               Intel Corporate\r
+48F17F     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
                                Kulim  Kedah  09000\r
                                MY\r
@@ -67487,34 +67661,28 @@ DCFB48     (base 16)          Intel Corporate
                                Santa Ana  CA  92707\r
                                US\r
 \r
-AC-5F-EA   (hex)               OnePlus Technology (Shenzhen) Co., Ltd\r
-AC5FEA     (base 16)           OnePlus Technology (Shenzhen) Co., Ltd\r
-                               18C02, 18C03, 18C04 ,18C05,TAIRAN BUILDING,\r
-                               Shenzhen  Guangdong  518000\r
-                               CN\r
-\r
-04-4A-C6   (hex)               Aipon Electronics Co., Ltd\r
-044AC6     (base 16)           Aipon Electronics Co., Ltd\r
-                               #78, Qiaojiao Dong road, Qiaolong, Tangxia Town\r
-                               Dongguan City  Guangdong Province  523-710\r
-                               CN\r
-\r
 5C-D5-B5   (hex)               Shenzhen WiSiYiLink Technology Co.,Ltd\r
 5CD5B5     (base 16)           Shenzhen WiSiYiLink Technology Co.,Ltd\r
                                Building a 3, huafengzhigu Yuanshan hi tech Industrial Park, No.62, Yinhe Road, he'ao community, Yuanshan street, Longgang District\r
                                Shenzhen    518100\r
                                CN\r
 \r
+AC-5F-EA   (hex)               OnePlus Technology (Shenzhen) Co., Ltd\r
+AC5FEA     (base 16)           OnePlus Technology (Shenzhen) Co., Ltd\r
+                               18C02, 18C03, 18C04 ,18C05,TAIRAN BUILDING,\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
 88-94-8F   (hex)               Xi'an Zhisensor Technologies Co.,Ltd\r
 88948F     (base 16)           Xi'an Zhisensor Technologies Co.,Ltd\r
                                 No.52 Jinye 1st Road Xi'an,Shaanxi,China\r
                                Xi an  Xi an High-Tech Zone  710077\r
                                CN\r
 \r
-18-95-52   (hex)               1MORE\r
-189552     (base 16)           1MORE\r
-                               TianliaoBuilding F14, New Materials Industrial Park, Xueyuan Blvd?Nanshan\r
-                               Shenzhen  Guangdong  518055\r
+04-4A-C6   (hex)               Aipon Electronics Co., Ltd\r
+044AC6     (base 16)           Aipon Electronics Co., Ltd\r
+                               #78, Qiaojiao Dong road, Qiaolong, Tangxia Town\r
+                               Dongguan City  Guangdong Province  523-710\r
                                CN\r
 \r
 C0-FF-A8   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
@@ -67535,23 +67703,23 @@ FC1499     (base 16)          Aimore Acoustics Incorporation
                                Shenzhen   Guangdong  518055\r
                                CN\r
 \r
+18-95-52   (hex)               1MORE\r
+189552     (base 16)           1MORE\r
+                               TianliaoBuilding F14, New Materials Industrial Park, Xueyuan Blvd?Nanshan\r
+                               Shenzhen  Guangdong  518055\r
+                               CN\r
+\r
 98-C7-A4   (hex)               Shenzhen HS Fiber Communication Equipment CO., LTD\r
 98C7A4     (base 16)           Shenzhen HS Fiber Communication Equipment CO., LTD\r
                                6F, Bld#A, Dezhong Industrial Park, Yangmei Village, Bantian Town, Longgang District\r
                                Shenzhen  Guangdong  518129\r
                                CN\r
 \r
-00-BE-D5   (hex)               New H3C Technologies Co., Ltd\r
-00BED5     (base 16)           New H3C Technologies Co., Ltd\r
-                               466 Changhe Road, Binjiang District\r
-                               Hangzhou  Zhejiang  310052\r
-                               CN\r
-\r
-00-02-C4   (hex)               OPT Machine Vision Tech Co., Ltd\r
-0002C4     (base 16)           OPT Machine Vision Tech Co., Ltd\r
-                               no. 8 JInSheng Road, JinXia Zone, Chang'An Town\r
-                               Dongguan  Guangdong  523000\r
-                               CN\r
+00-05-C9   (hex)               LG Innotek\r
+0005C9     (base 16)           LG Innotek\r
+                               LG Component R&D Center\r
+                               Ansan-si  Gyeonggi-do  426-791\r
+                               KR\r
 \r
 AC-F1-08   (hex)               LG Innotek\r
 ACF108     (base 16)           LG Innotek\r
@@ -67565,6 +67733,12 @@ ACF108     (base 16)           LG Innotek
                                Hong Kong  Hong Kong  999077\r
                                HK\r
 \r
+00-BE-D5   (hex)               New H3C Technologies Co., Ltd\r
+00BED5     (base 16)           New H3C Technologies Co., Ltd\r
+                               466 Changhe Road, Binjiang District\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
+\r
 E8-6D-CB   (hex)               Samsung Electronics Co.,Ltd\r
 E86DCB     (base 16)           Samsung Electronics Co.,Ltd\r
                                #94-1, Imsoo-Dong\r
@@ -67577,12 +67751,6 @@ E86DCB     (base 16)           Samsung Electronics Co.,Ltd
                                Piscataway  NJ  08554\r
                                US\r
 \r
-00-05-C9   (hex)               LG Innotek\r
-0005C9     (base 16)           LG Innotek\r
-                               LG Component R&D Center\r
-                               Ansan-si  Gyeonggi-do  426-791\r
-                               KR\r
-\r
 0C-DC-7E   (hex)               Espressif Inc.\r
 0CDC7E     (base 16)           Espressif Inc.\r
                                Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
@@ -67595,6 +67763,18 @@ E86DCB     (base 16)           Samsung Electronics Co.,Ltd
                                Shenzhen    518055\r
                                CN\r
 \r
+60-32-B1   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
+6032B1     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
+                               Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
+                               Shenzhen  Guangdong  518057\r
+                               CN\r
+\r
+7C-FD-6B   (hex)               Xiaomi Communications Co Ltd\r
+7CFD6B     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
 7C-C7-7E   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
 7CC77E     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
                                No.5 DongXin Road\r
@@ -67631,22 +67811,10 @@ A0CFF5     (base 16)          zte corporation
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-C0-A3-6E   (hex)               BSkyB Ltd\r
-C0A36E     (base 16)           BSkyB Ltd\r
-                               130 Kings Road\r
-                               Brentwood  Essex  08854\r
-                               GB\r
-\r
-60-32-B1   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
-6032B1     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
-                               Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
-                               Shenzhen  Guangdong  518057\r
-                               CN\r
-\r
-7C-FD-6B   (hex)               Xiaomi Communications Co Ltd\r
-7CFD6B     (base 16)           Xiaomi Communications Co Ltd\r
-                               The Rainbow City of China Resources\r
-                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+00-02-C4   (hex)               OPT Machine Vision Tech Co., Ltd\r
+0002C4     (base 16)           OPT Machine Vision Tech Co., Ltd\r
+                               no. 8 JInSheng Road, JinXia Zone, Chang'An Town\r
+                               Dongguan  Guangdong  523000\r
                                CN\r
 \r
 E4-1F-7B   (hex)               Cisco Systems, Inc\r
@@ -67655,11 +67823,11 @@ E41F7B     (base 16)          Cisco Systems, Inc
                                San Jose  CA  94568\r
                                US\r
 \r
-18-26-49   (hex)               Intel Corporate\r
-182649     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
+C0-A3-6E   (hex)               BSkyB Ltd\r
+C0A36E     (base 16)           BSkyB Ltd\r
+                               130 Kings Road\r
+                               Brentwood  Essex  08854\r
+                               GB\r
 \r
 88-03-E9   (hex)               GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
 8803E9     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
@@ -67697,6 +67865,12 @@ DCEF80     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
+18-26-49   (hex)               Intel Corporate\r
+182649     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
 B4-6F-2D   (hex)               Wahoo Fitness\r
 B46F2D     (base 16)           Wahoo Fitness\r
                                90 W Wieuca Rd, Suite 110\r
@@ -67709,30 +67883,6 @@ B46F2D     (base 16)           Wahoo Fitness
                                Piscataway  NJ  08554\r
                                US\r
 \r
-84-6B-48   (hex)               ShenZhen EepuLink Co., Ltd.\r
-846B48     (base 16)           ShenZhen EepuLink Co., Ltd.\r
-                               4th Floor, Building 3, Nangang 1st industrial zone, Xili street, Nanshan district,\r
-                               ShenZhen  Guangdong  518000\r
-                               CN\r
-\r
-B4-60-ED   (hex)               Beijing Xiaomi Mobile Software Co., Ltd\r
-B460ED     (base 16)           Beijing Xiaomi Mobile Software Co., Ltd\r
-                               The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
-                               Beijing  Beijing  100085\r
-                               CN\r
-\r
-30-CC-21   (hex)               zte corporation\r
-30CC21     (base 16)           zte corporation\r
-                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
-                               shenzhen  guangdong  518057\r
-                               CN\r
-\r
-64-6C-80   (hex)               CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
-646C80     (base 16)           CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
-                               Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
-                               Chongqing  Chongqing  401332\r
-                               CN\r
-\r
 08-9E-01   (hex)               Quanta Computer Inc.\r
 089E01     (base 16)           Quanta Computer Inc.\r
                                No.211, Wen Hwa 2nd Rd\r
@@ -67745,12 +67895,24 @@ A81E84     (base 16)          Quanta Computer Inc.
                                Tao Yuan    33377\r
                                TW\r
 \r
+64-6C-80   (hex)               CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+646C80     (base 16)           CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+                               Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
+                               Chongqing  Chongqing  401332\r
+                               CN\r
+\r
 C0-18-50   (hex)               Quanta Computer Inc.\r
 C01850     (base 16)           Quanta Computer Inc.\r
                                No. 211, Wen-Hwa 2nd Rd.,Kuei-Shan Dist.\r
                                Taoyuan City  Taiwan  33377\r
                                TW\r
 \r
+30-CC-21   (hex)               zte corporation\r
+30CC21     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
 44-27-F3   (hex)               70mai Co.,Ltd.\r
 4427F3     (base 16)           70mai Co.,Ltd.\r
                                Room 2220, building 2, No. 588, Zixing road\r
@@ -67769,6 +67931,18 @@ C01850     (base 16)           Quanta Computer Inc.
                                Osaka    554-0024\r
                                JP\r
 \r
+84-6B-48   (hex)               ShenZhen EepuLink Co., Ltd.\r
+846B48     (base 16)           ShenZhen EepuLink Co., Ltd.\r
+                               4th Floor, Building 3, Nangang 1st industrial zone, Xili street, Nanshan district,\r
+                               ShenZhen  Guangdong  518000\r
+                               CN\r
+\r
+B4-60-ED   (hex)               Beijing Xiaomi Mobile Software Co., Ltd\r
+B460ED     (base 16)           Beijing Xiaomi Mobile Software Co., Ltd\r
+                               The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
+                               Beijing  Beijing  100085\r
+                               CN\r
+\r
 D4-F3-37   (hex)               Xunison Ltd.\r
 D4F337     (base 16)           Xunison Ltd.\r
                                25 Kilbarbery Business Park, Upper Nangor Road\r
@@ -67781,6 +67955,12 @@ D4F337     (base 16)           Xunison Ltd.
                                Chengdu  Sichuan  610041\r
                                CN\r
 \r
+58-E8-73   (hex)               HANGZHOU DANGBEI NETWORK TECH.Co.,Ltd\r
+58E873     (base 16)           HANGZHOU DANGBEI NETWORK TECH.Co.,Ltd\r
+                               Build C,Wanfu Center,Binkang Road No.228,Binjiang Area\r
+                               China    210051\r
+                               CN\r
+\r
 C0-B8-E6   (hex)               Ruijie Networks Co.,LTD\r
 C0B8E6     (base 16)           Ruijie Networks Co.,LTD\r
                                No. 2, 7th floor, xingwangruijie, haixi hi-tech industrial park, high-tech zone, fuzhou city\r
@@ -67799,18 +67979,6 @@ C0B8E6     (base 16)           Ruijie Networks Co.,LTD
                                San Jose  CA  94568\r
                                US\r
 \r
-58-E8-73   (hex)               HANGZHOU DANGBEI NETWORK TECH.Co.,Ltd\r
-58E873     (base 16)           HANGZHOU DANGBEI NETWORK TECH.Co.,Ltd\r
-                               Build C,Wanfu Center,Binkang Road No.228,Binjiang Area\r
-                               China    210051\r
-                               CN\r
-\r
-B0-30-C8   (hex)               Teal Drones, Inc.\r
-B030C8     (base 16)           Teal Drones, Inc.\r
-                               5200 South Highland Drive\r
-                               Holladay   UT  84117\r
-                               US\r
-\r
 DC-41-A9   (hex)               Intel Corporate\r
 DC41A9     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
@@ -67841,28 +68009,28 @@ D4A651     (base 16)          HANGZHOU AIXIANGJI TECHNOLOGY CO., LTD
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
+B0-30-C8   (hex)               Teal Drones, Inc.\r
+B030C8     (base 16)           Teal Drones, Inc.\r
+                               5200 South Highland Drive\r
+                               Holladay   UT  84117\r
+                               US\r
+\r
 44-AF-28   (hex)               Intel Corporate\r
 44AF28     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-9C-9D-7E   (hex)               Beijing Xiaomi Mobile Software Co., Ltd\r
-9C9D7E     (base 16)           Beijing Xiaomi Mobile Software Co., Ltd\r
-                               The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
-                               Beijing  Beijing  100085\r
-                               CN\r
-\r
-74-12-B3   (hex)               CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
-7412B3     (base 16)           CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
-                               Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
-                               Chongqing  Chongqing  401332\r
+84-22-5E   (hex)               SHENZHEN TECHNEWCHIP TECHNOLOGY CO.,LTD.\r
+84225E     (base 16)           SHENZHEN TECHNEWCHIP TECHNOLOGY CO.,LTD.\r
+                               XILI STREET\r
+                               SHENZHEN  GUANGDONG  5180000\r
                                CN\r
 \r
-94-47-B0   (hex)               BEIJING ESWIN COMPUTING TECHNOLOGY CO., LTD\r
-9447B0     (base 16)           BEIJING ESWIN COMPUTING TECHNOLOGY CO., LTD\r
-                               Room 2179, Floor2,Block D, Building 33, Centralised Office Area, No.99, Kechuangshisi Road, BDA, Beijing\r
-                               BEIJING  BEIJING  100176\r
+F8-5C-7D   (hex)               Shenzhen Honesty Electronics Co.,Ltd.\r
+F85C7D     (base 16)           Shenzhen Honesty Electronics Co.,Ltd.\r
+                               5/F,Zone B,Chitat Industrial Park,West Longping Road, Longgang District,Shenzhen City\r
+                               Shenzhen  Guangdong  518172\r
                                CN\r
 \r
 A0-68-1C   (hex)               GD Midea Air-Conditioning Equipment Co.,Ltd.\r
@@ -67871,12 +68039,6 @@ A0681C     (base 16)           GD Midea Air-Conditioning Equipment Co.,Ltd.
                                Foshan  Guangdong  528311\r
                                CN\r
 \r
-6C-44-2A   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-6C442A     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
 A4-7C-C9   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 A47CC9     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
@@ -67889,16 +68051,28 @@ C40D96     (base 16)          HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
-F8-5C-7D   (hex)               Shenzhen Honesty Electronics Co.,Ltd.\r
-F85C7D     (base 16)           Shenzhen Honesty Electronics Co.,Ltd.\r
-                               5/F,Zone B,Chitat Industrial Park,West Longping Road, Longgang District,Shenzhen City\r
-                               Shenzhen  Guangdong  518172\r
+6C-44-2A   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+6C442A     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
                                CN\r
 \r
-84-22-5E   (hex)               SHENZHEN TECHNEWCHIP TECHNOLOGY CO.,LTD.\r
-84225E     (base 16)           SHENZHEN TECHNEWCHIP TECHNOLOGY CO.,LTD.\r
-                               XILI STREET\r
-                               SHENZHEN  GUANGDONG  5180000\r
+84-2A-FD   (hex)               HP Inc.\r
+842AFD     (base 16)           HP Inc.\r
+                               10300 Energy Dr\r
+                               Spring  TX  77389\r
+                               US\r
+\r
+74-12-B3   (hex)               CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+7412B3     (base 16)           CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+                               Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
+                               Chongqing  Chongqing  401332\r
+                               CN\r
+\r
+94-47-B0   (hex)               BEIJING ESWIN COMPUTING TECHNOLOGY CO., LTD\r
+9447B0     (base 16)           BEIJING ESWIN COMPUTING TECHNOLOGY CO., LTD\r
+                               Room 2179, Floor2,Block D, Building 33, Centralised Office Area, No.99, Kechuangshisi Road, BDA, Beijing\r
+                               BEIJING  BEIJING  100176\r
                                CN\r
 \r
 E4-5A-D4   (hex)               Eltex Enterprise Ltd.\r
@@ -67907,18 +68081,6 @@ E45AD4     (base 16)           Eltex Enterprise Ltd.
                                Novosibirsk    630020\r
                                RU\r
 \r
-84-2A-FD   (hex)               HP Inc.\r
-842AFD     (base 16)           HP Inc.\r
-                               10300 Energy Dr\r
-                               Spring  TX  77389\r
-                               US\r
-\r
-1C-FE-2B   (hex)               Amazon Technologies Inc.\r
-1CFE2B     (base 16)           Amazon Technologies Inc.\r
-                               P.O Box 8102\r
-                               Reno  NV  89507\r
-                               US\r
-\r
 CC-48-3A   (hex)               Dell Inc.\r
 CC483A     (base 16)           Dell Inc.\r
                                One Dell Way\r
@@ -67931,6 +68093,24 @@ A4AE12     (base 16)           Hon Hai Precision Ind. Co., Ltd.
                                ShenZhen  GuangDong  518109\r
                                CN\r
 \r
+1C-FE-2B   (hex)               Amazon Technologies Inc.\r
+1CFE2B     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102\r
+                               Reno  NV  89507\r
+                               US\r
+\r
+EC-57-0D   (hex)               AFE Inc.\r
+EC570D     (base 16)           AFE Inc.\r
+                               11210 County Line Rd\r
+                               Mount Pleasant  WI  53177\r
+                               US\r
+\r
+9C-9D-7E   (hex)               Beijing Xiaomi Mobile Software Co., Ltd\r
+9C9D7E     (base 16)           Beijing Xiaomi Mobile Software Co., Ltd\r
+                               The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
+                               Beijing  Beijing  100085\r
+                               CN\r
+\r
 DC-A3-A2   (hex)               Feng mi(Beijing)technology co., LTD\r
 DCA3A2     (base 16)           Feng mi(Beijing)technology co., LTD\r
                                RenHe Town barracks south street 10 yuan 33 level 301\r
@@ -67949,30 +68129,24 @@ A8698C     (base 16)          Oracle Corporation
                                Redwood Shores  CA  94065\r
                                US\r
 \r
-EC-57-0D   (hex)               AFE Inc.\r
-EC570D     (base 16)           AFE Inc.\r
-                               11210 County Line Rd\r
-                               Mount Pleasant  WI  53177\r
-                               US\r
-\r
 A4-AC-0F   (hex)               Huawei Device Co., Ltd.\r
 A4AC0F     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-CC-FF-90   (hex)               Huawei Device Co., Ltd.\r
-CCFF90     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
 54-05-DB   (hex)               LCFC(HeFei) Electronics Technology co., ltd\r
 5405DB     (base 16)           LCFC(HeFei) Electronics Technology co., ltd\r
                                YunGu Road 3188-1\r
                                Hefei  Anhui  230000\r
                                CN\r
 \r
+CC-FF-90   (hex)               Huawei Device Co., Ltd.\r
+CCFF90     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 D4-D5-1B   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 D4D51B     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
@@ -68015,12 +68189,6 @@ C8E600     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
-FC-B3-BC   (hex)               Intel Corporate\r
-FCB3BC     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
 30-57-8E   (hex)               eero inc.\r
 30578E     (base 16)           eero inc.\r
                                660 3rd Street\r
@@ -68033,6 +68201,12 @@ FCB3BC     (base 16)           Intel Corporate
                                Taipei City    112030\r
                                TW\r
 \r
+48-4B-D4   (hex)               Technicolor CH USA Inc.\r
+484BD4     (base 16)           Technicolor CH USA Inc.\r
+                               5030 Sugarloaf Parkway Bldg 6 \r
+                               Lawrenceville  GA  30044\r
+                               US\r
+\r
 C8-16-DA   (hex)               Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
 C816DA     (base 16)           Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
                                No.178 Yulong Avenue, Yufengshan, Yubei District, Chongqing.\r
@@ -68045,24 +68219,24 @@ B04414     (base 16)          New H3C Technologies Co., Ltd
                                Hangzhou  Zhejiang  310052\r
                                CN\r
 \r
-48-4B-D4   (hex)               Technicolor CH USA Inc.\r
-484BD4     (base 16)           Technicolor CH USA Inc.\r
-                               5030 Sugarloaf Parkway Bldg 6 \r
-                               Lawrenceville  GA  30044\r
-                               US\r
-\r
-30-96-10   (hex)               Huawei Device Co., Ltd.\r
-309610     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
 78-45-58   (hex)               Ubiquiti Networks Inc.\r
 784558     (base 16)           Ubiquiti Networks Inc.\r
                                685 Third Avenue, 27th Floor\r
                                New York  NY  10017\r
                                US\r
 \r
+B4-FB-E3   (hex)               AltoBeam (China) Inc.\r
+B4FBE3     (base 16)           AltoBeam (China) Inc.\r
+                               B808, Tsinghua Tongfang Hi-Tech Plaza, Haidian\r
+                               Beijing  Beijing  100083\r
+                               CN\r
+\r
+18-87-40   (hex)               Xiaomi Communications Co Ltd\r
+188740     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
 64-F9-47   (hex)               Senscomm Semiconductor Co., Ltd.\r
 64F947     (base 16)           Senscomm Semiconductor Co., Ltd.\r
                                Room 303-309, 3rd Floor International Building, NO.2 Suzhou Avenue West\r
@@ -68087,30 +68261,6 @@ A0764E     (base 16)           Espressif Inc.
                                Shanghai  Shanghai  201203\r
                                CN\r
 \r
-B4-FB-E3   (hex)               AltoBeam (China) Inc.\r
-B4FBE3     (base 16)           AltoBeam (China) Inc.\r
-                               B808, Tsinghua Tongfang Hi-Tech Plaza, Haidian\r
-                               Beijing  Beijing  100083\r
-                               CN\r
-\r
-18-87-40   (hex)               Xiaomi Communications Co Ltd\r
-188740     (base 16)           Xiaomi Communications Co Ltd\r
-                               The Rainbow City of China Resources\r
-                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
-                               CN\r
-\r
-34-1C-F0   (hex)               Xiaomi Communications Co Ltd\r
-341CF0     (base 16)           Xiaomi Communications Co Ltd\r
-                               The Rainbow City of China Resources\r
-                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
-                               CN\r
-\r
-10-D7-B0   (hex)               Sagemcom Broadband SAS\r
-10D7B0     (base 16)           Sagemcom Broadband SAS\r
-                               250, route de l'Empereur\r
-                               Rueil Malmaison Cedex  hauts de seine  92848\r
-                               FR\r
-\r
 44-59-43   (hex)               zte corporation\r
 445943     (base 16)           zte corporation\r
                                12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
@@ -68123,6 +68273,12 @@ B4FBE3     (base 16)           AltoBeam (China) Inc.
                                shenzhen  guangdong  518057\r
                                CN\r
 \r
+30-96-10   (hex)               Huawei Device Co., Ltd.\r
+309610     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 74-8F-3C   (hex)               Apple, Inc.\r
 748F3C     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
@@ -68135,29 +68291,35 @@ B4FBE3     (base 16)          AltoBeam (China) Inc.
                                Cupertino  CA  95014\r
                                US\r
 \r
+34-1C-F0   (hex)               Xiaomi Communications Co Ltd\r
+341CF0     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
+30-B2-16   (hex)               Hitachi ABB Power Grids – Grid Automation\r
+30B216     (base 16)           Hitachi ABB Power Grids – Grid Automation\r
+                               Kallstadter Strasse 1\r
+                               Mannheim    68309\r
+                               DE\r
+\r
 6C-09-BF   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
 6C09BF     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
                                No.5 DongXin Road\r
                                Wuhan  Hubei  430074\r
                                CN\r
 \r
-30-AF-CE   (hex)               vivo Mobile Communication Co., Ltd.\r
-30AFCE     (base 16)           vivo Mobile Communication Co., Ltd.\r
-                               #283,BBK Road\r
-                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
-                               CN\r
-\r
 FC-6D-D1   (hex)               APRESIA Systems, Ltd.\r
 FC6DD1     (base 16)           APRESIA Systems, Ltd.\r
                                Tsukuba Network Technical Center, Kidamari 3550\r
                                Tsuchiura-shi  Ibaraki-ken  300-0026\r
                                JP\r
 \r
-80-C9-55   (hex)               Redpine Signals, Inc.\r
-80C955     (base 16)           Redpine Signals, Inc.\r
-                               Plot 87, Sagar Society \r
-                               Hyderabad  AP  500034\r
-                               IN\r
+10-D7-B0   (hex)               Sagemcom Broadband SAS\r
+10D7B0     (base 16)           Sagemcom Broadband SAS\r
+                               250, route de l'Empereur\r
+                               Rueil Malmaison Cedex  hauts de seine  92848\r
+                               FR\r
 \r
 CC-4F-5C   (hex)               IEEE Registration Authority\r
 CC4F5C     (base 16)           IEEE Registration Authority\r
@@ -68165,12 +68327,6 @@ CC4F5C     (base 16)           IEEE Registration Authority
                                Piscataway  NJ  08554\r
                                US\r
 \r
-30-B2-16   (hex)               Hitachi ABB Power Grids – Grid Automation\r
-30B216     (base 16)           Hitachi ABB Power Grids – Grid Automation\r
-                               Kallstadter Strasse 1\r
-                               Mannheim    68309\r
-                               DE\r
-\r
 4C-6D-58   (hex)               Juniper Networks\r
 4C6D58     (base 16)           Juniper Networks\r
                                1133 Innovation Way\r
@@ -68183,12 +68339,6 @@ CC4F5C     (base 16)           IEEE Registration Authority
                                Roseville  CA  95747\r
                                US\r
 \r
-30-D0-42   (hex)               Dell Inc.\r
-30D042     (base 16)           Dell Inc.\r
-                               One Dell Way\r
-                               Round Rock  TX  78682\r
-                               US\r
-\r
 C0-C9-E3   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
 C0C9E3     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
                                Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
@@ -68213,12 +68363,6 @@ C4278C     (base 16)           Huawei Device Co., Ltd.
                                São José  Santa Catarina  88104800\r
                                BR\r
 \r
-18-CC-18   (hex)               Intel Corporate\r
-18CC18     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
 7C-73-EB   (hex)               Huawei Device Co., Ltd.\r
 7C73EB     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -68231,22 +68375,22 @@ E48F1D     (base 16)          Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-84-E3-42   (hex)               Tuya?HK?Limietd\r
-84E342     (base 16)           Tuya?HK?Limietd\r
-                               FLAT/RM 806 BLK ? 8/F CHEUNG SHA WAN PLAZA 833 CHEUNG SHA WAN ROAD KL\r
-                               hongkong  Hong Kong  999077\r
+30-AF-CE   (hex)               vivo Mobile Communication Co., Ltd.\r
+30AFCE     (base 16)           vivo Mobile Communication Co., Ltd.\r
+                               #283,BBK Road\r
+                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
                                CN\r
 \r
-C0-3C-59   (hex)               Intel Corporate\r
-C03C59     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
+80-C9-55   (hex)               Redpine Signals, Inc.\r
+80C955     (base 16)           Redpine Signals, Inc.\r
+                               Plot 87, Sagar Society \r
+                               Hyderabad  AP  500034\r
+                               IN\r
 \r
-FC-CD-2F   (hex)               IEEE Registration Authority\r
-FCCD2F     (base 16)           IEEE Registration Authority\r
-                               445 Hoes Lane\r
-                               Piscataway  NJ  08554\r
+30-D0-42   (hex)               Dell Inc.\r
+30D042     (base 16)           Dell Inc.\r
+                               One Dell Way\r
+                               Round Rock  TX  78682\r
                                US\r
 \r
 94-B2-71   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
@@ -68267,6 +68411,24 @@ C4A72B     (base 16)           SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD
                                SHENZHEN  GUANGDONG  518057\r
                                CN\r
 \r
+FC-CD-2F   (hex)               IEEE Registration Authority\r
+FCCD2F     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
+\r
+84-E3-42   (hex)               Tuya?HK?Limietd\r
+84E342     (base 16)           Tuya?HK?Limietd\r
+                               FLAT/RM 806 BLK ? 8/F CHEUNG SHA WAN PLAZA 833 CHEUNG SHA WAN ROAD KL\r
+                               hongkong  Hong Kong  999077\r
+                               CN\r
+\r
+4C-3B-DF   (hex)               Microsoft Corporation\r
+4C3BDF     (base 16)           Microsoft Corporation\r
+                               One Microsoft Way\r
+                               REDMOND  WA  98052\r
+                               US\r
+\r
 CC-F5-5F   (hex)               E FOCUS INSTRUMENTS INDIA PRIVATE LIMITED\r
 CCF55F     (base 16)           E FOCUS INSTRUMENTS INDIA PRIVATE LIMITED\r
                                PLOT NO 21, 1ST FLOOR, NO 22, SAMAYAPURAM MAIN ROAD PORUR\r
@@ -68297,12 +68459,6 @@ A4178B     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD
                                Qingdao  Shandong  266510\r
                                CN\r
 \r
-4C-3B-DF   (hex)               Microsoft Corporation\r
-4C3BDF     (base 16)           Microsoft Corporation\r
-                               One Microsoft Way\r
-                               REDMOND  WA  98052\r
-                               US\r
-\r
 08-7C-39   (hex)               Amazon Technologies Inc.\r
 087C39     (base 16)           Amazon Technologies Inc.\r
                                P.O Box 8102\r
@@ -68321,6 +68477,12 @@ FC1928     (base 16)           Actions Microelectronics Co., Ltd
                                Shenzhen  Gangdong  518057\r
                                CN\r
 \r
+00-1B-2E   (hex)               Sinkyo Electron Inc\r
+001B2E     (base 16)           Sinkyo Electron Inc\r
+                               1-22-19 Daimachi\r
+                               Hachioji-city   Tokyo  193-0931\r
+                               JP\r
+\r
 3C-D2-E5   (hex)               New H3C Technologies Co., Ltd\r
 3CD2E5     (base 16)           New H3C Technologies Co., Ltd\r
                                466 Changhe Road, Binjiang District\r
@@ -68357,28 +68519,10 @@ E0913C     (base 16)          Kyeungin CNS Co., Ltd.
                                Moscow    117105\r
                                RU\r
 \r
-00-1B-2E   (hex)               Sinkyo Electron Inc\r
-001B2E     (base 16)           Sinkyo Electron Inc\r
-                               1-22-19 Daimachi\r
-                               Hachioji-city   Tokyo  193-0931\r
-                               JP\r
-\r
-C4-37-72   (hex)               Virtuozzo International GmbH\r
-C43772     (base 16)           Virtuozzo International GmbH\r
-                               Vordergasse 59\r
-                               Schaffhausen    8200\r
-                               CH\r
-\r
-CC-3B-27   (hex)               TECNO MOBILE LIMITED\r
-CC3B27     (base 16)           TECNO MOBILE LIMITED\r
-                               ROOMS 05-15, 13A/F., SOUTH TOWER, WORLD FINANCE CENTRE, HARBOUR CITY, 17 CANTON ROAD, TSIM SHA TSUI, KOWLOON, HONG KONG\r
-                               Hong Kong  Hong Kong  999077\r
-                               HK\r
-\r
-08-58-A5   (hex)               Beijing Vrv Software Corpoaration Limited.\r
-0858A5     (base 16)           Beijing Vrv Software Corpoaration Limited.\r
-                               Room 1602, block C, Zhongguancun Science and technology development building, 34 Zhongguancun South Street\r
-                               Beijing  Beijing  100000\r
+9C-73-70   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+9C7370     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
                                CN\r
 \r
 98-3F-60   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
@@ -68393,6 +68537,18 @@ C03FDD     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
+08-58-A5   (hex)               Beijing Vrv Software Corpoaration Limited.\r
+0858A5     (base 16)           Beijing Vrv Software Corpoaration Limited.\r
+                               Room 1602, block C, Zhongguancun Science and technology development building, 34 Zhongguancun South Street\r
+                               Beijing  Beijing  100000\r
+                               CN\r
+\r
+CC-3B-27   (hex)               TECNO MOBILE LIMITED\r
+CC3B27     (base 16)           TECNO MOBILE LIMITED\r
+                               ROOMS 05-15, 13A/F., SOUTH TOWER, WORLD FINANCE CENTRE, HARBOUR CITY, 17 CANTON ROAD, TSIM SHA TSUI, KOWLOON, HONG KONG\r
+                               Hong Kong  Hong Kong  999077\r
+                               HK\r
+\r
 30-32-35   (hex)               Qingdao Intelligent&Precise Electronics Co.,Ltd.\r
 303235     (base 16)           Qingdao Intelligent&Precise Electronics Co.,Ltd.\r
                                No.218 Qianwangang Road\r
@@ -68405,36 +68561,24 @@ E0E2E6     (base 16)          Espressif Inc.
                                Shanghai  Shanghai  201203\r
                                CN\r
 \r
-9C-73-70   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-9C7370     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
 58-24-29   (hex)               Google, Inc.\r
 582429     (base 16)           Google, Inc.\r
                                1600 Amphitheatre Parkway\r
                                Mountain View  CA  94043\r
                                US\r
 \r
+C4-37-72   (hex)               Virtuozzo International GmbH\r
+C43772     (base 16)           Virtuozzo International GmbH\r
+                               Vordergasse 59\r
+                               Schaffhausen    8200\r
+                               CH\r
+\r
 E8-0A-EC   (hex)               Jiangsu Hengtong Optic-Electric Co., LTD\r
 E80AEC     (base 16)           Jiangsu Hengtong Optic-Electric Co., LTD\r
                                88 Hengtong Dadao, Qidu Town, Wujiang District\r
                                Suzhou  Jiangsu Province  215200\r
                                CN\r
 \r
-C4-DE-7B   (hex)               Huawei Device Co., Ltd.\r
-C4DE7B     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-84-1B-77   (hex)               Intel Corporate\r
-841B77     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
 7C-C2-94   (hex)               Beijing Xiaomi Mobile Software Co., Ltd\r
 7CC294     (base 16)           Beijing Xiaomi Mobile Software Co., Ltd\r
                                The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
@@ -68453,6 +68597,18 @@ C4DE7B     (base 16)           Huawei Device Co., Ltd.
                                Tel Aviv    6789139\r
                                IL\r
 \r
+18-EE-86   (hex)               Novatel Wireless Solutions, Inc.\r
+18EE86     (base 16)           Novatel Wireless Solutions, Inc.\r
+                               9710 Scranton Rd., Suite 200\r
+                               San Diego  CA  92121\r
+                               US\r
+\r
+C4-DE-7B   (hex)               Huawei Device Co., Ltd.\r
+C4DE7B     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 6C-1A-75   (hex)               Huawei Device Co., Ltd.\r
 6C1A75     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -68465,24 +68621,6 @@ C4DE7B     (base 16)           Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-18-EE-86   (hex)               Novatel Wireless Solutions, Inc.\r
-18EE86     (base 16)           Novatel Wireless Solutions, Inc.\r
-                               9710 Scranton Rd., Suite 200\r
-                               San Diego  CA  92121\r
-                               US\r
-\r
-A0-9F-10   (hex)               SHENZHEN BILIAN ELECTRONIC CO.,LTD\r
-A09F10     (base 16)           SHENZHEN BILIAN ELECTRONIC CO.,LTD\r
-                               NO.268? Fuqian Rd, Jutang community, Guanlan Town, Longhua New district\r
-                               shenzhen  guangdong  518000\r
-                               CN\r
-\r
-20-1B-88   (hex)               Dongguan Liesheng Electronic Co., Ltd.\r
-201B88     (base 16)           Dongguan Liesheng Electronic Co., Ltd.\r
-                               F5, Building B, North Block, Gaosheng Tech Park, No. 84 Zhongli Road, Nancheng District, Dongguan Ci\r
-                               dongguan   guangdong  523000\r
-                               CN\r
-\r
 24-94-93   (hex)               FibRSol Global Network Limited\r
 249493     (base 16)           FibRSol Global Network Limited\r
                                17, Deep vihar, Vikas Nagar,, Near Mayank hospital,, Uttam Nagar,\r
@@ -68507,58 +68645,58 @@ FC4B57     (base 16)          Peerless Instrument Division of Curtiss-Wright
                                East Farmingdale  NY  11735\r
                                US\r
 \r
-5C-10-C5   (hex)               Samsung Electronics Co.,Ltd\r
-5C10C5     (base 16)           Samsung Electronics Co.,Ltd\r
-                               #94-1, Imsoo-Dong\r
-                               Gumi  Gyeongbuk  730-350\r
-                               KR\r
-\r
-E8-EB-34   (hex)               Cisco Systems, Inc\r
-E8EB34     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
-\r
-58-60-D8   (hex)               ARRIS Group, Inc.\r
-5860D8     (base 16)           ARRIS Group, Inc.\r
-                               6450 Sequence Drive\r
-                               San Diego  CA  92121\r
-                               US\r
-\r
 9C-9A-C0   (hex)               LEGO System A/S\r
 9C9AC0     (base 16)           LEGO System A/S\r
                                Aastvej 1\r
                                Billund    DK-7190\r
                                DK\r
 \r
+A0-9F-10   (hex)               SHENZHEN BILIAN ELECTRONIC CO.,LTD\r
+A09F10     (base 16)           SHENZHEN BILIAN ELECTRONIC CO.,LTD\r
+                               NO.268? Fuqian Rd, Jutang community, Guanlan Town, Longhua New district\r
+                               shenzhen  guangdong  518000\r
+                               CN\r
+\r
 3C-BD-C5   (hex)               Arcadyan Corporation\r
 3CBDC5     (base 16)           Arcadyan Corporation\r
                                No.8, Sec.2, Guangfu Rd.\r
                                Hsinchu City  Hsinchu  30071\r
                                TW\r
 \r
-DC-8C-1B   (hex)               vivo Mobile Communication Co., Ltd.\r
-DC8C1B     (base 16)           vivo Mobile Communication Co., Ltd.\r
-                               #283,BBK Road\r
-                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+20-1B-88   (hex)               Dongguan Liesheng Electronic Co., Ltd.\r
+201B88     (base 16)           Dongguan Liesheng Electronic Co., Ltd.\r
+                               F5, Building B, North Block, Gaosheng Tech Park, No. 84 Zhongli Road, Nancheng District, Dongguan Ci\r
+                               dongguan   guangdong  523000\r
                                CN\r
 \r
+58-60-D8   (hex)               ARRIS Group, Inc.\r
+5860D8     (base 16)           ARRIS Group, Inc.\r
+                               6450 Sequence Drive\r
+                               San Diego  CA  92121\r
+                               US\r
+\r
+50-A5-DC   (hex)               ARRIS Group, Inc.\r
+50A5DC     (base 16)           ARRIS Group, Inc.\r
+                               6450 Sequence Drive\r
+                               San Diego  CA  92121\r
+                               US\r
+\r
 A8-DA-0C   (hex)               SERVERCOM (INDIA) PRIVATE LIMITED\r
 A8DA0C     (base 16)           SERVERCOM (INDIA) PRIVATE LIMITED\r
                                E-43/1 OKHLA INDUSTRIAL AREA PHASE-II NEW DELHI SOUTH DELHI\r
                                NEW DELHI    110001\r
                                IN\r
 \r
-F8-53-29   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-F85329     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
+5C-10-C5   (hex)               Samsung Electronics Co.,Ltd\r
+5C10C5     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
 \r
-50-A5-DC   (hex)               ARRIS Group, Inc.\r
-50A5DC     (base 16)           ARRIS Group, Inc.\r
-                               6450 Sequence Drive\r
-                               San Diego  CA  92121\r
+E8-EB-34   (hex)               Cisco Systems, Inc\r
+E8EB34     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
                                US\r
 \r
 74-B7-B3   (hex)               Shenzhen YOUHUA Technology Co., Ltd\r
@@ -68567,32 +68705,62 @@ F85329     (base 16)          HUAWEI TECHNOLOGIES CO.,LTD
                                Shenzhen  Guangdong  518055\r
                                CN\r
 \r
+DC-8C-1B   (hex)               vivo Mobile Communication Co., Ltd.\r
+DC8C1B     (base 16)           vivo Mobile Communication Co., Ltd.\r
+                               #283,BBK Road\r
+                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+                               CN\r
+\r
+DC-9B-D6   (hex)               TCT mobile ltd\r
+DC9BD6     (base 16)           TCT mobile ltd\r
+                               No.86 hechang 7th road, zhongkai, Hi-Tech District\r
+                               Hui Zhou  Guang Dong  516006\r
+                               CN\r
+\r
+F8-53-29   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+F85329     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+04-E7-7E   (hex)               We Corporation Inc.\r
+04E77E     (base 16)           We Corporation Inc.\r
+                               201, 33, Deokcheon-ro, Manan-gu\r
+                               Anyang-si  Gyeonggi-do  14088\r
+                               KR\r
+\r
+F8-3B-7E   (hex)               Huawei Device Co., Ltd.\r
+F83B7E     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 88-15-C5   (hex)               Huawei Device Co., Ltd.\r
 8815C5     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-B4-1B-B0   (hex)               Apple, Inc.\r
-B41BB0     (base 16)           Apple, Inc.\r
+A0-78-17   (hex)               Apple, Inc.\r
+A07817     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-58-D3-49   (hex)               Apple, Inc.\r
-58D349     (base 16)           Apple, Inc.\r
+5C-87-30   (hex)               Apple, Inc.\r
+5C8730     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-F4-34-F0   (hex)               Apple, Inc.\r
-F434F0     (base 16)           Apple, Inc.\r
+B4-1B-B0   (hex)               Apple, Inc.\r
+B41BB0     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-B0-8C-75   (hex)               Apple, Inc.\r
-B08C75     (base 16)           Apple, Inc.\r
+58-D3-49   (hex)               Apple, Inc.\r
+58D349     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
@@ -68603,41 +68771,35 @@ A4AAFE     (base 16)          Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-F8-3B-7E   (hex)               Huawei Device Co., Ltd.\r
-F83B7E     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-9C-28-B3   (hex)               Apple, Inc.\r
-9C28B3     (base 16)           Apple, Inc.\r
+F4-34-F0   (hex)               Apple, Inc.\r
+F434F0     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-A0-78-17   (hex)               Apple, Inc.\r
-A07817     (base 16)           Apple, Inc.\r
+B0-8C-75   (hex)               Apple, Inc.\r
+B08C75     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-5C-87-30   (hex)               Apple, Inc.\r
-5C8730     (base 16)           Apple, Inc.\r
+14-6B-9A   (hex)               zte corporation\r
+146B9A     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+9C-28-B3   (hex)               Apple, Inc.\r
+9C28B3     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-DC-9B-D6   (hex)               TCT mobile ltd\r
-DC9BD6     (base 16)           TCT mobile ltd\r
-                               No.86 hechang 7th road, zhongkai, Hi-Tech District\r
-                               Hui Zhou  Guang Dong  516006\r
-                               CN\r
-\r
-74-EC-B2   (hex)               Amazon Technologies Inc.\r
-74ECB2     (base 16)           Amazon Technologies Inc.\r
-                               P.O Box 8102\r
-                               Reno  NV  89507\r
-                               US\r
+4C-52-EC   (hex)               SOLARWATT GmbH\r
+4C52EC     (base 16)           SOLARWATT GmbH\r
+                               Maria-Reiche-Str. 2a\r
+                               Dresden    01109\r
+                               DE\r
 \r
 70-40-FF   (hex)               Huawei Device Co., Ltd.\r
 7040FF     (base 16)           Huawei Device Co., Ltd.\r
@@ -68657,41 +68819,23 @@ E01FED     (base 16)          Nokia Shanghai Bell Co., Ltd.
                                Shanghai    201206\r
                                CN\r
 \r
-14-6B-9A   (hex)               zte corporation\r
-146B9A     (base 16)           zte corporation\r
-                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
-                               shenzhen  guangdong  518057\r
-                               CN\r
-\r
 78-32-1B   (hex)               D-Link International\r
 78321B     (base 16)           D-Link International\r
                                1 Internal Business Park, #03-12,The Synergy\r
                                Singapore   Singapore  609917\r
                                SG\r
 \r
-04-E7-7E   (hex)               We Corporation Inc.\r
-04E77E     (base 16)           We Corporation Inc.\r
-                               201, 33, Deokcheon-ro, Manan-gu\r
-                               Anyang-si  Gyeonggi-do  14088\r
-                               KR\r
-\r
-4C-52-EC   (hex)               SOLARWATT GmbH\r
-4C52EC     (base 16)           SOLARWATT GmbH\r
-                               Maria-Reiche-Str. 2a\r
-                               Dresden    01109\r
-                               DE\r
-\r
 30-D9-41   (hex)               Raydium Semiconductor Corp.\r
 30D941     (base 16)           Raydium Semiconductor Corp.\r
                                2F, No. 23, LiHsin Rd., Hsinchu Science Park\r
                                Hsinchu, Taiwan, R.O.C.    TW 300\r
                                TW\r
 \r
-00-26-43   (hex)               ALPSALPINE CO,.LTD\r
-002643     (base 16)           ALPSALPINE CO,.LTD\r
-                               1-2-1, Okinouchi,\r
-                               Soma-city,  Fukushima-pref.,  976-8501\r
-                               JP\r
+40-8F-9D   (hex)               Juniper Networks\r
+408F9D     (base 16)           Juniper Networks\r
+                               1133 Innovation Way\r
+                               Sunnyvale  CA  94089\r
+                               US\r
 \r
 38-C0-96   (hex)               ALPSALPINE CO,.LTD\r
 38C096     (base 16)           ALPSALPINE CO,.LTD\r
@@ -68711,6 +68855,258 @@ AC7A4D     (base 16)          ALPSALPINE CO,.LTD
                                Osaki  Miyagi-pref  989-6181\r
                                JP\r
 \r
+68-76-27   (hex)               Zhuhai Dingzhi Electronic Technology Co., Ltd\r
+687627     (base 16)           Zhuhai Dingzhi Electronic Technology Co., Ltd\r
+                               6th floor, No.2 Jinliang Road, Hongqi Town, Jinwan District\r
+                               Zhuhai  GuangDong  519000\r
+                               CN\r
+\r
+24-E4-C8   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+24E4C8     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+20-0B-CF   (hex)               Nintendo Co.,Ltd\r
+200BCF     (base 16)           Nintendo Co.,Ltd\r
+                               11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
+                               KYOTO  KYOTO  601-8501\r
+                               JP\r
+\r
+94-8E-D3   (hex)               Arista Networks\r
+948ED3     (base 16)           Arista Networks\r
+                               5453 Great America Parkway\r
+                               Santa Clara  CA  95054\r
+                               US\r
+\r
+00-26-43   (hex)               ALPSALPINE CO,.LTD\r
+002643     (base 16)           ALPSALPINE CO,.LTD\r
+                               1-2-1, Okinouchi,\r
+                               Soma-city,  Fukushima-pref.,  976-8501\r
+                               JP\r
+\r
+FC-B3-BC   (hex)               Intel Corporate\r
+FCB3BC     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+18-CC-18   (hex)               Intel Corporate\r
+18CC18     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+C0-3C-59   (hex)               Intel Corporate\r
+C03C59     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+84-1B-77   (hex)               Intel Corporate\r
+841B77     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+38-90-52   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+389052     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+C0-F6-EC   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+C0F6EC     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+CC-20-8C   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+CC208C     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+88-5A-85   (hex)               Wistron Neweb Corporation\r
+885A85     (base 16)           Wistron Neweb Corporation\r
+                               No.20,Park Avenue II,Hsinchu Science Park\r
+                               Hsin-Chu  R.O.C.  308\r
+                               TW\r
+\r
+D8-00-93   (hex)               Aurender Inc.\r
+D80093     (base 16)           Aurender Inc.\r
+                                #1612, OBIZTOWER, 126, Beolmal-ro, Dongan-gu\r
+                               Anyang-si  Gyeonggi-do  14057\r
+                               KR\r
+\r
+34-C9-3D   (hex)               Intel Corporate\r
+34C93D     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+00-15-E7   (hex)               Quantec Tontechnik\r
+0015E7     (base 16)           Quantec Tontechnik\r
+                               Maenherstr. 35\r
+                               München    D-81375\r
+                               DE\r
+\r
+2C-A5-9C   (hex)               Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+2CA59C     (base 16)           Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+                               No.555 Qianmo Road\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
+\r
+AC-78-D1   (hex)               Juniper Networks\r
+AC78D1     (base 16)           Juniper Networks\r
+                               1133 Innovation Way\r
+                               Sunnyvale  CA  94089\r
+                               US\r
+\r
+6C-98-EB   (hex)               Riverbed Technology, Inc.\r
+6C98EB     (base 16)           Riverbed Technology, Inc.\r
+                               680 Folsom St\r
+                               San Francisco  CA  94107\r
+                               US\r
+\r
+00-1F-F5   (hex)               Kongsberg Defence & Aerospace\r
+001FF5     (base 16)           Kongsberg Defence & Aerospace\r
+                               Kirkegaardsveien 45  P.O.Box 1003\r
+                               Kongsberg    NO-3601\r
+                               NO\r
+\r
+08-9A-C7   (hex)               zte corporation\r
+089AC7     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+74-4C-A1   (hex)               Liteon Technology Corporation\r
+744CA1     (base 16)           Liteon Technology Corporation\r
+                               4F, 90, Chien 1 Road\r
+                               New Taipei City  Taiwan  23585\r
+                               TW\r
+\r
+B4-B2-91   (hex)               LG Electronics\r
+B4B291     (base 16)           LG Electronics\r
+                               222 LG-ro, JINWI-MYEON\r
+                               Pyeongtaek-si  Gyeonggi-do  451-713\r
+                               KR\r
+\r
+BC-6D-05   (hex)               Dusun Electron Co.,Ltd.\r
+BC6D05     (base 16)           Dusun Electron Co.,Ltd.\r
+                               NO.640 FengQing str.,DeQing, ZheJiang, China\r
+                               huzhou  zhejiang  313200\r
+                               CN\r
+\r
+C0-41-21   (hex)               Nokia Solutions and Networks GmbH & Co. KG\r
+C04121     (base 16)           Nokia Solutions and Networks GmbH & Co. KG\r
+                               Werinherstrasse 91\r
+                               München  Bavaria  D-81541\r
+                               DE\r
+\r
+0C-7C-28   (hex)               Nokia Solutions and Networks GmbH & Co. KG\r
+0C7C28     (base 16)           Nokia Solutions and Networks GmbH & Co. KG\r
+                               Werinherstrasse 91\r
+                               München  Bavaria  D-81541\r
+                               DE\r
+\r
+20-78-52   (hex)               Nokia Solutions and Networks GmbH & Co. KG\r
+207852     (base 16)           Nokia Solutions and Networks GmbH & Co. KG\r
+                               Werinherstrasse 91\r
+                               München  Bavaria  D-81541\r
+                               DE\r
+\r
+C0-E0-18   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+C0E018     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+5C-E7-47   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+5CE747     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+A8-FF-BA   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+A8FFBA     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+7C-C2-C6   (hex)               TP-Link Corporation Limited\r
+7CC2C6     (base 16)           TP-Link Corporation Limited\r
+                               Room 901,9/F.New East Ocean Centre, 9 Science Museum Road\r
+                                Tsim Sha Tsui  Kowloon  999077\r
+                               HK\r
+\r
+74-EC-B2   (hex)               Amazon Technologies Inc.\r
+74ECB2     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102 \r
+                               Reno  NV  89507\r
+                               US\r
+\r
+C8-6C-3D   (hex)               Amazon Technologies Inc.\r
+C86C3D     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102 \r
+                               Reno  NV  89507\r
+                               US\r
+\r
+54-FA-96   (hex)               Nokia Solutions and Networks GmbH & Co. KG\r
+54FA96     (base 16)           Nokia Solutions and Networks GmbH & Co. KG\r
+                               Werinherstrasse 91\r
+                               München  Bavaria  D-81541\r
+                               DE\r
+\r
+20-EF-BD   (hex)               Roku, Inc\r
+20EFBD     (base 16)           Roku, Inc\r
+                               1155 Coleman Ave\r
+                               San Jose  CA  95110\r
+                               US\r
+\r
+EC-BE-5F   (hex)               Vestel Elektronik San ve Tic. A.Ş.\r
+ECBE5F     (base 16)           Vestel Elektronik San ve Tic. A.Ş.\r
+                               Organize san\r
+                               Manisa  Turket  45030\r
+                               TR\r
+\r
+A4-42-3B   (hex)               Intel Corporate\r
+A4423B     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+70-CF-49   (hex)               Intel Corporate\r
+70CF49     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+48-51-C5   (hex)               Intel Corporate\r
+4851C5     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+74-50-4E   (hex)               New H3C Technologies Co., Ltd\r
+74504E     (base 16)           New H3C Technologies Co., Ltd\r
+                               466 Changhe Road, Binjiang District\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
+\r
+8C-0F-C9   (hex)               Huawei Device Co., Ltd.\r
+8C0FC9     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+30-4E-1B   (hex)               Huawei Device Co., Ltd.\r
+304E1B     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 84-80-94   (hex)               Meter, Inc.\r
 848094     (base 16)           Meter, Inc.\r
                                148 Townsend St\r
@@ -68990,12 +69386,6 @@ ECA5DE     (base 16)           ONYX WIFI Inc
                                Irvine    92618\r
                                US\r
 \r
-8C-49-62   (hex)               Roku, Inc\r
-8C4962     (base 16)           Roku, Inc\r
-                               150 Winchester Circle\r
-                               Los Gatos  CA  95032\r
-                               US\r
-\r
 10-33-BF   (hex)               Technicolor CH USA Inc.\r
 1033BF     (base 16)           Technicolor CH USA Inc.\r
                                5030 Sugarloaf Parkway Bldg 6 \r
@@ -70313,12 +70703,6 @@ B0E7DE     (base 16)           Homa Technologies JSC
                                Tianjin Pilot Free Trade Zone Airport EconomicArea  Airport International Logistics Zone, Tianjin  300300\r
                                CN\r
 \r
-E4-D3-AA   (hex)               FUJITSU CONNECTED TECHNOLOGIES LIMITED\r
-E4D3AA     (base 16)           FUJITSU CONNECTED TECHNOLOGIES LIMITED\r
-                               4-1-1, Kamikodanaka, Nakahara-ku\r
-                               Kawasaki  Kanagawa  2118588\r
-                               JP\r
-\r
 D4-67-D3   (hex)               GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
 D467D3     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
                                NO.18 HAIBIN ROAD,\r
@@ -71813,12 +72197,6 @@ E0338E     (base 16)           Apple, Inc.
                                Qingdao  Shandong  266101\r
                                CN\r
 \r
-78-F9-B4   (hex)               Nokia\r
-78F9B4     (base 16)           Nokia\r
-                               Karaportti 3\r
-                               Espoo  Finland  02610\r
-                               FI\r
-\r
 D0-76-E7   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
 D076E7     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
                                Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
@@ -73883,12 +74261,6 @@ D45F25     (base 16)           Shenzhen YOUHUA Technology Co., Ltd
                                San Jose  CA  94568\r
                                US\r
 \r
-C8-3A-6B   (hex)               Roku, Inc\r
-C83A6B     (base 16)           Roku, Inc\r
-                               150 Winchester Circle\r
-                               Los Gatos  CA  95032\r
-                               US\r
-\r
 B4-C6-F8   (hex)               Axilspot Communication\r
 B4C6F8     (base 16)           Axilspot Communication\r
                                A302 Han's Innovation Building, No.9018 Beihuan Ave., Nanshan District\r
@@ -77225,12 +77597,6 @@ BCC6DB     (base 16)           Nokia Corporation
                                Salo  NA  24101\r
                                FI\r
 \r
-60-A8-FE   (hex)               Nokia\r
-60A8FE     (base 16)           Nokia\r
-                               Karaportti 3\r
-                               Espoo    02610\r
-                               FI\r
-\r
 00-11-9F   (hex)               Nokia Danmark A/S\r
 00119F     (base 16)           Nokia Danmark A/S\r
                                Frederikskaj\r
@@ -80585,12 +80951,6 @@ ECEED8     (base 16)           ZTLX Network Technology Co.,Ltd
                                HangZhou  ZheJiang  311258\r
                                CN\r
 \r
-D8-EF-CD   (hex)               Nokia\r
-D8EFCD     (base 16)           Nokia\r
-                               Karaportti 3\r
-                               Espoo  Finland  02610\r
-                               FI\r
-\r
 4C-C6-81   (hex)               Shenzhen Aisat Electronic Co., Ltd.\r
 4CC681     (base 16)           Shenzhen Aisat Electronic Co., Ltd.\r
                                Golden Building 419#, Design Park,\r
@@ -101006,28 +101366,34 @@ E84943     (base 16)                YUGE Information technology Co. Ltd
                                York    YO30 4RY\r
                                GB\r
 \r
+28-11-EC   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+2811EC     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
 B0-B1-94   (hex)               zte corporation\r
 B0B194     (base 16)           zte corporation\r
                                12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
                                shenzhen  guangdong  518057\r
                                CN\r
 \r
-10-C3-AB   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-10C3AB     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
+E4-26-86   (hex)               DWnet Technologies(Suzhou) Corporation\r
+E42686     (base 16)           DWnet Technologies(Suzhou) Corporation\r
+                               No.8,Tangzhuang Road, Suzhou Industrial Park, Jiangsu, China\r
+                               Suzhou    21500\r
                                CN\r
 \r
-28-11-EC   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-2811EC     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+38-EB-47   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+38EB47     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
                                Dongguan    523808\r
                                CN\r
 \r
-E4-26-86   (hex)               DWnet Technologies(Suzhou) Corporation\r
-E42686     (base 16)           DWnet Technologies(Suzhou) Corporation\r
-                               No.8,Tangzhuang Road, Suzhou Industrial Park, Jiangsu, China\r
-                               Suzhou    21500\r
+10-C3-AB   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+10C3AB     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
                                CN\r
 \r
 00-69-2D   (hex)               Sunnovo International Limited\r
@@ -101036,12 +101402,6 @@ E42686     (base 16)         DWnet Technologies(Suzhou) Corporation
                                Beijing  Beijing  100083\r
                                CN\r
 \r
-38-EB-47   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-38EB47     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
 0C-37-96   (hex)               BIZLINK TECHNOLOGY, INC.\r
 0C3796     (base 16)           BIZLINK TECHNOLOGY, INC.\r
                                47211 BAYSIDE PARKWAY\r
@@ -101078,17 +101438,23 @@ B4157E     (base 16)                Celona Inc.
                                Yantai  Shandong  264000\r
                                CN\r
 \r
+70-38-11   (hex)               Siemens Mobility Limited\r
+703811     (base 16)           Siemens Mobility Limited\r
+                               17 Langley Park Way\r
+                               Chippenham  Wiltshire  SN15 1GG\r
+                               GB\r
+\r
 00-E0-EC   (hex)               CELESTICA INC.\r
 00E0EC     (base 16)           CELESTICA INC.\r
                                1900-5140 Yonge Street PO Box 42   \r
                                Toronto  Ontario  M2N 6L7\r
                                CA\r
 \r
-70-38-11   (hex)               Siemens Mobility Limited\r
-703811     (base 16)           Siemens Mobility Limited\r
-                               17 Langley Park Way\r
-                               Chippenham  Wiltshire  SN15 1GG\r
-                               GB\r
+B8-90-47   (hex)               Apple, Inc.\r
+B89047     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
 64-62-66   (hex)               IEEE Registration Authority\r
 646266     (base 16)           IEEE Registration Authority\r
@@ -101114,6 +101480,12 @@ B4157E     (base 16)         Celona Inc.
                                Mianyang  Sichuan  622650\r
                                CN\r
 \r
+20-82-6A   (hex)               GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+20826A     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+                               NO.18 HAIBIN ROAD,\r
+                               DONG GUAN  GUANG DONG  523860\r
+                               CN\r
+\r
 D8-5F-77   (hex)               Telink Semiconductor (Shanghai) Co., Ltd.\r
 D85F77     (base 16)           Telink Semiconductor (Shanghai) Co., Ltd.\r
                                No. 1500 Zuchongzhi Rd, Building #3\r
@@ -101126,18 +101498,6 @@ D85F77     (base 16)         Telink Semiconductor (Shanghai) Co., Ltd.
                                minato-ku  Tokyo  108-0075\r
                                JP\r
 \r
-20-82-6A   (hex)               GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
-20826A     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
-                               NO.18 HAIBIN ROAD,\r
-                               DONG GUAN  GUANG DONG  523860\r
-                               CN\r
-\r
-B8-90-47   (hex)               Apple, Inc.\r
-B89047     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 90-9C-4A   (hex)               Apple, Inc.\r
 909C4A     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
@@ -101162,6 +101522,30 @@ B89047     (base 16)         Apple, Inc.
                                Cupertino  CA  95014\r
                                US\r
 \r
+F0-10-90   (hex)               New H3C Technologies Co., Ltd\r
+F01090     (base 16)           New H3C Technologies Co., Ltd\r
+                               466 Changhe Road, Binjiang District\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
+\r
+20-50-E7   (hex)               AMPAK Technology,Inc.\r
+2050E7     (base 16)           AMPAK Technology,Inc.\r
+                               3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
+                               Hsinchu  Hsinchu,Taiwan R.O.C.  30352\r
+                               TW\r
+\r
+38-22-E2   (hex)               HP Inc.\r
+3822E2     (base 16)           HP Inc.\r
+                               10300 Energy Dr\r
+                               Spring  TX  77389\r
+                               US\r
+\r
+70-1F-3C   (hex)               Samsung Electronics Co.,Ltd\r
+701F3C     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
 D4-8A-39   (hex)               Samsung Electronics Co.,Ltd\r
 D48A39     (base 16)           Samsung Electronics Co.,Ltd\r
                                #94-1, Imsoo-Dong\r
@@ -101180,10 +101564,10 @@ E4F3C4     (base 16)                Samsung Electronics Co.,Ltd
                                shenzhen  guangdong  518057\r
                                CN\r
 \r
-F0-10-90   (hex)               New H3C Technologies Co., Ltd\r
-F01090     (base 16)           New H3C Technologies Co., Ltd\r
-                               466 Changhe Road, Binjiang District\r
-                               Hangzhou  Zhejiang  310052\r
+D8-A8-C8   (hex)               zte corporation\r
+D8A8C8     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
                                CN\r
 \r
 08-BF-A0   (hex)               Samsung Electronics Co.,Ltd\r
@@ -101192,29 +101576,23 @@ F01090     (base 16)                New H3C Technologies Co., Ltd
                                Gumi  Gyeongbuk  730-350\r
                                KR\r
 \r
-70-1F-3C   (hex)               Samsung Electronics Co.,Ltd\r
-701F3C     (base 16)           Samsung Electronics Co.,Ltd\r
-                               #94-1, Imsoo-Dong\r
-                               Gumi  Gyeongbuk  730-350\r
-                               KR\r
-\r
-20-50-E7   (hex)               AMPAK Technology,Inc.\r
-2050E7     (base 16)           AMPAK Technology,Inc.\r
-                               3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
-                               Hsinchu  Hsinchu,Taiwan R.O.C.  30352\r
-                               TW\r
+5C-55-78   (hex)               iryx corp\r
+5C5578     (base 16)           iryx corp\r
+                               14 Hughes\r
+                               Irvine  CA  92618\r
+                               US\r
 \r
-D8-A8-C8   (hex)               zte corporation\r
-D8A8C8     (base 16)           zte corporation\r
-                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
-                               shenzhen  guangdong  518057\r
+B8-C6-AA   (hex)               Earda Technologies co Ltd\r
+B8C6AA     (base 16)           Earda Technologies co Ltd\r
+                               Block A,Lianfeng Creative Park, #2 Jisheng Rd., Nansha District\r
+                               Guangzhou  Guangdong  511455\r
                                CN\r
 \r
-38-22-E2   (hex)               HP Inc.\r
-3822E2     (base 16)           HP Inc.\r
-                               10300 Energy Dr\r
-                               Spring  TX  77389\r
-                               US\r
+54-AE-D0   (hex)               DASAN Networks, Inc. \r
+54AED0     (base 16)           DASAN Networks, Inc. \r
+                               DASAN Tower, 49, Daewangpangyo-ro, 644 Beon-gil, Bundang-gu\r
+                               Seongnam-si  Gyeonggi-do  13493\r
+                               KR\r
 \r
 08-C0-EB   (hex)               Mellanox Technologies, Inc.\r
 08C0EB     (base 16)           Mellanox Technologies, Inc.\r
@@ -101270,17 +101648,17 @@ D003EB     (base 16)                Texas Instruments
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-5C-55-78   (hex)               iryx corp\r
-5C5578     (base 16)           iryx corp\r
-                               14 Hughes\r
-                               Irvine  CA  92618\r
+40-DE-AD   (hex)               Juniper Networks\r
+40DEAD     (base 16)           Juniper Networks\r
+                               1133 Innovation Way\r
+                               Sunnyvale  CA  94089\r
                                US\r
 \r
-6C-F7-12   (hex)               Nokia\r
-6CF712     (base 16)           Nokia\r
-                               Karaportti 3\r
-                               Espoo  Finland  02610\r
-                               FI\r
+68-B9-D3   (hex)               Shenzhen Trolink Technology CO, LTD\r
+68B9D3     (base 16)           Shenzhen Trolink Technology CO, LTD\r
+                               201 B building 4 shijie, Chashu industry 505 block, Baoan airport Sanwei community, Hangcheng street Baoan area.\r
+                               Shenzhen  GuangDong  518000\r
+                               CN\r
 \r
 4C-C5-3E   (hex)               Zyxel Communications Corporation\r
 4CC53E     (base 16)           Zyxel Communications Corporation\r
@@ -101294,35 +101672,47 @@ D003EB     (base 16)                Texas Instruments
                                Hong Kong  Hong Kong  999077\r
                                HK\r
 \r
+10-70-FD   (hex)               Mellanox Technologies, Inc.\r
+1070FD     (base 16)           Mellanox Technologies, Inc.\r
+                               350 Oakmead Parkway, Suite 100 \r
+                               Sunnyvale  CA  94085\r
+                               US\r
+\r
+98-ED-5C   (hex)               Tesla,Inc.\r
+98ED5C     (base 16)           Tesla,Inc.\r
+                               3500 Deer Creek Road\r
+                               Palo Alto  CA  94304\r
+                               US\r
+\r
+C4-42-68   (hex)               CRESTRON ELECTRONICS, INC.\r
+C44268     (base 16)           CRESTRON ELECTRONICS, INC.\r
+                               15 Volvo Drive\r
+                               Rockleigh  NJ  07647\r
+                               US\r
+\r
 B8-63-92   (hex)               GUANGDONG GENIUS TECHNOLOGY CO., LTD.\r
 B86392     (base 16)           GUANGDONG GENIUS TECHNOLOGY CO., LTD.\r
                                No.168, Middle Road Of East Gate\r
                                Xiaobian Community  Chang'an Town  523851\r
                                CN\r
 \r
-68-B9-D3   (hex)               Shenzhen Trolink Technology CO, LTD\r
-68B9D3     (base 16)           Shenzhen Trolink Technology CO, LTD\r
-                               201 B building 4 shijie, Chashu industry 505 block, Baoan airport Sanwei community, Hangcheng street Baoan area.\r
-                               Shenzhen  GuangDong  518000\r
+78-AA-82   (hex)               New H3C Technologies Co., Ltd\r
+78AA82     (base 16)           New H3C Technologies Co., Ltd\r
+                               466 Changhe Road, Binjiang District\r
+                               Hangzhou  Zhejiang  310052\r
                                CN\r
 \r
-B8-C6-AA   (hex)               Earda Technologies co Ltd\r
-B8C6AA     (base 16)           Earda Technologies co Ltd\r
-                               Block A,Lianfeng Creative Park, #2 Jisheng Rd., Nansha District\r
-                               Guangzhou  Guangdong  511455\r
+54-71-DD   (hex)               Huawei Device Co., Ltd.\r
+5471DD     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
                                CN\r
 \r
-54-AE-D0   (hex)               DASAN Networks, Inc. \r
-54AED0     (base 16)           DASAN Networks, Inc. \r
-                               DASAN Tower, 49, Daewangpangyo-ro, 644 Beon-gil, Bundang-gu\r
-                               Seongnam-si  Gyeonggi-do  13493\r
-                               KR\r
-\r
-10-70-FD   (hex)               Mellanox Technologies, Inc.\r
-1070FD     (base 16)           Mellanox Technologies, Inc.\r
-                               350 Oakmead Parkway, Suite 100 \r
-                               Sunnyvale  CA  94085\r
-                               US\r
+40-F5-20   (hex)               Espressif Inc.\r
+40F520     (base 16)           Espressif Inc.\r
+                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+                               Shanghai  Shanghai  201203\r
+                               CN\r
 \r
 38-F6-01   (hex)               Solid State Storage Technology Corporation\r
 38F601     (base 16)           Solid State Storage Technology Corporation\r
@@ -101330,23 +101720,11 @@ B8C6AA     (base 16)                Earda Technologies co Ltd
                                 Taipei    11492\r
                                TW\r
 \r
-40-DE-AD   (hex)               Juniper Networks\r
-40DEAD     (base 16)           Juniper Networks\r
-                               1133 Innovation Way\r
-                               Sunnyvale  CA  94089\r
-                               US\r
-\r
-40-F5-20   (hex)               Espressif Inc.\r
-40F520     (base 16)           Espressif Inc.\r
-                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
-                               Shanghai  Shanghai  201203\r
-                               CN\r
-\r
-78-AA-82   (hex)               New H3C Technologies Co., Ltd\r
-78AA82     (base 16)           New H3C Technologies Co., Ltd\r
-                               466 Changhe Road, Binjiang District\r
-                               Hangzhou  Zhejiang  310052\r
-                               CN\r
+60-54-64   (hex)               Eyedro Green Solutions Inc.\r
+605464     (base 16)           Eyedro Green Solutions Inc.\r
+                               130 Weber St W, Suite 201\r
+                               Kitchener  Ontario  N2H4A2\r
+                               CA\r
 \r
 20-6C-8A   (hex)               Extreme Networks, Inc.\r
 206C8A     (base 16)           Extreme Networks, Inc.\r
@@ -101366,30 +101744,6 @@ B8C6AA     (base 16)         Earda Technologies co Ltd
                                Milpitas  CA  95035\r
                                US\r
 \r
-88-5B-DD   (hex)               Extreme Networks, Inc.\r
-885BDD     (base 16)           Extreme Networks, Inc.\r
-                               1011 McCarthy Blvd\r
-                               Milpitas  CA  95035\r
-                               US\r
-\r
-98-ED-5C   (hex)               Tesla,Inc.\r
-98ED5C     (base 16)           Tesla,Inc.\r
-                               3500 Deer Creek Road\r
-                               Palo Alto  CA  94304\r
-                               US\r
-\r
-C4-42-68   (hex)               CRESTRON ELECTRONICS, INC.\r
-C44268     (base 16)           CRESTRON ELECTRONICS, INC.\r
-                               15 Volvo Drive\r
-                               Rockleigh  NJ  07647\r
-                               US\r
-\r
-54-71-DD   (hex)               Huawei Device Co., Ltd.\r
-5471DD     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
 E4-A7-49   (hex)               Palo Alto Networks\r
 E4A749     (base 16)           Palo Alto Networks\r
                                3000 Tannery Way\r
@@ -101402,6 +101756,12 @@ E4A749     (base 16)         Palo Alto Networks
                                Herzelia    46725\r
                                IL\r
 \r
+88-5B-DD   (hex)               Extreme Networks, Inc.\r
+885BDD     (base 16)           Extreme Networks, Inc.\r
+                               1011 McCarthy Blvd\r
+                               Milpitas  CA  95035\r
+                               US\r
+\r
 D8-91-36   (hex)               Dover Fueling Solutions\r
 D89136     (base 16)           Dover Fueling Solutions\r
                                Industrieweg 5\r
@@ -101414,6 +101774,12 @@ C88314     (base 16)         Tempo Communications
                                Vista  CA  92081\r
                                US\r
 \r
+FC-95-6A   (hex)               OCTAGON SYSTEMS CORP.\r
+FC956A     (base 16)           OCTAGON SYSTEMS CORP.\r
+                               7403 Church Ranch Blvd\r
+                               Westminster  CO  80021\r
+                               US\r
+\r
 B8-E3-EE   (hex)               Universal Electronics, Inc.\r
 B8E3EE     (base 16)           Universal Electronics, Inc.\r
                                201 E. Sandpointe Ave\r
@@ -101426,16 +101792,28 @@ B8E3EE     (base 16)                Universal Electronics, Inc.
                                Coimbatore  Tamil Nadu  641015\r
                                IN\r
 \r
-60-54-64   (hex)               Eyedro Green Solutions Inc.\r
-605464     (base 16)           Eyedro Green Solutions Inc.\r
-                               130 Weber St W, Suite 201\r
-                               Kitchener  Ontario  N2H4A2\r
-                               CA\r
+88-40-33   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+884033     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
 \r
-FC-95-6A   (hex)               OCTAGON SYSTEMS CORP.\r
-FC956A     (base 16)           OCTAGON SYSTEMS CORP.\r
-                               7403 Church Ranch Blvd\r
-                               Westminster  CO  80021\r
+AC-7A-56   (hex)               Cisco Systems, Inc\r
+AC7A56     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+C0-A6-6D   (hex)               Inspur Group Co., Ltd.\r
+C0A66D     (base 16)           Inspur Group Co., Ltd.\r
+                               No.1036 Langchao Rd.\r
+                               Jinan  Shandong  250101\r
+                               CN\r
+\r
+70-F0-96   (hex)               Cisco Systems, Inc\r
+70F096     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
                                US\r
 \r
 40-B3-1E   (hex)               Universal Electronics, Inc.\r
@@ -101444,46 +101822,52 @@ FC956A     (base 16)                OCTAGON SYSTEMS CORP.
                                Santa Ana  CA  92707\r
                                US\r
 \r
-88-40-33   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-884033     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
 E0-F6-B5   (hex)               Nintendo Co.,Ltd\r
 E0F6B5     (base 16)           Nintendo Co.,Ltd\r
                                11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
                                KYOTO  KYOTO  601-8501\r
                                JP\r
 \r
-AC-7A-56   (hex)               Cisco Systems, Inc\r
-AC7A56     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
-\r
 44-8D-BF   (hex)               Rhino Mobility LLC\r
 448DBF     (base 16)           Rhino Mobility LLC\r
                                8 The Green, Suite A\r
                                Dover  DE  19901\r
                                US\r
 \r
+00-05-1E   (hex)               Brocade Communications Systems LLC\r
+00051E     (base 16)           Brocade Communications Systems LLC\r
+                               1320 Ridder Park Dr\r
+                               San Jose  CA  95131\r
+                               US\r
+\r
 94-8A-C6   (hex)               Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
 948AC6     (base 16)           Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
                                No.178 Yulong Avenue, Yufengshan, Yubei District, Chongqing.\r
                                Chongqing   China  401120\r
                                CN\r
 \r
-C0-A6-6D   (hex)               Inspur Group Co., Ltd.\r
-C0A66D     (base 16)           Inspur Group Co., Ltd.\r
-                               No.1036 Langchao Rd.\r
-                               Jinan  Shandong  250101\r
+E0-D4-62   (hex)               Huawei Device Co., Ltd.\r
+E0D462     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
                                CN\r
 \r
-70-F0-96   (hex)               Cisco Systems, Inc\r
-70F096     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
+90-98-38   (hex)               Huawei Device Co., Ltd.\r
+909838     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+00-12-F2   (hex)               Brocade Communications Systems LLC\r
+0012F2     (base 16)           Brocade Communications Systems LLC\r
+                               1320 Ridder Park Dr\r
+                               San Jose  CA  95131\r
+                               US\r
+\r
+C4-F5-7C   (hex)               Brocade Communications Systems LLC\r
+C4F57C     (base 16)           Brocade Communications Systems LLC\r
+                               1320 Ridder Park Dr\r
+                               San Jose  CA  95131\r
                                US\r
 \r
 00-20-A6   (hex)               Proxim Wireless\r
@@ -101498,12 +101882,6 @@ C0A66D     (base 16)         Inspur Group Co., Ltd.
                                Hangzhou  Zhejiang  310052\r
                                CN\r
 \r
-00-05-1E   (hex)               Brocade Communications Systems LLC\r
-00051E     (base 16)           Brocade Communications Systems LLC\r
-                               1320 Ridder Park Dr\r
-                               San Jose  CA  95131\r
-                               US\r
-\r
 98-8B-0A   (hex)               Hangzhou Hikvision Digital Technology Co.,Ltd.\r
 988B0A     (base 16)           Hangzhou Hikvision Digital Technology Co.,Ltd.\r
                                No.555 Qianmo Road\r
@@ -101522,17 +101900,11 @@ ACCB51     (base 16)                Hangzhou Hikvision Digital Technology Co.,Ltd.
                                Hangzhou  Zhejiang  310052\r
                                CN\r
 \r
-E0-D4-62   (hex)               Huawei Device Co., Ltd.\r
-E0D462     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-90-98-38   (hex)               Huawei Device Co., Ltd.\r
-909838     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
+2C-9F-FB   (hex)               Wistron Neweb Corporation\r
+2C9FFB     (base 16)           Wistron Neweb Corporation\r
+                               No.20,Park Avenue II,Hsinchu Science Park\r
+                               Hsin-Chu  R.O.C.  308\r
+                               TW\r
 \r
 84-CC-A8   (hex)               Espressif Inc.\r
 84CCA8     (base 16)           Espressif Inc.\r
@@ -101540,41 +101912,29 @@ E0D462     (base 16)                Huawei Device Co., Ltd.
                                Shanghai  Shanghai  201203\r
                                CN\r
 \r
-C4-F5-7C   (hex)               Brocade Communications Systems LLC\r
-C4F57C     (base 16)           Brocade Communications Systems LLC\r
-                               1320 Ridder Park Dr\r
-                               San Jose  CA  95131\r
-                               US\r
-\r
-00-12-F2   (hex)               Brocade Communications Systems LLC\r
-0012F2     (base 16)           Brocade Communications Systems LLC\r
-                               1320 Ridder Park Dr\r
-                               San Jose  CA  95131\r
-                               US\r
+0C-14-D2   (hex)               China Mobile Group Device Co.,Ltd.\r
+0C14D2     (base 16)           China Mobile Group Device Co.,Ltd.\r
+                               32 Xuanwumen West Street,Xicheng District\r
+                               Beijing    100053\r
+                               CN\r
 \r
-6C-2F-8A   (hex)               Samsung Electronics Co.,Ltd\r
-6C2F8A     (base 16)           Samsung Electronics Co.,Ltd\r
-                               #94-1, Imsoo-Dong\r
-                               Gumi  Gyeongbuk  730-350\r
+70-8C-BB   (hex)               MIMODISPLAYKOREA\r
+708CBB     (base 16)           MIMODISPLAYKOREA\r
+                               #812, 19, Ojeongongeop-gil\r
+                               Uiwang-si  Gyeonggi-do  16072\r
                                KR\r
 \r
-F0-B0-22   (hex)               TOHO Electronics INC.\r
-F0B022     (base 16)           TOHO Electronics INC.\r
-                               1-13-21 Tanashioda, Chuo-Ku\r
-                               Sagamihara-City  Kanagawa  252-0245\r
-                               JP\r
-\r
 98-7E-CA   (hex)               Inventus Power Eletronica do Brasil LTDA\r
 987ECA     (base 16)           Inventus Power Eletronica do Brasil LTDA\r
                                Av Buriti, 4285 Distrito Industrial\r
                                Manaus  Amazonas  69075000\r
                                BR\r
 \r
-2C-9F-FB   (hex)               Wistron Neweb Corporation\r
-2C9FFB     (base 16)           Wistron Neweb Corporation\r
-                               No.20,Park Avenue II,Hsinchu Science Park\r
-                               Hsin-Chu  R.O.C.  308\r
-                               TW\r
+F0-B0-22   (hex)               TOHO Electronics INC.\r
+F0B022     (base 16)           TOHO Electronics INC.\r
+                               1-13-21 Tanashioda, Chuo-Ku\r
+                               Sagamihara-City  Kanagawa  252-0245\r
+                               JP\r
 \r
 50-38-2F   (hex)               ASE Group Chung-Li\r
 50382F     (base 16)           ASE Group Chung-Li\r
@@ -101582,28 +101942,10 @@ F0B022     (base 16)                TOHO Electronics INC.
                                Chung-Li , Taoyuan  Taoyuan  32016\r
                                TW\r
 \r
-0C-14-D2   (hex)               China Mobile Group Device Co.,Ltd.\r
-0C14D2     (base 16)           China Mobile Group Device Co.,Ltd.\r
-                               32 Xuanwumen West Street,Xicheng District\r
-                               Beijing    100053\r
-                               CN\r
-\r
-D4-F8-29   (hex)               Sagemcom Broadband SAS\r
-D4F829     (base 16)           Sagemcom Broadband SAS\r
-                               250, route de l'Empereur\r
-                               Rueil Malmaison Cedex  hauts de seine  92848\r
-                               FR\r
-\r
-E0-62-34   (hex)               Texas Instruments\r
-E06234     (base 16)           Texas Instruments\r
-                               12500 TI Blvd\r
-                               Dallas  TX  75243\r
-                               US\r
-\r
-70-8C-BB   (hex)               MIMODISPLAYKOREA\r
-708CBB     (base 16)           MIMODISPLAYKOREA\r
-                               #812, 19, Ojeongongeop-gil\r
-                               Uiwang-si  Gyeonggi-do  16072\r
+6C-2F-8A   (hex)               Samsung Electronics Co.,Ltd\r
+6C2F8A     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
                                KR\r
 \r
 B8-48-AA   (hex)               EM Microelectronic\r
@@ -101618,6 +101960,30 @@ D834EE     (base 16)         Stem Audio
                                Irvine  CA  92614\r
                                US\r
 \r
+D4-F8-29   (hex)               Sagemcom Broadband SAS\r
+D4F829     (base 16)           Sagemcom Broadband SAS\r
+                               250, route de l'Empereur\r
+                               Rueil Malmaison Cedex  hauts de seine  92848\r
+                               FR\r
+\r
+24-4B-FE   (hex)               ASUSTek COMPUTER INC.\r
+244BFE     (base 16)           ASUSTek COMPUTER INC.\r
+                               15,Li-Te Rd., Peitou, Taipei 112, Taiwan\r
+                               Taipei  Taiwan  112\r
+                               TW\r
+\r
+28-B3-71   (hex)               Ruckus Wireless\r
+28B371     (base 16)           Ruckus Wireless\r
+                               350 West Java Drive\r
+                               Sunnyvale  CA  94089\r
+                               US\r
+\r
+E0-62-34   (hex)               Texas Instruments\r
+E06234     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
+\r
 F8-57-2E   (hex)               Core Brands, LLC\r
 F8572E     (base 16)           Core Brands, LLC\r
                                5919 Sea Otter Place\r
@@ -101630,23 +101996,35 @@ F8572E     (base 16)                Core Brands, LLC
                                Carlsbad  CA  92010\r
                                US\r
 \r
-24-4B-FE   (hex)               ASUSTek COMPUTER INC.\r
-244BFE     (base 16)           ASUSTek COMPUTER INC.\r
-                               15,Li-Te Rd., Peitou, Taipei 112, Taiwan\r
-                               Taipei  Taiwan  112\r
-                               TW\r
+08-AC-C4   (hex)               FMTech\r
+08ACC4     (base 16)           FMTech\r
+                               yuehai\r
+                               ShenZhen    518000\r
+                               CN\r
 \r
-7C-DD-E9   (hex)               ATOM tech Inc.\r
-7CDDE9     (base 16)           ATOM tech Inc.\r
-                               Sky Menor Yokohama 422, 2-11-2 Takashima, Nishi-ku \r
-                               Yokohama-shi  Kanagawa  220-0011\r
-                               JP\r
+DC-50-3A   (hex)               Nanjing Ticom Tech Co., Ltd.\r
+DC503A     (base 16)           Nanjing Ticom Tech Co., Ltd.\r
+                               No.35 Fenghui Road, Yuhuatai District\r
+                               Nanjing  Jiangsu  210039\r
+                               CN\r
 \r
-F8-6B-D9   (hex)               Cisco Systems, Inc\r
-F86BD9     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
+18-47-3D   (hex)               CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+18473D     (base 16)           CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+                               Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
+                               Chongqing  Chongqing  401332\r
+                               CN\r
+\r
+F8-2F-65   (hex)               Huawei Device Co., Ltd.\r
+F82F65     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+08-31-A4   (hex)               Huawei Device Co., Ltd.\r
+0831A4     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
 \r
 C0-14-FE   (hex)               Cisco Systems, Inc\r
 C014FE     (base 16)           Cisco Systems, Inc\r
@@ -101660,47 +102038,29 @@ C014FE     (base 16)                Cisco Systems, Inc
                                San Jose  CA  94568\r
                                US\r
 \r
-08-31-A4   (hex)               Huawei Device Co., Ltd.\r
-0831A4     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
 A8-E9-78   (hex)               Huawei Device Co., Ltd.\r
 A8E978     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-F8-2F-65   (hex)               Huawei Device Co., Ltd.\r
-F82F65     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
+7C-DD-E9   (hex)               ATOM tech Inc.\r
+7CDDE9     (base 16)           ATOM tech Inc.\r
+                               Sky Menor Yokohama 422, 2-11-2 Takashima, Nishi-ku \r
+                               Yokohama-shi  Kanagawa  220-0011\r
+                               JP\r
 \r
-28-B3-71   (hex)               Ruckus Wireless\r
-28B371     (base 16)           Ruckus Wireless\r
-                               350 West Java Drive\r
-                               Sunnyvale  CA  94089\r
+F8-6B-D9   (hex)               Cisco Systems, Inc\r
+F86BD9     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
                                US\r
 \r
-08-AC-C4   (hex)               FMTech\r
-08ACC4     (base 16)           FMTech\r
-                               yuehai\r
-                               ShenZhen    518000\r
-                               CN\r
-\r
-DC-50-3A   (hex)               Nanjing Ticom Tech Co., Ltd.\r
-DC503A     (base 16)           Nanjing Ticom Tech Co., Ltd.\r
-                               No.35 Fenghui Road, Yuhuatai District\r
-                               Nanjing  Jiangsu  210039\r
-                               CN\r
-\r
-18-47-3D   (hex)               CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
-18473D     (base 16)           CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
-                               Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
-                               Chongqing  Chongqing  401332\r
-                               CN\r
+44-F4-E7   (hex)               Cohesity Inc\r
+44F4E7     (base 16)           Cohesity Inc\r
+                               300 park ave\r
+                               san jose  CA  95110\r
+                               US\r
 \r
 D4-77-B2   (hex)               Netix Global B.V.\r
 D477B2     (base 16)           Netix Global B.V.\r
@@ -101732,12 +102092,6 @@ D477B2     (base 16)         Netix Global B.V.
                                Sunnyvale  CA  94089\r
                                US\r
 \r
-44-F4-E7   (hex)               Cohesity Inc\r
-44F4E7     (base 16)           Cohesity Inc\r
-                               300 park ave\r
-                               san jose  CA  95110\r
-                               US\r
-\r
 70-69-79   (hex)               IEEE Registration Authority\r
 706979     (base 16)           IEEE Registration Authority\r
                                445 Hoes Lane\r
@@ -101762,6 +102116,12 @@ E8A1F8     (base 16)         zte corporation
                                Guangzhou  Guangdong  511458\r
                                CN\r
 \r
+10-8B-6A   (hex)               Antailiye Technology Co.,Ltd\r
+108B6A     (base 16)           Antailiye Technology Co.,Ltd\r
+                               7/F,Zhengjiyuan Buiding,2 Road,Qianjing, Xixiang, Baoan District,Shenzhen\r
+                               SHEN ZHEN  GUANGDONG  518000\r
+                               CN\r
+\r
 30-42-40   (hex)               zte corporation\r
 304240     (base 16)           zte corporation\r
                                12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
@@ -101780,18 +102140,36 @@ E8A1F8     (base 16)                zte corporation
                                San Jose  CA  94568\r
                                US\r
 \r
+60-F6-77   (hex)               Intel Corporate\r
+60F677     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+A0-88-69   (hex)               Intel Corporate\r
+A08869     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+74-E5-F9   (hex)               Intel Corporate\r
+74E5F9     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+80-00-0B   (hex)               Intel Corporate\r
+80000B     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
 24-F1-50   (hex)               Guangzhou Qi'an Technology Co., Ltd.\r
 24F150     (base 16)           Guangzhou Qi'an Technology Co., Ltd.\r
                                No. 3, Dasonggang, Jiangnan Avenue Middle Road, Haizhu District, Guangzhou (office only)\r
                                Guangzhou  Guangdong  510220\r
                                CN\r
 \r
-10-8B-6A   (hex)               Antailiye Technology Co.,Ltd\r
-108B6A     (base 16)           Antailiye Technology Co.,Ltd\r
-                               7/F,Zhengjiyuan Buiding,2 Road,Qianjing, Xixiang, Baoan District,Shenzhen\r
-                               SHEN ZHEN  GUANGDONG  518000\r
-                               CN\r
-\r
 14-C8-8B   (hex)               Apple, Inc.\r
 14C88B     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
@@ -101810,12 +102188,6 @@ EC2651     (base 16)         Apple, Inc.
                                Cupertino  CA  95014\r
                                US\r
 \r
-60-7E-C9   (hex)               Apple, Inc.\r
-607EC9     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 40-88-2F   (hex)               Extreme Networks, Inc.\r
 40882F     (base 16)           Extreme Networks, Inc.\r
                                6480 Via Del Oro\r
@@ -101828,6 +102200,30 @@ E43D1A     (base 16)         Broadcom Limited
                                Irvine  CA  92618\r
                                US\r
 \r
+60-7E-C9   (hex)               Apple, Inc.\r
+607EC9     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+08-FA-79   (hex)               vivo Mobile Communication Co., Ltd.\r
+08FA79     (base 16)           vivo Mobile Communication Co., Ltd.\r
+                               #283,BBK Road\r
+                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+                               CN\r
+\r
+8C-5E-BD   (hex)               Huawei Device Co., Ltd.\r
+8C5EBD     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+3C-F0-11   (hex)               Intel Corporate\r
+3CF011     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
 64-4C-36   (hex)               Intel Corporate\r
 644C36     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
@@ -101864,6 +102260,12 @@ E43D1A     (base 16)         Broadcom Limited
                                Kulim  Kedah  09000\r
                                MY\r
 \r
+34-41-5D   (hex)               Intel Corporate\r
+34415D     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
 94-B8-6D   (hex)               Intel Corporate\r
 94B86D     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
@@ -101900,35 +102302,11 @@ E43D1A     (base 16)                Broadcom Limited
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-60-F6-77   (hex)               Intel Corporate\r
-60F677     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-A0-88-69   (hex)               Intel Corporate\r
-A08869     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-74-E5-F9   (hex)               Intel Corporate\r
-74E5F9     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-80-00-0B   (hex)               Intel Corporate\r
-80000B     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-34-41-5D   (hex)               Intel Corporate\r
-34415D     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
+10-12-FB   (hex)               Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+1012FB     (base 16)           Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+                               No.555 Qianmo Road\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
 \r
 FC-77-74   (hex)               Intel Corporate\r
 FC7774     (base 16)           Intel Corporate\r
@@ -101942,12 +102320,6 @@ FC7774     (base 16)         Intel Corporate
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-3C-F0-11   (hex)               Intel Corporate\r
-3CF011     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
 28-7F-CF   (hex)               Intel Corporate\r
 287FCF     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
@@ -101978,29 +102350,23 @@ F8AC65     (base 16)                Intel Corporate
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-10-12-FB   (hex)               Hangzhou Hikvision Digital Technology Co.,Ltd.\r
-1012FB     (base 16)           Hangzhou Hikvision Digital Technology Co.,Ltd.\r
-                               No.555 Qianmo Road\r
-                               Hangzhou  Zhejiang  310052\r
-                               CN\r
-\r
-08-FA-79   (hex)               vivo Mobile Communication Co., Ltd.\r
-08FA79     (base 16)           vivo Mobile Communication Co., Ltd.\r
-                               #283,BBK Road\r
-                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
-                               CN\r
+CC-D0-83   (hex)               Aruba, a Hewlett Packard Enterprise Company\r
+CCD083     (base 16)           Aruba, a Hewlett Packard Enterprise Company\r
+                               3333 Scott Blvd\r
+                               Santa Clara  CA  95054\r
+                               US\r
 \r
-F0-9B-B8   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-F09BB8     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
+C0-1C-30   (hex)               Shenzhen WIFI-3L Technology Co.,Ltd\r
+C01C30     (base 16)           Shenzhen WIFI-3L Technology Co.,Ltd\r
+                               East 5 Floor,B Building, WeiHao Technology Park,Sunny Indusrtrial zone, Xili Town, Nanshan District\r
+                               Shenzhen  Guangdong  518055\r
                                CN\r
 \r
-BC-17-B8   (hex)               Intel Corporate\r
-BC17B8     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
+D8-C6-78   (hex)               MitraStar Technology Corp.\r
+D8C678     (base 16)           MitraStar Technology Corp.\r
+                               No. 6, Innovation Road II,\r
+                               Hsinchu    300\r
+                               TW\r
 \r
 B8-CB-29   (hex)               Dell Inc.\r
 B8CB29     (base 16)           Dell Inc.\r
@@ -102020,22 +102386,16 @@ B8CB29     (base 16)                Dell Inc.
                                Mountain View  CA  94043\r
                                US\r
 \r
-8C-5E-BD   (hex)               Huawei Device Co., Ltd.\r
-8C5EBD     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
 2C-A0-42   (hex)               Huawei Device Co., Ltd.\r
 2CA042     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-EC-C0-1B   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-ECC01B     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
+C0-83-C9   (hex)               Huawei Device Co., Ltd.\r
+C083C9     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
                                CN\r
 \r
 98-44-CE   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
@@ -102044,29 +102404,23 @@ ECC01B     (base 16)                HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
-CC-D0-83   (hex)               Aruba, a Hewlett Packard Enterprise Company\r
-CCD083     (base 16)           Aruba, a Hewlett Packard Enterprise Company\r
-                               3333 Scott Blvd\r
-                               Santa Clara  CA  95054\r
-                               US\r
-\r
-C0-83-C9   (hex)               Huawei Device Co., Ltd.\r
-C083C9     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
+F0-9B-B8   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+F09BB8     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
                                CN\r
 \r
-C0-1C-30   (hex)               Shenzhen WIFI-3L Technology Co.,Ltd\r
-C01C30     (base 16)           Shenzhen WIFI-3L Technology Co.,Ltd\r
-                               East 5 Floor,B Building, WeiHao Technology Park,Sunny Indusrtrial zone, Xili Town, Nanshan District\r
-                               Shenzhen  Guangdong  518055\r
+EC-C0-1B   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+ECC01B     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
                                CN\r
 \r
-D8-C6-78   (hex)               MitraStar Technology Corp.\r
-D8C678     (base 16)           MitraStar Technology Corp.\r
-                               No. 6, Innovation Road II,\r
-                               Hsinchu    300\r
-                               TW\r
+BC-17-B8   (hex)               Intel Corporate\r
+BC17B8     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
 \r
 44-1C-7F   (hex)               Motorola Mobility LLC, a Lenovo Company\r
 441C7F     (base 16)           Motorola Mobility LLC, a Lenovo Company\r
@@ -102080,12 +102434,6 @@ D8C678     (base 16)         MitraStar Technology Corp.
                                Chicago  IL  60654\r
                                US\r
 \r
-1C-E6-1D   (hex)               Samsung Electronics Co.,Ltd\r
-1CE61D     (base 16)           Samsung Electronics Co.,Ltd\r
-                               #94-1, Imsoo-Dong\r
-                               Gumi  Gyeongbuk  730-350\r
-                               KR\r
-\r
 80-12-DF   (hex)               Shenzhen SuperElectron Technology Co.,Ltd.\r
 8012DF     (base 16)           Shenzhen SuperElectron Technology Co.,Ltd.\r
                                1213-1214, haosheng business center, dongbin road, nanshan street, nanshan district, shenzhen city\r
@@ -102098,28 +102446,46 @@ C4A151     (base 16)                Sichuan Tianyi Comheart Telecom Co., Ltd.
                                Chengdu  Sichuan  611330\r
                                CN\r
 \r
+1C-E6-1D   (hex)               Samsung Electronics Co.,Ltd\r
+1CE61D     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
 10-E7-7A   (hex)               STMicrolectronics International NV\r
 10E77A     (base 16)           STMicrolectronics International NV\r
                                39, Chemin du Champ-des-Filles\r
                                 Geneva, Plan-les-Quates    1228\r
                                CH\r
 \r
+90-76-9F   (hex)               SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
+90769F     (base 16)           SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
+                               3/F, Building R1-B, High-Tech Industrial Park, Nanshan District\r
+                               Shenzhen  Guangdong  518057\r
+                               CN\r
+\r
 80-EA-07   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
 80EA07     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
                                Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
                                Shenzhen  Guangdong  518057\r
                                CN\r
 \r
+04-A2-F3   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+04A2F3     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
 BC-03-A7   (hex)               MFP MICHELIN\r
 BC03A7     (base 16)           MFP MICHELIN\r
                                23 place des Carmes Dechaux\r
                                Clermont-Ferrand    63000\r
                                FR\r
 \r
-90-76-9F   (hex)               SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
-90769F     (base 16)           SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
-                               3/F, Building R1-B, High-Tech Industrial Park, Nanshan District\r
-                               Shenzhen  Guangdong  518057\r
+2C-6F-51   (hex)               Herospeed Digital Technology Limited\r
+2C6F51     (base 16)           Herospeed Digital Technology Limited\r
+                               728 Kaichuang Avenue,Huangpu Distric\r
+                               Guangzhou  Guangdong  510530\r
                                CN\r
 \r
 98-2F-F8   (hex)               Huawei Device Co., Ltd.\r
@@ -102134,18 +102500,6 @@ BC03A7     (base 16)         MFP MICHELIN
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-2C-6F-51   (hex)               Herospeed Digital Technology Limited\r
-2C6F51     (base 16)           Herospeed Digital Technology Limited\r
-                               728 Kaichuang Avenue,Huangpu Distric\r
-                               Guangzhou  Guangdong  510530\r
-                               CN\r
-\r
-04-A2-F3   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-04A2F3     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan  Hubei  430074\r
-                               CN\r
-\r
 CC-DB-93   (hex)               Cisco Systems, Inc\r
 CCDB93     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
@@ -102224,6 +102578,12 @@ D00DF7     (base 16)         Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
+10-34-1B   (hex)               Spacelink\r
+10341B     (base 16)           Spacelink\r
+                               8830 Complex dr\r
+                               San Diego  CA  92123\r
+                               US\r
+\r
 F8-1B-04   (hex)               Zhong Shan City Richsound Electronic Industrial Ltd\r
 F81B04     (base 16)           Zhong Shan City Richsound Electronic Industrial Ltd\r
                                Qunle Industrial Area,East ShaGang Road,GangKou ZhongShan,GuangDong,China\r
@@ -102236,18 +102596,24 @@ D88C79     (base 16)                Google, Inc.
                                Mountain View  CA  94043\r
                                US\r
 \r
-10-34-1B   (hex)               Spacelink\r
-10341B     (base 16)           Spacelink\r
-                               8830 Complex dr\r
-                               San Diego  CA  92123\r
-                               US\r
-\r
 30-A4-52   (hex)               Arrival Elements BV\r
 30A452     (base 16)           Arrival Elements BV\r
                                M. Keynesplein 12-46\r
                                Amsterdam    1066 EP\r
                                NL\r
 \r
+00-0B-A2   (hex)               Sumitomo Electric Industries, Ltd\r
+000BA2     (base 16)           Sumitomo Electric Industries, Ltd\r
+                               1-1-3, Shimaya, Konohana-ku\r
+                               Osaka    554-0024\r
+                               JP\r
+\r
+00-08-F6   (hex)               Sumitomo Electric Industries, Ltd\r
+0008F6     (base 16)           Sumitomo Electric Industries, Ltd\r
+                               1-1-3, Shimaya, Konohana-ku\r
+                               Osaka    554-0024\r
+                               JP\r
+\r
 00-1E-68   (hex)               Quanta Computer Inc.\r
 001E68     (base 16)           Quanta Computer Inc.\r
                                NO. 211, WEN HWA 2RD., KUEI SHAN HSIANG\r
@@ -102260,36 +102626,12 @@ D88C79     (base 16)                Google, Inc.
                                TAIPEI  TAIWAN  333\r
                                TW\r
 \r
-2C-60-0C   (hex)               Quanta Computer Inc.\r
-2C600C     (base 16)           Quanta Computer Inc.\r
-                               No.211, Wen Hwa 2nd Rd\r
-                               Taoyuan  Taiwan  33377\r
-                               TW\r
-\r
 8C-C5-B4   (hex)               Sagemcom Broadband SAS\r
 8CC5B4     (base 16)           Sagemcom Broadband SAS\r
                                250, route de l'Empereur\r
                                Rueil Malmaison Cedex  hauts de seine  92848\r
                                FR\r
 \r
-00-0B-A2   (hex)               Sumitomo Electric Industries, Ltd\r
-000BA2     (base 16)           Sumitomo Electric Industries, Ltd\r
-                               1-1-3, Shimaya, Konohana-ku\r
-                               Osaka    554-0024\r
-                               JP\r
-\r
-00-08-F6   (hex)               Sumitomo Electric Industries, Ltd\r
-0008F6     (base 16)           Sumitomo Electric Industries, Ltd\r
-                               1-1-3, Shimaya, Konohana-ku\r
-                               Osaka    554-0024\r
-                               JP\r
-\r
-00-00-5F   (hex)               Sumitomo Electric Industries, Ltd\r
-00005F     (base 16)           Sumitomo Electric Industries, Ltd\r
-                               1-1-3, Shimaya, Konohana-ku\r
-                               Osaka    554-0024\r
-                               JP\r
-\r
 18-EC-E7   (hex)               BUFFALO.INC\r
 18ECE7     (base 16)           BUFFALO.INC\r
                                AKAMONDORI Bld.,30-20,Ohsu 3-chome,Naka-ku\r
@@ -102302,6 +102644,18 @@ F469D5     (base 16)         IEEE Registration Authority
                                Piscataway  NJ  08554\r
                                US\r
 \r
+2C-60-0C   (hex)               Quanta Computer Inc.\r
+2C600C     (base 16)           Quanta Computer Inc.\r
+                               No.211, Wen Hwa 2nd Rd\r
+                               Taoyuan  Taiwan  33377\r
+                               TW\r
+\r
+00-00-5F   (hex)               Sumitomo Electric Industries, Ltd\r
+00005F     (base 16)           Sumitomo Electric Industries, Ltd\r
+                               1-1-3, Shimaya, Konohana-ku\r
+                               Osaka    554-0024\r
+                               JP\r
+\r
 08-3A-F2   (hex)               Espressif Inc.\r
 083AF2     (base 16)           Espressif Inc.\r
                                Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
@@ -102386,24 +102740,12 @@ D4AFF7     (base 16)                Arista Networks
                                Dallas  TX  75243\r
                                US\r
 \r
-04-7E-23   (hex)               China Mobile IOT Company Limited\r
-047E23     (base 16)           China Mobile IOT Company Limited\r
-                               NO.8 Yu Ma Road, NanAn Area\r
-                               Chongqing  Chongqing  401336\r
+68-93-20   (hex)               New H3C Technologies Co., Ltd\r
+689320     (base 16)           New H3C Technologies Co., Ltd\r
+                               466 Changhe Road, Binjiang District\r
+                               Hangzhou  Zhejiang  310052\r
                                CN\r
 \r
-14-CC-B3   (hex)               AO GK NATEKS\r
-14CCB3     (base 16)           AO GK NATEKS\r
-                               Kamenshiki B. str., 4\r
-                               Moscow    115172\r
-                               RU\r
-\r
-DC-CD-2F   (hex)               Seiko Epson Corporation\r
-DCCD2F     (base 16)           Seiko Epson Corporation\r
-                               2070 Kotobuki Koaka\r
-                               Matsumoto-shi  Nagano-ken  399-8702\r
-                               JP\r
-\r
 94-54-CE   (hex)               GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
 9454CE     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
                                NO.18 HAIBIN ROAD,\r
@@ -102416,10 +102758,10 @@ DCCD2F     (base 16)                Seiko Epson Corporation
                                DONG GUAN  GUANG DONG  523860\r
                                CN\r
 \r
-68-93-20   (hex)               New H3C Technologies Co., Ltd\r
-689320     (base 16)           New H3C Technologies Co., Ltd\r
-                               466 Changhe Road, Binjiang District\r
-                               Hangzhou  Zhejiang  310052\r
+04-7E-23   (hex)               China Mobile IOT Company Limited\r
+047E23     (base 16)           China Mobile IOT Company Limited\r
+                               NO.8 Yu Ma Road, NanAn Area\r
+                               Chongqing  Chongqing  401336\r
                                CN\r
 \r
 54-84-DC   (hex)               zte corporation\r
@@ -102434,17 +102776,17 @@ DCCD2F     (base 16)                Seiko Epson Corporation
                                shenzhen  guangdong  518057\r
                                CN\r
 \r
-08-42-96   (hex)               Mobile Technology Solutions LLC\r
-084296     (base 16)           Mobile Technology Solutions LLC\r
-                               20379 Bannister Dr.\r
-                               Macomb  MI  48044\r
-                               US\r
+DC-CD-2F   (hex)               Seiko Epson Corporation\r
+DCCD2F     (base 16)           Seiko Epson Corporation\r
+                               2070 Kotobuki Koaka\r
+                               Matsumoto-shi  Nagano-ken  399-8702\r
+                               JP\r
 \r
-8C-8D-28   (hex)               Intel Corporate\r
-8C8D28     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
+14-CC-B3   (hex)               AO GK NATEKS\r
+14CCB3     (base 16)           AO GK NATEKS\r
+                               Kamenshiki B. str., 4\r
+                               Moscow    115172\r
+                               RU\r
 \r
 34-3E-A4   (hex)               Ring LLC\r
 343EA4     (base 16)           Ring LLC\r
@@ -102470,6 +102812,12 @@ B0FEE5     (base 16)         Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
+08-42-96   (hex)               Mobile Technology Solutions LLC\r
+084296     (base 16)           Mobile Technology Solutions LLC\r
+                               20379 Bannister Dr.\r
+                               Macomb  MI  48044\r
+                               US\r
+\r
 C8-17-39   (hex)               ITEL MOBILE LIMITED\r
 C81739     (base 16)           ITEL MOBILE LIMITED\r
                                RM B3 & B4 BLOCK B, KO FAI INDUSTRIAL BUILDING  NO.7 KO FAI ROAD, YAU TONG, KLN, H.K\r
@@ -102494,12 +102842,6 @@ E874C7     (base 16)         Sentinhealth
                                LA TRONCHE    38700\r
                                FR\r
 \r
-00-1C-7B   (hex)               Castlenet Technology Inc.\r
-001C7B     (base 16)           Castlenet Technology Inc.\r
-                               5F., No. 10, Daye Rd., Beitou Dist.\r
-                               Taipei City    112030\r
-                               TW\r
-\r
 E4-84-2B   (hex)               HANGZHOU SOFTEL OPTIC CO., LTD\r
 E4842B     (base 16)           HANGZHOU SOFTEL OPTIC CO., LTD\r
                                101 BINKANG ROAD, BINJIANG DISTRICT\r
@@ -102518,18 +102860,24 @@ B8D309     (base 16)                Cox Communications, Inc
                                Hangzhou  Zhejiang  310023\r
                                CN\r
 \r
-90-CC-DF   (hex)               Intel Corporate\r
-90CCDF     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
 D4-6A-91   (hex)               SnapAV\r
 D46A91     (base 16)           SnapAV\r
                                1800 Continental Blvd\r
                                Charlotte  North Carolina  28273\r
                                US\r
 \r
+00-1C-7B   (hex)               Castlenet Technology Inc.\r
+001C7B     (base 16)           Castlenet Technology Inc.\r
+                               5F., No. 10, Daye Rd., Beitou Dist.\r
+                               Taipei City    112030\r
+                               TW\r
+\r
+D0-21-F9   (hex)               Ubiquiti Networks Inc.\r
+D021F9     (base 16)           Ubiquiti Networks Inc.\r
+                               685 Third Avenue, 27th Floor\r
+                               New York  NY  10017\r
+                               US\r
+\r
 80-EE-25   (hex)               Shenzhen Skyworth  Digital  Technology  CO., Ltd\r
 80EE25     (base 16)           Shenzhen Skyworth  Digital  Technology  CO., Ltd\r
                                4F,Block A, Skyworth?Building,\r
@@ -102542,18 +102890,6 @@ D46A91     (base 16)         SnapAV
                                Huizhou  Guangdong  516223\r
                                CN\r
 \r
-D0-21-F9   (hex)               Ubiquiti Networks Inc.\r
-D021F9     (base 16)           Ubiquiti Networks Inc.\r
-                               685 Third Avenue, 27th Floor\r
-                               New York  NY  10017\r
-                               US\r
-\r
-08-5B-D6   (hex)               Intel Corporate\r
-085BD6     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
 D0-3D-52   (hex)               Ava Security Limited\r
 D03D52     (base 16)           Ava Security Limited\r
                                The Charter Building, Charter Place\r
@@ -102566,44 +102902,20 @@ F490EA     (base 16)                Deciso B.V.
                                Midddelharnis  Zuid Holland  3241LS\r
                                NL\r
 \r
-64-D2-C4   (hex)               Apple, Inc.\r
-64D2C4     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-DC-52-85   (hex)               Apple, Inc.\r
-DC5285     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-E8-81-52   (hex)               Apple, Inc.\r
-E88152     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-90-81-58   (hex)               Apple, Inc.\r
-908158     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 B4-AD-A3   (hex)               Guangzhou Shiyuan Electronic Technology Company Limited\r
 B4ADA3     (base 16)           Guangzhou Shiyuan Electronic Technology Company Limited\r
                                No.6, 4th Yunpu Road, Yunpu industry District\r
                                Guangzhou  Guangdong  510530\r
                                CN\r
 \r
-64-23-15   (hex)               Huawei Device Co., Ltd.\r
-642315     (base 16)           Huawei Device Co., Ltd.\r
+A4-C7-4B   (hex)               Huawei Device Co., Ltd.\r
+A4C74B     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-A4-C7-4B   (hex)               Huawei Device Co., Ltd.\r
-A4C74B     (base 16)           Huawei Device Co., Ltd.\r
+64-23-15   (hex)               Huawei Device Co., Ltd.\r
+642315     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
@@ -102644,6 +102956,30 @@ D8F8AF     (base 16)         DAONTEC
                                dongguan city  guangdong province  523710\r
                                CN\r
 \r
+64-D2-C4   (hex)               Apple, Inc.\r
+64D2C4     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+DC-52-85   (hex)               Apple, Inc.\r
+DC5285     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E8-81-52   (hex)               Apple, Inc.\r
+E88152     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+90-81-58   (hex)               Apple, Inc.\r
+908158     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
 6C-AD-AD   (hex)               CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
 6CADAD     (base 16)           CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
                                Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
@@ -102656,12 +102992,6 @@ CCE0DA     (base 16)         Baidu Online Network Technology (Beijing) Co., Ltd
                                 Beijing    100085\r
                                CN\r
 \r
-14-1B-30   (hex)               Shenzhen Yipingfang Network Technology Co., Ltd.\r
-141B30     (base 16)           Shenzhen Yipingfang Network Technology Co., Ltd.\r
-                               21 / F, Kangjia R & D building, No.28, Keji South 12th Road, Nanshan District, Shenzhen City, Guangdong Province, China\r
-                               Shenzhen  Nanshan District  518000\r
-                               CN\r
-\r
 F4-6F-ED   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
 F46FED     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
                                No.5 DongXin Road\r
@@ -102680,6 +103010,18 @@ A8301C     (base 16)         Qingdao Intelligent&Precise Electronics Co.,Ltd.
                                Qingdao  Shangdong  266510\r
                                CN\r
 \r
+7C-78-B2   (hex)               Wyze Labs Inc\r
+7C78B2     (base 16)           Wyze Labs Inc\r
+                               4030 Lake Washington Boulevard NE\r
+                               Kirkland  WA  98033\r
+                               US\r
+\r
+14-1B-30   (hex)               Shenzhen Yipingfang Network Technology Co., Ltd.\r
+141B30     (base 16)           Shenzhen Yipingfang Network Technology Co., Ltd.\r
+                               21 / F, Kangjia R & D building, No.28, Keji South 12th Road, Nanshan District, Shenzhen City, Guangdong Province, China\r
+                               Shenzhen  Nanshan District  518000\r
+                               CN\r
+\r
 D8-F3-BC   (hex)               Liteon Technology Corporation\r
 D8F3BC     (base 16)           Liteon Technology Corporation\r
                                4F, 90, Chien 1 Road\r
@@ -102692,12 +103034,6 @@ B8477A     (base 16)         Dasan Electron Co., Ltd.
                                Ansan  KyungKi  15588\r
                                KR\r
 \r
-7C-78-B2   (hex)               Wyze Labs Inc\r
-7C78B2     (base 16)           Wyze Labs Inc\r
-                               4030 Lake Washington Boulevard NE\r
-                               Kirkland  WA  98033\r
-                               US\r
-\r
 D8-37-3B   (hex)               Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd\r
 D8373B     (base 16)           Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd\r
                                3/F,A5 Building Zhiyuan Community No.1001,Xueyuan Road Nanshan District\r
@@ -102734,24 +103070,24 @@ FC698C     (base 16)                ANDREAS STIHL AG & Co. KG
                                Hyderabad  AP  500034\r
                                IN\r
 \r
-44-CE-3A   (hex)               Jiangsu Huacun Electronic Technology Co., Ltd.\r
-44CE3A     (base 16)           Jiangsu Huacun Electronic Technology Co., Ltd.\r
-                               C4, 9th Floor, 266 New Century Avenue, Tongzhou District\r
-                               Nantong City  Jiangsu Province  226300\r
+E8-4F-4B   (hex)               Shenzhen Delos Electronic Co., Ltd\r
+E84F4B     (base 16)           Shenzhen Delos Electronic Co., Ltd\r
+                               Rm 603, Tower B, Galaxy World Building, No.1 Yabao Road,Longgang District,Shenzhen,P.R.China.\r
+                               shenzhen  guangdong  518000\r
                                CN\r
 \r
-9C-1E-A4   (hex)               Renesas Electronics (Penang) Sdn. Bhd.\r
-9C1EA4     (base 16)           Renesas Electronics (Penang) Sdn. Bhd.\r
-                               Phase 3, Bayan Lepas FIZ\r
-                               Bayan Lepas  Penang  11900\r
-                               MY\r
-\r
-4C-EF-56   (hex)               Shenzhen Sundray Technologies Company Limited\r
-4CEF56     (base 16)           Shenzhen Sundray Technologies Company Limited\r
-                               5th Floor, Block A4, Nanshan ipark,NO.1001 Xue Yuan Road, Nanshan District, Shenzhen 518055, P.R. China\r
-                               Shenzhen  Guangdong  518057\r
+B0-4A-39   (hex)               Beijing Roborock Technology Co., Ltd.\r
+B04A39     (base 16)           Beijing Roborock Technology Co., Ltd.\r
+                               Floor 6,Building C,Kangjian Baosheng Plaza,No. 8 Heiquan Road,Haidian District\r
+                               Beijing  Beijing  100085\r
                                CN\r
 \r
+A4-F9-E4   (hex)               AirVine Scientific, Inc.\r
+A4F9E4     (base 16)           AirVine Scientific, Inc.\r
+                               1500 Wyatt Drive, Suite 9\r
+                               Santa Clara  CA  95054\r
+                               US\r
+\r
 E4-C3-2A   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
 E4C32A     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
                                Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
@@ -102770,17 +103106,11 @@ BC9789     (base 16)                Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-3C-E0-38   (hex)               Plumeria Networks, Inc.\r
-3CE038     (base 16)           Plumeria Networks, Inc.\r
-                               6701 Koll Center Parkway Suite 250\r
-                               Pleasanton  CA  94566\r
-                               US\r
-\r
-AC-12-2F   (hex)               Fantasia Trading LLC\r
-AC122F     (base 16)           Fantasia Trading LLC\r
-                               5350 Ontario Mills Pkwy, Suite 100\r
-                               Ontario  CA  91764\r
-                               US\r
+68-45-71   (hex)               Huawei Device Co., Ltd.\r
+684571     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
 \r
 FC-45-C3   (hex)               Texas Instruments\r
 FC45C3     (base 16)           Texas Instruments\r
@@ -102794,34 +103124,22 @@ AC6AA3     (base 16)                Shenzhen Kertong Technology Co.,Ltd
                                Shenzhen  Guangdong  518101\r
                                CN\r
 \r
-E8-4F-4B   (hex)               Shenzhen Delos Electronic Co., Ltd\r
-E84F4B     (base 16)           Shenzhen Delos Electronic Co., Ltd\r
-                               Rm 603, Tower B, Galaxy World Building, No.1 Yabao Road,Longgang District,Shenzhen,P.R.China.\r
-                               shenzhen  guangdong  518000\r
-                               CN\r
-\r
-B0-4A-39   (hex)               Beijing Roborock Technology Co., Ltd.\r
-B04A39     (base 16)           Beijing Roborock Technology Co., Ltd.\r
-                               Floor 6,Building C,Kangjian Baosheng Plaza,No. 8 Heiquan Road,Haidian District\r
-                               Beijing  Beijing  100085\r
+44-CE-3A   (hex)               Jiangsu Huacun Electronic Technology Co., Ltd.\r
+44CE3A     (base 16)           Jiangsu Huacun Electronic Technology Co., Ltd.\r
+                               C4, 9th Floor, 266 New Century Avenue, Tongzhou District\r
+                               Nantong City  Jiangsu Province  226300\r
                                CN\r
 \r
-A4-F9-E4   (hex)               AirVine Scientific, Inc.\r
-A4F9E4     (base 16)           AirVine Scientific, Inc.\r
-                               1500 Wyatt Drive, Suite 9\r
-                               Santa Clara  CA  95054\r
-                               US\r
-\r
-F4-4F-D3   (hex)               shenzhen hemuwei technology co.,ltd\r
-F44FD3     (base 16)           shenzhen hemuwei technology co.,ltd\r
-                               220, Building C, IoT Industrial Park, Bantian Street, Longgang District\r
-                               shenzhen  guangdong  518000\r
-                               CN\r
+9C-1E-A4   (hex)               Renesas Electronics (Penang) Sdn. Bhd.\r
+9C1EA4     (base 16)           Renesas Electronics (Penang) Sdn. Bhd.\r
+                               Phase 3, Bayan Lepas FIZ\r
+                               Bayan Lepas  Penang  11900\r
+                               MY\r
 \r
-68-45-71   (hex)               Huawei Device Co., Ltd.\r
-684571     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
+4C-EF-56   (hex)               Shenzhen Sundray Technologies Company Limited\r
+4CEF56     (base 16)           Shenzhen Sundray Technologies Company Limited\r
+                               5th Floor, Block A4, Nanshan ipark,NO.1001 Xue Yuan Road, Nanshan District, Shenzhen 518055, P.R. China\r
+                               Shenzhen  Guangdong  518057\r
                                CN\r
 \r
 84-93-A0   (hex)               Huawei Device Co., Ltd.\r
@@ -102836,18 +103154,36 @@ F44FD3     (base 16)                shenzhen hemuwei technology co.,ltd
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
+F4-4F-D3   (hex)               shenzhen hemuwei technology co.,ltd\r
+F44FD3     (base 16)           shenzhen hemuwei technology co.,ltd\r
+                               220, Building C, IoT Industrial Park, Bantian Street, Longgang District\r
+                               shenzhen  guangdong  518000\r
+                               CN\r
+\r
+3C-E0-38   (hex)               Plumeria Networks, Inc.\r
+3CE038     (base 16)           Plumeria Networks, Inc.\r
+                               6701 Koll Center Parkway Suite 250\r
+                               Pleasanton  CA  94566\r
+                               US\r
+\r
+FC-8D-3D   (hex)               Leapfive Tech. Ltd.\r
+FC8D3D     (base 16)           Leapfive Tech. Ltd.\r
+                               huaruizhididasha 8ceng\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+AC-12-2F   (hex)               Fantasia Trading LLC\r
+AC122F     (base 16)           Fantasia Trading LLC\r
+                               5350 Ontario Mills Pkwy, Suite 100\r
+                               Ontario  CA  91764\r
+                               US\r
+\r
 40-14-AD   (hex)               Huawei Device Co., Ltd.\r
 4014AD     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-A8-74-84   (hex)               zte corporation\r
-A87484     (base 16)           zte corporation\r
-                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
-                               shenzhen  guangdong  518057\r
-                               CN\r
-\r
 E0-4B-A6   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 E04BA6     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
@@ -102860,9 +103196,9 @@ C8B6D3     (base 16)          HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
-FC-8D-3D   (hex)               Leapfive Tech. Ltd.\r
-FC8D3D     (base 16)           Leapfive Tech. Ltd.\r
-                               huaruizhididasha 8ceng\r
+A8-74-84   (hex)               zte corporation\r
+A87484     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
                                shenzhen  guangdong  518057\r
                                CN\r
 \r
@@ -102878,6 +103214,12 @@ A06974     (base 16)         Honor Device Co., Ltd.
                                Shenzhen  Guangdong  518129\r
                                CN\r
 \r
+78-C9-5E   (hex)               Midmark RTLS \r
+78C95E     (base 16)           Midmark RTLS \r
+                               2600 Millercreek Rd\r
+                               Traverse City  MI  49684\r
+                               US\r
+\r
 C0-33-DA   (hex)               Shenzhen JRUN Technologies CO., LTD\r
 C033DA     (base 16)           Shenzhen JRUN Technologies CO., LTD\r
                                A Zone,9F,Huilongda Industrial Park,Shuitian Private Industrial Park,Shiyan Street,Bao,an District.\r
@@ -102902,18 +103244,6 @@ ACFAA5     (base 16)         digitron
                                Seongnam  GyeongGiDO  13511\r
                                KR\r
 \r
-78-C9-5E   (hex)               Midmark RTLS \r
-78C95E     (base 16)           Midmark RTLS \r
-                               2600 Millercreek Rd\r
-                               Traverse City  MI  49684\r
-                               US\r
-\r
-20-CD-6E   (hex)               Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
-20CD6E     (base 16)           Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
-                               No.178 Yulong Avenue, Yufengshan, Yubei District, Chongqing.\r
-                               Chongqing   China  401120\r
-                               CN\r
-\r
 BC-69-CB   (hex)               Panasonic Life Solutions Networks Co., Ltd.\r
 BC69CB     (base 16)           Panasonic Life Solutions Networks Co., Ltd.\r
                                2-12-7, Higashi-Shinbashi\r
@@ -102932,6 +103262,12 @@ BC69CB     (base 16)         Panasonic Life Solutions Networks Co., Ltd.
                                Anyang-si,Gyeonggi-do  Republic of Korea  430-803\r
                                KR\r
 \r
+20-CD-6E   (hex)               Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
+20CD6E     (base 16)           Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
+                               No.178 Yulong Avenue, Yufengshan, Yubei District, Chongqing.\r
+                               Chongqing   China  401120\r
+                               CN\r
+\r
 6C-14-6E   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 6C146E     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
@@ -102950,12 +103286,6 @@ DC4A9E     (base 16)         IEEE Registration Authority
                                Piscataway  NJ  08554\r
                                US\r
 \r
-E0-C3-77   (hex)               Samsung Electronics Co.,Ltd\r
-E0C377     (base 16)           Samsung Electronics Co.,Ltd\r
-                               #94-1, Imsoo-Dong\r
-                               Gumi  Gyeongbuk  730-350\r
-                               KR\r
-\r
 4C-FB-F4   (hex)               Optimal Audio Ltd\r
 4CFBF4     (base 16)           Optimal Audio Ltd\r
                                Century Point, Halifax Rd\r
@@ -102965,6 +103295,18 @@ E0C377     (base 16)         Samsung Electronics Co.,Ltd
 84-60-82   (hex)               Private\r
 846082     (base 16)           Private\r
 \r
+64-79-24   (hex)               Huawei Device Co., Ltd.\r
+647924     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+D8-CC-98   (hex)               Huawei Device Co., Ltd.\r
+D8CC98     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 64-03-7F   (hex)               Samsung Electronics Co.,Ltd\r
 64037F     (base 16)           Samsung Electronics Co.,Ltd\r
                                #94-1, Imsoo-Dong\r
@@ -102983,47 +103325,23 @@ B49D02     (base 16)                Samsung Electronics Co.,Ltd
                                Gumi  Gyeongbuk  730-350\r
                                KR\r
 \r
-64-79-24   (hex)               Huawei Device Co., Ltd.\r
-647924     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
+E0-C3-77   (hex)               Samsung Electronics Co.,Ltd\r
+E0C377     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
 \r
-D8-CC-98   (hex)               Huawei Device Co., Ltd.\r
-D8CC98     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
+AC-37-28   (hex)               Taicang T&W Electronics\r
+AC3728     (base 16)           Taicang T&W Electronics\r
+                               89# Jiang Nan RD\r
+                               Suzhou  Jiangsu  215412\r
                                CN\r
 \r
-F0-4F-7C   (hex)               Amazon Technologies Inc.\r
-F04F7C     (base 16)           Amazon Technologies Inc.\r
-                               PO Box 8102\r
-                               Reno  NV  89507\r
-                               US\r
-\r
-F0-A2-25   (hex)               Amazon Technologies Inc.\r
-F0A225     (base 16)           Amazon Technologies Inc.\r
-                               PO Box 8102\r
-                               Reno  NV  89507\r
-                               US\r
-\r
-B4-0E-DE   (hex)               Intel Corporate\r
-B40EDE     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-E0-2B-E9   (hex)               Intel Corporate\r
-E02BE9     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-DC-B7-2E   (hex)               Xiaomi Communications Co Ltd\r
-DCB72E     (base 16)           Xiaomi Communications Co Ltd\r
-                               The Rainbow City of China Resources\r
-                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
-                               CN\r
+58-86-94   (hex)               EFM Networks\r
+588694     (base 16)           EFM Networks\r
+                               6F, Benposra II 1197-1 Bojeong Giheung Gu\r
+                               Yong In  Kyunggi do  446913\r
+                               KR\r
 \r
 B8-87-6E   (hex)               Yandex Services AG\r
 B8876E     (base 16)           Yandex Services AG\r
@@ -103037,30 +103355,6 @@ F86D73     (base 16)         Zengge Co., Limited
                                Shenzhen  Guangdong  518109\r
                                CN\r
 \r
-58-86-94   (hex)               EFM Networks\r
-588694     (base 16)           EFM Networks\r
-                               6F, Benposra II 1197-1 Bojeong Giheung Gu\r
-                               Yong In  Kyunggi do  446913\r
-                               KR\r
-\r
-AC-37-28   (hex)               Taicang T&W Electronics\r
-AC3728     (base 16)           Taicang T&W Electronics\r
-                               89# Jiang Nan RD\r
-                               Suzhou  Jiangsu  215412\r
-                               CN\r
-\r
-BC-99-30   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-BC9930     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
-E8-68-E7   (hex)               Espressif Inc.\r
-E868E7     (base 16)           Espressif Inc.\r
-                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
-                               Shanghai  Shanghai  201203\r
-                               CN\r
-\r
 D0-BC-C1   (hex)               WEIFANG GOERTEK ELECTRONICS CO.,LTD\r
 D0BCC1     (base 16)           WEIFANG GOERTEK ELECTRONICS CO.,LTD\r
                                Gaoxin 2 Road, Free Trade Zone,Weifang,Shandong,261205,P.R.China\r
@@ -103079,22 +103373,46 @@ C469F0     (base 16)                HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
+DC-B7-2E   (hex)               Xiaomi Communications Co Ltd\r
+DCB72E     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
+BC-99-30   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+BC9930     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
 C0-94-35   (hex)               ARRIS Group, Inc.\r
 C09435     (base 16)           ARRIS Group, Inc.\r
                                6450 Sequence Drive\r
                                San Diego  CA  92121\r
                                US\r
 \r
-18-B6-CC   (hex)               We Corporation Inc.\r
-18B6CC     (base 16)           We Corporation Inc.\r
-                               201, 33, Deokcheon-ro, Manan-gu\r
-                               Anyang-si  Gyeonggi-do  14088\r
+78-CB-2C   (hex)               Join Digital, Inc.\r
+78CB2C     (base 16)           Join Digital, Inc.\r
+                               75 E Santa Clara St., 6th Floor\r
+                               San Jose  CA  95113\r
+                               US\r
+\r
+E8-68-E7   (hex)               Espressif Inc.\r
+E868E7     (base 16)           Espressif Inc.\r
+                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+                               Shanghai  Shanghai  201203\r
+                               CN\r
+\r
+30-9E-1D   (hex)               OHSUNG\r
+309E1D     (base 16)           OHSUNG\r
+                               335-4,SANHODAERO,GUMI,GYEONG BUK,KOREA\r
+                               GUMI  GYEONG BUK  730-030\r
                                KR\r
 \r
-F8-5E-42   (hex)               Technicolor CH USA Inc.\r
-F85E42     (base 16)           Technicolor CH USA Inc.\r
-                               5030 Sugarloaf Parkway Bldg 6 \r
-                               Lawrenceville  GA  30044\r
+68-79-12   (hex)               IEEE Registration Authority\r
+687912     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
                                US\r
 \r
 30-A0-23   (hex)               ROCK PATH S.R.L\r
@@ -103109,22 +103427,40 @@ E848B8     (base 16)                TP-Link Corporation Limited
                                 Tsim Sha Tsui  Kowloon  999077\r
                                HK\r
 \r
-78-CB-2C   (hex)               Join Digital, Inc.\r
-78CB2C     (base 16)           Join Digital, Inc.\r
-                               75 E Santa Clara St., 6th Floor\r
-                               San Jose  CA  95113\r
+18-B6-CC   (hex)               We Corporation Inc.\r
+18B6CC     (base 16)           We Corporation Inc.\r
+                               201, 33, Deokcheon-ro, Manan-gu\r
+                               Anyang-si  Gyeonggi-do  14088\r
+                               KR\r
+\r
+F8-66-5A   (hex)               Apple, Inc.\r
+F8665A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-30-9E-1D   (hex)               OHSUNG\r
-309E1D     (base 16)           OHSUNG\r
-                               335-4,SANHODAERO,GUMI,GYEONG BUK,KOREA\r
-                               GUMI  GYEONG BUK  730-030\r
-                               KR\r
+60-BE-C4   (hex)               Apple, Inc.\r
+60BEC4     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-68-79-12   (hex)               IEEE Registration Authority\r
-687912     (base 16)           IEEE Registration Authority\r
-                               445 Hoes Lane\r
-                               Piscataway  NJ  08554\r
+F8-B1-DD   (hex)               Apple, Inc.\r
+F8B1DD     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F8-5E-42   (hex)               Technicolor CH USA Inc.\r
+F85E42     (base 16)           Technicolor CH USA Inc.\r
+                               5030 Sugarloaf Parkway Bldg 6 \r
+                               Lawrenceville  GA  30044\r
+                               US\r
+\r
+A8-81-7E   (hex)               Apple, Inc.\r
+A8817E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
 EC-64-88   (hex)               Honor Device Co., Ltd.\r
@@ -103157,42 +103493,6 @@ EC6488     (base 16)         Honor Device Co., Ltd.
                                Singapore   Singapore  609917\r
                                SG\r
 \r
-60-BE-C4   (hex)               Apple, Inc.\r
-60BEC4     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-F8-B1-DD   (hex)               Apple, Inc.\r
-F8B1DD     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-F8-66-5A   (hex)               Apple, Inc.\r
-F8665A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-A8-81-7E   (hex)               Apple, Inc.\r
-A8817E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-8C-47-6E   (hex)               IEEE Registration Authority\r
-8C476E     (base 16)           IEEE Registration Authority\r
-                               445 Hoes Lane\r
-                               Piscataway  NJ  08554\r
-                               US\r
-\r
-48-70-1E   (hex)               Texas Instruments\r
-48701E     (base 16)           Texas Instruments\r
-                               12500 TI Blvd\r
-                               Dallas  TX  75243\r
-                               US\r
-\r
 E8-C3-20   (hex)               Austco Marketing & Service (USA) ltd.\r
 E8C320     (base 16)           Austco Marketing & Service (USA) ltd.\r
                                9155 Sterling St Unit 100\r
@@ -103205,11 +103505,11 @@ E8C320     (base 16)                Austco Marketing & Service (USA) ltd.
                                NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
                                CN\r
 \r
-AC-33-28   (hex)               Huawei Device Co., Ltd.\r
-AC3328     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
+8C-47-6E   (hex)               IEEE Registration Authority\r
+8C476E     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
 \r
 D4-76-A0   (hex)               Fortinet, Inc.\r
 D476A0     (base 16)           Fortinet, Inc.\r
@@ -103217,12 +103517,24 @@ D476A0     (base 16)                Fortinet, Inc.
                                Sunnyvale    94086\r
                                US\r
 \r
+AC-33-28   (hex)               Huawei Device Co., Ltd.\r
+AC3328     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 B4-EC-02   (hex)               ALPSALPINE CO,.LTD\r
 B4EC02     (base 16)           ALPSALPINE CO,.LTD\r
                                6-1\r
                                Kakuda  Miyagi-Pref  981-1595\r
                                JP\r
 \r
+48-70-1E   (hex)               Texas Instruments\r
+48701E     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
+\r
 00-23-06   (hex)               ALPSALPINE CO,.LTD\r
 002306     (base 16)           ALPSALPINE CO,.LTD\r
                                1-2-1, Okinouchi,\r
@@ -103247,18 +103559,6 @@ B4EC02     (base 16)         ALPSALPINE CO,.LTD
                                Soma-city,  Fukushima-pref.,  976-8501\r
                                JP\r
 \r
-00-19-C1   (hex)               ALPSALPINE CO,.LTD\r
-0019C1     (base 16)           ALPSALPINE CO,.LTD\r
-                               1-2-1, Okinouchi,\r
-                               Soma-city,  Fukushima-pref.,  976-8501\r
-                               JP\r
-\r
-E0-75-0A   (hex)               ALPSALPINE CO,.LTD\r
-E0750A     (base 16)           ALPSALPINE CO,.LTD\r
-                               6-1\r
-                               kakuda-City    981-1595\r
-                               US\r
-\r
 E0-AE-5E   (hex)               ALPSALPINE CO,.LTD\r
 E0AE5E     (base 16)           ALPSALPINE CO,.LTD\r
                                6-3-36 Furukawanakazato,\r
@@ -103277,6 +103577,276 @@ BC7536     (base 16)                ALPSALPINE CO,.LTD
                                Kakuda-City  Miyagi-Pref  981-1595\r
                                JP\r
 \r
+1C-39-29   (hex)               OHSUNG\r
+1C3929     (base 16)           OHSUNG\r
+                               335-4,SANHODAERO,GUMI,GYEONG BUK,KOREA\r
+                               GUMI  GYEONG BUK  730-030\r
+                               KR\r
+\r
+80-B9-7A   (hex)               eero inc.\r
+80B97A     (base 16)           eero inc.\r
+                               660 3rd Street\r
+                               San Francisco  CA  94107\r
+                               US\r
+\r
+00-19-C1   (hex)               ALPSALPINE CO,.LTD\r
+0019C1     (base 16)           ALPSALPINE CO,.LTD\r
+                               1-2-1, Okinouchi,\r
+                               Soma-city,  Fukushima-pref.,  976-8501\r
+                               JP\r
+\r
+E0-75-0A   (hex)               ALPSALPINE CO,.LTD\r
+E0750A     (base 16)           ALPSALPINE CO,.LTD\r
+                               6-1\r
+                               kakuda-City    981-1595\r
+                               US\r
+\r
+C8-3A-6B   (hex)               Roku, Inc\r
+C83A6B     (base 16)           Roku, Inc\r
+                               1155 Coleman Ave\r
+                               San Jose  CA  95110\r
+                               US\r
+\r
+8C-49-62   (hex)               Roku, Inc\r
+8C4962     (base 16)           Roku, Inc\r
+                               1155 Coleman Ave\r
+                               San Jose  CA  95110\r
+                               US\r
+\r
+60-8D-26   (hex)               Arcadyan Corporation\r
+608D26     (base 16)           Arcadyan Corporation\r
+                               No.8, Sec.2, Guangfu Rd.\r
+                               Hsinchu City  Hsinchu  30071\r
+                               TW\r
+\r
+4C-11-54   (hex)               Mobiwire Mobiles (NingBo) Co., LTD\r
+4C1154     (base 16)           Mobiwire Mobiles (NingBo) Co., LTD\r
+                               No.999 Dacheng East Road, Fenghua District, Ningbo City , Zhejiang Province, PRC\r
+                               Ningbo  Zhejiang  315500\r
+                               CN\r
+\r
+C4-BF-60   (hex)               TECNO MOBILE LIMITED\r
+C4BF60     (base 16)           TECNO MOBILE LIMITED\r
+                               ROOMS 05-15, 13A/F., SOUTH TOWER, WORLD FINANCE CENTRE, HARBOUR CITY, 17 CANTON ROAD, TSIM SHA TSUI, KOWLOON, HONG KONG\r
+                               Hong Kong  Hong Kong  999077\r
+                               HK\r
+\r
+E4-27-61   (hex)               Honor Device Co., Ltd.\r
+E42761     (base 16)           Honor Device Co., Ltd.\r
+                               A1701, Block AB, Building 1, Tianan Yungu Phase I, Gangtou Community, Bantian Street\r
+                               Shenzhen  Guangdong  518129\r
+                               CN\r
+\r
+8C-F3-19   (hex)               Siemens Industrial Automation Products Ltd., Chengdu\r
+8CF319     (base 16)           Siemens Industrial Automation Products Ltd., Chengdu\r
+                               Tianyuan Road No.99, High Tech Zone West\r
+                               Chengdu  Sichuan Province  611731 \r
+                               CN\r
+\r
+C8-A4-0D   (hex)               Cooler Master Technology Inc\r
+C8A40D     (base 16)           Cooler Master Technology Inc\r
+                               8F., No. 788-1, Zhongzheng Rd., Zhonghe Dist.\r
+                               New Taipei City  New Taipei City  23586\r
+                               TW\r
+\r
+38-42-0B   (hex)               Sonos, Inc.\r
+38420B     (base 16)           Sonos, Inc.\r
+                               614 Chapala St\r
+                               Santa Barbara  CA  93101\r
+                               US\r
+\r
+8C-8D-28   (hex)               Intel Corporate\r
+8C8D28     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+90-CC-DF   (hex)               Intel Corporate\r
+90CCDF     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+08-5B-D6   (hex)               Intel Corporate\r
+085BD6     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+B4-0E-DE   (hex)               Intel Corporate\r
+B40EDE     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+E4-D3-AA   (hex)               FUJITSU CONNECTED TECHNOLOGIES LIMITED\r
+E4D3AA     (base 16)           FUJITSU CONNECTED TECHNOLOGIES LIMITED\r
+                               Sanki Yamato Building, 7-10-1 Chuorinkan\r
+                               Yamato  Kanagawa  242-8588\r
+                               JP\r
+\r
+C8-E2-65   (hex)               Intel Corporate\r
+C8E265     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+E0-2B-E9   (hex)               Intel Corporate\r
+E02BE9     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+D0-56-BF   (hex)               AMOSENSE\r
+D056BF     (base 16)           AMOSENSE\r
+                               Narutu street 56\r
+                               SEOUL  Sucho gu  06527\r
+                               KR\r
+\r
+A4-53-EE   (hex)               IEEE Registration Authority\r
+A453EE     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
+\r
+BC-9A-53   (hex)               Huawei Device Co., Ltd.\r
+BC9A53     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+DC-27-27   (hex)               Huawei Device Co., Ltd.\r
+DC2727     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+F0-42-F5   (hex)               Huawei Device Co., Ltd.\r
+F042F5     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+6C-F7-12   (hex)               Nokia Solutions and Networks GmbH & Co. KG\r
+6CF712     (base 16)           Nokia Solutions and Networks GmbH & Co. KG\r
+                               Werinherstrasse 91\r
+                               München  Bavaria  D-81541\r
+                               DE\r
+\r
+78-F9-B4   (hex)               Nokia Solutions and Networks GmbH & Co. KG\r
+78F9B4     (base 16)           Nokia Solutions and Networks GmbH & Co. KG\r
+                               Werinherstrasse 91\r
+                               München  Bavaria  D-81541\r
+                               DE\r
+\r
+60-A8-FE   (hex)               Nokia Solutions and Networks GmbH & Co. KG\r
+60A8FE     (base 16)           Nokia Solutions and Networks GmbH & Co. KG\r
+                               Werinherstrasse 91\r
+                               München  Bavaria  D-81541\r
+                               DE\r
+\r
+D8-EF-CD   (hex)               Nokia Solutions and Networks GmbH & Co. KG\r
+D8EFCD     (base 16)           Nokia Solutions and Networks GmbH & Co. KG\r
+                               Werinherstrasse 91\r
+                               München  Bavaria  D-81541\r
+                               DE\r
+\r
+8C-8C-AA   (hex)               LCFC(HeFei) Electronics Technology co., ltd\r
+8C8CAA     (base 16)           LCFC(HeFei) Electronics Technology co., ltd\r
+                               YunGu Road 3188-1\r
+                               Hefei  Anhui  230000\r
+                               CN\r
+\r
+D0-40-EF   (hex)               Murata Manufacturing Co., Ltd.\r
+D040EF     (base 16)           Murata Manufacturing Co., Ltd.\r
+                               1-10-1, Higashikotari\r
+                               Nagaokakyo-shi  Kyoto  617-8555\r
+                               JP\r
+\r
+EC-75-ED   (hex)               Citrix Systems, Inc.\r
+EC75ED     (base 16)           Citrix Systems, Inc.\r
+                               851 W Cypress Creek Rd\r
+                               Fort Lauderdale  FL  33309\r
+                               US\r
+\r
+E0-2E-3F   (hex)               Huawei Device Co., Ltd.\r
+E02E3F     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+4C-75-25   (hex)               Espressif Inc.\r
+4C7525     (base 16)           Espressif Inc.\r
+                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+                               Shanghai  Shanghai  201203\r
+                               CN\r
+\r
+74-04-F0   (hex)               Mobiwire Mobiles (NingBo) Co., LTD\r
+7404F0     (base 16)           Mobiwire Mobiles (NingBo) Co., LTD\r
+                               No.999 Dacheng East Road, Fenghua District, Ningbo City , Zhejiang Province, PRC\r
+                               Ningbo  Zhejiang  315500\r
+                               CN\r
+\r
+B4-B5-B6   (hex)               CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+B4B5B6     (base 16)           CHONGQING FUGUI ELECTRONICS CO.,LTD.\r
+                               Building D21,No.1, East Zone 1st Road,Xiyong Town,Shapingba District\r
+                               Chongqing  Chongqing  401332\r
+                               CN\r
+\r
+04-7A-0B   (hex)               Beijing Xiaomi Electronics Co., Ltd.\r
+047A0B     (base 16)           Beijing Xiaomi Electronics Co., Ltd.\r
+                               Building C, QingHe ShunShiJiaYe Technology Park, #66 ZhuFang Rd, HaiDian District\r
+                               Beijing  Beijing  10085\r
+                               CN\r
+\r
+90-0F-0C   (hex)               CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
+900F0C     (base 16)           CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
+                               B22 Building,NO.51 Tongle Road, Shajing Town, Jiangnan District, Nanning, Guangxi Province, China\r
+                               Nanning  Guangxi  530007\r
+                               CN\r
+\r
+BC-9D-42   (hex)               SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.\r
+BC9D42     (base 16)           SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.\r
+                               Bldg56A,6/F,Baotian Rd3,Xixiang Town,Baoan District,\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+24-0B-88   (hex)               Taicang T&W Electronics\r
+240B88     (base 16)           Taicang T&W Electronics\r
+                               89# Jiang Nan RD\r
+                               Suzhou  Jiangsu  215412\r
+                               CN\r
+\r
+0C-93-8F   (hex)               GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+0C938F     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+                               NO.18 HAIBIN ROAD,\r
+                               DONG GUAN  GUANG DONG  523860\r
+                               CN\r
+\r
+F0-A2-25   (hex)               Amazon Technologies Inc.\r
+F0A225     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102 \r
+                               Reno  NV  89507\r
+                               US\r
+\r
+F0-4F-7C   (hex)               Amazon Technologies Inc.\r
+F04F7C     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102 \r
+                               Reno  NV  89507\r
+                               US\r
+\r
+5C-BD-9A   (hex)               Huawei Device Co., Ltd.\r
+5CBD9A     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+14-A3-B4   (hex)               Huawei Device Co., Ltd.\r
+14A3B4     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 F8-D0-27   (hex)               Seiko Epson Corporation\r
 F8D027     (base 16)           Seiko Epson Corporation\r
                                2070 Kotobuki Koaka\r
@@ -103754,12 +104324,6 @@ C4411E     (base 16)         Belkin International Inc.
                                Playa Vista  null  90094\r
                                US\r
 \r
-00-77-E4   (hex)               Nokia\r
-0077E4     (base 16)           Nokia\r
-                               Karaportti 3\r
-                               Espoo  Finland  02610\r
-                               FI\r
-\r
 00-AD-63   (hex)               Dedicated Micros Malta LTD\r
 00AD63     (base 16)           Dedicated Micros Malta LTD\r
                                Blb017, Qasam Industrijali Bulebel\r
@@ -104369,9 +104933,6 @@ D0EC35     (base 16)          Cisco Systems, Inc
 10-AE-60   (hex)               Private\r
 10AE60     (base 16)           Private\r
 \r
-00-25-DF   (hex)               Private\r
-0025DF     (base 16)           Private\r
-\r
 BC-CF-4F   (hex)               Zyxel Communications Corporation\r
 BCCF4F     (base 16)           Zyxel Communications Corporation\r
                                No. 6 Innovation Road II, Science Park\r
@@ -104924,12 +105485,6 @@ DC48B2     (base 16)         Baraja Pty. Ltd.
                                West Lindfield  NSW  2070\r
                                AU\r
 \r
-AC-AE-19   (hex)               Roku, Inc\r
-ACAE19     (base 16)           Roku, Inc\r
-                               150 Winchester Circle\r
-                               Los Gatos  CA  95032\r
-                               US\r
-\r
 18-1E-95   (hex)               AuVerte\r
 181E95     (base 16)           AuVerte\r
                                14 Riverview Road\r
@@ -107234,12 +107789,6 @@ C421C8     (base 16)         KYOCERA CORPORATION
                                Yokohama-shi  Kanagawa  224-8502\r
                                JP\r
 \r
-48-EC-5B   (hex)               Nokia\r
-48EC5B     (base 16)           Nokia\r
-                               Karaportti 3\r
-                               Espoo  Finland  02610\r
-                               FI\r
-\r
 70-58-12   (hex)               Panasonic Corporation AVC Networks Company\r
 705812     (base 16)           Panasonic Corporation AVC Networks Company\r
                                1-15 Matsuo-cho\r
@@ -122441,12 +122990,6 @@ A07332     (base 16)         Cashmaster International Limited
                                Gunposi  Kyoungkido  436-862\r
                                KR\r
 \r
-00-21-3E   (hex)               TomTom\r
-00213E     (base 16)           TomTom\r
-                               Oosterdoksstraat 114\r
-                               Amsterdam  North Holland  1011 DK\r
-                               NL\r
-\r
 00-21-3F   (hex)               A-Team Technology Ltd.\r
 00213F     (base 16)           A-Team Technology Ltd.\r
                                Rm. 1608, 16/F., Metropole Square,\r
@@ -126911,12 +127454,6 @@ A07332     (base 16)         Cashmaster International Limited
                                Shanghai    200001\r
                                CN\r
 \r
-00-0E-B6   (hex)               Riverbed Technology, Inc.\r
-000EB6     (base 16)           Riverbed Technology, Inc.\r
-                                680 Folsom St.\r
-                               San Francisco  CA  94107\r
-                               US\r
-\r
 00-0E-B7   (hex)               Knovative, Inc.\r
 000EB7     (base 16)           Knovative, Inc.\r
                                11245 West Bernardo Court\r
@@ -128789,12 +129326,6 @@ A07332     (base 16)         Cashmaster International Limited
                                Seoul    152-721\r
                                KR\r
 \r
-00-08-B0   (hex)               BKtel communications GmbH\r
-0008B0     (base 16)           BKtel communications GmbH\r
-                               Benzstraße 4\r
-                               41836 Hückelhoven-Baal  NRW  41836\r
-                               DE\r
-\r
 00-08-CA   (hex)               TwinHan Technology Co.,Ltd\r
 0008CA     (base 16)           TwinHan Technology Co.,Ltd\r
                                13F-6,No 79,Sec 1,Hsin Tai Wu RD.,Hsi-Ch\r
@@ -135257,18 +135788,18 @@ ACF8CC     (base 16)                ARRIS Group, Inc.
                                REDMOND    98052\r
                                US\r
 \r
-CC-D4-2E   (hex)               Arcadyan Corporation\r
-CCD42E     (base 16)           Arcadyan Corporation\r
-                               No.8, Sec.2, Guangfu Rd.\r
-                               Hsinchu City  Hsinchu  30071\r
-                               TW\r
-\r
 C8-53-E1   (hex)               Beijing Bytedance Network Technology Co., Ltd\r
 C853E1     (base 16)           Beijing Bytedance Network Technology Co., Ltd\r
                                No.1 Building, Zhonghang Square, West Road of the Northern 3rd Circuit, Haidian Distrct\r
                                Beijing  Beijing  100098\r
                                CN\r
 \r
+CC-D4-2E   (hex)               Arcadyan Corporation\r
+CCD42E     (base 16)           Arcadyan Corporation\r
+                               No.8, Sec.2, Guangfu Rd.\r
+                               Hsinchu City  Hsinchu  30071\r
+                               TW\r
+\r
 14-16-9D   (hex)               Cisco Systems, Inc\r
 14169D     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
@@ -135287,17 +135818,17 @@ C853E1     (base 16)                Beijing Bytedance Network Technology Co., Ltd
                                Piscataway  NJ  08554\r
                                US\r
 \r
-F0-08-D1   (hex)               Espressif Inc.\r
-F008D1     (base 16)           Espressif Inc.\r
-                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
-                               Shanghai  Shanghai  201203\r
+04-8C-16   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+048C16     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
                                CN\r
 \r
-58-94-B2   (hex)               BrainCo\r
-5894B2     (base 16)           BrainCo\r
-                               ????????????????1107?\r
-                               ???  ???  518000\r
-                               CN\r
+98-DD-5B   (hex)               TAKUMI JAPAN LTD\r
+98DD5B     (base 16)           TAKUMI JAPAN LTD\r
+                               3-9-3 Uchiyama building 7F Nishishinbashi\r
+                               Minato-ku Tokyo  Tokyo  1050003\r
+                               JP\r
 \r
 B0-95-75   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
 B09575     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
@@ -135305,42 +135836,36 @@ B09575     (base 16)                TP-LINK TECHNOLOGIES CO.,LTD.
                                Shenzhen  Guangdong  518057\r
                                CN\r
 \r
-B4-B0-55   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-B4B055     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
+F0-08-D1   (hex)               Espressif Inc.\r
+F008D1     (base 16)           Espressif Inc.\r
+                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+                               Shanghai  Shanghai  201203\r
                                CN\r
 \r
-04-8C-16   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-048C16     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+B4-B0-55   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+B4B055     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
                                Dongguan    523808\r
                                CN\r
 \r
-98-DD-5B   (hex)               TAKUMI JAPAN LTD\r
-98DD5B     (base 16)           TAKUMI JAPAN LTD\r
-                               3-9-3 Uchiyama building 7F Nishishinbashi\r
-                               Minato-ku Tokyo  Tokyo  1050003\r
-                               JP\r
-\r
-3C-5C-F1   (hex)               eero inc.\r
-3C5CF1     (base 16)           eero inc.\r
-                               660 3rd Street\r
-                               San Francisco  CA  94107\r
-                               US\r
-\r
 14-AE-85   (hex)               IEEE Registration Authority\r
 14AE85     (base 16)           IEEE Registration Authority\r
                                445 Hoes Lane\r
                                Piscataway  NJ  08554\r
                                US\r
 \r
-90-74-9D   (hex)               IRay Technology Co., Ltd.\r
-90749D     (base 16)           IRay Technology Co., Ltd.\r
-                               11th Guiyang St.,\r
-                               Yantai  Shandong  264000\r
+58-94-B2   (hex)               BrainCo\r
+5894B2     (base 16)           BrainCo\r
+                               ????????????????1107?\r
+                               ???  ???  518000\r
                                CN\r
 \r
+64-5C-F3   (hex)               ParanTek Inc.\r
+645CF3     (base 16)           ParanTek Inc.\r
+                               3F, 40-15 Gilju-Ro, 411 Beon-Gil\r
+                               Wonmi-Gu, Bucheon City  Gyeonggi-Do  14488\r
+                               KR\r
+\r
 8C-3B-32   (hex)               Microfan B.V.\r
 8C3B32     (base 16)           Microfan B.V.\r
                                Industriestraat 23\r
@@ -135353,16 +135878,16 @@ D0D3E0     (base 16)                Aruba, a Hewlett Packard Enterprise Company
                                Santa Clara  CA  95054\r
                                US\r
 \r
-64-5C-F3   (hex)               ParanTek Inc.\r
-645CF3     (base 16)           ParanTek Inc.\r
-                               3F, 40-15 Gilju-Ro, 411 Beon-Gil\r
-                               Wonmi-Gu, Bucheon City  Gyeonggi-Do  14488\r
-                               KR\r
+FC-39-64   (hex)               ITEL MOBILE LIMITED\r
+FC3964     (base 16)           ITEL MOBILE LIMITED\r
+                               RM B3 & B4 BLOCK B, KO FAI INDUSTRIAL BUILDING  NO.7 KO FAI ROAD, YAU TONG, KLN, H.K\r
+                               Hong Kong  KOWLOON  999077\r
+                               HK\r
 \r
-B0-CC-FE   (hex)               Huawei Device Co., Ltd.\r
-B0CCFE     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
+90-74-9D   (hex)               IRay Technology Co., Ltd.\r
+90749D     (base 16)           IRay Technology Co., Ltd.\r
+                               11th Guiyang St.,\r
+                               Yantai  Shandong  264000\r
                                CN\r
 \r
 54-0D-F9   (hex)               Huawei Device Co., Ltd.\r
@@ -135377,38 +135902,32 @@ B0CCFE     (base 16)                Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-FC-39-64   (hex)               ITEL MOBILE LIMITED\r
-FC3964     (base 16)           ITEL MOBILE LIMITED\r
-                               RM B3 & B4 BLOCK B, KO FAI INDUSTRIAL BUILDING  NO.7 KO FAI ROAD, YAU TONG, KLN, H.K\r
-                               Hong Kong  KOWLOON  999077\r
-                               HK\r
-\r
-14-47-2D   (hex)               GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
-14472D     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
-                               NO.18 HAIBIN ROAD,\r
-                               DONG GUAN  GUANG DONG  523860\r
+B0-CC-FE   (hex)               Huawei Device Co., Ltd.\r
+B0CCFE     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
                                CN\r
 \r
+3C-5C-F1   (hex)               eero inc.\r
+3C5CF1     (base 16)           eero inc.\r
+                               660 3rd Street\r
+                               San Francisco  CA  94107\r
+                               US\r
+\r
 E4-90-FD   (hex)               Apple, Inc.\r
 E490FD     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-84-AB-1A   (hex)               Apple, Inc.\r
-84AB1A     (base 16)           Apple, Inc.\r
+D0-65-44   (hex)               Apple, Inc.\r
+D06544     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-20-6D-31   (hex)               FIREWALLA INC\r
-206D31     (base 16)           FIREWALLA INC\r
-                               75 E. Santa Clara St. STE 600\r
-                               San Jose  CA  95113\r
-                               US\r
-\r
-D0-65-44   (hex)               Apple, Inc.\r
-D06544     (base 16)           Apple, Inc.\r
+84-AB-1A   (hex)               Apple, Inc.\r
+84AB1A     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
@@ -135431,23 +135950,11 @@ F84FAD     (base 16)                Hui Zhou Gaoshengda Technology Co.,LTD
                                Burnaby  BC  V5H 4H2\r
                                CA\r
 \r
-3C-80-6B   (hex)               Hunan Voc Acoustics Technology Co., Ltd.\r
-3C806B     (base 16)           Hunan Voc Acoustics Technology Co., Ltd.\r
-                               State Industrialpark, Jiulong Development Zone, Yanling County\r
-                               Zhuzhou  Hunan  412500\r
-                               CN\r
-\r
-60-DE-35   (hex)               GITSN, Inc.\r
-60DE35     (base 16)           GITSN, Inc.\r
-                                #601~602, Daerung Post Tower 1, 288, Digital-ro\r
-                               Guro-gu  Seoul  08390\r
-                               KR\r
-\r
-28-31-7E   (hex)               Hongkong Nano IC Technologies Co., Ltd\r
-28317E     (base 16)           Hongkong Nano IC Technologies Co., Ltd\r
-                                Rm. 19C, Lockhart Ctr., 301-307 Lockhart Rd., Wan Chai, Hong Kong.\r
-                               Hongkong    999077\r
-                               CN\r
+20-6D-31   (hex)               FIREWALLA INC\r
+206D31     (base 16)           FIREWALLA INC\r
+                               75 E. Santa Clara St. STE 600\r
+                               San Jose  CA  95113\r
+                               US\r
 \r
 A8-41-22   (hex)               China Mobile (Hangzhou) Information Technology Co.,Ltd.\r
 A84122     (base 16)           China Mobile (Hangzhou) Information Technology Co.,Ltd.\r
@@ -135455,6 +135962,12 @@ A84122     (base 16)         China Mobile (Hangzhou) Information Technology Co.,Ltd.
                                Hangzhou  Zhejiang  310000\r
                                CN\r
 \r
+14-47-2D   (hex)               GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+14472D     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+                               NO.18 HAIBIN ROAD,\r
+                               DONG GUAN  GUANG DONG  523860\r
+                               CN\r
+\r
 6C-DD-BC   (hex)               Samsung Electronics Co.,Ltd\r
 6CDDBC     (base 16)           Samsung Electronics Co.,Ltd\r
                                #94-1, Imsoo-Dong\r
@@ -135467,17 +135980,41 @@ CC7F76     (base 16)                Cisco Systems, Inc
                                San Jose  CA  94568\r
                                US\r
 \r
+3C-80-6B   (hex)               Hunan Voc Acoustics Technology Co., Ltd.\r
+3C806B     (base 16)           Hunan Voc Acoustics Technology Co., Ltd.\r
+                               State Industrialpark, Jiulong Development Zone, Yanling County\r
+                               Zhuzhou  Hunan  412500\r
+                               CN\r
+\r
+60-DE-35   (hex)               GITSN, Inc.\r
+60DE35     (base 16)           GITSN, Inc.\r
+                                #601~602, Daerung Post Tower 1, 288, Digital-ro\r
+                               Guro-gu  Seoul  08390\r
+                               KR\r
+\r
+28-31-7E   (hex)               Hongkong Nano IC Technologies Co., Ltd\r
+28317E     (base 16)           Hongkong Nano IC Technologies Co., Ltd\r
+                                Rm. 19C, Lockhart Ctr., 301-307 Lockhart Rd., Wan Chai, Hong Kong.\r
+                               Hongkong    999077\r
+                               CN\r
+\r
 40-BC-68   (hex)               Wuhan Funshion Online Technologies Co.,Ltd\r
 40BC68     (base 16)           Wuhan Funshion Online Technologies Co.,Ltd\r
                                5th Floor,Financial Port Building A9,No.77 Optical Valley Avenue, East Lake High-Tech Development Zone, Wuhan\r
                                Wuhan  CN/Hubei  430000\r
                                CN\r
 \r
-DC-98-40   (hex)               Microsoft Corporation\r
-DC9840     (base 16)           Microsoft Corporation\r
-                               One Microsoft Way\r
-                               REDMOND    98052\r
-                               US\r
+B8-02-A4   (hex)               Aeonsemi, Inc.\r
+B802A4     (base 16)           Aeonsemi, Inc.\r
+                               Cassia Court, Suite 716, 10 Market Street\r
+                               Camana Bay  Grand Cayman  KY1-9006\r
+                               KY\r
+\r
+E4-83-26   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+E48326     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
 \r
 44-76-54   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 447654     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
@@ -135497,36 +136034,48 @@ F033E5     (base 16)                HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
-B4-F1-8C   (hex)               Huawei Device Co., Ltd.\r
-B4F18C     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
 B8-CE-F6   (hex)               Mellanox Technologies, Inc.\r
 B8CEF6     (base 16)           Mellanox Technologies, Inc.\r
                                350 Oakmead Parkway, Suite 100 \r
                                Sunnyvale  CA  94085\r
                                US\r
 \r
-B8-02-A4   (hex)               Aeonsemi, Inc.\r
-B802A4     (base 16)           Aeonsemi, Inc.\r
-                               Cassia Court, Suite 716, 10 Market Street\r
-                               Camana Bay  Grand Cayman  KY1-9006\r
-                               KY\r
-\r
-E4-83-26   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-E48326     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
 94-05-BB   (hex)               IEEE Registration Authority\r
 9405BB     (base 16)           IEEE Registration Authority\r
                                445 Hoes Lane\r
                                Piscataway  NJ  08554\r
                                US\r
 \r
+DC-98-40   (hex)               Microsoft Corporation\r
+DC9840     (base 16)           Microsoft Corporation\r
+                               One Microsoft Way\r
+                               REDMOND    98052\r
+                               US\r
+\r
+B4-F1-8C   (hex)               Huawei Device Co., Ltd.\r
+B4F18C     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+C4-32-D1   (hex)               Farlink Technology Limited\r
+C432D1     (base 16)           Farlink Technology Limited\r
+                               Flat A&B,9/F,Wing Cheong Factory Building,121 King Lam Street,Cheung Sha Wan,Hong Kong.\r
+                               Hongkong    0000\r
+                               HK\r
+\r
+C8-D7-78   (hex)               BSH Hausgeraete GmbH\r
+C8D778     (base 16)           BSH Hausgeraete GmbH\r
+                               Im Gewerbepark B10\r
+                               Regensburg    93059\r
+                               DE\r
+\r
+18-69-D8   (hex)               HANGZHOU AIXIANGJI TECHNOLOGY CO., LTD\r
+1869D8     (base 16)           HANGZHOU AIXIANGJI TECHNOLOGY CO., LTD\r
+                               7 Floor, 3 Blvd., More Centre, 87 Gudun Rd., Xihu District\r
+                               Hangzhou  Zhejiang  310012\r
+                               CN\r
+\r
 8C-5F-AD   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
 8C5FAD     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
                                No.5 DongXin Road\r
@@ -135545,18 +136094,6 @@ ACC25D     (base 16)         Fiberhome Telecommunication Technologies Co.,LTD
                                Kanata  Ontario  K2K 2E6\r
                                CA\r
 \r
-18-69-D8   (hex)               HANGZHOU AIXIANGJI TECHNOLOGY CO., LTD\r
-1869D8     (base 16)           HANGZHOU AIXIANGJI TECHNOLOGY CO., LTD\r
-                               7 Floor, 3 Blvd., More Centre, 87 Gudun Rd., Xihu District\r
-                               Hangzhou  Zhejiang  310012\r
-                               CN\r
-\r
-C4-32-D1   (hex)               Farlink Technology Limited\r
-C432D1     (base 16)           Farlink Technology Limited\r
-                               Flat A&B,9/F,Wing Cheong Factory Building,121 King Lam Street,Cheung Sha Wan,Hong Kong.\r
-                               Hongkong    0000\r
-                               HK\r
-\r
 CC-41-8E   (hex)               MSA Innovation\r
 CC418E     (base 16)           MSA Innovation\r
                                1100 Cranberry Woods Road\r
@@ -135575,6 +136112,12 @@ CCA7C1     (base 16)         Google, Inc.
                                San Francisco    94158\r
                                US\r
 \r
+68-49-B2   (hex)               CARLO GAVAZZI LTD\r
+6849B2     (base 16)           CARLO GAVAZZI LTD\r
+                               BLB042, Bulebel Industrial Estate \r
+                               Zejtun     ZTN 3000\r
+                               MT\r
+\r
 7C-9E-BD   (hex)               Espressif Inc.\r
 7C9EBD     (base 16)           Espressif Inc.\r
                                Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
@@ -135587,11 +136130,11 @@ CCA7C1     (base 16)                Google, Inc.
                                DONG GUAN  GUANG DONG  523860\r
                                CN\r
 \r
-C8-D7-78   (hex)               BSH Hausgeraete GmbH\r
-C8D778     (base 16)           BSH Hausgeraete GmbH\r
-                               Im Gewerbepark B10\r
-                               Regensburg    93059\r
-                               DE\r
+C0-95-DA   (hex)               NXP India Private Limited\r
+C095DA     (base 16)           NXP India Private Limited\r
+                               1st Floor, Muttha Towers, Don Bosco Marg, Off Airport Road, Yerwada\r
+                               Pune  Maharashtra  411006\r
+                               IN\r
 \r
 9C-61-1D   (hex)               Panasonic Corporation of North America\r
 9C611D     (base 16)           Panasonic Corporation of North America\r
@@ -135599,36 +136142,18 @@ C8D778     (base 16)                BSH Hausgeraete GmbH
                                Rochester  NY  14615\r
                                US\r
 \r
-C0-95-DA   (hex)               NXP India Private Limited\r
-C095DA     (base 16)           NXP India Private Limited\r
-                               1st Floor, Muttha Towers, Don Bosco Marg, Off Airport Road, Yerwada\r
-                               Pune  Maharashtra  411006\r
-                               IN\r
-\r
 B4-22-00   (hex)               Brother Industries, LTD.\r
 B42200     (base 16)           Brother Industries, LTD.\r
                                15-1, Naeshirocho, Mizuho-ku\r
                                NAGOYA    4678561\r
                                JP\r
 \r
-68-49-B2   (hex)               CARLO GAVAZZI LTD\r
-6849B2     (base 16)           CARLO GAVAZZI LTD\r
-                               BLB042, Bulebel Industrial Estate \r
-                               Zejtun     ZTN 3000\r
-                               MT\r
-\r
 48-7A-FF   (hex)               ESSYS\r
 487AFF     (base 16)           ESSYS\r
                                gaetbeol-ro\r
                                Incheon    21999\r
                                KR\r
 \r
-40-B6-E7   (hex)               Huawei Device Co., Ltd.\r
-40B6E7     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
 D0-B4-5D   (hex)               Huawei Device Co., Ltd.\r
 D0B45D     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -135641,6 +136166,12 @@ D0B45D     (base 16)         Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
+00-9E-EE   (hex)               Positivo Tecnologia S.A.\r
+009EEE     (base 16)           Positivo Tecnologia S.A.\r
+                               João Bettega, 5200\r
+                               Curitiba  Paraná  81350-000\r
+                               BR\r
+\r
 A4-C5-4E   (hex)               Huawei Device Co., Ltd.\r
 A4C54E     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -135653,54 +136184,54 @@ D4BBE6     (base 16)                Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-00-9E-EE   (hex)               Positivo Tecnologia S.A.\r
-009EEE     (base 16)           Positivo Tecnologia S.A.\r
-                               João Bettega, 5200\r
-                               Curitiba  Paraná  81350-000\r
-                               BR\r
+40-B6-E7   (hex)               Huawei Device Co., Ltd.\r
+40B6E7     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
 \r
-90-B8-32   (hex)               Extreme Networks, Inc.\r
-90B832     (base 16)           Extreme Networks, Inc.\r
+9C-5D-12   (hex)               Extreme Networks, Inc.\r
+9C5D12     (base 16)           Extreme Networks, Inc.\r
                                1011 McCarthy Blvd\r
                                Milpitas  CA  95035\r
                                US\r
 \r
-40-2F-86   (hex)               LG Innotek\r
-402F86     (base 16)           LG Innotek\r
-                               26, Hanamsandan 5beon-ro\r
-                               Gwangju  Gwangsan-gu  506-731\r
-                               KR\r
-\r
-D4-22-CD   (hex)               Xsens Technologies B.V.\r
-D422CD     (base 16)           Xsens Technologies B.V.\r
-                               Pantheon 6-a\r
-                               Enschede    7521 PR\r
-                               NL\r
-\r
-C8-67-5E   (hex)               Extreme Networks, Inc.\r
-C8675E     (base 16)           Extreme Networks, Inc.\r
+F0-9C-E9   (hex)               Extreme Networks, Inc.\r
+F09CE9     (base 16)           Extreme Networks, Inc.\r
                                1011 McCarthy Blvd\r
                                Milpitas  CA  95035\r
                                US\r
 \r
-9C-5D-12   (hex)               Extreme Networks, Inc.\r
-9C5D12     (base 16)           Extreme Networks, Inc.\r
+C4-13-E2   (hex)               Extreme Networks, Inc.\r
+C413E2     (base 16)           Extreme Networks, Inc.\r
                                1011 McCarthy Blvd\r
                                Milpitas  CA  95035\r
                                US\r
 \r
-F0-9C-E9   (hex)               Extreme Networks, Inc.\r
-F09CE9     (base 16)           Extreme Networks, Inc.\r
+90-B8-32   (hex)               Extreme Networks, Inc.\r
+90B832     (base 16)           Extreme Networks, Inc.\r
                                1011 McCarthy Blvd\r
                                Milpitas  CA  95035\r
                                US\r
 \r
-C4-13-E2   (hex)               Extreme Networks, Inc.\r
-C413E2     (base 16)           Extreme Networks, Inc.\r
+C8-67-5E   (hex)               Extreme Networks, Inc.\r
+C8675E     (base 16)           Extreme Networks, Inc.\r
                                1011 McCarthy Blvd\r
                                Milpitas  CA  95035\r
                                US\r
 \r
+40-2F-86   (hex)               LG Innotek\r
+402F86     (base 16)           LG Innotek\r
+                               26, Hanamsandan 5beon-ro\r
+                               Gwangju  Gwangsan-gu  506-731\r
+                               KR\r
+\r
+D4-22-CD   (hex)               Xsens Technologies B.V.\r
+D422CD     (base 16)           Xsens Technologies B.V.\r
+                               Pantheon 6-a\r
+                               Enschede    7521 PR\r
+                               NL\r
+\r
 F4-EB-9F   (hex)               Ellu Company 2019 SL\r
 F4EB9F     (base 16)           Ellu Company 2019 SL\r
                                Paseo de la Castellana 144 14B\r
@@ -135713,6 +136244,12 @@ E898C2     (base 16)         ZETLAB Company
                                Zelenograd  Moscow  124482\r
                                RU\r
 \r
+64-DD-E9   (hex)               Xiaomi Communications Co Ltd\r
+64DDE9     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
 D4-1A-C8   (hex)               Nippon Printer Engineering\r
 D41AC8     (base 16)           Nippon Printer Engineering\r
                                2660 Katsuyama\r
@@ -135725,6 +136262,12 @@ D41AC8     (base 16)         Nippon Printer Engineering
                                Santa Ana  CA  92707\r
                                US\r
 \r
+0C-81-7D   (hex)               EEP Elektro-Elektronik Pranjic GmbH\r
+0C817D     (base 16)           EEP Elektro-Elektronik Pranjic GmbH\r
+                               Am Luftschacht 21\r
+                               Gelsenkirchen    45886\r
+                               DE\r
+\r
 00-0C-32   (hex)               Avionic Design GmbH\r
 000C32     (base 16)           Avionic Design GmbH\r
                                Wragekamp 10\r
@@ -135737,48 +136280,6 @@ D41AC8     (base 16)         Nippon Printer Engineering
                                Berlin    13509\r
                                DE\r
 \r
-F4-54-20   (hex)               TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO \r
-F45420     (base 16)           TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO \r
-                               Av. Buriti, 1900 – Setor B – Distrito Industrial\r
-                               Manaus  Amazonas  69075-000\r
-                               BR\r
-\r
-4C-40-88   (hex)               SANSHIN ELECTRONICS CO.,LTD.\r
-4C4088     (base 16)           SANSHIN ELECTRONICS CO.,LTD.\r
-                               4-4-12, Shiba, Minato-ku,\r
-                               Tokyo    108-8404\r
-                               JP\r
-\r
-64-DD-E9   (hex)               Xiaomi Communications Co Ltd\r
-64DDE9     (base 16)           Xiaomi Communications Co Ltd\r
-                               The Rainbow City of China Resources\r
-                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
-                               CN\r
-\r
-0C-81-7D   (hex)               EEP Elektro-Elektronik Pranjic GmbH\r
-0C817D     (base 16)           EEP Elektro-Elektronik Pranjic GmbH\r
-                               Am Luftschacht 21\r
-                               Gelsenkirchen    45886\r
-                               DE\r
-\r
-04-F5-F4   (hex)               Proxim Wireless\r
-04F5F4     (base 16)           Proxim Wireless\r
-                               2114 Ringwood Ave\r
-                               San Jose  CA  95131\r
-                               US\r
-\r
-C8-BC-E5   (hex)               Sense Things Japan INC.\r
-C8BCE5     (base 16)           Sense Things Japan INC.\r
-                               3-5-7 Kawaramachi,Chuo-ku\r
-                               Osaka    541-0048\r
-                               JP\r
-\r
-E8-B4-70   (hex)               IEEE Registration Authority\r
-E8B470     (base 16)           IEEE Registration Authority\r
-                               445 Hoes Lane\r
-                               Piscataway  NJ  08554\r
-                               US\r
-\r
 00-1B-ED   (hex)               Brocade Communications Systems LLC\r
 001BED     (base 16)           Brocade Communications Systems LLC\r
                                1320 Ridder Park Dr\r
@@ -135797,6 +136298,18 @@ E8B470     (base 16)         IEEE Registration Authority
                                San Jose  CA  95131\r
                                US\r
 \r
+B0-45-02   (hex)               Huawei Device Co., Ltd.\r
+B04502     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+1C-1F-F1   (hex)               Huawei Device Co., Ltd.\r
+1C1FF1     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 60-9C-9F   (hex)               Brocade Communications Systems LLC\r
 609C9F     (base 16)           Brocade Communications Systems LLC\r
                                1320 Ridder Park Dr\r
@@ -135827,17 +136340,35 @@ E8B470     (base 16)                IEEE Registration Authority
                                San Jose  CA  95131\r
                                US\r
 \r
-B0-45-02   (hex)               Huawei Device Co., Ltd.\r
-B04502     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
+F4-54-20   (hex)               TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO \r
+F45420     (base 16)           TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO \r
+                               Av. Buriti, 1900 – Setor B – Distrito Industrial\r
+                               Manaus  Amazonas  69075-000\r
+                               BR\r
 \r
-1C-1F-F1   (hex)               Huawei Device Co., Ltd.\r
-1C1FF1     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
+4C-40-88   (hex)               SANSHIN ELECTRONICS CO.,LTD.\r
+4C4088     (base 16)           SANSHIN ELECTRONICS CO.,LTD.\r
+                               4-4-12, Shiba, Minato-ku,\r
+                               Tokyo    108-8404\r
+                               JP\r
+\r
+04-F5-F4   (hex)               Proxim Wireless\r
+04F5F4     (base 16)           Proxim Wireless\r
+                               2114 Ringwood Ave\r
+                               San Jose  CA  95131\r
+                               US\r
+\r
+C8-BC-E5   (hex)               Sense Things Japan INC.\r
+C8BCE5     (base 16)           Sense Things Japan INC.\r
+                               3-5-7 Kawaramachi,Chuo-ku\r
+                               Osaka    541-0048\r
+                               JP\r
+\r
+E8-B4-70   (hex)               IEEE Registration Authority\r
+E8B470     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
 \r
 B4-EF-1C   (hex)               360 AI Technology Co.Ltd\r
 B4EF1C     (base 16)           360 AI Technology Co.Ltd\r
@@ -135857,6 +136388,12 @@ B8F009     (base 16)         Espressif Inc.
                                Shanghai  Shanghai  201203\r
                                CN\r
 \r
+24-68-B0   (hex)               Samsung Electronics Co.,Ltd\r
+2468B0     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
 FC-71-FA   (hex)               Trane Technologies\r
 FC71FA     (base 16)           Trane Technologies\r
                                6200 Troup Hwy.\r
@@ -135875,35 +136412,17 @@ CCBE59     (base 16)                Calix Inc.
                                Merchtem  Vlaams brabant  1785\r
                                BE\r
 \r
-30-FC-EB   (hex)               LG Electronics (Mobile Communications)\r
-30FCEB     (base 16)           LG Electronics (Mobile Communications)\r
-                               60-39, Gasan-dong, Geumcheon-gu\r
-                               Seoul    153-801\r
-                               KR\r
-\r
-24-68-B0   (hex)               Samsung Electronics Co.,Ltd\r
-2468B0     (base 16)           Samsung Electronics Co.,Ltd\r
-                               #94-1, Imsoo-Dong\r
-                               Gumi  Gyeongbuk  730-350\r
-                               KR\r
-\r
-1C-13-38   (hex)               Kimball Electronics Group, LLC\r
-1C1338     (base 16)           Kimball Electronics Group, LLC\r
-                               1205 Kimball Blvd\r
-                               Jasper  IN  47546\r
-                               US\r
-\r
 9C-ED-FA   (hex)               EVUlution AG\r
 9CEDFA     (base 16)           EVUlution AG\r
                                Via da Clalt 12\r
                                Poschiavo  GR  7742\r
                                CH\r
 \r
-EC-63-ED   (hex)               Hyundai Autoever Corp.\r
-EC63ED     (base 16)           Hyundai Autoever Corp.\r
-                               38, Teheran-ro 114-gil\r
-                               Gangnam-gu, Seoul    06176\r
-                               KR\r
+9C-19-C2   (hex)               Dongguan Liesheng Electronic Co., Ltd.\r
+9C19C2     (base 16)           Dongguan Liesheng Electronic Co., Ltd.\r
+                               F5, Building B, North Block, Gaosheng Tech Park, No. 84 Zhongli Road, Nancheng District, Dongguan Ci\r
+                               dongguan   guangdong  523000\r
+                               CN\r
 \r
 D4-67-61   (hex)               XonTel Technology Co.\r
 D46761     (base 16)           XonTel Technology Co.\r
@@ -135911,29 +136430,47 @@ D46761     (base 16)                XonTel Technology Co.
                                Kuwait    0000\r
                                KW\r
 \r
+74-CB-F3   (hex)               Lava international limited\r
+74CBF3     (base 16)           Lava international limited\r
+                               A-154D, Sector-63\r
+                               Noida  Uttar Pradesh  201301\r
+                               IN\r
+\r
 E4-41-22   (hex)               OnePlus Technology (Shenzhen) Co., Ltd\r
 E44122     (base 16)           OnePlus Technology (Shenzhen) Co., Ltd\r
                                18C02, 18C03, 18C04 ,18C05,TAIRAN BUILDING,\r
                                Shenzhen  Guangdong  518000\r
                                CN\r
 \r
-9C-19-C2   (hex)               Dongguan Liesheng Electronic Co., Ltd.\r
-9C19C2     (base 16)           Dongguan Liesheng Electronic Co., Ltd.\r
-                               F5, Building B, North Block, Gaosheng Tech Park, No. 84 Zhongli Road, Nancheng District, Dongguan Ci\r
-                               dongguan   guangdong  523000\r
-                               CN\r
+1C-13-38   (hex)               Kimball Electronics Group, LLC\r
+1C1338     (base 16)           Kimball Electronics Group, LLC\r
+                               1205 Kimball Blvd\r
+                               Jasper  IN  47546\r
+                               US\r
 \r
-BC-26-A1   (hex)               FACTORY FIVE Corporation\r
-BC26A1     (base 16)           FACTORY FIVE Corporation\r
-                               3-391-1, Kamikitadai,\r
-                                Higashiyamato  Tokyo  207-0023\r
-                               JP\r
+30-FC-EB   (hex)               LG Electronics (Mobile Communications)\r
+30FCEB     (base 16)           LG Electronics (Mobile Communications)\r
+                               60-39, Gasan-dong, Geumcheon-gu\r
+                               Seoul    153-801\r
+                               KR\r
 \r
-74-CB-F3   (hex)               Lava international limited\r
-74CBF3     (base 16)           Lava international limited\r
-                               A-154D, Sector-63\r
-                               Noida  Uttar Pradesh  201301\r
-                               IN\r
+EC-63-ED   (hex)               Hyundai Autoever Corp.\r
+EC63ED     (base 16)           Hyundai Autoever Corp.\r
+                               38, Teheran-ro 114-gil\r
+                               Gangnam-gu, Seoul    06176\r
+                               KR\r
+\r
+18-DF-C1   (hex)               Aetheros\r
+18DFC1     (base 16)           Aetheros\r
+                               909 Montgomery Street, Suite 104\r
+                               San Francisco    94133\r
+                               US\r
+\r
+B0-5C-DA   (hex)               HP Inc.\r
+B05CDA     (base 16)           HP Inc.\r
+                               10300 Energy Dr\r
+                               Spring  TX  77389\r
+                               US\r
 \r
 F0-D1-4F   (hex)               LINEAR LLC\r
 F0D14F     (base 16)           LINEAR LLC\r
@@ -135941,52 +136478,58 @@ F0D14F     (base 16)                LINEAR LLC
                                Carlsbad  CA  92010\r
                                US\r
 \r
+24-79-EF   (hex)               Greenpacket Berhad, Taiwan\r
+2479EF     (base 16)           Greenpacket Berhad, Taiwan\r
+                               B-23A-3, The Ascent Paradigm, No. 1, Jalan SS7/26A, Kelana Jaya, 47301 Petaling Jaya\r
+                               Petaling Jaya  Selangor  47301\r
+                               MY\r
+\r
+60-AA-EF   (hex)               Huawei Device Co., Ltd.\r
+60AAEF     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+BC-26-A1   (hex)               FACTORY FIVE Corporation\r
+BC26A1     (base 16)           FACTORY FIVE Corporation\r
+                               3-391-1, Kamikitadai,\r
+                                Higashiyamato  Tokyo  207-0023\r
+                               JP\r
+\r
 00-11-68   (hex)               HomeLogic LLC\r
 001168     (base 16)           HomeLogic LLC\r
                                5919 Sea Otter Place\r
                                Carlsbad  CA  92010\r
                                US\r
 \r
-18-DF-C1   (hex)               Aetheros\r
-18DFC1     (base 16)           Aetheros\r
-                               909 Montgomery Street, Suite 104\r
-                               San Francisco    94133\r
-                               US\r
-\r
-FC-BC-0E   (hex)               Zhejiang Cainiao Supply Chain Management Co., Ltd\r
-FCBC0E     (base 16)           Zhejiang Cainiao Supply Chain Management Co., Ltd\r
-                               Block B1, XIXI center, No.588 West Wenyi Road, Xihu District\r
-                               Hangzhou  Zhejiang  310000\r
-                               CN\r
-\r
 2C-D0-66   (hex)               Xiaomi Communications Co Ltd\r
 2CD066     (base 16)           Xiaomi Communications Co Ltd\r
                                The Rainbow City of China Resources\r
                                NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
                                CN\r
 \r
-B0-5C-DA   (hex)               HP Inc.\r
-B05CDA     (base 16)           HP Inc.\r
-                               10300 Energy Dr\r
-                               Spring  TX  77389\r
-                               US\r
-\r
 DC-BD-7A   (hex)               Guangzhou Shiyuan Electronic Technology Company Limited\r
 DCBD7A     (base 16)           Guangzhou Shiyuan Electronic Technology Company Limited\r
                                No.6, 4th Yunpu Road, Yunpu industry District\r
                                Guangzhou  Guangdong  510530\r
                                CN\r
 \r
+FC-BC-0E   (hex)               Zhejiang Cainiao Supply Chain Management Co., Ltd\r
+FCBC0E     (base 16)           Zhejiang Cainiao Supply Chain Management Co., Ltd\r
+                               Block B1, XIXI center, No.588 West Wenyi Road, Xihu District\r
+                               Hangzhou  Zhejiang  310000\r
+                               CN\r
+\r
 90-16-BA   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 9016BA     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
                                Dongguan    523808\r
                                CN\r
 \r
-60-AA-EF   (hex)               Huawei Device Co., Ltd.\r
-60AAEF     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
+D4-46-49   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+D44649     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
                                CN\r
 \r
 D0-F3-F5   (hex)               Huawei Device Co., Ltd.\r
@@ -135995,23 +136538,23 @@ D0F3F5     (base 16)                Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-D4-46-49   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-D44649     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
 94-00-B0   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 9400B0     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
                                Dongguan    523808\r
                                CN\r
 \r
-24-79-EF   (hex)               Greenpacket Berhad, Taiwan\r
-2479EF     (base 16)           Greenpacket Berhad, Taiwan\r
-                               B-23A-3, The Ascent Paradigm, No. 1, Jalan SS7/26A, Kelana Jaya, 47301 Petaling Jaya\r
-                               Petaling Jaya  Selangor  47301\r
-                               MY\r
+C8-3D-FC   (hex)               AlphaTheta Corporation\r
+C83DFC     (base 16)           AlphaTheta Corporation\r
+                               6F,Yokohama i-Mark Place, 4-4-5 Minatomirai, Nishi-ku\r
+                               Yokohama  Kanagawa  220-0012\r
+                               JP\r
+\r
+E0-19-95   (hex)               Nutanix\r
+E01995     (base 16)           Nutanix\r
+                               1740 Technology Drive Ste #150\r
+                               San Jose  CA  95110\r
+                               US\r
 \r
 AC-23-34   (hex)               Infinix mobility limited\r
 AC2334     (base 16)           Infinix mobility limited\r
@@ -136031,12 +136574,6 @@ F8BC0E     (base 16)         eero inc.
                                San Francisco  CA  94107\r
                                US\r
 \r
-50-E0-39   (hex)               Zyxel Communications Corporation\r
-50E039     (base 16)           Zyxel Communications Corporation\r
-                               No. 6 Innovation Road II, Science Park\r
-                               Hsichu  Taiwan  300\r
-                               TW\r
-\r
 B8-57-76   (hex)               lignex1\r
 B85776     (base 16)           lignex1\r
                                354-25, Sanhodae-ro\r
@@ -136049,17 +136586,11 @@ B85776     (base 16)                lignex1
                                Hangzhou  Zhejiang  311100\r
                                CN\r
 \r
-C8-3D-FC   (hex)               AlphaTheta Corporation\r
-C83DFC     (base 16)           AlphaTheta Corporation\r
-                               6F,Yokohama i-Mark Place, 4-4-5 Minatomirai, Nishi-ku\r
-                               Yokohama  Kanagawa  220-0012\r
-                               JP\r
-\r
-E0-19-95   (hex)               Nutanix\r
-E01995     (base 16)           Nutanix\r
-                               1740 Technology Drive Ste #150\r
-                               San Jose  CA  95110\r
-                               US\r
+50-E0-39   (hex)               Zyxel Communications Corporation\r
+50E039     (base 16)           Zyxel Communications Corporation\r
+                               No. 6 Innovation Road II, Science Park\r
+                               Hsichu  Taiwan  300\r
+                               TW\r
 \r
 F8-51-28   (hex)               SimpliSafe\r
 F85128     (base 16)           SimpliSafe\r
@@ -136067,6 +136598,30 @@ F85128     (base 16)         SimpliSafe
                                Boston  MA  02108\r
                                US\r
 \r
+D8-DC-40   (hex)               Apple, Inc.\r
+D8DC40     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+80-5F-C5   (hex)               Apple, Inc.\r
+805FC5     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+3C-4D-BE   (hex)               Apple, Inc.\r
+3C4DBE     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+48-26-2C   (hex)               Apple, Inc.\r
+48262C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
 AC-1F-09   (hex)               shenzhen RAKwireless technology  Co.,Ltd\r
 AC1F09     (base 16)           shenzhen RAKwireless technology  Co.,Ltd\r
                                Room 506, Bldg B, New Compark, Pingshan First Road, Taoyuan Street,Nanshan District\r
@@ -136079,6 +136634,12 @@ BC13A8     (base 16)         Shenzhen YOUHUA Technology Co., Ltd
                                Shenzhen  Guangdong  518055\r
                                CN\r
 \r
+10-F9-20   (hex)               Cisco Systems, Inc\r
+10F920     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
 90-77-EE   (hex)               Cisco Systems, Inc\r
 9077EE     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
@@ -136097,66 +136658,6 @@ BC13A8     (base 16)         Shenzhen YOUHUA Technology Co., Ltd
                                shenzhen  guangdong  518057\r
                                CN\r
 \r
-D8-DC-40   (hex)               Apple, Inc.\r
-D8DC40     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-80-5F-C5   (hex)               Apple, Inc.\r
-805FC5     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-10-F9-20   (hex)               Cisco Systems, Inc\r
-10F920     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
-\r
-20-69-80   (hex)               Apple, Inc.\r
-206980     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-64-32-A8   (hex)               Intel Corporate\r
-6432A8     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-80-19-34   (hex)               Intel Corporate\r
-801934     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-40-A3-CC   (hex)               Intel Corporate\r
-40A3CC     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-E4-A7-A0   (hex)               Intel Corporate\r
-E4A7A0     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-3C-4D-BE   (hex)               Apple, Inc.\r
-3C4DBE     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-48-26-2C   (hex)               Apple, Inc.\r
-48262C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 14-7D-DA   (hex)               Apple, Inc.\r
 147DDA     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
@@ -136169,21 +136670,12 @@ C4910C     (base 16)                Apple, Inc.
                                Cupertino  CA  95014\r
                                US\r
 \r
-6C-99-61   (hex)               Sagemcom Broadband SAS\r
-6C9961     (base 16)           Sagemcom Broadband SAS\r
-                               250, route de l'Empereur\r
-                               Rueil Malmaison Cedex  hauts de seine  92848\r
-                               FR\r
-\r
-50-C7-09   (hex)               Juniper Networks\r
-50C709     (base 16)           Juniper Networks\r
-                               1133 Innovation Way\r
-                               Sunnyvale  CA  94089\r
+20-69-80   (hex)               Apple, Inc.\r
+206980     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-80-6D-97   (hex)               Private\r
-806D97     (base 16)           Private\r
-\r
 64-5D-86   (hex)               Intel Corporate\r
 645D86     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
@@ -136226,30 +136718,63 @@ A86DAA     (base 16)                Intel Corporate
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-38-00-25   (hex)               Intel Corporate\r
-380025     (base 16)           Intel Corporate\r
+6C-99-61   (hex)               Sagemcom Broadband SAS\r
+6C9961     (base 16)           Sagemcom Broadband SAS\r
+                               250, route de l'Empereur\r
+                               Rueil Malmaison Cedex  hauts de seine  92848\r
+                               FR\r
+\r
+64-32-A8   (hex)               Intel Corporate\r
+6432A8     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-C0-E3-A0   (hex)               Renesas Electronics (Penang) Sdn. Bhd.\r
-C0E3A0     (base 16)           Renesas Electronics (Penang) Sdn. Bhd.\r
-                               Phase 3, Bayan Lepas FIZ\r
-                               Bayan Lepas  Penang  11900\r
+80-19-34   (hex)               Intel Corporate\r
+801934     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
                                MY\r
 \r
-F4-C1-14   (hex)               Technicolor CH USA Inc.\r
-F4C114     (base 16)           Technicolor CH USA Inc.\r
-                               5030 Sugarloaf Parkway Bldg 6 \r
-                               Lawrenceville  GA  30044\r
+40-A3-CC   (hex)               Intel Corporate\r
+40A3CC     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+E4-A7-A0   (hex)               Intel Corporate\r
+E4A7A0     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+04-D3-B0   (hex)               Intel Corporate\r
+04D3B0     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+50-C7-09   (hex)               Juniper Networks\r
+50C709     (base 16)           Juniper Networks\r
+                               1133 Innovation Way\r
+                               Sunnyvale  CA  94089\r
                                US\r
 \r
+80-6D-97   (hex)               Private\r
+806D97     (base 16)           Private\r
+\r
 8C-E4-68   (hex)               Guangzhou Sageran Technology Co., Ltd.\r
 8CE468     (base 16)           Guangzhou Sageran Technology Co., Ltd.\r
                                Room 1902, Ruian Guangzhou Center, 374 Beijing Road, Yuexiu District\r
                                Guangzhou  Guangdong  510030\r
                                CN\r
 \r
+F4-C1-14   (hex)               Technicolor CH USA Inc.\r
+F4C114     (base 16)           Technicolor CH USA Inc.\r
+                               5030 Sugarloaf Parkway Bldg 6 \r
+                               Lawrenceville  GA  30044\r
+                               US\r
+\r
 C8-B2-9B   (hex)               Intel Corporate\r
 C8B29B     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
@@ -136298,44 +136823,50 @@ E45E37     (base 16)                Intel Corporate
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-24-41-8C   (hex)               Intel Corporate\r
-24418C     (base 16)           Intel Corporate\r
+38-00-25   (hex)               Intel Corporate\r
+380025     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-60-F2-62   (hex)               Intel Corporate\r
-60F262     (base 16)           Intel Corporate\r
+90-78-41   (hex)               Intel Corporate\r
+907841     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-C0-B8-83   (hex)               Intel Corporate\r
-C0B883     (base 16)           Intel Corporate\r
+58-A0-23   (hex)               Intel Corporate\r
+58A023     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-C8-09-A8   (hex)               Intel Corporate\r
-C809A8     (base 16)           Intel Corporate\r
+D4-D2-52   (hex)               Intel Corporate\r
+D4D252     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-90-78-41   (hex)               Intel Corporate\r
-907841     (base 16)           Intel Corporate\r
+24-41-8C   (hex)               Intel Corporate\r
+24418C     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-58-A0-23   (hex)               Intel Corporate\r
-58A023     (base 16)           Intel Corporate\r
+60-F2-62   (hex)               Intel Corporate\r
+60F262     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-D4-D2-52   (hex)               Intel Corporate\r
-D4D252     (base 16)           Intel Corporate\r
+C0-B8-83   (hex)               Intel Corporate\r
+C0B883     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+C8-09-A8   (hex)               Intel Corporate\r
+C809A8     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
                                Kulim  Kedah  09000\r
                                MY\r
@@ -136346,17 +136877,17 @@ D4D252     (base 16)                Intel Corporate
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-04-D3-B0   (hex)               Intel Corporate\r
-04D3B0     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
+E4-26-8B   (hex)               Huawei Device Co., Ltd.\r
+E4268B     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
 \r
-E0-6C-A6   (hex)               Creotech Instruments S.A.\r
-E06CA6     (base 16)           Creotech Instruments S.A.\r
-                               ul. Gen. L. Okulickiego 7/9\r
-                               Piaseczno  Mazovia  05-500\r
-                               PL\r
+C0-E3-A0   (hex)               Renesas Electronics (Penang) Sdn. Bhd.\r
+C0E3A0     (base 16)           Renesas Electronics (Penang) Sdn. Bhd.\r
+                               Phase 3, Bayan Lepas FIZ\r
+                               Bayan Lepas  Penang  11900\r
+                               MY\r
 \r
 44-68-0C   (hex)               Wacom Co.,Ltd.\r
 44680C     (base 16)           Wacom Co.,Ltd.\r
@@ -136376,6 +136907,18 @@ A830BC     (base 16)         Samsung Electronics Co.,Ltd
                                Gumi  Gyeongbuk  730-350\r
                                KR\r
 \r
+1C-98-C1   (hex)               CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
+1C98C1     (base 16)           CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
+                               B22 Building,NO.51 Tongle Road, Shajing Town, Jiangnan District, Nanning, Guangxi Province, China\r
+                               Nanning  Guangxi  530007\r
+                               CN\r
+\r
+A0-9B-17   (hex)               Taicang T&W Electronics\r
+A09B17     (base 16)           Taicang T&W Electronics\r
+                               89# Jiang Nan RD\r
+                               Suzhou  Jiangsu  215412\r
+                               CN\r
+\r
 00-63-DE   (hex)               CLOUDWALK TECHNOLOGY CO.,LTD\r
 0063DE     (base 16)           CLOUDWALK TECHNOLOGY CO.,LTD\r
                                Five Floors of Block 106, West Jinkai Avenue, Yubei District\r
@@ -136418,11 +136961,11 @@ E43EC6     (base 16)                HUAWEI TECHNOLOGIES CO.,LTD
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-E4-26-8B   (hex)               Huawei Device Co., Ltd.\r
-E4268B     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
+E0-6C-A6   (hex)               Creotech Instruments S.A.\r
+E06CA6     (base 16)           Creotech Instruments S.A.\r
+                               ul. Gen. L. Okulickiego 7/9\r
+                               Piaseczno  Mazovia  05-500\r
+                               PL\r
 \r
 68-88-A1   (hex)               Universal Electronics, Inc.\r
 6888A1     (base 16)           Universal Electronics, Inc.\r
@@ -136448,48 +136991,30 @@ C086B3     (base 16)                Shenzhen Voxtech Co., Ltd.
                                Rueil Malmaison Cedex  hauts de seine  92848\r
                                FR\r
 \r
-1C-98-C1   (hex)               CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
-1C98C1     (base 16)           CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
-                               B22 Building,NO.51 Tongle Road, Shajing Town, Jiangnan District, Nanning, Guangxi Province, China\r
-                               Nanning  Guangxi  530007\r
-                               CN\r
-\r
-A0-9B-17   (hex)               Taicang T&W Electronics\r
-A09B17     (base 16)           Taicang T&W Electronics\r
-                               89# Jiang Nan RD\r
-                               Suzhou  Jiangsu  215412\r
-                               CN\r
-\r
 44-01-BB   (hex)               SHENZHEN BILIAN ELECTRONIC CO.,LTD\r
 4401BB     (base 16)           SHENZHEN BILIAN ELECTRONIC CO.,LTD\r
                                NO.268? Fuqian Rd, Jutang community, Guanlan Town, Longhua New district\r
                                shenzhen  guangdong  518000\r
                                CN\r
 \r
-A0-D8-3D   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-A0D83D     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan  Hubei  430074\r
-                               CN\r
-\r
 58-F2-FC   (hex)               Huawei Device Co., Ltd.\r
 58F2FC     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-64-3A-EA   (hex)               Cisco Systems, Inc\r
-643AEA     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
-\r
 50-70-43   (hex)               BSkyB Ltd\r
 507043     (base 16)           BSkyB Ltd\r
                                130 Kings Road\r
                                Brentwood  Essex  08854\r
                                GB\r
 \r
+A0-D8-3D   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+A0D83D     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
 D0-14-11   (hex)               IEEE Registration Authority\r
 D01411     (base 16)           IEEE Registration Authority\r
                                445 Hoes Lane\r
@@ -136508,6 +137033,12 @@ D01411     (base 16)         IEEE Registration Authority
                                Chengdu  Sichuan  611330\r
                                CN\r
 \r
+64-3A-EA   (hex)               Cisco Systems, Inc\r
+643AEA     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
 E8-13-6E   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 E8136E     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
@@ -136526,24 +137057,48 @@ E8136E     (base 16)                HUAWEI TECHNOLOGIES CO.,LTD
                                Shenzhen    518055\r
                                CN\r
 \r
+E0-B2-60   (hex)               TENO NETWORK TECHNOLOGIES COMPANY LIMITED\r
+E0B260     (base 16)           TENO NETWORK TECHNOLOGIES COMPANY LIMITED\r
+                               RM 1302, 13/F CHEONG K BLDG 84-86 DES VOEUX RD CENTRAL  HONG KONG\r
+                               Hong Kong    999077\r
+                               HK\r
+\r
+48-23-35   (hex)               Dialog Semiconductor Hellas SA\r
+482335     (base 16)           Dialog Semiconductor Hellas SA\r
+                               Achileos 8 & Katsoni Str\r
+                               Kalithea, Athens    17674\r
+                               GR\r
+\r
+E8-DA-20   (hex)               Nintendo Co.,Ltd\r
+E8DA20     (base 16)           Nintendo Co.,Ltd\r
+                               11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
+                               KYOTO  KYOTO  601-8501\r
+                               JP\r
+\r
 10-BC-97   (hex)               vivo Mobile Communication Co., Ltd.\r
 10BC97     (base 16)           vivo Mobile Communication Co., Ltd.\r
                                #283,BBK Road\r
                                Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
                                CN\r
 \r
+7C-F9-A0   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+7CF9A0     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+6C-A4-D1   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+6CA4D1     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
 DC-D4-44   (hex)               Huawei Device Co., Ltd.\r
 DCD444     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-E0-B2-60   (hex)               TENO NETWORK TECHNOLOGIES COMPANY LIMITED\r
-E0B260     (base 16)           TENO NETWORK TECHNOLOGIES COMPANY LIMITED\r
-                               RM 1302, 13/F CHEONG K BLDG 84-86 DES VOEUX RD CENTRAL  HONG KONG\r
-                               Hong Kong    999077\r
-                               HK\r
-\r
 A4-46-B4   (hex)               Huawei Device Co., Ltd.\r
 A446B4     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -136556,17 +137111,17 @@ A446B4     (base 16)                Huawei Device Co., Ltd.
                                Cambridge  MA  02142\r
                                US\r
 \r
-E8-DA-20   (hex)               Nintendo Co.,Ltd\r
-E8DA20     (base 16)           Nintendo Co.,Ltd\r
-                               11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
-                               KYOTO  KYOTO  601-8501\r
-                               JP\r
+EC-6C-9A   (hex)               Arcadyan Corporation\r
+EC6C9A     (base 16)           Arcadyan Corporation\r
+                               No.8, Sec.2, Guangfu Rd.\r
+                               Hsinchu City  Hsinchu  30071\r
+                               TW\r
 \r
-48-23-35   (hex)               Dialog Semiconductor Hellas SA\r
-482335     (base 16)           Dialog Semiconductor Hellas SA\r
-                               Achileos 8 & Katsoni Str\r
-                               Kalithea, Athens    17674\r
-                               GR\r
+34-6D-9C   (hex)               Carrier Corporation\r
+346D9C     (base 16)           Carrier Corporation\r
+                               6304 Thompson Rd\r
+                               East Syracuse  NY  13057\r
+                               US\r
 \r
 8C-85-C1   (hex)               Aruba, a Hewlett Packard Enterprise Company\r
 8C85C1     (base 16)           Aruba, a Hewlett Packard Enterprise Company\r
@@ -136580,16 +137135,16 @@ E8DA20     (base 16)                Nintendo Co.,Ltd
                                Reno  NV  89507\r
                                US\r
 \r
-7C-F9-A0   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-7CF9A0     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan  Hubei  430074\r
-                               CN\r
+78-2B-64   (hex)               Bose Corporation\r
+782B64     (base 16)           Bose Corporation\r
+                               The Mountain\r
+                               Framingham  MA  01701-9168\r
+                               US\r
 \r
-6C-A4-D1   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-6CA4D1     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan  Hubei  430074\r
+D4-F7-56   (hex)               zte corporation\r
+D4F756     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
                                CN\r
 \r
 54-AB-3A   (hex)               Quanta Computer Inc.\r
@@ -136604,42 +137159,12 @@ E89A8F     (base 16)                Quanta Computer Inc.
                                TAIPEI    33377\r
                                TW\r
 \r
-EC-6C-9A   (hex)               Arcadyan Corporation\r
-EC6C9A     (base 16)           Arcadyan Corporation\r
-                               No.8, Sec.2, Guangfu Rd.\r
-                               Hsinchu City  Hsinchu  30071\r
-                               TW\r
-\r
-34-6D-9C   (hex)               Carrier Corporation\r
-346D9C     (base 16)           Carrier Corporation\r
-                               6304 Thompson Rd\r
-                               East Syracuse  NY  13057\r
-                               US\r
-\r
-D4-F7-56   (hex)               zte corporation\r
-D4F756     (base 16)           zte corporation\r
-                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
-                               shenzhen  guangdong  518057\r
-                               CN\r
-\r
 E0-69-3A   (hex)               Innophase Inc.\r
 E0693A     (base 16)           Innophase Inc.\r
                                6815 Flanders Drive Suite 150\r
                                San Diego  CA  92121\r
                                US\r
 \r
-54-88-DE   (hex)               Cisco Systems, Inc\r
-5488DE     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
-\r
-78-2B-64   (hex)               Bose Corporation\r
-782B64     (base 16)           Bose Corporation\r
-                               The Mountain\r
-                               Framingham  MA  01701-9168\r
-                               US\r
-\r
 24-FD-0D   (hex)               Intelbras\r
 24FD0D     (base 16)           Intelbras\r
                                BR 101, KM 210\r
@@ -136652,18 +137177,6 @@ E0693A     (base 16)         Innophase Inc.
                                FUZHOU  FUJIAN  350002\r
                                CN\r
 \r
-9C-6B-37   (hex)               Renesas Electronics (Penang) Sdn. Bhd.\r
-9C6B37     (base 16)           Renesas Electronics (Penang) Sdn. Bhd.\r
-                               Phase 3, Bayan Lepas FIZ\r
-                               Bayan Lepas  Penang  11900\r
-                               MY\r
-\r
-A8-37-59   (hex)               Huawei Device Co., Ltd.\r
-A83759     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
 40-AA-56   (hex)               China Dragon Technology Limited\r
 40AA56     (base 16)           China Dragon Technology Limited\r
                                B4 Bldg.Haoshan 1st Industry Park,\r
@@ -136688,6 +137201,12 @@ CC47BD     (base 16)         Rhombus Systems
                                Sacramento  CA  95814\r
                                US\r
 \r
+54-88-DE   (hex)               Cisco Systems, Inc\r
+5488DE     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
 4C-93-A6   (hex)               IEEE Registration Authority\r
 4C93A6     (base 16)           IEEE Registration Authority\r
                                445 Hoes Lane\r
@@ -136700,6 +137219,12 @@ CC47BD     (base 16)         Rhombus Systems
                                Seoul  Seocho-dong,Seocho-gu  137-863\r
                                KR\r
 \r
+A8-37-59   (hex)               Huawei Device Co., Ltd.\r
+A83759     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 50-F7-ED   (hex)               Huawei Device Co., Ltd.\r
 50F7ED     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -136712,17 +137237,23 @@ CC47BD     (base 16)                Rhombus Systems
                                Weifang  Shandong  261205\r
                                CN\r
 \r
+9C-6B-37   (hex)               Renesas Electronics (Penang) Sdn. Bhd.\r
+9C6B37     (base 16)           Renesas Electronics (Penang) Sdn. Bhd.\r
+                               Phase 3, Bayan Lepas FIZ\r
+                               Bayan Lepas  Penang  11900\r
+                               MY\r
+\r
 BC-7E-8B   (hex)               Samsung Electronics Co.,Ltd\r
 BC7E8B     (base 16)           Samsung Electronics Co.,Ltd\r
                                129, Samsung-ro, Youngtongl-Gu\r
                                Suwon  Gyeonggi-Do  16677\r
                                KR\r
 \r
-0C-31-DC   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-0C31DC     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
+54-77-8A   (hex)               Hewlett Packard Enterprise\r
+54778A     (base 16)           Hewlett Packard Enterprise\r
+                               8000 Foothills Blvd.\r
+                               Roseville  CA  95747\r
+                               US\r
 \r
 40-DD-D1   (hex)               Beautiful Card Corporation\r
 40DDD1     (base 16)           Beautiful Card Corporation\r
@@ -136736,18 +137267,6 @@ C0E7BF     (base 16)         Sichuan AI-Link Technology Co., Ltd.
                                Mianyang  Sichuan  622650\r
                                CN\r
 \r
-54-77-8A   (hex)               Hewlett Packard Enterprise\r
-54778A     (base 16)           Hewlett Packard Enterprise\r
-                               8000 Foothills Blvd.\r
-                               Roseville  CA  95747\r
-                               US\r
-\r
-24-71-52   (hex)               Dell Inc.\r
-247152     (base 16)           Dell Inc.\r
-                               One Dell Way\r
-                               Round Rock  TX  78682\r
-                               US\r
-\r
 64-33-DB   (hex)               Texas Instruments\r
 6433DB     (base 16)           Texas Instruments\r
                                12500 TI Blvd\r
@@ -136772,36 +137291,30 @@ B0B113     (base 16)                Texas Instruments
                                Guangzhou  Guangdong  510555\r
                                CN\r
 \r
+0C-31-DC   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+0C31DC     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
 00-40-AB   (hex)               ROLAND DG CORPORATION\r
 0040AB     (base 16)           ROLAND DG CORPORATION\r
                                1-1-3 Shinmiyakoda, Kita-ku\r
                                Hamamatsu-shi  Shizuoka-ken  431-2103\r
                                JP\r
 \r
+24-71-52   (hex)               Dell Inc.\r
+247152     (base 16)           Dell Inc.\r
+                               One Dell Way\r
+                               Round Rock  TX  78682\r
+                               US\r
+\r
 00-12-B4   (hex)               Work Microwave GmbH\r
 0012B4     (base 16)           Work Microwave GmbH\r
                                Rudolf-Diesel-Ring 2\r
                                Holzkirchen    83607\r
                                DE\r
 \r
-24-B1-05   (hex)               Prama Hikvision India Private Limited\r
-24B105     (base 16)           Prama Hikvision India Private Limited\r
-                               Prama Hikvision India Pvt Ltd, Akurli Cross Road No 1, Kandivali East\r
-                               Mumbai  Maharashtra  400101\r
-                               IN\r
-\r
-70-9C-D1   (hex)               Intel Corporate\r
-709CD1     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-80-60-B7   (hex)               CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
-8060B7     (base 16)           CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
-                               B22 Building,NO.51 Tongle Road, Shajing Town, Jiangnan District, Nanning, Guangxi Province, China\r
-                               Nanning  Guangxi  530007\r
-                               CN\r
-\r
 90-AA-C3   (hex)               Hitron Technologies. Inc\r
 90AAC3     (base 16)           Hitron Technologies. Inc\r
                                No. 1-8, Lising 1st Rd. Hsinchu Science Park, Hsinchu, 300, Taiwan, R.O.C\r
@@ -136814,6 +137327,12 @@ B0B113     (base 16)         Texas Instruments
                                Espoo  Paimio  02600\r
                                FI\r
 \r
+80-60-B7   (hex)               CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
+8060B7     (base 16)           CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
+                               B22 Building,NO.51 Tongle Road, Shajing Town, Jiangnan District, Nanning, Guangxi Province, China\r
+                               Nanning  Guangxi  530007\r
+                               CN\r
+\r
 DC-72-23   (hex)               Hui Zhou Gaoshengda Technology Co.,LTD\r
 DC7223     (base 16)           Hui Zhou Gaoshengda Technology Co.,LTD\r
                                No.75,Zhongkai High-Tech Development District,Huizhou\r
@@ -136826,6 +137345,18 @@ DC7223     (base 16)         Hui Zhou Gaoshengda Technology Co.,LTD
                                Sunnyvale  CA  94089\r
                                US\r
 \r
+24-B1-05   (hex)               Prama Hikvision India Private Limited\r
+24B105     (base 16)           Prama Hikvision India Private Limited\r
+                               Prama Hikvision India Pvt Ltd, Akurli Cross Road No 1, Kandivali East\r
+                               Mumbai  Maharashtra  400101\r
+                               IN\r
+\r
+8C-47-BE   (hex)               Dell Inc.\r
+8C47BE     (base 16)           Dell Inc.\r
+                               One Dell Way\r
+                               Round Rock  TX  78682\r
+                               US\r
+\r
 24-5F-9F   (hex)               Huawei Device Co., Ltd.\r
 245F9F     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -136844,24 +137375,6 @@ CCB0A8     (base 16)         Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-8C-47-BE   (hex)               Dell Inc.\r
-8C47BE     (base 16)           Dell Inc.\r
-                               One Dell Way\r
-                               Round Rock  TX  78682\r
-                               US\r
-\r
-14-2C-78   (hex)               GooWi Wireless Technology Co., Limited\r
-142C78     (base 16)           GooWi Wireless Technology Co., Limited\r
-                               RM402 Building212, Tairan Technology Park, Futian District\r
-                               Shenzhen  Guangdong  518000\r
-                               CN\r
-\r
-98-FC-84   (hex)               IEEE Registration Authority\r
-98FC84     (base 16)           IEEE Registration Authority\r
-                               445 Hoes Lane\r
-                               Piscataway  NJ  08554\r
-                               US\r
-\r
 20-F4-4F   (hex)               Nokia\r
 20F44F     (base 16)           Nokia\r
                                600 March Road\r
@@ -136886,18 +137399,6 @@ CCB0A8     (base 16)         Huawei Device Co., Ltd.
                                Hanover  MD  21076\r
                                US\r
 \r
-78-53-F2   (hex)               Roxton Systems Ltd.\r
-7853F2     (base 16)           Roxton Systems Ltd.\r
-                               Floor 4, premise 1, room 6, Ostapovsky proezd,15k2\r
-                               Moscow  Moscow  109316\r
-                               RU\r
-\r
-9C-69-37   (hex)               Qorvo International Pte. Ltd.\r
-9C6937     (base 16)           Qorvo International Pte. Ltd.\r
-                               1 Changi Business Park Avenue 1\r
-                               #04-01    486058\r
-                               SG\r
-\r
 F8-2E-3F   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 F82E3F     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
@@ -136910,11 +137411,35 @@ F82E3F     (base 16)                HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
-3C-7C-3F   (hex)               ASUSTek COMPUTER INC.\r
-3C7C3F     (base 16)           ASUSTek COMPUTER INC.\r
-                               15,Li-Te Rd., Peitou, Taipei 112, Taiwan\r
-                               Taipei  Taiwan  112\r
-                               TW\r
+9C-69-37   (hex)               Qorvo International Pte. Ltd.\r
+9C6937     (base 16)           Qorvo International Pte. Ltd.\r
+                               1 Changi Business Park Avenue 1\r
+                               #04-01    486058\r
+                               SG\r
+\r
+78-53-F2   (hex)               Roxton Systems Ltd.\r
+7853F2     (base 16)           Roxton Systems Ltd.\r
+                               Floor 4, premise 1, room 6, Ostapovsky proezd,15k2\r
+                               Moscow  Moscow  109316\r
+                               RU\r
+\r
+98-FC-84   (hex)               IEEE Registration Authority\r
+98FC84     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
+\r
+14-2C-78   (hex)               GooWi Wireless Technology Co., Limited\r
+142C78     (base 16)           GooWi Wireless Technology Co., Limited\r
+                               RM402 Building212, Tairan Technology Park, Futian District\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+EC-4D-3E   (hex)               Beijing Xiaomi Mobile Software Co., Ltd\r
+EC4D3E     (base 16)           Beijing Xiaomi Mobile Software Co., Ltd\r
+                               The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
+                               Beijing  Beijing  100085\r
+                               CN\r
 \r
 34-91-6F   (hex)               UserGate Ltd.\r
 34916F     (base 16)           UserGate Ltd.\r
@@ -136928,11 +137453,17 @@ F82E3F     (base 16)                HUAWEI TECHNOLOGIES CO.,LTD
                                Irvine  CA  92618\r
                                US\r
 \r
-EC-4D-3E   (hex)               Beijing Xiaomi Mobile Software Co., Ltd\r
-EC4D3E     (base 16)           Beijing Xiaomi Mobile Software Co., Ltd\r
-                               The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
-                               Beijing  Beijing  100085\r
-                               CN\r
+3C-7C-3F   (hex)               ASUSTek COMPUTER INC.\r
+3C7C3F     (base 16)           ASUSTek COMPUTER INC.\r
+                               15,Li-Te Rd., Peitou, Taipei 112, Taiwan\r
+                               Taipei  Taiwan  112\r
+                               TW\r
+\r
+8C-D6-7F   (hex)               EM Microelectronic\r
+8CD67F     (base 16)           EM Microelectronic\r
+                               Rue des Sors 3\r
+                               Marin-Epagnier  Neuchatel  2074\r
+                               CH\r
 \r
 D8-A4-91   (hex)               Huawei Device Co., Ltd.\r
 D8A491     (base 16)           Huawei Device Co., Ltd.\r
@@ -136976,29 +137507,17 @@ EC3EB3     (base 16)                Zyxel Communications Corporation
                                Hsichu  Taiwan  300\r
                                TW\r
 \r
-8C-D6-7F   (hex)               EM Microelectronic\r
-8CD67F     (base 16)           EM Microelectronic\r
-                               Rue des Sors 3\r
-                               Marin-Epagnier  Neuchatel  2074\r
-                               CH\r
-\r
-5C-91-FD   (hex)               Jaewoncnc\r
-5C91FD     (base 16)           Jaewoncnc\r
-                               A-501~507, H-Businesspark, 25 Beobwon-ro11gil, Songpa-gu, Seoul, Korea\r
-                               Seoul    05836\r
-                               KR\r
-\r
 FC-44-9F   (hex)               zte corporation\r
 FC449F     (base 16)           zte corporation\r
                                12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
                                shenzhen  guangdong  518057\r
                                CN\r
 \r
-20-4E-F6   (hex)               AzureWave Technology Inc.\r
-204EF6     (base 16)           AzureWave Technology Inc.\r
-                               8F., No. 94, Baozhong Rd.\r
-                               New Taipei City  Taiwan  231\r
-                               TW\r
+5C-91-FD   (hex)               Jaewoncnc\r
+5C91FD     (base 16)           Jaewoncnc\r
+                               A-501~507, H-Businesspark, 25 Beobwon-ro11gil, Songpa-gu, Seoul, Korea\r
+                               Seoul    05836\r
+                               KR\r
 \r
 44-35-83   (hex)               Apple, Inc.\r
 443583     (base 16)           Apple, Inc.\r
@@ -137006,12 +137525,24 @@ FC449F     (base 16)                zte corporation
                                Cupertino  CA  95014\r
                                US\r
 \r
-38-CA-73   (hex)               Shenzhen MiaoMing  Intelligent Technology Co.,Ltd\r
-38CA73     (base 16)           Shenzhen MiaoMing  Intelligent Technology Co.,Ltd\r
-                               Chudong science and technology park, 111 shaxin road, tangxia town,\r
-                               dongguan city  guangdong province  523710\r
+84-EA-97   (hex)               Shenzhen iComm Semiconductor CO.,LTD\r
+84EA97     (base 16)           Shenzhen iComm Semiconductor CO.,LTD\r
+                               Room 501A,Block B,Digital Building,Garden City,No.1079 Nanhai Road,Nanshan District\r
+                               Shenzhen    518067\r
                                CN\r
 \r
+A4-7D-9F   (hex)               Shenzhen iComm Semiconductor CO.,LTD\r
+A47D9F     (base 16)           Shenzhen iComm Semiconductor CO.,LTD\r
+                               Room 504A,Block B,Digital Building,Gargen City,No.1079,Nanhai Road,Nanshan District,Shenzhen.\r
+                               Shenzhen    518067\r
+                               CN\r
+\r
+20-4E-F6   (hex)               AzureWave Technology Inc.\r
+204EF6     (base 16)           AzureWave Technology Inc.\r
+                               8F., No. 94, Baozhong Rd.\r
+                               New Taipei City  Taiwan  231\r
+                               TW\r
+\r
 6C-0D-C4   (hex)               Beijing Xiaomi Electronics Co., Ltd.\r
 6C0DC4     (base 16)           Beijing Xiaomi Electronics Co., Ltd.\r
                                Building C, QingHe ShunShiJiaYe Technology Park, #66 ZhuFang Rd, HaiDian District\r
@@ -137024,16 +137555,10 @@ C440F6     (base 16)                GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
                                DONG GUAN  GUANG DONG  523860\r
                                CN\r
 \r
-A4-7D-9F   (hex)               Shenzhen iComm Semiconductor CO.,LTD\r
-A47D9F     (base 16)           Shenzhen iComm Semiconductor CO.,LTD\r
-                               Room 504A,Block B,Digital Building,Gargen City,No.1079,Nanhai Road,Nanshan District,Shenzhen.\r
-                               Shenzhen    518067\r
-                               CN\r
-\r
-84-EA-97   (hex)               Shenzhen iComm Semiconductor CO.,LTD\r
-84EA97     (base 16)           Shenzhen iComm Semiconductor CO.,LTD\r
-                               Room 501A,Block B,Digital Building,Garden City,No.1079 Nanhai Road,Nanshan District\r
-                               Shenzhen    518067\r
+38-CA-73   (hex)               Shenzhen MiaoMing  Intelligent Technology Co.,Ltd\r
+38CA73     (base 16)           Shenzhen MiaoMing  Intelligent Technology Co.,Ltd\r
+                               Chudong science and technology park, 111 shaxin road, tangxia town,\r
+                               dongguan city  guangdong province  523710\r
                                CN\r
 \r
 00-55-B1   (hex)               Shanghai Baud Data Communication Co.,Ltd.\r
@@ -137042,18 +137567,24 @@ A47D9F     (base 16)                Shenzhen iComm Semiconductor CO.,LTD
                                PUDONG ZHANGJIANG HIGH-TECH PARK  SHANGHAI  201203\r
                                CN\r
 \r
-74-90-1F   (hex)               Ragile Networks Inc.\r
-74901F     (base 16)           Ragile Networks Inc.\r
-                               35649 Embassy common Fremont ca 94536\r
-                               Fremont  CA  94536\r
-                               US\r
-\r
 C0-25-2F   (hex)               SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
 C0252F     (base 16)           SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
                                3/F, Building R1-B, High-Tech Industrial Park, Nanshan District\r
                                Shenzhen  Guangdong  518057\r
                                CN\r
 \r
+88-89-2F   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+88892F     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+28-E5-B0   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+28E5B0     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
 54-9F-C6   (hex)               Cisco Systems, Inc\r
 549FC6     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
@@ -137066,23 +137597,17 @@ F01D2D     (base 16)                Cisco Systems, Inc
                                San Jose  CA  94568\r
                                US\r
 \r
-68-3E-26   (hex)               Intel Corporate\r
-683E26     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-8C-55-4A   (hex)               Intel Corporate\r
-8C554A     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
+74-90-1F   (hex)               Ragile Networks Inc.\r
+74901F     (base 16)           Ragile Networks Inc.\r
+                               35649 Embassy common Fremont ca 94536\r
+                               Fremont  CA  94536\r
+                               US\r
 \r
-40-1C-83   (hex)               Intel Corporate\r
-401C83     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
+1C-A8-52   (hex)               SENSAIO PTE LTD\r
+1CA852     (base 16)           SENSAIO PTE LTD\r
+                               160 Robinson Road #14-04\r
+                               SINGAPORE  SINGAPORE  068914\r
+                               SG\r
 \r
 44-3B-32   (hex)               Intelbras\r
 443B32     (base 16)           Intelbras\r
@@ -137090,6 +137615,12 @@ F01D2D     (base 16)         Cisco Systems, Inc
                                São José  Santa Catarina  88104800\r
                                BR\r
 \r
+4C-02-20   (hex)               Xiaomi Communications Co Ltd\r
+4C0220     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
 F8-3B-1D   (hex)               Technicolor CH USA Inc.\r
 F83B1D     (base 16)           Technicolor CH USA Inc.\r
                                5030 Sugarloaf Parkway Bldg 6 \r
@@ -137108,24 +137639,6 @@ F40B9F     (base 16)         CIG SHANGHAI CO LTD
                                SHANGHAI    201114\r
                                CN\r
 \r
-78-45-B3   (hex)               Huawei Device Co., Ltd.\r
-7845B3     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-20-DC-FD   (hex)               Huawei Device Co., Ltd.\r
-20DCFD     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-FC-65-B3   (hex)               Huawei Device Co., Ltd.\r
-FC65B3     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
 10-9D-7A   (hex)               Huawei Device Co., Ltd.\r
 109D7A     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -137144,40 +137657,28 @@ D47EE4     (base 16)                China Mobile IOT Company Limited
                                Chongqing  Chongqing  401336\r
                                CN\r
 \r
-88-89-2F   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-88892F     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
+C0-94-AD   (hex)               zte corporation\r
+C094AD     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
                                CN\r
 \r
-28-E5-B0   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-28E5B0     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
+78-45-B3   (hex)               Huawei Device Co., Ltd.\r
+7845B3     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
                                CN\r
 \r
-4C-02-20   (hex)               Xiaomi Communications Co Ltd\r
-4C0220     (base 16)           Xiaomi Communications Co Ltd\r
-                               The Rainbow City of China Resources\r
-                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+20-DC-FD   (hex)               Huawei Device Co., Ltd.\r
+20DCFD     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
                                CN\r
 \r
-1C-A8-52   (hex)               SENSAIO PTE LTD\r
-1CA852     (base 16)           SENSAIO PTE LTD\r
-                               160 Robinson Road #14-04\r
-                               SINGAPORE  SINGAPORE  068914\r
-                               SG\r
-\r
-78-7D-F3   (hex)               Sterlite Technologies Limited\r
-787DF3     (base 16)           Sterlite Technologies Limited\r
-                               IFFCO Tower, 3rd Floor, Plot No.3, Sector 29,CH Baktawar Singh Rd, Institutional Area,\r
-                               Gurugram  Haryana  122002\r
-                               IN\r
-\r
-C0-94-AD   (hex)               zte corporation\r
-C094AD     (base 16)           zte corporation\r
-                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
-                               shenzhen  guangdong  518057\r
+FC-65-B3   (hex)               Huawei Device Co., Ltd.\r
+FC65B3     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
                                CN\r
 \r
 D0-21-AC   (hex)               Yo Labs LLC\r
@@ -137198,35 +137699,29 @@ D021AC     (base 16)                Yo Labs LLC
                                Stockholm    SE-164 80\r
                                SE\r
 \r
+78-7D-F3   (hex)               Sterlite Technologies Limited\r
+787DF3     (base 16)           Sterlite Technologies Limited\r
+                               IFFCO Tower, 3rd Floor, Plot No.3, Sector 29,CH Baktawar Singh Rd, Institutional Area,\r
+                               Gurugram  Haryana  122002\r
+                               IN\r
+\r
 00-16-3B   (hex)               Communications & Power Industries\r
 00163B     (base 16)           Communications & Power Industries\r
                                Suite , 60 Decibel Road\r
                                State College  PA  16801\r
                                US\r
 \r
-9C-B2-E8   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-9CB2E8     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
-74-73-1D   (hex)               ifm electronic gmbh\r
-74731D     (base 16)           ifm electronic gmbh\r
-                               ifm-Straße 1\r
-                               Tettnang  BW  88069\r
-                               DE\r
-\r
 00-0B-4E   (hex)               Communications & Power Industries\r
 000B4E     (base 16)           Communications & Power Industries\r
                                1000 Klein Road\r
                                Plano  TX  75074\r
                                US\r
 \r
-00-03-34   (hex)               Omega Engineering Inc.\r
-000334     (base 16)           Omega Engineering Inc.\r
-                               800 Connecticut Ave. Suite 5N01,\r
-                               Norwalk  CT  06854\r
-                               US\r
+74-73-1D   (hex)               ifm electronic gmbh\r
+74731D     (base 16)           ifm electronic gmbh\r
+                               ifm-Straße 1\r
+                               Tettnang  BW  88069\r
+                               DE\r
 \r
 5C-61-99   (hex)               CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
 5C6199     (base 16)           CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
@@ -137240,11 +137735,11 @@ E8DB84     (base 16)                Espressif Inc.
                                Shanghai  Shanghai  201203\r
                                CN\r
 \r
-D0-55-09   (hex)               Nintendo Co.,Ltd\r
-D05509     (base 16)           Nintendo Co.,Ltd\r
-                               11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
-                               KYOTO  KYOTO  601-8501\r
-                               JP\r
+9C-B2-E8   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+9CB2E8     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
 \r
 A0-77-51   (hex)               ASMedia Technology Inc.\r
 A07751     (base 16)           ASMedia Technology Inc.\r
@@ -137258,6 +137753,18 @@ A07751     (base 16)         ASMedia Technology Inc.
                                SHENZHEN  GUANGDONG  518000\r
                                CN\r
 \r
+D0-55-09   (hex)               Nintendo Co.,Ltd\r
+D05509     (base 16)           Nintendo Co.,Ltd\r
+                               11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
+                               KYOTO  KYOTO  601-8501\r
+                               JP\r
+\r
+00-03-34   (hex)               Omega Engineering Inc.\r
+000334     (base 16)           Omega Engineering Inc.\r
+                               800 Connecticut Ave. Suite 5N01,\r
+                               Norwalk  CT  06854\r
+                               US\r
+\r
 14-56-3A   (hex)               Huawei Device Co., Ltd.\r
 14563A     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -137270,11 +137777,29 @@ A07751     (base 16)                ASMedia Technology Inc.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-38-FC-98   (hex)               Intel Corporate\r
-38FC98     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
+68-72-C3   (hex)               Samsung Electronics Co.,Ltd\r
+6872C3     (base 16)           Samsung Electronics Co.,Ltd\r
+                               129, Samsung-ro, Youngtongl-Gu\r
+                               Suwon  Gyeonggi-Do  16677\r
+                               KR\r
+\r
+70-B1-3D   (hex)               Samsung Electronics Co.,Ltd\r
+70B13D     (base 16)           Samsung Electronics Co.,Ltd\r
+                               129, Samsung-ro, Youngtongl-Gu\r
+                               Suwon  Gyeonggi-Do  16677\r
+                               KR\r
+\r
+F8-E4-3B   (hex)               ASIX Electronics Corporation\r
+F8E43B     (base 16)           ASIX Electronics Corporation\r
+                               4F, No. 8, Hsin Ann Road, Hsinchu Science Park\r
+                               Hsinchu    30078\r
+                               TW\r
+\r
+60-DB-98   (hex)               Calix Inc.\r
+60DB98     (base 16)           Calix Inc.\r
+                               2777 Orchard Pkwy\r
+                               San Jose  CA  95131\r
+                               US\r
 \r
 24-94-94   (hex)               Hong Kong Bouffalo Lab Limited\r
 249494     (base 16)           Hong Kong Bouffalo Lab Limited\r
@@ -137306,24 +137831,12 @@ A07751     (base 16)                ASMedia Technology Inc.
                                DONG GUAN  GUANG DONG  523860\r
                                CN\r
 \r
-60-DB-98   (hex)               Calix Inc.\r
-60DB98     (base 16)           Calix Inc.\r
-                               2777 Orchard Pkwy\r
-                               San Jose  CA  95131\r
+00-34-A1   (hex)               RF-LAMBDA USA INC.\r
+0034A1     (base 16)           RF-LAMBDA USA INC.\r
+                               9115 Brown Deer Road | San Diego\r
+                               CA    92121\r
                                US\r
 \r
-68-72-C3   (hex)               Samsung Electronics Co.,Ltd\r
-6872C3     (base 16)           Samsung Electronics Co.,Ltd\r
-                               129, Samsung-ro, Youngtongl-Gu\r
-                               Suwon  Gyeonggi-Do  16677\r
-                               KR\r
-\r
-70-B1-3D   (hex)               Samsung Electronics Co.,Ltd\r
-70B13D     (base 16)           Samsung Electronics Co.,Ltd\r
-                               129, Samsung-ro, Youngtongl-Gu\r
-                               Suwon  Gyeonggi-Do  16677\r
-                               KR\r
-\r
 FC-7F-F1   (hex)               Aruba, a Hewlett Packard Enterprise Company\r
 FC7FF1     (base 16)           Aruba, a Hewlett Packard Enterprise Company\r
                                3333 Scott Blvd\r
@@ -137336,32 +137849,14 @@ FC7FF1     (base 16)                Aruba, a Hewlett Packard Enterprise Company
                                Dongguan    523808\r
                                CN\r
 \r
-F8-E4-3B   (hex)               ASIX Electronics Corporation\r
-F8E43B     (base 16)           ASIX Electronics Corporation\r
-                               4F, No. 8, Hsin Ann Road, Hsinchu Science Park\r
-                               Hsinchu    30078\r
-                               TW\r
-\r
-F8-5E-A0   (hex)               Intel Corporate\r
-F85EA0     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-50-2F-9B   (hex)               Intel Corporate\r
-502F9B     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-48-EF-61   (hex)               Huawei Device Co., Ltd.\r
-48EF61     (base 16)           Huawei Device Co., Ltd.\r
+78-F0-9B   (hex)               Huawei Device Co., Ltd.\r
+78F09B     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-78-F0-9B   (hex)               Huawei Device Co., Ltd.\r
-78F09B     (base 16)           Huawei Device Co., Ltd.\r
+48-EF-61   (hex)               Huawei Device Co., Ltd.\r
+48EF61     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
@@ -137378,11 +137873,11 @@ F85EA0     (base 16)                Intel Corporate
                                Sunnyvale  CA  94089\r
                                US\r
 \r
-00-34-A1   (hex)               RF-LAMBDA USA INC.\r
-0034A1     (base 16)           RF-LAMBDA USA INC.\r
-                               9115 Brown Deer Road | San Diego\r
-                               CA    92121\r
-                               US\r
+18-11-71   (hex)               Guangzhou Doctorpai Education & Technology Co.,Ltd\r
+181171     (base 16)           Guangzhou Doctorpai Education & Technology Co.,Ltd\r
+                               Floor 5, Building C1, Greenland Central Plaza\r
+                               Huangpu District, Guangzhou  Guangdong Province  510700\r
+                               CN\r
 \r
 60-35-73   (hex)               Earda Technologies co Ltd\r
 603573     (base 16)           Earda Technologies co Ltd\r
@@ -137402,17 +137897,17 @@ A49733     (base 16)                ASKEY COMPUTER CORP
                                Chongqing  Chongqing  401332\r
                                CN\r
 \r
-18-0F-76   (hex)               D-Link International\r
-180F76     (base 16)           D-Link International\r
-                               1 Internal Business Park, #03-12,The Synergy\r
-                               Singapore   Singapore  609917\r
-                               SG\r
+F0-2F-74   (hex)               ASUSTek COMPUTER INC.\r
+F02F74     (base 16)           ASUSTek COMPUTER INC.\r
+                               15,Li-Te Rd., Peitou, Taipei 112, Taiwan\r
+                               Taipei  Taiwan  112\r
+                               TW\r
 \r
-00-AD-24   (hex)               D-Link International\r
-00AD24     (base 16)           D-Link International\r
-                               1 Internal Business Park, #03-12,The Synergy\r
-                               Singapore   Singapore  609917\r
-                               SG\r
+00-6E-02   (hex)               Xovis AG\r
+006E02     (base 16)           Xovis AG\r
+                               Industriestrasse 1\r
+                               Zollikofen  Bern  3052\r
+                               CH\r
 \r
 60-63-4C   (hex)               D-Link International\r
 60634C     (base 16)           D-Link International\r
@@ -137438,17 +137933,11 @@ E01CFC     (base 16)                D-Link International
                                Singapore   Singapore  609917\r
                                SG\r
 \r
-F0-2F-74   (hex)               ASUSTek COMPUTER INC.\r
-F02F74     (base 16)           ASUSTek COMPUTER INC.\r
-                               15,Li-Te Rd., Peitou, Taipei 112, Taiwan\r
-                               Taipei  Taiwan  112\r
-                               TW\r
-\r
-00-6E-02   (hex)               Xovis AG\r
-006E02     (base 16)           Xovis AG\r
-                               Industriestrasse 1\r
-                               Zollikofen  Bern  3052\r
-                               CH\r
+78-98-E8   (hex)               D-Link International\r
+7898E8     (base 16)           D-Link International\r
+                               1 Internal Business Park, #03-12,The Synergy\r
+                               Singapore   Singapore  609917\r
+                               SG\r
 \r
 AC-F8-5C   (hex)               Chengdu Higon Integrated Circuit Design Co,. Ltd.\r
 ACF85C     (base 16)           Chengdu Higon Integrated Circuit Design Co,. Ltd.\r
@@ -137456,11 +137945,23 @@ ACF85C     (base 16)                Chengdu Higon Integrated Circuit Design Co,. Ltd.
                                Chengdu  Sichuan  610041\r
                                CN\r
 \r
-18-11-71   (hex)               Guangzhou Doctorpai Education & Technology Co.,Ltd\r
-181171     (base 16)           Guangzhou Doctorpai Education & Technology Co.,Ltd\r
-                               Floor 5, Building C1, Greenland Central Plaza\r
-                               Huangpu District, Guangzhou  Guangdong Province  510700\r
-                               CN\r
+44-F2-1B   (hex)               Apple, Inc.\r
+44F21B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+18-0F-76   (hex)               D-Link International\r
+180F76     (base 16)           D-Link International\r
+                               1 Internal Business Park, #03-12,The Synergy\r
+                               Singapore   Singapore  609917\r
+                               SG\r
+\r
+00-AD-24   (hex)               D-Link International\r
+00AD24     (base 16)           D-Link International\r
+                               1 Internal Business Park, #03-12,The Synergy\r
+                               Singapore   Singapore  609917\r
+                               SG\r
 \r
 E0-6D-17   (hex)               Apple, Inc.\r
 E06D17     (base 16)           Apple, Inc.\r
@@ -137480,36 +137981,12 @@ F465A6     (base 16)                Apple, Inc.
                                Cupertino  CA  95014\r
                                US\r
 \r
-78-98-E8   (hex)               D-Link International\r
-7898E8     (base 16)           D-Link International\r
-                               1 Internal Business Park, #03-12,The Synergy\r
-                               Singapore   Singapore  609917\r
-                               SG\r
-\r
-44-F2-1B   (hex)               Apple, Inc.\r
-44F21B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 74-65-0C   (hex)               Apple, Inc.\r
 74650C     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-FC-D4-36   (hex)               Motorola Mobility LLC, a Lenovo Company\r
-FCD436     (base 16)           Motorola Mobility LLC, a Lenovo Company\r
-                               222 West Merchandise Mart Plaza\r
-                               Chicago  IL  60654\r
-                               US\r
-\r
-0C-EC-8D   (hex)               Motorola Mobility LLC, a Lenovo Company\r
-0CEC8D     (base 16)           Motorola Mobility LLC, a Lenovo Company\r
-                               222 West Merchandise Mart Plaza\r
-                               Chicago  IL  60654\r
-                               US\r
-\r
 18-4F-5D   (hex)               JRC Mobility Inc.\r
 184F5D     (base 16)           JRC Mobility Inc.\r
                                NAKANO CENTRAL PARK EAST 10-1, Nakano 4-chome\r
@@ -137522,18 +137999,6 @@ FCD436     (base 16)         Motorola Mobility LLC, a Lenovo Company
                                NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
                                CN\r
 \r
-08-CB-E5   (hex)               R3 - Reliable Realtime Radio Communications GmbH\r
-08CBE5     (base 16)           R3 - Reliable Realtime Radio Communications GmbH\r
-                               Bismarckstrasse 10-12\r
-                               Berlin  Berlin  10625\r
-                               DE\r
-\r
-F0-23-AE   (hex)               AMPAK Technology,Inc.\r
-F023AE     (base 16)           AMPAK Technology,Inc.\r
-                               3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
-                               Hsinchu  Hsinchu,Taiwan R.O.C.  30352\r
-                               TW\r
-\r
 E0-77-26   (hex)               Huawei Device Co., Ltd.\r
 E07726     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -137546,6 +138011,30 @@ E07726     (base 16)         Huawei Device Co., Ltd.
                                San Jose  CA  95134\r
                                US\r
 \r
+FC-D4-36   (hex)               Motorola Mobility LLC, a Lenovo Company\r
+FCD436     (base 16)           Motorola Mobility LLC, a Lenovo Company\r
+                               222 West Merchandise Mart Plaza\r
+                               Chicago  IL  60654\r
+                               US\r
+\r
+0C-EC-8D   (hex)               Motorola Mobility LLC, a Lenovo Company\r
+0CEC8D     (base 16)           Motorola Mobility LLC, a Lenovo Company\r
+                               222 West Merchandise Mart Plaza\r
+                               Chicago  IL  60654\r
+                               US\r
+\r
+08-CB-E5   (hex)               R3 - Reliable Realtime Radio Communications GmbH\r
+08CBE5     (base 16)           R3 - Reliable Realtime Radio Communications GmbH\r
+                               Bismarckstrasse 10-12\r
+                               Berlin  Berlin  10625\r
+                               DE\r
+\r
+F0-23-AE   (hex)               AMPAK Technology,Inc.\r
+F023AE     (base 16)           AMPAK Technology,Inc.\r
+                               3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,\r
+                               Hsinchu  Hsinchu,Taiwan R.O.C.  30352\r
+                               TW\r
+\r
 A8-9A-D7   (hex)               Nokia\r
 A89AD7     (base 16)           Nokia\r
                                600 March Road\r
@@ -137582,6 +138071,18 @@ F87A41     (base 16)         Cisco Systems, Inc
                                Dallas  TX  75243\r
                                US\r
 \r
+AC-AE-19   (hex)               Roku, Inc\r
+ACAE19     (base 16)           Roku, Inc\r
+                               1155 Coleman Ave\r
+                               San Jose  CA  95110\r
+                               US\r
+\r
+D4-39-B8   (hex)               Ciena Corporation\r
+D439B8     (base 16)           Ciena Corporation\r
+                               7035 Ridge Road\r
+                               Hanover  MD  21076\r
+                               US\r
+\r
 30-C3-D9   (hex)               ALPSALPINE CO,.LTD\r
 30C3D9     (base 16)           ALPSALPINE CO,.LTD\r
                                6-1\r
@@ -137594,6 +138095,288 @@ F87A41     (base 16)                Cisco Systems, Inc
                                Soma-city,  Fukushima-pref.,  976-8501\r
                                JP\r
 \r
+34-FE-C5   (hex)               Shenzhen Sunwoda intelligent hardware Co.,Ltd\r
+34FEC5     (base 16)           Shenzhen Sunwoda intelligent hardware Co.,Ltd\r
+                               No.6-6,Yan Shan Rd.,Baoan District,Shenzhen City,China\r
+                               Shenzhen  Guangdong  518105\r
+                               CN\r
+\r
+74-E9-BF   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+74E9BF     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+D8-10-9F   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+D8109F     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+3C-54-47   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+3C5447     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+00-6B-6F   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+006B6F     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+14-B2-E5   (hex)               Shenzhen iComm Semiconductor CO.,LTD\r
+14B2E5     (base 16)           Shenzhen iComm Semiconductor CO.,LTD\r
+                               Room 504A,Block B,Digital Building,Gargen City,No.1079,Nanhai Road,Nanshan District,Shenzhen.\r
+                               Shenzhen    518067\r
+                               CN\r
+\r
+A8-F7-66   (hex)               ITE Tech Inc\r
+A8F766     (base 16)           ITE Tech Inc\r
+                               3F, No.13, Chuangsin 1st Rd., Hsinchu Science Park\r
+                               Hsinchu  Taiwan  30076\r
+                               TW\r
+\r
+00-25-DF   (hex)               Taser International Inc.\r
+0025DF     (base 16)           Taser International Inc.\r
+                               17800 N 85th St.\r
+                               Scottsdale  AZ  85255\r
+                               US\r
+\r
+00-21-3E   (hex)               TomTom International BV\r
+00213E     (base 16)           TomTom International BV\r
+                               Oosterdoksstraat 114\r
+                               Amsterdam  North Holland  1011 DK\r
+                               NL\r
+\r
+FC-0C-45   (hex)               Shenzhen SuperElectron Technology Co.,Ltd.\r
+FC0C45     (base 16)           Shenzhen SuperElectron Technology Co.,Ltd.\r
+                               1213-1214, haosheng business center, dongbin road, nanshan street, nanshan district, shenzhen city\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+54-67-E6   (hex)               SHENZHEN MTC CO LTD\r
+5467E6     (base 16)           SHENZHEN MTC CO LTD\r
+                               5th Floor, 3rd Building, SHENZHEN MTC Industrial Park, XiaLilang Rd, Nanwan Street, Long’gang District\r
+                               Shenzhen  Guangdong  518100\r
+                               CN\r
+\r
+70-9C-D1   (hex)               Intel Corporate\r
+709CD1     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+68-3E-26   (hex)               Intel Corporate\r
+683E26     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+8C-55-4A   (hex)               Intel Corporate\r
+8C554A     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+40-1C-83   (hex)               Intel Corporate\r
+401C83     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+38-FC-98   (hex)               Intel Corporate\r
+38FC98     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+50-2F-9B   (hex)               Intel Corporate\r
+502F9B     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+F8-5E-A0   (hex)               Intel Corporate\r
+F85EA0     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+A4-6B-B6   (hex)               Intel Corporate\r
+A46BB6     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+8C-DE-F9   (hex)               Beijing Xiaomi Mobile Software Co., Ltd\r
+8CDEF9     (base 16)           Beijing Xiaomi Mobile Software Co., Ltd\r
+                               The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District\r
+                               Beijing  Beijing  100085\r
+                               CN\r
+\r
+A0-3D-6E   (hex)               Cisco Systems, Inc\r
+A03D6E     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+B0-8B-D0   (hex)               Cisco Systems, Inc\r
+B08BD0     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+D0-3C-1F   (hex)               Intel Corporate\r
+D03C1F     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+00-0E-B6   (hex)               Riverbed Technology, Inc.\r
+000EB6     (base 16)           Riverbed Technology, Inc.\r
+                               680 Folsom St\r
+                               San Francisco  CA  94107\r
+                               US\r
+\r
+84-44-AF   (hex)               Zhejiang Tmall Technology Co., Ltd.\r
+8444AF     (base 16)           Zhejiang Tmall Technology Co., Ltd.\r
+                               Ali Center,No.3331 Keyuan South RD (Shenzhen bay), Nanshan District, Shenzhen Guangdong province\r
+                               Shenzhen  GuangDong  518000\r
+                               CN\r
+\r
+E4-BF-FA   (hex)               Technicolor CH USA Inc.\r
+E4BFFA     (base 16)           Technicolor CH USA Inc.\r
+                               5030 Sugarloaf Parkway Bldg 6 \r
+                               Lawrenceville  GA  30044\r
+                               US\r
+\r
+54-3A-D6   (hex)               Samsung Electronics Co.,Ltd\r
+543AD6     (base 16)           Samsung Electronics Co.,Ltd\r
+                               129, Samsung-ro, Youngtongl-Gu\r
+                               Suwon  Gyeonggi-Do  16677\r
+                               KR\r
+\r
+14-23-0A   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+14230A     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+58-AE-A8   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+58AEA8     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+6C-D7-04   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+6CD704     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+00-77-E4   (hex)               Nokia Solutions and Networks GmbH & Co. KG\r
+0077E4     (base 16)           Nokia Solutions and Networks GmbH & Co. KG\r
+                               Werinherstrasse 91\r
+                               München  Bavaria  D-81541\r
+                               DE\r
+\r
+48-EC-5B   (hex)               Nokia Solutions and Networks GmbH & Co. KG\r
+48EC5B     (base 16)           Nokia Solutions and Networks GmbH & Co. KG\r
+                               Werinherstrasse 91\r
+                               München  Bavaria  D-81541\r
+                               DE\r
+\r
+58-AE-2B   (hex)               Huawei Device Co., Ltd.\r
+58AE2B     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+8C-64-D4   (hex)               Hyeco Smart Tech Co.,Ltd\r
+8C64D4     (base 16)           Hyeco Smart Tech Co.,Ltd\r
+                               12 Beiqian Lane,Industrial Park\r
+                               Suzhou  Jiangsu  215000\r
+                               CN\r
+\r
+D8-14-DF   (hex)               TCL King Electrical Appliances (Huizhou) Co., Ltd\r
+D814DF     (base 16)           TCL King Electrical Appliances (Huizhou) Co., Ltd\r
+                               10F, TCL Multimedia Building, TCL International E City, No.1001 Zhongshanyuan Rd., Nanshan District\r
+                               Shenzhen  Guangdong  518052\r
+                               CN\r
+\r
+90-02-7A   (hex)               Shenzhen Sworix Techonlogy Co., Ltd\r
+90027A     (base 16)           Shenzhen Sworix Techonlogy Co., Ltd\r
+                               Room202, 2nd floor, Jianghao commercial center, Jianghao Industrial area,Jihua road 430, Bantian, Longgang\r
+                               Shenzhen    518129\r
+                               CN\r
+\r
+84-5C-F3   (hex)               Intel Corporate\r
+845CF3     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+54-46-17   (hex)               zte corporation\r
+544617     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+5C-85-F8   (hex)               SHENZHEN KAIFA TECHNOLOGY CO.,LTD.\r
+5C85F8     (base 16)           SHENZHEN KAIFA TECHNOLOGY CO.,LTD.\r
+                               7006 Caitian Rd., Futian Dist. \r
+                               Shen Zhen  Guang Dong  518035\r
+                               CN\r
+\r
+00-08-B0   (hex)               HUBER+SUHNER\r
+0008B0     (base 16)           HUBER+SUHNER\r
+                               Benzstraße 4\r
+                               41836 Hückelhoven-Baal  NRW  41836\r
+                               DE\r
+\r
+D0-5A-FD   (hex)               Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
+D05AFD     (base 16)           Realme Chongqing Mobile Telecommunications Corp.,Ltd.\r
+                               No.178 Yulong Avenue, Yufengshan, Yubei District, Chongqing.\r
+                               Chongqing   China  401120\r
+                               CN\r
+\r
+9C-BC-F0   (hex)               Xiaomi Communications Co Ltd\r
+9CBCF0     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
+80-22-78   (hex)               China Mobile IOT Company Limited\r
+802278     (base 16)           China Mobile IOT Company Limited\r
+                               NO.8 Yu Ma Road, NanAn Area\r
+                               Chongqing  Chongqing  401336\r
+                               CN\r
+\r
+90-3C-B3   (hex)               Edgecore Networks Corporation\r
+903CB3     (base 16)           Edgecore Networks Corporation\r
+                               1 Creation RD 3.\r
+                               Hsinchu    30077\r
+                               TW\r
+\r
+2C-79-3D   (hex)               Boditech Med\r
+2C793D     (base 16)           Boditech Med\r
+                               43, Geodudanji 1-gil, Dongnae-myeon, \r
+                               Chuncheon-si, Gangwon-do    24398\r
+                               KR\r
+\r
+64-D7-C0   (hex)               Huawei Device Co., Ltd.\r
+64D7C0     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+94-60-10   (hex)               Huawei Device Co., Ltd.\r
+946010     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 7C-8A-E1   (hex)               COMPAL INFORMATION (KUNSHAN) CO., LTD. \r
 7C8AE1     (base 16)           COMPAL INFORMATION (KUNSHAN) CO., LTD. \r
                                NO. 25, THE 3RD Street KUNSHAN EXPORT PROCESSING ZONE \r
@@ -150734,12 +151517,6 @@ FCAA14     (base 16)         GIGA-BYTE TECHNOLOGY CO.,LTD.
                                shenzhen  guanggong  518127\r
                                CN\r
 \r
-74-8F-4D   (hex)               MEN Mikro Elektronik GmbH\r
-748F4D     (base 16)           MEN Mikro Elektronik GmbH\r
-                               Neuwieder Str. 3 - 7\r
-                               Nuernberg  Bavaria  90411\r
-                               DE\r
-\r
 50-67-87   (hex)               Planet Networks\r
 506787     (base 16)           Planet Networks\r
                                1 Ivy Crest Ln\r
@@ -160766,12 +161543,6 @@ EC6C9F     (base 16)         Chengdu Volans Technology CO.,LTD
                                HaiDian District,  Beijing  100089\r
                                CN\r
 \r
-00-12-AD   (hex)               IDS GmbH\r
-0012AD     (base 16)           IDS GmbH\r
-                               Nobelstraße, 18\r
-                               Ettlingen  Baden-Württemberg  76275\r
-                               DE\r
-\r
 00-12-A0   (hex)               NeoMeridian Sdn Bhd\r
 0012A0     (base 16)           NeoMeridian Sdn Bhd\r
                                3A-1, Perdana The Place\r
@@ -169889,6 +170660,12 @@ A8705D     (base 16)         ARRIS Group, Inc.
                                Shenzhen  Guangdong  518055\r
                                CN\r
 \r
+F0-46-3B   (hex)               Comcast Cable Corporation\r
+F0463B     (base 16)           Comcast Cable Corporation\r
+                               1800 Arch Street\r
+                               Philadelphia  PA  19103\r
+                               US\r
+\r
 1C-05-B7   (hex)               Chongqing Trantor Technology Co., Ltd.\r
 1C05B7     (base 16)           Chongqing Trantor Technology Co., Ltd.\r
                                No.69,Huoju Avenue,Jiulongpo District.\r
@@ -169937,23 +170714,17 @@ D8C561     (base 16)                CommFront Communications Pte Ltd
                                Espoo    02600\r
                                FI\r
 \r
-F8-2E-8E   (hex)               Nanjing Kechen Electric Co., Ltd.\r
-F82E8E     (base 16)           Nanjing Kechen Electric Co., Ltd.\r
-                               Room 202, Building 12, No. 50 Daguang road\r
-                               Nanjing    210001\r
-                               CN\r
-\r
 B4-C9-B9   (hex)               Sichuan AI-Link Technology Co., Ltd.\r
 B4C9B9     (base 16)           Sichuan AI-Link Technology Co., Ltd.\r
                                Anzhou, Industrial Park\r
                                Mianyang  Sichuan  622650\r
                                CN\r
 \r
-F0-46-3B   (hex)               Comcast Cable Corporation\r
-F0463B     (base 16)           Comcast Cable Corporation\r
-                               1800 Arch Street\r
-                               Philadelphia  PA  19103\r
-                               US\r
+F8-2E-8E   (hex)               Nanjing Kechen Electric Co., Ltd.\r
+F82E8E     (base 16)           Nanjing Kechen Electric Co., Ltd.\r
+                               Room 202, Building 12, No. 50 Daguang road\r
+                               Nanjing    210001\r
+                               CN\r
 \r
 68-D7-9A   (hex)               Ubiquiti Networks Inc.\r
 68D79A     (base 16)           Ubiquiti Networks Inc.\r
@@ -169997,6 +170768,30 @@ D84732     (base 16)         TP-LINK TECHNOLOGIES CO.,LTD.
                                Shenzhen  Guangdong  518057\r
                                CN\r
 \r
+B4-6E-08   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+B46E08     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+8C-68-3A   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+8C683A     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+B4-81-07   (hex)               SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD\r
+B48107     (base 16)           SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD\r
+                               Unit East Block22-24/F,Skyworth semiconductor design  Bldg., Gaoxin Ave.4.S.,Nanshan District,Shenzhen,China\r
+                               SHENZHEN  GUANGDONG  518057\r
+                               CN\r
+\r
+70-66-55   (hex)               AzureWave Technology Inc.\r
+706655     (base 16)           AzureWave Technology Inc.\r
+                               8F., No. 94, Baozhong Rd.\r
+                               New Taipei City  Taiwan  231\r
+                               TW\r
+\r
 28-64-B0   (hex)               Huawei Device Co., Ltd.\r
 2864B0     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -170015,17 +170810,11 @@ D84732     (base 16)                TP-LINK TECHNOLOGIES CO.,LTD.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-8C-68-3A   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-8C683A     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
-B4-6E-08   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-B46E08     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
+0C-48-C6   (hex)               CELESTICA INC.\r
+0C48C6     (base 16)           CELESTICA INC.\r
+                               1900-5140 Yonge Street PO Box 42   \r
+                               Toronto  Ontario  M2N 6L7\r
+                               CA\r
 \r
 00-5E-0C   (hex)               HMD Global Oy\r
 005E0C     (base 16)           HMD Global Oy\r
@@ -170033,18 +170822,12 @@ B46E08     (base 16)                HUAWEI TECHNOLOGIES CO.,LTD
                                Espoo    02600\r
                                FI\r
 \r
-B4-81-07   (hex)               SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD\r
-B48107     (base 16)           SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD\r
-                               Unit East Block22-24/F,Skyworth semiconductor design  Bldg., Gaoxin Ave.4.S.,Nanshan District,Shenzhen,China\r
-                               SHENZHEN  GUANGDONG  518057\r
+A4-29-85   (hex)               Sichuan AI-Link Technology Co., Ltd.\r
+A42985     (base 16)           Sichuan AI-Link Technology Co., Ltd.\r
+                               Anzhou, Industrial Park\r
+                               Mianyang  Sichuan  622650\r
                                CN\r
 \r
-70-66-55   (hex)               AzureWave Technology Inc.\r
-706655     (base 16)           AzureWave Technology Inc.\r
-                               8F., No. 94, Baozhong Rd.\r
-                               New Taipei City  Taiwan  231\r
-                               TW\r
-\r
 64-7C-34   (hex)               Ubee Interactive Co., Limited\r
 647C34     (base 16)           Ubee Interactive Co., Limited\r
                                Flat/RM 1202, 12/F, AT Tower \r
@@ -170063,36 +170846,18 @@ B48107     (base 16)                SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD
                                Shenzhen  Guangdong  518057\r
                                CN\r
 \r
-0C-48-C6   (hex)               CELESTICA INC.\r
-0C48C6     (base 16)           CELESTICA INC.\r
-                               1900-5140 Yonge Street PO Box 42   \r
-                               Toronto  Ontario  M2N 6L7\r
-                               CA\r
-\r
-A4-29-85   (hex)               Sichuan AI-Link Technology Co., Ltd.\r
-A42985     (base 16)           Sichuan AI-Link Technology Co., Ltd.\r
-                               Anzhou, Industrial Park\r
-                               Mianyang  Sichuan  622650\r
-                               CN\r
-\r
-78-AC-44   (hex)               Dell Inc.\r
-78AC44     (base 16)           Dell Inc.\r
-                               One Dell Way\r
-                               Round Rock  TX  78682\r
-                               US\r
-\r
-98-C8-B8   (hex)               vivo Mobile Communication Co., Ltd.\r
-98C8B8     (base 16)           vivo Mobile Communication Co., Ltd.\r
-                               #283,BBK Road\r
-                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
-                               CN\r
-\r
 B8-D4-E7   (hex)               Aruba, a Hewlett Packard Enterprise Company\r
 B8D4E7     (base 16)           Aruba, a Hewlett Packard Enterprise Company\r
                                3333 Scott Blvd\r
                                Santa Clara  CA  95054\r
                                US\r
 \r
+BC-09-63   (hex)               Apple, Inc.\r
+BC0963     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
 D8-4C-90   (hex)               Apple, Inc.\r
 D84C90     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
@@ -170117,18 +170882,6 @@ D84C90     (base 16)         Apple, Inc.
                                Cupertino  CA  95014\r
                                US\r
 \r
-20-9E-F7   (hex)               Extreme Networks, Inc.\r
-209EF7     (base 16)           Extreme Networks, Inc.\r
-                               6480 Via Del Oro\r
-                               San Jose  CA  95119\r
-                               US\r
-\r
-BC-09-63   (hex)               Apple, Inc.\r
-BC0963     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 18-58-69   (hex)               Sailer Electronic Co., Ltd\r
 185869     (base 16)           Sailer Electronic Co., Ltd\r
                                No. 6, Sanxi Road, Ximagou Industrial Park, Jianxi District\r
@@ -170141,18 +170894,24 @@ BC2DEF     (base 16)                Realme Chongqing Mobile Telecommunications Corp.,Ltd.
                                Chongqing   China  401120\r
                                CN\r
 \r
+78-AC-44   (hex)               Dell Inc.\r
+78AC44     (base 16)           Dell Inc.\r
+                               One Dell Way\r
+                               Round Rock  TX  78682\r
+                               US\r
+\r
+98-C8-B8   (hex)               vivo Mobile Communication Co., Ltd.\r
+98C8B8     (base 16)           vivo Mobile Communication Co., Ltd.\r
+                               #283,BBK Road\r
+                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+                               CN\r
+\r
 78-81-CE   (hex)               China Mobile Iot Limited company\r
 7881CE     (base 16)           China Mobile Iot Limited company\r
                                No. 8 Yangliu North Road, Yubei District, Chongqing, China\r
                                Chong Qing  Chong Qing  401120\r
                                CN\r
 \r
-BC-FF-21   (hex)               Smart Code(shenzhen)Technology Co.,Ltd\r
-BCFF21     (base 16)           Smart Code(shenzhen)Technology Co.,Ltd\r
-                               Room 1206, Satellite Building,2002 Keyuan Road, Nanshan \r
-                               Shenzhen   Guangdong (Province)   518000\r
-                               CN\r
-\r
 44-5C-E9   (hex)               Samsung Electronics Co.,Ltd\r
 445CE9     (base 16)           Samsung Electronics Co.,Ltd\r
                                129, Samsung-ro, Youngtongl-Gu\r
@@ -170165,12 +170924,30 @@ C01692     (base 16)                China Mobile Group Device Co.,Ltd.
                                Beijing    100053\r
                                CN\r
 \r
+20-9E-F7   (hex)               Extreme Networks, Inc.\r
+209EF7     (base 16)           Extreme Networks, Inc.\r
+                               6480 Via Del Oro\r
+                               San Jose  CA  95119\r
+                               US\r
+\r
+BC-FF-21   (hex)               Smart Code(shenzhen)Technology Co.,Ltd\r
+BCFF21     (base 16)           Smart Code(shenzhen)Technology Co.,Ltd\r
+                               Room 1206, Satellite Building,2002 Keyuan Road, Nanshan \r
+                               Shenzhen   Guangdong (Province)   518000\r
+                               CN\r
+\r
 38-17-30   (hex)               Ulrich Lippert GmbH & Co KG\r
 381730     (base 16)           Ulrich Lippert GmbH & Co KG\r
                                Christian-Henkel-Str. 12\r
                                Berlin    12349\r
                                DE\r
 \r
+28-E3-4E   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+28E34E     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
 40-2E-71   (hex)               Texas Instruments\r
 402E71     (base 16)           Texas Instruments\r
                                12500 TI Blvd\r
@@ -170183,24 +170960,6 @@ C01692     (base 16)         China Mobile Group Device Co.,Ltd.
                                Farum    DK-3520\r
                                DK\r
 \r
-94-E9-EE   (hex)               Huawei Device Co., Ltd.\r
-94E9EE     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-28-E3-4E   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-28E34E     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
-D4-52-EE   (hex)               BSkyB Ltd\r
-D452EE     (base 16)           BSkyB Ltd\r
-                               130 Kings Road\r
-                               Brentwood  Essex  08854\r
-                               GB\r
-\r
 E0-23-FF   (hex)               Fortinet, Inc.\r
 E023FF     (base 16)           Fortinet, Inc.\r
                                899 Kifer Road\r
@@ -170219,6 +170978,30 @@ E023FF     (base 16)         Fortinet, Inc.
                                Hsinchu City  Hsinchu  30071\r
                                TW\r
 \r
+94-E9-EE   (hex)               Huawei Device Co., Ltd.\r
+94E9EE     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+78-B8-D6   (hex)               Zebra Technologies Inc.\r
+78B8D6     (base 16)           Zebra Technologies Inc.\r
+                               ONE ZEBRA PLAZA\r
+                               HOLTSVILLE  NY  11742\r
+                               US\r
+\r
+D4-52-EE   (hex)               BSkyB Ltd\r
+D452EE     (base 16)           BSkyB Ltd\r
+                               130 Kings Road\r
+                               Brentwood  Essex  08854\r
+                               GB\r
+\r
+F4-90-CB   (hex)               IEEE Registration Authority\r
+F490CB     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
+\r
 9C-F0-29   (hex)               Integrated Device Technology (Malaysia) Sdn. Bhd.\r
 9CF029     (base 16)           Integrated Device Technology (Malaysia) Sdn. Bhd.\r
                                Phase 3, Bayan Lepas FIZ\r
@@ -170231,30 +171014,42 @@ E023FF     (base 16)                Fortinet, Inc.
                                Stamford  CT  06901\r
                                US\r
 \r
-78-B8-D6   (hex)               Zebra Technologies Inc.\r
-78B8D6     (base 16)           Zebra Technologies Inc.\r
-                               ONE ZEBRA PLAZA\r
-                               HOLTSVILLE  NY  11742\r
+4C-FC-AA   (hex)               Tesla,Inc.\r
+4CFCAA     (base 16)           Tesla,Inc.\r
+                               3500 Deer Creek Rd.\r
+                               PALO ALTO  CA  94304\r
                                US\r
 \r
+10-CE-45   (hex)               Miromico AG\r
+10CE45     (base 16)           Miromico AG\r
+                               Gallusstrasse 4\r
+                               Zurich  Zurich  CH-8006\r
+                               CH\r
+\r
 BC-4A-56   (hex)               Cisco Systems, Inc\r
 BC4A56     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
                                San Jose  CA  94568\r
                                US\r
 \r
+F8-AF-05   (hex)               Huawei Device Co., Ltd.\r
+F8AF05     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+B8-2F-CB   (hex)               CMS Electracom\r
+B82FCB     (base 16)           CMS Electracom\r
+                               24 Binney Road\r
+                               Kings Park  NSW  2148\r
+                               AU\r
+\r
 6C-61-F4   (hex)               SFR\r
 6C61F4     (base 16)           SFR\r
                                12 rue jean-philippe Rameau CS 80001\r
                                La plaine saint denis   FRANCE  93634\r
                                FR\r
 \r
-F4-90-CB   (hex)               IEEE Registration Authority\r
-F490CB     (base 16)           IEEE Registration Authority\r
-                               445 Hoes Lane\r
-                               Piscataway  NJ  08554\r
-                               US\r
-\r
 00-10-7F   (hex)               CRESTRON ELECTRONICS, INC.\r
 00107F     (base 16)           CRESTRON ELECTRONICS, INC.\r
                                15 Volvo Drive\r
@@ -170267,17 +171062,11 @@ F490CB     (base 16)                IEEE Registration Authority
                                Copenhagen    2450\r
                                DK\r
 \r
-58-49-3B   (hex)               Palo Alto Networks\r
-58493B     (base 16)           Palo Alto Networks\r
-                               3000 Tannery Way\r
-                               Santa Clara  CA  95054\r
-                               US\r
-\r
-00-1B-17   (hex)               Palo Alto Networks\r
-001B17     (base 16)           Palo Alto Networks\r
-                               3000 Tannery Way\r
-                               Santa Clara  CA  95054\r
-                               US\r
+CC-AB-2C   (hex)               HUMAX Co., Ltd.\r
+CCAB2C     (base 16)           HUMAX Co., Ltd.\r
+                               HUMAX Village, 216, Hwangsaeul-ro, Bu\r
+                               Seongnam-si  Gyeonggi-do  463-875\r
+                               KR\r
 \r
 58-59-C2   (hex)               Extreme Networks, Inc.\r
 5859C2     (base 16)           Extreme Networks, Inc.\r
@@ -170285,18 +171074,6 @@ F490CB     (base 16)         IEEE Registration Authority
                                Milpitas  CA  95035\r
                                US\r
 \r
-B8-2F-CB   (hex)               CMS Electracom\r
-B82FCB     (base 16)           CMS Electracom\r
-                               24 Binney Road\r
-                               Kings Park  NSW  2148\r
-                               AU\r
-\r
-10-CE-45   (hex)               Miromico AG\r
-10CE45     (base 16)           Miromico AG\r
-                               Gallusstrasse 4\r
-                               Zurich  Zurich  CH-8006\r
-                               CH\r
-\r
 78-7D-53   (hex)               Extreme Networks, Inc.\r
 787D53     (base 16)           Extreme Networks, Inc.\r
                                1011 McCarthy Blvd\r
@@ -170309,48 +171086,24 @@ B82FCB     (base 16)                CMS Electracom
                                Milpitas  CA  95035\r
                                US\r
 \r
-EC-68-81   (hex)               Palo Alto Networks\r
-EC6881     (base 16)           Palo Alto Networks\r
+78-6D-94   (hex)               Palo Alto Networks\r
+786D94     (base 16)           Palo Alto Networks\r
                                3000 Tannery Way\r
                                Santa Clara  CA  95054\r
                                US\r
 \r
-78-6D-94   (hex)               Palo Alto Networks\r
-786D94     (base 16)           Palo Alto Networks\r
+58-49-3B   (hex)               Palo Alto Networks\r
+58493B     (base 16)           Palo Alto Networks\r
                                3000 Tannery Way\r
                                Santa Clara  CA  95054\r
                                US\r
 \r
-F8-AF-05   (hex)               Huawei Device Co., Ltd.\r
-F8AF05     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-4C-FC-AA   (hex)               Tesla,Inc.\r
-4CFCAA     (base 16)           Tesla,Inc.\r
-                               3500 Deer Creek Rd.\r
-                               PALO ALTO  CA  94304\r
+00-1B-17   (hex)               Palo Alto Networks\r
+001B17     (base 16)           Palo Alto Networks\r
+                               3000 Tannery Way\r
+                               Santa Clara  CA  95054\r
                                US\r
 \r
-CC-AB-2C   (hex)               HUMAX Co., Ltd.\r
-CCAB2C     (base 16)           HUMAX Co., Ltd.\r
-                               HUMAX Village, 216, Hwangsaeul-ro, Bu\r
-                               Seongnam-si  Gyeonggi-do  463-875\r
-                               KR\r
-\r
-6C-6D-09   (hex)               Kyowa Electronics Co.,Ltd.\r
-6C6D09     (base 16)           Kyowa Electronics Co.,Ltd.\r
-                               4-3-31 Takatsukasa\r
-                               Takarazuka  Hyogo  665-0051\r
-                               JP\r
-\r
-24-E1-24   (hex)                Xiamen Ursalink Technology Co., Ltd.\r
-24E124     (base 16)            Xiamen Ursalink Technology Co., Ltd.\r
-                               4/F, No. 63-2 Wanghai Road, 2nd Software Park\r
-                               Xiamen  Fujian  361008\r
-                               CN\r
-\r
 24-43-E2   (hex)               DASAN Network Solutions\r
 2443E2     (base 16)           DASAN Network Solutions\r
                                DASAN Tower 8F, 49 Daewangpangyo-ro644beon-gil Bundang-gu\r
@@ -170363,11 +171116,11 @@ A86ABB     (base 16)                Sagemcom Broadband SAS
                                Rueil Malmaison Cedex  hauts de seine  92848\r
                                FR\r
 \r
-90-17-3F   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-90173F     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
+EC-68-81   (hex)               Palo Alto Networks\r
+EC6881     (base 16)           Palo Alto Networks\r
+                               3000 Tannery Way\r
+                               Santa Clara  CA  95054\r
+                               US\r
 \r
 54-0E-2D   (hex)               vivo Mobile Communication Co., Ltd.\r
 540E2D     (base 16)           vivo Mobile Communication Co., Ltd.\r
@@ -170381,48 +171134,42 @@ A86ABB     (base 16)                Sagemcom Broadband SAS
                                Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
                                CN\r
 \r
+24-E1-24   (hex)                Xiamen Ursalink Technology Co., Ltd.\r
+24E124     (base 16)            Xiamen Ursalink Technology Co., Ltd.\r
+                               4/F, No. 63-2 Wanghai Road, 2nd Software Park\r
+                               Xiamen  Fujian  361008\r
+                               CN\r
+\r
 A0-FF-70   (hex)               Technicolor CH USA Inc.\r
 A0FF70     (base 16)           Technicolor CH USA Inc.\r
                                5030 Sugarloaf Parkway Bldg 6 \r
                                Lawrenceville  GA  30044\r
                                US\r
 \r
+6C-6D-09   (hex)               Kyowa Electronics Co.,Ltd.\r
+6C6D09     (base 16)           Kyowa Electronics Co.,Ltd.\r
+                               4-3-31 Takatsukasa\r
+                               Takarazuka  Hyogo  665-0051\r
+                               JP\r
+\r
+90-17-3F   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+90173F     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
 60-7E-CD   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 607ECD     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
                                Dongguan    523808\r
                                CN\r
 \r
-54-8A-BA   (hex)               Cisco Systems, Inc\r
-548ABA     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
-\r
-C8-07-39   (hex)               NAKAYO Inc\r
-C80739     (base 16)           NAKAYO Inc\r
-                               1-3-2, Soja-machi\r
-                               Maebashi-shi  Gunma  371-0853\r
-                               JP\r
-\r
 8C-7C-FF   (hex)               Brocade Communications Systems LLC\r
 8C7CFF     (base 16)           Brocade Communications Systems LLC\r
                                1320 Ridder Park Dr\r
                                San Jose  CA  95131\r
                                US\r
 \r
-AC-3C-8E   (hex)               Flextronics Computing(Suzhou)Co.,Ltd.\r
-AC3C8E     (base 16)           Flextronics Computing(Suzhou)Co.,Ltd.\r
-                               No.1 GuanPu Road. Guoxiang street , WuZhong District,Suzhou City, Jiangsu Province. \r
-                               Suzhou        215124   \r
-                               CN\r
-\r
-40-62-34   (hex)               Telink Semiconductor (Shanghai) Co., Ltd.\r
-406234     (base 16)           Telink Semiconductor (Shanghai) Co., Ltd.\r
-                               No. 1500 Zuchongzhi Rd, Building #3\r
-                               Shanghai    201203\r
-                               CN\r
-\r
 88-94-71   (hex)               Brocade Communications Systems LLC\r
 889471     (base 16)           Brocade Communications Systems LLC\r
                                1320 Ridder Park Dr\r
@@ -170435,53 +171182,35 @@ AC3C8E     (base 16)                Flextronics Computing(Suzhou)Co.,Ltd.
                                San Jose  CA  95131\r
                                US\r
 \r
-00-94-EC   (hex)               Huawei Device Co., Ltd.\r
-0094EC     (base 16)           Huawei Device Co., Ltd.\r
+80-CF-A2   (hex)               Huawei Device Co., Ltd.\r
+80CFA2     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-74-45-2D   (hex)               Huawei Device Co., Ltd.\r
-74452D     (base 16)           Huawei Device Co., Ltd.\r
+00-94-EC   (hex)               Huawei Device Co., Ltd.\r
+0094EC     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-A4-50-06   (hex)               SHENZHEN HUACHUANG SHIDAI TECHNOLOGYCO.,LTD\r
-A45006     (base 16)           SHENZHEN HUACHUANG SHIDAI TECHNOLOGYCO.,LTD\r
-                               longhua dalang huaronglu lianjiangongyeyuan 4-5\r
-                               shenzhen  guangdong  518000\r
-                               CN\r
-\r
-C8-71-25   (hex)               Johnson Outdoors Marine Electronics d/b/a Minnkota\r
-C87125     (base 16)           Johnson Outdoors Marine Electronics d/b/a Minnkota\r
-                               1531 E Madison Ave\r
-                               Mankato  MN  56001\r
+54-8A-BA   (hex)               Cisco Systems, Inc\r
+548ABA     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
                                US\r
 \r
-68-6D-BC   (hex)               Hangzhou Hikvision Digital Technology Co.,Ltd.\r
-686DBC     (base 16)           Hangzhou Hikvision Digital Technology Co.,Ltd.\r
-                               No.555 Qianmo Road\r
-                               Hangzhou  Zhejiang  310052\r
-                               CN\r
-\r
-80-CF-A2   (hex)               Huawei Device Co., Ltd.\r
-80CFA2     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
 08-03-42   (hex)               Palo Alto Networks\r
 080342     (base 16)           Palo Alto Networks\r
                                3000 Tannery Way\r
                                Santa Clara  CA  95054\r
                                US\r
 \r
-FC-3D-A5   (hex)               Arcadyan Corporation\r
-FC3DA5     (base 16)           Arcadyan Corporation\r
-                               No.8, Sec.2, Guangfu Rd.\r
-                               Hsinchu City  Hsinchu  30071\r
-                               TW\r
+C8-07-39   (hex)               NAKAYO Inc\r
+C80739     (base 16)           NAKAYO Inc\r
+                               1-3-2, Soja-machi\r
+                               Maebashi-shi  Gunma  371-0853\r
+                               JP\r
 \r
 EC-4F-82   (hex)               Calix Inc.\r
 EC4F82     (base 16)           Calix Inc.\r
@@ -170513,16 +171242,70 @@ C0B101     (base 16)                zte corporation
                                shenzhen  guangdong  518057\r
                                CN\r
 \r
+A4-50-06   (hex)               SHENZHEN HUACHUANG SHIDAI TECHNOLOGYCO.,LTD\r
+A45006     (base 16)           SHENZHEN HUACHUANG SHIDAI TECHNOLOGYCO.,LTD\r
+                               longhua dalang huaronglu lianjiangongyeyuan 4-5\r
+                               shenzhen  guangdong  518000\r
+                               CN\r
+\r
+C8-71-25   (hex)               Johnson Outdoors Marine Electronics d/b/a Minnkota\r
+C87125     (base 16)           Johnson Outdoors Marine Electronics d/b/a Minnkota\r
+                               1531 E Madison Ave\r
+                               Mankato  MN  56001\r
+                               US\r
+\r
+68-6D-BC   (hex)               Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+686DBC     (base 16)           Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+                               No.555 Qianmo Road\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
+\r
+AC-3C-8E   (hex)               Flextronics Computing(Suzhou)Co.,Ltd.\r
+AC3C8E     (base 16)           Flextronics Computing(Suzhou)Co.,Ltd.\r
+                               No.1 GuanPu Road. Guoxiang street , WuZhong District,Suzhou City, Jiangsu Province. \r
+                               Suzhou        215124   \r
+                               CN\r
+\r
+74-45-2D   (hex)               Huawei Device Co., Ltd.\r
+74452D     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+40-62-34   (hex)               Telink Semiconductor (Shanghai) Co., Ltd.\r
+406234     (base 16)           Telink Semiconductor (Shanghai) Co., Ltd.\r
+                               No. 1500 Zuchongzhi Rd, Building #3\r
+                               Shanghai    201203\r
+                               CN\r
+\r
+FC-3D-A5   (hex)               Arcadyan Corporation\r
+FC3DA5     (base 16)           Arcadyan Corporation\r
+                               No.8, Sec.2, Guangfu Rd.\r
+                               Hsinchu City  Hsinchu  30071\r
+                               TW\r
+\r
+BC-33-AC   (hex)               Silicon Laboratories\r
+BC33AC     (base 16)           Silicon Laboratories\r
+                               7000 W. William Cannon Dr.\r
+                               Austin  TX  78735\r
+                               US\r
+\r
+F0-55-01   (hex)               Huawei Device Co., Ltd.\r
+F05501     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 14-01-52   (hex)               Samsung Electronics Co.,Ltd\r
 140152     (base 16)           Samsung Electronics Co.,Ltd\r
                                #94-1, Imsoo-Dong\r
                                Gumi  Gyeongbuk  730-350\r
                                KR\r
 \r
-BC-33-AC   (hex)               Silicon Laboratories\r
-BC33AC     (base 16)           Silicon Laboratories\r
-                               7000 W. William Cannon Dr.\r
-                               Austin  TX  78735\r
+7C-F2-DD   (hex)               Vence Corp\r
+7CF2DD     (base 16)           Vence Corp\r
+                               16885 W Bernardo Dr., STE 209\r
+                               San Diego  CA  92127\r
                                US\r
 \r
 94-FB-A7   (hex)               IEEE Registration Authority\r
@@ -170537,18 +171320,24 @@ BC33AC     (base 16)                Silicon Laboratories
                                Seoul    12110\r
                                KR\r
 \r
-98-F6-21   (hex)               Xiaomi Communications Co Ltd\r
-98F621     (base 16)           Xiaomi Communications Co Ltd\r
-                               The Rainbow City of China Resources\r
-                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
-                               CN\r
-\r
 C0-3E-BA   (hex)               Dell Inc.\r
 C03EBA     (base 16)           Dell Inc.\r
                                One Dell Way\r
                                Round Rock  TX  78682\r
                                US\r
 \r
+1C-FF-59   (hex)               Sichuan Tianyi Comheart Telecom Co., Ltd.\r
+1CFF59     (base 16)           Sichuan Tianyi Comheart Telecom Co., Ltd.\r
+                               No.198,First Section,Snow Mountain Avenue, Jinyuan Town, Dayi County\r
+                               Chengdu  Sichuan  611330\r
+                               CN\r
+\r
+98-F6-21   (hex)               Xiaomi Communications Co Ltd\r
+98F621     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
 C0-39-5A   (hex)               Zhejiang Dahua Technology Co., Ltd.\r
 C0395A     (base 16)           Zhejiang Dahua Technology Co., Ltd.\r
                                No.1199,Waterfront Road \r
@@ -170561,42 +171350,18 @@ C0395A     (base 16)                Zhejiang Dahua Technology Co., Ltd.
                                DONG GUAN  GUANG DONG  523860\r
                                CN\r
 \r
-F0-55-01   (hex)               Huawei Device Co., Ltd.\r
-F05501     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
+14-13-FB   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+1413FB     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
                                CN\r
 \r
-7C-F2-DD   (hex)               Vence Corp\r
-7CF2DD     (base 16)           Vence Corp\r
-                               16885 W Bernardo Dr., STE 209\r
-                               San Diego  CA  92127\r
-                               US\r
-\r
 D0-76-8F   (hex)               Calix Inc.\r
 D0768F     (base 16)           Calix Inc.\r
                                2777 Orchard Pkwy\r
                                San Jose  CA  95131\r
                                US\r
 \r
-1C-FF-59   (hex)               Sichuan Tianyi Comheart Telecom Co., Ltd.\r
-1CFF59     (base 16)           Sichuan Tianyi Comheart Telecom Co., Ltd.\r
-                               No.198,First Section,Snow Mountain Avenue, Jinyuan Town, Dayi County\r
-                               Chengdu  Sichuan  611330\r
-                               CN\r
-\r
-14-13-FB   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-1413FB     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
-00-E0-B7   (hex)               Cosworth Electronics Ltd\r
-00E0B7     (base 16)           Cosworth Electronics Ltd\r
-                               The Octagon, St. James Mill Road\r
-                               Northampton  Northamptonshire  NN5 5RA, GB\r
-                               GB\r
-\r
 A4-93-40   (hex)               Beijing Supvan Information Technology Co.,Ltd.\r
 A49340     (base 16)           Beijing Supvan Information Technology Co.,Ltd.\r
                                206.2/F,Building No.1.No.1 Gaoxin Three Street. Huilongguan Town,Changping District\r
@@ -170627,17 +171392,17 @@ B49E80     (base 16)                Sichuan Changhong Electric Ltd.
                                MianYang  SiChuan  PRC 621000\r
                                CN\r
 \r
-00-E2-2C   (hex)               China Mobile Group Device Co.,Ltd.\r
-00E22C     (base 16)           China Mobile Group Device Co.,Ltd.\r
-                               32 Xuanwumen West Street,Xicheng District\r
-                               Beijing    100053\r
-                               CN\r
+00-E0-B7   (hex)               Cosworth Electronics Ltd\r
+00E0B7     (base 16)           Cosworth Electronics Ltd\r
+                               The Octagon, St. James Mill Road\r
+                               Northampton  Northamptonshire  NN5 5RA, GB\r
+                               GB\r
 \r
-78-11-00   (hex)               Quantumsolution\r
-781100     (base 16)           Quantumsolution\r
-                               Rm 903, STX V-Tower, 128, Gasandigital 1-ro, Geumcheon-gu\r
-                               Seoul    08507\r
-                               KR\r
+74-AB-93   (hex)               Blink by Amazon \r
+74AB93     (base 16)           Blink by Amazon \r
+                               100 Riverpark Drive\r
+                               North Reading   MA  01864\r
+                               US\r
 \r
 E8-7F-95   (hex)               Apple, Inc.\r
 E87F95     (base 16)           Apple, Inc.\r
@@ -170651,47 +171416,11 @@ E87F95     (base 16)                Apple, Inc.
                                Cupertino  CA  95014\r
                                US\r
 \r
-74-AB-93   (hex)               Blink by Amazon \r
-74AB93     (base 16)           Blink by Amazon \r
-                               100 Riverpark Drive\r
-                               North Reading   MA  01864\r
-                               US\r
-\r
-7C-A9-6B   (hex)               Syrotech Networks. Ltd.\r
-7CA96B     (base 16)           Syrotech Networks. Ltd.\r
-                               UNIT NO.-5 20F, KIN WING INDUSTERIAL BUILDING,33 KIN WING STREET\r
-                               TUEN MUN    999077\r
-                               HK\r
-\r
-98-06-3C   (hex)               Samsung Electronics Co.,Ltd\r
-98063C     (base 16)           Samsung Electronics Co.,Ltd\r
-                               129, Samsung-ro, Youngtongl-Gu\r
-                               Suwon  Gyeonggi-Do  16677\r
-                               KR\r
-\r
-38-DE-AD   (hex)               Intel Corporate\r
-38DEAD     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-D4-6D-6D   (hex)               Intel Corporate\r
-D46D6D     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-B4-69-21   (hex)               Intel Corporate\r
-B46921     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-F8-F2-1E   (hex)               Intel Corporate\r
-F8F21E     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
+00-E2-2C   (hex)               China Mobile Group Device Co.,Ltd.\r
+00E22C     (base 16)           China Mobile Group Device Co.,Ltd.\r
+                               32 Xuanwumen West Street,Xicheng District\r
+                               Beijing    100053\r
+                               CN\r
 \r
 74-A7-EA   (hex)               Amazon Technologies Inc.\r
 74A7EA     (base 16)           Amazon Technologies Inc.\r
@@ -170699,24 +171428,18 @@ F8F21E     (base 16)                Intel Corporate
                                Reno  NV  89507\r
                                US\r
 \r
+78-11-00   (hex)               Quantumsolution\r
+781100     (base 16)           Quantumsolution\r
+                               Rm 903, STX V-Tower, 128, Gasandigital 1-ro, Geumcheon-gu\r
+                               Seoul    08507\r
+                               KR\r
+\r
 4C-7C-D9   (hex)               Apple, Inc.\r
 4C7CD9     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-F0-D7-AF   (hex)               IEEE Registration Authority\r
-F0D7AF     (base 16)           IEEE Registration Authority\r
-                               445 Hoes Lane\r
-                               Piscataway  NJ  08554\r
-                               US\r
-\r
-84-EA-ED   (hex)               Roku, Inc\r
-84EAED     (base 16)           Roku, Inc\r
-                               150 Winchester Circle\r
-                               Los Gatos  CA  95032\r
-                               US\r
-\r
 7C-B2-7D   (hex)               Intel Corporate\r
 7CB27D     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3 \r
@@ -170753,6 +171476,60 @@ F8E4E3     (base 16)         Intel Corporate
                                Kulim  Kedah  09000\r
                                MY\r
 \r
+38-DE-AD   (hex)               Intel Corporate\r
+38DEAD     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+D4-6D-6D   (hex)               Intel Corporate\r
+D46D6D     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+B4-69-21   (hex)               Intel Corporate\r
+B46921     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+98-06-3C   (hex)               Samsung Electronics Co.,Ltd\r
+98063C     (base 16)           Samsung Electronics Co.,Ltd\r
+                               129, Samsung-ro, Youngtongl-Gu\r
+                               Suwon  Gyeonggi-Do  16677\r
+                               KR\r
+\r
+7C-A9-6B   (hex)               Syrotech Networks. Ltd.\r
+7CA96B     (base 16)           Syrotech Networks. Ltd.\r
+                               UNIT NO.-5 20F, KIN WING INDUSTERIAL BUILDING,33 KIN WING STREET\r
+                               TUEN MUN    999077\r
+                               HK\r
+\r
+F8-F2-1E   (hex)               Intel Corporate\r
+F8F21E     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+A4-C3-F0   (hex)               Intel Corporate\r
+A4C3F0     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+50-76-AF   (hex)               Intel Corporate\r
+5076AF     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+F0-D7-AF   (hex)               IEEE Registration Authority\r
+F0D7AF     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
+\r
 D8-4F-37   (hex)               Proxis, spol. s r.o.\r
 D84F37     (base 16)           Proxis, spol. s r.o.\r
                                Slovenska 1\r
@@ -170795,48 +171572,6 @@ C858C0     (base 16)         Intel Corporate
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-A4-C3-F0   (hex)               Intel Corporate\r
-A4C3F0     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-50-76-AF   (hex)               Intel Corporate\r
-5076AF     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-DC-91-BF   (hex)               Amazon Technologies Inc.\r
-DC91BF     (base 16)           Amazon Technologies Inc.\r
-                               P.O Box 8102\r
-                               Reno  NV  89507\r
-                               US\r
-\r
-E0-92-A7   (hex)               Feitian Technologies Co., Ltd\r
-E092A7     (base 16)           Feitian Technologies Co., Ltd\r
-                               Floor 17, Tower B, Huizhi Mansion, No.9 Xueqing Rd, Haidian District\r
-                               Beijing    100085\r
-                               CN\r
-\r
-08-B0-A7   (hex)               Truebeyond Co., Ltd\r
-08B0A7     (base 16)           Truebeyond Co., Ltd\r
-                               D-906, 60, Haan-ro\r
-                               Gwangmyeong  Gyeonggi  14322\r
-                               KR\r
-\r
-C0-63-69   (hex)               BINXIN TECHNOLOGY(ZHEJIANG) LTD.\r
-C06369     (base 16)           BINXIN TECHNOLOGY(ZHEJIANG) LTD.\r
-                               B4066 Haichuang Park,368 Liuhe Road, Binjiang District\r
-                               Hangzhou  Zhejiang  310051\r
-                               CN\r
-\r
-18-41-FE   (hex)               Digital 14\r
-1841FE     (base 16)           Digital 14\r
-                               Elektroniikkatie 8\r
-                               Oulu    90590\r
-                               FI\r
-\r
 6C-CE-44   (hex)               1MORE\r
 6CCE44     (base 16)           1MORE\r
                                TianliaoBuilding F14?New Materials Industrial Park,Xueyuan Blvd,Nanshan\r
@@ -170855,18 +171590,30 @@ A41162     (base 16)                Arlo Technology
                                San Jose  CA  95134\r
                                US\r
 \r
-00-1D-05   (hex)               Cooper Lighting Solutions\r
-001D05     (base 16)           Cooper Lighting Solutions\r
-                               1121 Highway 74 S\r
-                               Peachtree City  GA  30269\r
+08-B0-A7   (hex)               Truebeyond Co., Ltd\r
+08B0A7     (base 16)           Truebeyond Co., Ltd\r
+                               D-906, 60, Haan-ro\r
+                               Gwangmyeong  Gyeonggi  14322\r
+                               KR\r
+\r
+DC-91-BF   (hex)               Amazon Technologies Inc.\r
+DC91BF     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102\r
+                               Reno  NV  89507\r
                                US\r
 \r
-8C-0E-60   (hex)               Nanjing Juplink Intelligent Technologies Co., Ltd.\r
-8C0E60     (base 16)           Nanjing Juplink Intelligent Technologies Co., Ltd.\r
-                                No. 757 Dixiu Road, Binjiang Economic Development Zone, Jiangning District\r
-                               Nanjing  Jiangsu  211100\r
+C0-63-69   (hex)               BINXIN TECHNOLOGY(ZHEJIANG) LTD.\r
+C06369     (base 16)           BINXIN TECHNOLOGY(ZHEJIANG) LTD.\r
+                               B4066 Haichuang Park,368 Liuhe Road, Binjiang District\r
+                               Hangzhou  Zhejiang  310051\r
                                CN\r
 \r
+18-41-FE   (hex)               Digital 14\r
+1841FE     (base 16)           Digital 14\r
+                               Elektroniikkatie 8\r
+                               Oulu    90590\r
+                               FI\r
+\r
 18-AB-1D   (hex)               Samsung Electronics Co.,Ltd\r
 18AB1D     (base 16)           Samsung Electronics Co.,Ltd\r
                                #94-1, Imsoo-Dong\r
@@ -170891,6 +171638,24 @@ BCE92F     (base 16)         HP Inc.
                                Gumi  Gyeongbuk  730-350\r
                                KR\r
 \r
+E0-92-A7   (hex)               Feitian Technologies Co., Ltd\r
+E092A7     (base 16)           Feitian Technologies Co., Ltd\r
+                               Floor 17, Tower B, Huizhi Mansion, No.9 Xueqing Rd, Haidian District\r
+                               Beijing    100085\r
+                               CN\r
+\r
+00-1D-05   (hex)               Cooper Lighting Solutions\r
+001D05     (base 16)           Cooper Lighting Solutions\r
+                               1121 Highway 74 S\r
+                               Peachtree City  GA  30269\r
+                               US\r
+\r
+3C-84-6A   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
+3C846A     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
+                               Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
+                               Shenzhen  Guangdong  518057\r
+                               CN\r
+\r
 84-D8-1B   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
 84D81B     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
                                Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
@@ -170903,6 +171668,24 @@ BCE92F     (base 16)         HP Inc.
                                NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
                                CN\r
 \r
+8C-0E-60   (hex)               Nanjing Juplink Intelligent Technologies Co., Ltd.\r
+8C0E60     (base 16)           Nanjing Juplink Intelligent Technologies Co., Ltd.\r
+                                No. 757 Dixiu Road, Binjiang Economic Development Zone, Jiangning District\r
+                               Nanjing  Jiangsu  211100\r
+                               CN\r
+\r
+24-A1-60   (hex)               Espressif Inc.\r
+24A160     (base 16)           Espressif Inc.\r
+                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+                               Shanghai  Shanghai  201203\r
+                               CN\r
+\r
+DC-AE-EB   (hex)               Ruckus Wireless\r
+DCAEEB     (base 16)           Ruckus Wireless\r
+                               350 West Java Drive\r
+                               Sunnyvale  CA  94089\r
+                               US\r
+\r
 E8-A2-45   (hex)               Juniper Networks\r
 E8A245     (base 16)           Juniper Networks\r
                                1133 Innovation Way\r
@@ -170933,12 +171716,6 @@ C0D193     (base 16)         Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-3C-84-6A   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
-3C846A     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
-                               Building 24(floors 1,3,4,5)and 28(floors 1-4)Central Science and Technology Park,Shennan Road,Nanshan\r
-                               Shenzhen  Guangdong  518057\r
-                               CN\r
-\r
 78-04-E3   (hex)               Huawei Device Co., Ltd.\r
 7804E3     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -170951,30 +171728,6 @@ A43B0E     (base 16)         Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-24-A1-60   (hex)               Espressif Inc.\r
-24A160     (base 16)           Espressif Inc.\r
-                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
-                               Shanghai  Shanghai  201203\r
-                               CN\r
-\r
-DC-AE-EB   (hex)               Ruckus Wireless\r
-DCAEEB     (base 16)           Ruckus Wireless\r
-                               350 West Java Drive\r
-                               Sunnyvale  CA  94089\r
-                               US\r
-\r
-24-81-C7   (hex)               Huawei Device Co., Ltd.\r
-2481C7     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-FC-86-2A   (hex)               Huawei Device Co., Ltd.\r
-FC862A     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
 1C-3D-2F   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 1C3D2F     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
@@ -170999,11 +171752,17 @@ ECDB86     (base 16)                API-K
                                Saint Vincent de Mercuze  Isère  38660\r
                                FR\r
 \r
-48-43-DD   (hex)               Amazon Technologies Inc.\r
-4843DD     (base 16)           Amazon Technologies Inc.\r
-                               P.O Box 8102\r
-                               Reno  NV  89507\r
-                               US\r
+24-81-C7   (hex)               Huawei Device Co., Ltd.\r
+2481C7     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+FC-86-2A   (hex)               Huawei Device Co., Ltd.\r
+FC862A     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
 \r
 08-38-69   (hex)               Hong Kong AMobile Intelligent Corp. Limited Taiwan Branch\r
 083869     (base 16)           Hong Kong AMobile Intelligent Corp. Limited Taiwan Branch\r
@@ -171017,18 +171776,48 @@ D89ED4     (base 16)                Fiberhome Telecommunication Technologies Co.,LTD
                                Wuhan  Hubei  430074\r
                                CN\r
 \r
+AC-95-72   (hex)               Jovision Technology Co., Ltd.\r
+AC9572     (base 16)           Jovision Technology Co., Ltd.\r
+                               Floor 12, Building 3, Aosheng Square, No.1166 Xinluo Street\r
+                               Jinan  Shandong  250101\r
+                               CN\r
+\r
+00-CB-BD   (hex)               Cambridge Broadband Networks Group\r
+00CBBD     (base 16)           Cambridge Broadband Networks Group\r
+                               1 Hammersmith Broadway\r
+                               London    W6 9DL\r
+                               GB\r
+\r
+48-43-DD   (hex)               Amazon Technologies Inc.\r
+4843DD     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102\r
+                               Reno  NV  89507\r
+                               US\r
+\r
+58-94-A2   (hex)               KETEK GmbH\r
+5894A2     (base 16)           KETEK GmbH\r
+                               Hofer Str. 3\r
+                               München    81737\r
+                               DE\r
+\r
+00-19-F5   (hex)               Imagination Technologies Ltd\r
+0019F5     (base 16)           Imagination Technologies Ltd\r
+                               Home Park Estate\r
+                               Kings Langley  Hertfordshire  WD4 8LZ\r
+                               GB\r
+\r
+40-D2-5F   (hex)               ITEL MOBILE LIMITED\r
+40D25F     (base 16)           ITEL MOBILE LIMITED\r
+                               RM B3 & B4 BLOCK B, KO FAI INDUSTRIAL BUILDING  NO.7 KO FAI ROAD, YAU TONG, KLN, H.K\r
+                               Hong Kong  KOWLOON  999077\r
+                               HK\r
+\r
 84-03-28   (hex)               Juniper Networks\r
 840328     (base 16)           Juniper Networks\r
                                1133 Innovation Way\r
                                Sunnyvale  CA  94089\r
                                US\r
 \r
-08-9B-B9   (hex)               Nokia\r
-089BB9     (base 16)           Nokia\r
-                               Karaportti 3\r
-                               Espoo  Finland  02610\r
-                               FI\r
-\r
 00-1C-FC   (hex)               Sumitomo Electric Industries, Ltd\r
 001CFC     (base 16)           Sumitomo Electric Industries, Ltd\r
                                1-1-3, Shimaya, Konohana-ku\r
@@ -171059,46 +171848,28 @@ E079C4     (base 16)                iRay Technology Company Limited
                                Seongnam-si    13595\r
                                KR\r
 \r
-AC-95-72   (hex)               Jovision Technology Co., Ltd.\r
-AC9572     (base 16)           Jovision Technology Co., Ltd.\r
-                               Floor 12, Building 3, Aosheng Square, No.1166 Xinluo Street\r
-                               Jinan  Shandong  250101\r
-                               CN\r
-\r
-40-D2-5F   (hex)               ITEL MOBILE LIMITED\r
-40D25F     (base 16)           ITEL MOBILE LIMITED\r
-                               RM B3 & B4 BLOCK B, KO FAI INDUSTRIAL BUILDING  NO.7 KO FAI ROAD, YAU TONG, KLN, H.K\r
-                               Hong Kong  KOWLOON  999077\r
-                               HK\r
-\r
 A8-03-2A   (hex)               Espressif Inc.\r
 A8032A     (base 16)           Espressif Inc.\r
                                Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
                                Shanghai  Shanghai  201203\r
                                CN\r
 \r
-00-19-F5   (hex)               Imagination Technologies Ltd\r
-0019F5     (base 16)           Imagination Technologies Ltd\r
-                               Home Park Estate\r
-                               Kings Langley  Hertfordshire  WD4 8LZ\r
-                               GB\r
-\r
-00-CB-BD   (hex)               Cambridge Broadband Networks Group\r
-00CBBD     (base 16)           Cambridge Broadband Networks Group\r
-                               1 Hammersmith Broadway\r
-                               London    W6 9DL\r
-                               GB\r
+D8-EF-42   (hex)               Huawei Device Co., Ltd.\r
+D8EF42     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
 \r
-58-94-A2   (hex)               KETEK GmbH\r
-5894A2     (base 16)           KETEK GmbH\r
-                               Hofer Str. 3\r
-                               München    81737\r
-                               DE\r
+80-CC-12   (hex)               Huawei Device Co., Ltd.\r
+80CC12     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
 \r
-4C-22-19   (hex)               YUANFUDAO HK LIMTED\r
-4C2219     (base 16)           YUANFUDAO HK LIMTED\r
-                               Building C, global creative center, No. 10, Furong street\r
-                               Beijing    100102\r
+18-AA-0F   (hex)               Huawei Device Co., Ltd.\r
+18AA0F     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
                                CN\r
 \r
 54-D9-C6   (hex)               Huawei Device Co., Ltd.\r
@@ -171119,76 +171890,16 @@ A8032A     (base 16)                Espressif Inc.
                                Suwon  Gyeonggi-Do  16677\r
                                KR\r
 \r
-D8-EF-42   (hex)               Huawei Device Co., Ltd.\r
-D8EF42     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-80-CC-12   (hex)               Huawei Device Co., Ltd.\r
-80CC12     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-18-AA-0F   (hex)               Huawei Device Co., Ltd.\r
-18AA0F     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-B0-A4-60   (hex)               Intel Corporate\r
-B0A460     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
 AC-9A-96   (hex)               Maxlinear, Inc\r
 AC9A96     (base 16)           Maxlinear, Inc\r
                                Am Campeon 3\r
                                Neubiberg  Bavaria  85579\r
                                DE\r
 \r
-8C-70-86   (hex)               Gesellschaft für Sonder-EDV-Anlagen mbH\r
-8C7086     (base 16)           Gesellschaft für Sonder-EDV-Anlagen mbH\r
-                               Lorsbacher Straße 31\r
-                               Hofheim    65719\r
-                               DE\r
-\r
-1C-28-AF   (hex)               Aruba, a Hewlett Packard Enterprise Company\r
-1C28AF     (base 16)           Aruba, a Hewlett Packard Enterprise Company\r
-                               3333 Scott Blvd\r
-                               Santa Clara  CA  95054\r
-                               US\r
-\r
-E4-24-6C   (hex)               Zhejiang Dahua Technology Co., Ltd.\r
-E4246C     (base 16)           Zhejiang Dahua Technology Co., Ltd.\r
-                               No.1199,Waterfront Road \r
-                               Hangzhou  Zhejiang  310053\r
-                               CN\r
-\r
-E8-EB-1B   (hex)               Microchip Technology Inc.\r
-E8EB1B     (base 16)           Microchip Technology Inc.\r
-                               2355 W. Chandler Blvd.\r
-                               Chandler  AZ  85224\r
-                               US\r
-\r
-84-02-83   (hex)               HUMAX Co., Ltd.\r
-840283     (base 16)           HUMAX Co., Ltd.\r
-                               HUMAX Village, 216, Hwangsaeul-ro, Bu\r
-                               Seongnam-si  Gyeonggi-do  463-875\r
-                               KR\r
-\r
-94-17-00   (hex)               Xiaomi Communications Co Ltd\r
-941700     (base 16)           Xiaomi Communications Co Ltd\r
-                               The Rainbow City of China Resources\r
-                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
-                               CN\r
-\r
-68-D6-ED   (hex)               GooWi Wireless Technology Co., Limited\r
-68D6ED     (base 16)           GooWi Wireless Technology Co., Limited\r
-                               RM402 Building212, Tairan Technology Park, Futian District\r
-                               Shenzhen  Guangdong  518000\r
+4C-22-19   (hex)               YUANFUDAO HK LIMTED\r
+4C2219     (base 16)           YUANFUDAO HK LIMTED\r
+                               Building C, global creative center, No. 10, Furong street\r
+                               Beijing    100102\r
                                CN\r
 \r
 00-E4-06   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
@@ -171215,10 +171926,28 @@ CCB182     (base 16)                HUAWEI TECHNOLOGIES CO.,LTD
                                Seoul    153-801\r
                                KR\r
 \r
-28-B7-7C   (hex)               IEEE Registration Authority\r
-28B77C     (base 16)           IEEE Registration Authority\r
-                               445 Hoes Lane\r
-                               Piscataway  NJ  08554\r
+B0-A4-60   (hex)               Intel Corporate\r
+B0A460     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3 \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+1C-28-AF   (hex)               Aruba, a Hewlett Packard Enterprise Company\r
+1C28AF     (base 16)           Aruba, a Hewlett Packard Enterprise Company\r
+                               3333 Scott Blvd\r
+                               Santa Clara  CA  95054\r
+                               US\r
+\r
+E4-24-6C   (hex)               Zhejiang Dahua Technology Co., Ltd.\r
+E4246C     (base 16)           Zhejiang Dahua Technology Co., Ltd.\r
+                               No.1199,Waterfront Road \r
+                               Hangzhou  Zhejiang  310053\r
+                               CN\r
+\r
+E8-EB-1B   (hex)               Microchip Technology Inc.\r
+E8EB1B     (base 16)           Microchip Technology Inc.\r
+                               2355 W. Chandler Blvd.\r
+                               Chandler  AZ  85224\r
                                US\r
 \r
 28-C2-1F   (hex)               SAMSUNG ELECTRO-MECHANICS(THAILAND)\r
@@ -171227,17 +171956,29 @@ CCB182     (base 16)                HUAWEI TECHNOLOGIES CO.,LTD
                                Bangpakong  Chachoengsao  24180\r
                                TH\r
 \r
-5C-7D-7D   (hex)               Technicolor CH USA Inc.\r
-5C7D7D     (base 16)           Technicolor CH USA Inc.\r
-                               5030 Sugarloaf Parkway Bldg 6 \r
-                               Lawrenceville  GA  30044\r
-                               US\r
+68-D6-ED   (hex)               GooWi Wireless Technology Co., Limited\r
+68D6ED     (base 16)           GooWi Wireless Technology Co., Limited\r
+                               RM402 Building212, Tairan Technology Park, Futian District\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
 \r
-B0-7D-64   (hex)               Intel Corporate\r
-B07D64     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
+94-17-00   (hex)               Xiaomi Communications Co Ltd\r
+941700     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
+84-02-83   (hex)               HUMAX Co., Ltd.\r
+840283     (base 16)           HUMAX Co., Ltd.\r
+                               HUMAX Village, 216, Hwangsaeul-ro, Bu\r
+                               Seongnam-si  Gyeonggi-do  463-875\r
+                               KR\r
+\r
+8C-70-86   (hex)               Gesellschaft für Sonder-EDV-Anlagen mbH\r
+8C7086     (base 16)           Gesellschaft für Sonder-EDV-Anlagen mbH\r
+                               Lorsbacher Straße 31\r
+                               Hofheim    65719\r
+                               DE\r
 \r
 F4-BF-A8   (hex)               Juniper Networks\r
 F4BFA8     (base 16)           Juniper Networks\r
@@ -171245,12 +171986,18 @@ F4BFA8     (base 16)                Juniper Networks
                                Sunnyvale  CA  94089\r
                                US\r
 \r
-C0-61-9A   (hex)               IEEE Registration Authority\r
-C0619A     (base 16)           IEEE Registration Authority\r
+28-B7-7C   (hex)               IEEE Registration Authority\r
+28B77C     (base 16)           IEEE Registration Authority\r
                                445 Hoes Lane\r
                                Piscataway  NJ  08554\r
                                US\r
 \r
+40-06-34   (hex)               Huawei Device Co., Ltd.\r
+400634     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
 C4-2B-44   (hex)               Huawei Device Co., Ltd.\r
 C42B44     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -171263,23 +172010,41 @@ F8A26D     (base 16)                CANON INC.
                                Ohta-ku  Tokyo  146-8501\r
                                JP\r
 \r
+5C-7D-7D   (hex)               Technicolor CH USA Inc.\r
+5C7D7D     (base 16)           Technicolor CH USA Inc.\r
+                               5030 Sugarloaf Parkway Bldg 6 \r
+                               Lawrenceville  GA  30044\r
+                               US\r
+\r
+70-61-EE   (hex)               Sunwoda Electronic Co.,Ltd\r
+7061EE     (base 16)           Sunwoda Electronic Co.,Ltd\r
+                               No 2,Yihe Road, shiyan Street?shilong Community ,Baoan District\r
+                               Shenzhen    518105\r
+                               CN\r
+\r
+C0-61-9A   (hex)               IEEE Registration Authority\r
+C0619A     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
+\r
 74-42-7F   (hex)               AVM Audiovisuelles Marketing und Computersysteme GmbH\r
 74427F     (base 16)           AVM Audiovisuelles Marketing und Computersysteme GmbH\r
                                Alt-Moabit 95\r
                                Berlin  Berlin  10559\r
                                DE\r
 \r
-40-06-34   (hex)               Huawei Device Co., Ltd.\r
-400634     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
+74-F9-CA   (hex)               Nintendo Co.,Ltd\r
+74F9CA     (base 16)           Nintendo Co.,Ltd\r
+                               11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
+                               KYOTO  KYOTO  601-8501\r
+                               JP\r
 \r
-70-61-EE   (hex)               Sunwoda Electronic Co.,Ltd\r
-7061EE     (base 16)           Sunwoda Electronic Co.,Ltd\r
-                               No 2,Yihe Road, shiyan Street?shilong Community ,Baoan District\r
-                               Shenzhen    518105\r
-                               CN\r
+68-9E-0B   (hex)               Cisco Systems, Inc\r
+689E0B     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
 \r
 14-3F-C3   (hex)               SnapAV\r
 143FC3     (base 16)           SnapAV\r
@@ -171293,47 +172058,17 @@ F8A26D     (base 16)                CANON INC.
                                Rueil Malmaison Cedex  hauts de seine  92848\r
                                FR\r
 \r
-74-F9-CA   (hex)               Nintendo Co.,Ltd\r
-74F9CA     (base 16)           Nintendo Co.,Ltd\r
-                               11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
-                               KYOTO  KYOTO  601-8501\r
-                               JP\r
-\r
-50-C6-8E   (hex)               Biwin Semiconductor (HK) Company Limted\r
-50C68E     (base 16)           Biwin Semiconductor (HK) Company Limted\r
-                               5th/F., Block 4, Tongfuyu Industrial Park, Tanglang, Xili, Nanshan\r
-                               Shenzhen  Guangdong  518055\r
-                               CN\r
-\r
-04-E7-95   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-04E795     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
-\r
 A0-D0-DC   (hex)               Amazon Technologies Inc.\r
 A0D0DC     (base 16)           Amazon Technologies Inc.\r
                                P.O Box 8102\r
                                Reno  NV  89507\r
                                US\r
 \r
-68-9E-0B   (hex)               Cisco Systems, Inc\r
-689E0B     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
-\r
-00-42-38   (hex)               Intel Corporate\r
-004238     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3 \r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-C8-FE-6A   (hex)               Juniper Networks\r
-C8FE6A     (base 16)           Juniper Networks\r
-                               1133 Innovation Way\r
-                               Sunnyvale  CA  94089\r
-                               US\r
+50-C6-8E   (hex)               Biwin Semiconductor (HK) Company Limted\r
+50C68E     (base 16)           Biwin Semiconductor (HK) Company Limted\r
+                               5th/F., Block 4, Tongfuyu Industrial Park, Tanglang, Xili, Nanshan\r
+                               Shenzhen  Guangdong  518055\r
+                               CN\r
 \r
 80-CA-4B   (hex)               SHENZHEN GONGJIN ELECTRONICS CO.,LTD\r
 80CA4B     (base 16)           SHENZHEN GONGJIN ELECTRONICS CO.,LTD\r
@@ -171341,6 +172076,12 @@ C8FE6A     (base 16)         Juniper Networks
                                SHENZHEN  GUANGDONG  518122\r
                                CN\r
 \r
+04-E7-95   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+04E795     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
 64-F5-4E   (hex)               EM Microelectronic\r
 64F54E     (base 16)           EM Microelectronic\r
                                Rue des Sors 3\r
@@ -171353,24 +172094,6 @@ C8FE6A     (base 16)         Juniper Networks
                                Castel Maggiore  Bologna  40013\r
                                IT\r
 \r
-C4-DD-57   (hex)               Espressif Inc.\r
-C4DD57     (base 16)           Espressif Inc.\r
-                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
-                               Shanghai  Shanghai  201203\r
-                               CN\r
-\r
-70-2F-4B   (hex)               Steelcase Inc.\r
-702F4B     (base 16)           Steelcase Inc.\r
-                               901 44th Street SE\r
-                               Grand Rapids  MI  49508-7594\r
-                               US\r
-\r
-E4-75-DC   (hex)               Arcadyan Corporation\r
-E475DC     (base 16)           Arcadyan Corporation\r
-                               No.8, Sec.2, Guangfu Rd.\r
-                               Hsinchu City  Hsinchu  30071\r
-                               TW\r
-\r
 C4-16-88   (hex)               Huawei Device Co., Ltd.\r
 C41688     (base 16)           Huawei Device Co., Ltd.\r
                                No.2 of Xincheng Road, Songshan Lake Zone\r
@@ -171383,6 +172106,18 @@ C41688     (base 16)         Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
+30-A9-98   (hex)               Huawei Device Co., Ltd.\r
+30A998     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+C8-FE-6A   (hex)               Juniper Networks\r
+C8FE6A     (base 16)           Juniper Networks\r
+                               1133 Innovation Way\r
+                               Sunnyvale  CA  94089\r
+                               US\r
+\r
 BC-A5-A9   (hex)               Apple, Inc.\r
 BCA5A9     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
@@ -171401,18 +172136,54 @@ A0FBC5     (base 16)                Apple, Inc.
                                Cupertino  CA  95014\r
                                US\r
 \r
-30-A9-98   (hex)               Huawei Device Co., Ltd.\r
-30A998     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
+70-2F-4B   (hex)               Steelcase Inc.\r
+702F4B     (base 16)           Steelcase Inc.\r
+                               901 44th Street SE\r
+                               Grand Rapids  MI  49508-7594\r
+                               US\r
+\r
+E4-75-DC   (hex)               Arcadyan Corporation\r
+E475DC     (base 16)           Arcadyan Corporation\r
+                               No.8, Sec.2, Guangfu Rd.\r
+                               Hsinchu City  Hsinchu  30071\r
+                               TW\r
+\r
+C4-DD-57   (hex)               Espressif Inc.\r
+C4DD57     (base 16)           Espressif Inc.\r
+                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+                               Shanghai  Shanghai  201203\r
                                CN\r
 \r
+58-20-8A   (hex)               IEEE Registration Authority\r
+58208A     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
+\r
 00-7D-60   (hex)               Apple, Inc.\r
 007D60     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
+6C-1E-D7   (hex)               vivo Mobile Communication Co., Ltd.\r
+6C1ED7     (base 16)           vivo Mobile Communication Co., Ltd.\r
+                               #283,BBK Road\r
+                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+                               CN\r
+\r
+F0-AA-0B   (hex)               Arra Networks/ Spectramesh\r
+F0AA0B     (base 16)           Arra Networks/ Spectramesh\r
+                               9201 Ward Pkwy #101\r
+                               Kansas City  MO  64114\r
+                               US\r
+\r
+94-56-41   (hex)               Palo Alto Networks\r
+945641     (base 16)           Palo Alto Networks\r
+                               3000 Tannery Way\r
+                               Santa Clara  CA  95054\r
+                               US\r
+\r
 EC-C3-02   (hex)               HUMAX Co., Ltd.\r
 ECC302     (base 16)           HUMAX Co., Ltd.\r
                                HUMAX Village, 216, Hwangsaeul-ro, Bu\r
@@ -171425,16 +172196,22 @@ ECC302     (base 16)                HUMAX Co., Ltd.
                                shenzhen  Guangdong  518067\r
                                CN\r
 \r
+18-36-72   (hex)               Shaoxing ShunChuang Technology CO.,LTD\r
+183672     (base 16)           Shaoxing ShunChuang Technology CO.,LTD\r
+                               N.O.398 west tongjiang load shangyu\r
+                               Shaoxing  Zhejiang  312300\r
+                               CN\r
+\r
 00-C3-43   (hex)               E-T-A Circuit Breakers Ltd\r
 00C343     (base 16)           E-T-A Circuit Breakers Ltd\r
                                6 Telford Close\r
                                Aylesbury  Buckinghamshire  HP198DG\r
                                GB\r
 \r
-58-20-8A   (hex)               IEEE Registration Authority\r
-58208A     (base 16)           IEEE Registration Authority\r
-                               445 Hoes Lane\r
-                               Piscataway  NJ  08554\r
+B0-A6-51   (hex)               Cisco Systems, Inc\r
+B0A651     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
                                US\r
 \r
 00-90-D2   (hex)               Artel Video Systems\r
@@ -171443,28 +172220,16 @@ ECC302     (base 16)                HUMAX Co., Ltd.
                                Westford  MA  01886\r
                                US\r
 \r
-6C-1E-D7   (hex)               vivo Mobile Communication Co., Ltd.\r
-6C1ED7     (base 16)           vivo Mobile Communication Co., Ltd.\r
-                               #283,BBK Road\r
-                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+B4-BA-12   (hex)               China Mobile (Hangzhou) Information Technology Co.,Ltd.\r
+B4BA12     (base 16)           China Mobile (Hangzhou) Information Technology Co.,Ltd.\r
+                               No. 1600 Yuhangtang Road, Wuchang Street, Yuhang District\r
+                               Hangzhou  Zhejiang  311100\r
                                CN\r
 \r
-F0-AA-0B   (hex)               Arra Networks/ Spectramesh\r
-F0AA0B     (base 16)           Arra Networks/ Spectramesh\r
-                               9201 Ward Pkwy #101\r
-                               Kansas City  MO  64114\r
-                               US\r
-\r
-94-56-41   (hex)               Palo Alto Networks\r
-945641     (base 16)           Palo Alto Networks\r
-                               3000 Tannery Way\r
-                               Santa Clara  CA  95054\r
-                               US\r
-\r
-80-F5-B5   (hex)               Texas Instruments\r
-80F5B5     (base 16)           Texas Instruments\r
-                               12500 TI Blvd\r
-                               Dallas  TX  75243\r
+D4-91-0F   (hex)               Amazon Technologies Inc.\r
+D4910F     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102\r
+                               Reno  NV  89507\r
                                US\r
 \r
 1C-30-08   (hex)               Hui Zhou Gaoshengda Technology Co.,LTD\r
@@ -171479,12 +172244,6 @@ F0AA0B     (base 16)         Arra Networks/ Spectramesh
                                Singapore    556741\r
                                SG\r
 \r
-B4-BA-12   (hex)               China Mobile (Hangzhou) Information Technology Co.,Ltd.\r
-B4BA12     (base 16)           China Mobile (Hangzhou) Information Technology Co.,Ltd.\r
-                               No. 1600 Yuhangtang Road, Wuchang Street, Yuhang District\r
-                               Hangzhou  Zhejiang  311100\r
-                               CN\r
-\r
 5C-F9-FD   (hex)               Taicang T&W Electronics\r
 5CF9FD     (base 16)           Taicang T&W Electronics\r
                                89# Jiang Nan RD\r
@@ -171503,40 +172262,46 @@ B4BA12     (base 16)                China Mobile (Hangzhou) Information Technology Co.,Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-18-36-72   (hex)               Shaoxing ShunChuang Technology CO.,LTD\r
-183672     (base 16)           Shaoxing ShunChuang Technology CO.,LTD\r
-                               N.O.398 west tongjiang load shangyu\r
-                               Shaoxing  Zhejiang  312300\r
-                               CN\r
-\r
 28-DE-65   (hex)               Aruba, a Hewlett Packard Enterprise Company\r
 28DE65     (base 16)           Aruba, a Hewlett Packard Enterprise Company\r
                                3333 Scott Blvd\r
                                Santa Clara  CA  95054\r
                                US\r
 \r
-B0-A6-51   (hex)               Cisco Systems, Inc\r
-B0A651     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
+C4-FB-AA   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+C4FBAA     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+E0-E0-C2   (hex)               China Mobile Group Device Co.,Ltd.\r
+E0E0C2     (base 16)           China Mobile Group Device Co.,Ltd.\r
+                               32 Xuanwumen West Street,Xicheng District\r
+                               Beijing    100053\r
+                               CN\r
+\r
+80-F5-B5   (hex)               Texas Instruments\r
+80F5B5     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
                                US\r
 \r
-D4-91-0F   (hex)               Amazon Technologies Inc.\r
-D4910F     (base 16)           Amazon Technologies Inc.\r
-                               P.O Box 8102\r
-                               Reno  NV  89507\r
+F0-64-26   (hex)               Extreme Networks, Inc.\r
+F06426     (base 16)           Extreme Networks, Inc.\r
+                               6480 Via Del Oro\r
+                               San Jose  CA  95119\r
                                US\r
 \r
-B8-5F-B0   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-B85FB0     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
+70-3A-2D   (hex)               Shenzhen V-Link Technology CO., LTD.\r
+703A2D     (base 16)           Shenzhen V-Link Technology CO., LTD.\r
+                               Room 1803, BaiRuiDa Building, Bantian Sub-district, LongGang District\r
+                               Shenzhen  GuangDong  518000\r
                                CN\r
 \r
-C4-FB-AA   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-C4FBAA     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
+1C-45-C2   (hex)               Huizhou City Sunsin lntelligent Technology Co.,Ltd\r
+1C45C2     (base 16)           Huizhou City Sunsin lntelligent Technology Co.,Ltd\r
+                               Outside No.6 community, Zhongkai high tech Zone, Huizhou\r
+                               Huizhou    516000\r
                                CN\r
 \r
 AC-DC-CA   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
@@ -171545,6 +172310,12 @@ ACDCCA     (base 16)         HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
+B8-5F-B0   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+B85FB0     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
 64-A2-00   (hex)               Xiaomi Communications Co Ltd\r
 64A200     (base 16)           Xiaomi Communications Co Ltd\r
                                The Rainbow City of China Resources\r
@@ -171563,29 +172334,11 @@ C07831     (base 16)                Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-E0-E0-C2   (hex)               China Mobile Group Device Co.,Ltd.\r
-E0E0C2     (base 16)           China Mobile Group Device Co.,Ltd.\r
-                               32 Xuanwumen West Street,Xicheng District\r
-                               Beijing    100053\r
-                               CN\r
-\r
-F0-64-26   (hex)               Extreme Networks, Inc.\r
-F06426     (base 16)           Extreme Networks, Inc.\r
-                               6480 Via Del Oro\r
-                               San Jose  CA  95119\r
-                               US\r
-\r
-70-3A-2D   (hex)               Shenzhen V-Link Technology CO., LTD.\r
-703A2D     (base 16)           Shenzhen V-Link Technology CO., LTD.\r
-                               Room 1803, BaiRuiDa Building, Bantian Sub-district, LongGang District\r
-                               Shenzhen  GuangDong  518000\r
-                               CN\r
-\r
-1C-45-C2   (hex)               Huizhou City Sunsin lntelligent Technology Co.,Ltd\r
-1C45C2     (base 16)           Huizhou City Sunsin lntelligent Technology Co.,Ltd\r
-                               Outside No.6 community, Zhongkai high tech Zone, Huizhou\r
-                               Huizhou    516000\r
-                               CN\r
+00-1A-65   (hex)               Seluxit\r
+001A65     (base 16)           Seluxit\r
+                               Sofiendalsvej 74\r
+                               Aalborg  SV  9200\r
+                               DK\r
 \r
 7C-4E-09   (hex)               Shenzhen Skyworth Wireless Technology Co.,Ltd\r
 7C4E09     (base 16)           Shenzhen Skyworth Wireless Technology Co.,Ltd\r
@@ -171605,18 +172358,18 @@ FC9643     (base 16)                Juniper Networks
                                Sunnyvale  CA  94089\r
                                US\r
 \r
+AC-67-84   (hex)               Google, Inc.\r
+AC6784     (base 16)           Google, Inc.\r
+                               1600 Amphitheatre Parkway\r
+                               Mountain View  CA  94043\r
+                               US\r
+\r
 A8-B0-88   (hex)               eero inc.\r
 A8B088     (base 16)           eero inc.\r
                                660 3rd Street\r
                                San Francisco  CA  94107\r
                                US\r
 \r
-00-1A-65   (hex)               Seluxit\r
-001A65     (base 16)           Seluxit\r
-                               Sofiendalsvej 74\r
-                               Aalborg  SV  9200\r
-                               DK\r
-\r
 28-0F-C5   (hex)               Beijing Leadsec Technology Co., Ltd.\r
 280FC5     (base 16)           Beijing Leadsec Technology Co., Ltd.\r
                                Venus Plaza No.21Zhongguancun Software Park,No.8 Dongbeiwang Xilu, Haidian District\r
@@ -171653,11 +172406,23 @@ B0ECDD     (base 16)                HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
-AC-67-84   (hex)               Google, Inc.\r
-AC6784     (base 16)           Google, Inc.\r
-                               1600 Amphitheatre Parkway\r
-                               Mountain View  CA  94043\r
-                               US\r
+9C-5F-B0   (hex)               Samsung Electronics Co.,Ltd\r
+9C5FB0     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+E8-7F-6B   (hex)               Samsung Electronics Co.,Ltd\r
+E87F6B     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+94-F2-BB   (hex)               Valeo Vision Systems\r
+94F2BB     (base 16)           Valeo Vision Systems\r
+                               Dunmore Road\r
+                               Tuam  Co. Galway  H54 Y276\r
+                               IE\r
 \r
 90-DE-80   (hex)               Shenzhen Century Xinyang Technology Co., Ltd\r
 90DE80     (base 16)           Shenzhen Century Xinyang Technology Co., Ltd\r
@@ -171677,35 +172442,41 @@ E4DC43     (base 16)                Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-9C-5F-B0   (hex)               Samsung Electronics Co.,Ltd\r
-9C5FB0     (base 16)           Samsung Electronics Co.,Ltd\r
-                               #94-1, Imsoo-Dong\r
-                               Gumi  Gyeongbuk  730-350\r
-                               KR\r
-\r
-E8-7F-6B   (hex)               Samsung Electronics Co.,Ltd\r
-E87F6B     (base 16)           Samsung Electronics Co.,Ltd\r
-                               #94-1, Imsoo-Dong\r
-                               Gumi  Gyeongbuk  730-350\r
-                               KR\r
-\r
 FC-B6-9D   (hex)               Zhejiang Dahua Technology Co., Ltd.\r
 FCB69D     (base 16)           Zhejiang Dahua Technology Co., Ltd.\r
                                No.1199,Waterfront Road \r
                                Hangzhou  Zhejiang  310053\r
                                CN\r
 \r
+78-6A-1F   (hex)               ARRIS Group, Inc.\r
+786A1F     (base 16)           ARRIS Group, Inc.\r
+                               6450 Sequence Drive\r
+                               San Diego  CA  92121\r
+                               US\r
+\r
+24-94-CB   (hex)               ARRIS Group, Inc.\r
+2494CB     (base 16)           ARRIS Group, Inc.\r
+                               6450 Sequence Drive\r
+                               San Diego  CA  92121\r
+                               US\r
+\r
 18-5B-B3   (hex)               Samsung Electronics Co.,Ltd\r
 185BB3     (base 16)           Samsung Electronics Co.,Ltd\r
                                #94-1, Imsoo-Dong\r
                                Gumi  Gyeongbuk  730-350\r
                                KR\r
 \r
-94-F2-BB   (hex)               Valeo Vision Systems\r
-94F2BB     (base 16)           Valeo Vision Systems\r
-                               Dunmore Road\r
-                               Tuam  Co. Galway  H54 Y276\r
-                               IE\r
+48-8B-0A   (hex)               Cisco Systems, Inc\r
+488B0A     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+8C-7A-15   (hex)               Ruckus Wireless\r
+8C7A15     (base 16)           Ruckus Wireless\r
+                               350 West Java Drive\r
+                               Sunnyvale  CA  94089\r
+                               US\r
 \r
 64-20-E0   (hex)               T3 Technology Co., Ltd.\r
 6420E0     (base 16)           T3 Technology Co., Ltd.\r
@@ -171731,42 +172502,30 @@ ECA1D1     (base 16)                HUAWEI TECHNOLOGIES CO.,LTD
                                Dongguan    523808\r
                                CN\r
 \r
+E4-F1-D4   (hex)               vivo Mobile Communication Co., Ltd.\r
+E4F1D4     (base 16)           vivo Mobile Communication Co., Ltd.\r
+                               #283,BBK Road\r
+                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+                               CN\r
+\r
 A4-6D-A4   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 A46DA4     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
                                Dongguan    523808\r
                                CN\r
 \r
-48-8B-0A   (hex)               Cisco Systems, Inc\r
-488B0A     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
-                               US\r
-\r
-24-94-CB   (hex)               ARRIS Group, Inc.\r
-2494CB     (base 16)           ARRIS Group, Inc.\r
-                               6450 Sequence Drive\r
-                               San Diego  CA  92121\r
-                               US\r
-\r
-78-6A-1F   (hex)               ARRIS Group, Inc.\r
-786A1F     (base 16)           ARRIS Group, Inc.\r
-                               6450 Sequence Drive\r
-                               San Diego  CA  92121\r
-                               US\r
-\r
-8C-7A-15   (hex)               Ruckus Wireless\r
-8C7A15     (base 16)           Ruckus Wireless\r
-                               350 West Java Drive\r
-                               Sunnyvale  CA  94089\r
-                               US\r
-\r
 84-11-C2   (hex)               IEEE Registration Authority\r
 8411C2     (base 16)           IEEE Registration Authority\r
                                445 Hoes Lane\r
                                Piscataway  NJ  08554\r
                                US\r
 \r
+20-AC-9C   (hex)               China Telecom Corporation Limited\r
+20AC9C     (base 16)           China Telecom Corporation Limited\r
+                               31 Jinrong Street, Xicheng District, Beijing, China\r
+                               Beijing, China    100033\r
+                               CN\r
+\r
 28-AD-18   (hex)               Hui Zhou Gaoshengda Technology Co.,LTD\r
 28AD18     (base 16)           Hui Zhou Gaoshengda Technology Co.,LTD\r
                                No.75,Zhongkai High-Tech Development District,Huizhou\r
@@ -171785,28 +172544,22 @@ C45A86     (base 16)                Huawei Device Co., Ltd.
                                Dongguan  Guangdong  523808\r
                                CN\r
 \r
-20-AC-9C   (hex)               China Telecom Corporation Limited\r
-20AC9C     (base 16)           China Telecom Corporation Limited\r
-                               31 Jinrong Street, Xicheng District, Beijing, China\r
-                               Beijing, China    100033\r
-                               CN\r
-\r
 74-78-27   (hex)               Dell Inc.\r
 747827     (base 16)           Dell Inc.\r
                                One Dell Way\r
                                Round Rock  TX  78682\r
                                US\r
 \r
-10-96-93   (hex)               Amazon Technologies Inc.\r
-109693     (base 16)           Amazon Technologies Inc.\r
-                               P.O Box 8102\r
-                               Reno  NV  89507\r
+C4-0B-31   (hex)               Apple, Inc.\r
+C40B31     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-E4-F1-D4   (hex)               vivo Mobile Communication Co., Ltd.\r
-E4F1D4     (base 16)           vivo Mobile Communication Co., Ltd.\r
-                               #283,BBK Road\r
-                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+BC-62-CE   (hex)               SHENZHEN NETIS TECHNOLOGY CO.,LTD\r
+BC62CE     (base 16)           SHENZHEN NETIS TECHNOLOGY CO.,LTD\r
+                               8 Floor, Bd B, information port, Langshan RD, Nanshan district, \r
+                               Shenzhen  Guangdong  518057\r
                                CN\r
 \r
 94-09-D3   (hex)               shenzhen maxtopic technology co.,ltd\r
@@ -171815,6 +172568,12 @@ E4F1D4     (base 16)         vivo Mobile Communication Co., Ltd.
                                shenzhen  guangdong  518108\r
                                CN\r
 \r
+78-2E-56   (hex)               China Mobile Group Device Co.,Ltd.\r
+782E56     (base 16)           China Mobile Group Device Co.,Ltd.\r
+                               32 Xuanwumen West Street,Xicheng District\r
+                               Beijing    100053\r
+                               CN\r
+\r
 58-D5-6E   (hex)               D-Link International\r
 58D56E     (base 16)           D-Link International\r
                                1 Internal Business Park, #03-12,The Synergy\r
@@ -171839,36 +172598,30 @@ ECADE0     (base 16)                D-Link International
                                Singapore   Singapore  609917\r
                                SG\r
 \r
-BC-62-CE   (hex)               SHENZHEN NETIS TECHNOLOGY CO.,LTD\r
-BC62CE     (base 16)           SHENZHEN NETIS TECHNOLOGY CO.,LTD\r
-                               8 Floor, Bd B, information port, Langshan RD, Nanshan district, \r
-                               Shenzhen  Guangdong  518057\r
-                               CN\r
-\r
-78-2E-56   (hex)               China Mobile Group Device Co.,Ltd.\r
-782E56     (base 16)           China Mobile Group Device Co.,Ltd.\r
-                               32 Xuanwumen West Street,Xicheng District\r
-                               Beijing    100053\r
+C4-CB-54   (hex)               Fibocom Auto Inc.\r
+C4CB54     (base 16)           Fibocom Auto Inc.\r
+                               5/F,Tower A,Technology Building II,1057# Nanhai Blvd\r
+                               Shenzhen  Guangdong  518054\r
                                CN\r
 \r
-C4-0B-31   (hex)               Apple, Inc.\r
-C40B31     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
+10-2D-31   (hex)               Shenzhen Americas Trading Company LLC\r
+102D31     (base 16)           Shenzhen Americas Trading Company LLC\r
+                               1308 Capital Ave.Suite #7\r
+                               Plano  TX  75074\r
                                US\r
 \r
+0C-35-4F   (hex)               Nokia\r
+0C354F     (base 16)           Nokia\r
+                               600 March Road\r
+                               Kanata  Ontario  K2K 2E6\r
+                               CA\r
+\r
 30-24-A9   (hex)               HP Inc.\r
 3024A9     (base 16)           HP Inc.\r
                                10300 Energy Dr\r
                                Spring  TX  77389\r
                                US\r
 \r
-A8-6E-4E   (hex)               Huawei Device Co., Ltd.\r
-A86E4E     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
 94-5F-34   (hex)               Renesas Electronics (Penang) Sdn. Bhd.\r
 945F34     (base 16)           Renesas Electronics (Penang) Sdn. Bhd.\r
                                Phase 3, Bayan Lepas FIZ\r
@@ -171881,42 +172634,6 @@ A86E4E     (base 16)         Huawei Device Co., Ltd.
                                Seoul    153-801\r
                                KR\r
 \r
-2C-4A-11   (hex)               Ciena Corporation\r
-2C4A11     (base 16)           Ciena Corporation\r
-                               7035 Ridge Road\r
-                               Hanover  MD  21076\r
-                               US\r
-\r
-1C-4C-48   (hex)               ITEL MOBILE LIMITED\r
-1C4C48     (base 16)           ITEL MOBILE LIMITED\r
-                               RM B3 & B4 BLOCK B, KO FAI INDUSTRIAL BUILDING  NO.7 KO FAI ROAD, YAU TONG, KLN, H.K\r
-                               Hong Kong  KOWLOON  999077\r
-                               HK\r
-\r
-C4-CB-54   (hex)               Fibocom Auto Inc.\r
-C4CB54     (base 16)           Fibocom Auto Inc.\r
-                               5/F,Tower A,Technology Building II,1057# Nanhai Blvd\r
-                               Shenzhen  Guangdong  518054\r
-                               CN\r
-\r
-10-2D-31   (hex)               Shenzhen Americas Trading Company LLC\r
-102D31     (base 16)           Shenzhen Americas Trading Company LLC\r
-                               1308 Capital Ave.Suite #7\r
-                               Plano  TX  75074\r
-                               US\r
-\r
-2C-07-86   (hex)               Huawei Device Co., Ltd.\r
-2C0786     (base 16)           Huawei Device Co., Ltd.\r
-                               No.2 of Xincheng Road, Songshan Lake Zone\r
-                               Dongguan  Guangdong  523808\r
-                               CN\r
-\r
-0C-35-4F   (hex)               Nokia\r
-0C354F     (base 16)           Nokia\r
-                               600 March Road\r
-                               Kanata  Ontario  K2K 2E6\r
-                               CA\r
-\r
 60-81-2B   (hex)               Astronics Custom Control Concepts\r
 60812B     (base 16)           Astronics Custom Control Concepts\r
                                6020 S 190th ST\r
@@ -171935,12 +172652,72 @@ B8114B     (base 16)                Cisco Systems, Inc
                                San Jose  CA  94568\r
                                US\r
 \r
+2C-07-86   (hex)               Huawei Device Co., Ltd.\r
+2C0786     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+A8-6E-4E   (hex)               Huawei Device Co., Ltd.\r
+A86E4E     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+2C-4A-11   (hex)               Ciena Corporation\r
+2C4A11     (base 16)           Ciena Corporation\r
+                               7035 Ridge Road\r
+                               Hanover  MD  21076\r
+                               US\r
+\r
+1C-4C-48   (hex)               ITEL MOBILE LIMITED\r
+1C4C48     (base 16)           ITEL MOBILE LIMITED\r
+                               RM B3 & B4 BLOCK B, KO FAI INDUSTRIAL BUILDING  NO.7 KO FAI ROAD, YAU TONG, KLN, H.K\r
+                               Hong Kong  KOWLOON  999077\r
+                               HK\r
+\r
+00-14-5A   (hex)               Westermo Neratec AG\r
+00145A     (base 16)           Westermo Neratec AG\r
+                               Rosswiesstrasse 29\r
+                               CH-8608  Bubikon  ZH\r
+                               CH\r
+\r
+A8-99-DC   (hex)               i-TOP DESING TECHNOLOGY CO.,LTD\r
+A899DC     (base 16)           i-TOP DESING TECHNOLOGY CO.,LTD\r
+                               301-302,Rongchengda Building,Dabao Road, Bao an District\r
+                               Shenzhen    518101\r
+                               CN\r
+\r
+B0-7B-25   (hex)               Dell Inc.\r
+B07B25     (base 16)           Dell Inc.\r
+                               One Dell Way\r
+                               Round Rock  TX  78682\r
+                               US\r
+\r
 30-E2-83   (hex)               Texas Instruments\r
 30E283     (base 16)           Texas Instruments\r
                                12500 TI Blvd\r
                                Dallas  TX  75243\r
                                US\r
 \r
+48-F0-7B   (hex)               ALPSALPINE CO,.LTD\r
+48F07B     (base 16)           ALPSALPINE CO,.LTD\r
+                               6-1\r
+                               Kakuda  Miyagi-Pref  981-1595\r
+                               JP\r
+\r
+28-A1-83   (hex)               ALPSALPINE CO,.LTD\r
+28A183     (base 16)           ALPSALPINE CO,.LTD\r
+                               6-1\r
+                               Kakuda  Miyagi-Pref  981-1595\r
+                               JP\r
+\r
+00-1E-3D   (hex)               ALPSALPINE CO,.LTD\r
+001E3D     (base 16)           ALPSALPINE CO,.LTD\r
+                               1-2-1, Okinouchi,\r
+                               Soma-city,  Fukushima-pref.,  976-8501\r
+                               JP\r
+\r
 00-02-C7   (hex)               ALPSALPINE CO,.LTD\r
 0002C7     (base 16)           ALPSALPINE CO,.LTD\r
                                1-2-1, Okinouchi, Sama-City,\r
@@ -171959,26 +172736,242 @@ FC62B9     (base 16)               ALPSALPINE CO,.LTD
                                Soma-city  Fukushima  976-8501\r
                                JP\r
 \r
-28-A1-83   (hex)               ALPSALPINE CO,.LTD\r
-28A183     (base 16)           ALPSALPINE CO,.LTD\r
-                               6-1\r
-                               Kakuda  Miyagi-Pref  981-1595\r
-                               JP\r
+1C-D1-BA   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+1CD1BA     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
 \r
-00-1E-3D   (hex)               ALPSALPINE CO,.LTD\r
-001E3D     (base 16)           ALPSALPINE CO,.LTD\r
-                               1-2-1, Okinouchi,\r
-                               Soma-city,  Fukushima-pref.,  976-8501\r
-                               JP\r
+E0-29-67   (hex)               HMD Global Oy\r
+E02967     (base 16)           HMD Global Oy\r
+                               Bertel Jungin aukio 9\r
+                               Espoo    02600\r
+                               FI\r
 \r
-48-F0-7B   (hex)               ALPSALPINE CO,.LTD\r
-48F07B     (base 16)           ALPSALPINE CO,.LTD\r
-                               6-1\r
-                               Kakuda  Miyagi-Pref  981-1595\r
-                               JP\r
+98-8B-69   (hex)               Shenzhen hylitech Co.,LTD\r
+988B69     (base 16)           Shenzhen hylitech Co.,LTD\r
+                               Room 1001, Tower B, Daulshine Global Science And Technology Center, Hong Lang 2 Road North, Baoan District, Shenzhen 518101, China\r
+                               shenzhen  GuangDong  518109\r
+                               CN\r
 \r
-00-14-5A   (hex)               Westermo Neratec AG\r
-00145A     (base 16)           Westermo Neratec AG\r
-                               Rosswiesstrasse 29\r
-                               CH-8608  Bubikon  ZH\r
-                               CH\r
+18-14-6C   (hex)               Zhejiang Tmall Technology Co., Ltd.\r
+18146C     (base 16)           Zhejiang Tmall Technology Co., Ltd.\r
+                               Ali Center,No.3331 Keyuan South RD (Shenzhen bay), Nanshan District, Shenzhen Guangdong province\r
+                               Shenzhen  GuangDong  518000\r
+                               CN\r
+\r
+9C-05-67   (hex)               Honor Device Co., Ltd.\r
+9C0567     (base 16)           Honor Device Co., Ltd.\r
+                               A1701, Block AB, Building 1, Tianan Yungu Phase I, Gangtou Community, Bantian Street\r
+                               Shenzhen  Guangdong  518129\r
+                               CN\r
+\r
+C0-E3-FB   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+C0E3FB     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+84-EA-ED   (hex)               Roku, Inc\r
+84EAED     (base 16)           Roku, Inc\r
+                               1155 Coleman Ave\r
+                               San Jose  CA  95110\r
+                               US\r
+\r
+00-12-AD   (hex)               VIVAVIS AG\r
+0012AD     (base 16)           VIVAVIS AG\r
+                               Nobelstraße, 18\r
+                               Ettlingen  Baden-Württemberg  76275\r
+                               DE\r
+\r
+40-89-A8   (hex)               WiredIQ, LLC\r
+4089A8     (base 16)           WiredIQ, LLC\r
+                               1 South School Avenue\r
+                               sarasota  FL  34237\r
+                               US\r
+\r
+3C-20-93   (hex)               GD Midea Air-Conditioning Equipment Co.,Ltd.\r
+3C2093     (base 16)           GD Midea Air-Conditioning Equipment Co.,Ltd.\r
+                               Midea Global Innovation Center,Beijiao Town,Shunde\r
+                               Foshan  Guangdong  528311\r
+                               CN\r
+\r
+44-AE-25   (hex)               Cisco Systems, Inc\r
+44AE25     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+BC-E7-12   (hex)               Cisco Systems, Inc\r
+BCE712     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+B0-7D-64   (hex)               Intel Corporate\r
+B07D64     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+00-42-38   (hex)               Intel Corporate\r
+004238     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+50-C3-A2   (hex)               nFore Technology Co.,Ltd.\r
+50C3A2     (base 16)           nFore Technology Co.,Ltd.\r
+                               5F., No.31, Ln. 258, Ruiguang Rd. Neihu Dist., Taipei City 114, Taiwan\r
+                               Taipei    114\r
+                               TW\r
+\r
+80-4B-50   (hex)               Silicon Laboratories\r
+804B50     (base 16)           Silicon Laboratories\r
+                               400 West Cesar Chavez Street\r
+                               Austin  TX  78701\r
+                               US\r
+\r
+68-3F-7D   (hex)               INGRAM MICRO SERVICES\r
+683F7D     (base 16)           INGRAM MICRO SERVICES\r
+                               100 CHEMIN DE BAILLOT\r
+                               MONTAUBAN    82000\r
+                               FR\r
+\r
+74-8F-4D   (hex)               duagon Germany GmbH\r
+748F4D     (base 16)           duagon Germany GmbH\r
+                               Neuwieder Straße 1-7\r
+                               Nuremberg  Bavaria  90411\r
+                               DE\r
+\r
+BC-F4-5F   (hex)               zte corporation\r
+BCF45F     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+60-55-F9   (hex)               Espressif Inc.\r
+6055F9     (base 16)           Espressif Inc.\r
+                               Room 204, Building 2, 690 Bibo Rd, Pudong New Area\r
+                               Shanghai  Shanghai  201203\r
+                               CN\r
+\r
+8C-EA-48   (hex)               Samsung Electronics Co.,Ltd\r
+8CEA48     (base 16)           Samsung Electronics Co.,Ltd\r
+                               129, Samsung-ro, Youngtongl-Gu\r
+                               Suwon  Gyeonggi-Do  16677\r
+                               KR\r
+\r
+00-5F-67   (hex)               TP-Link Corporation Limited\r
+005F67     (base 16)           TP-Link Corporation Limited\r
+                               Room 901,9/F.New East Ocean Centre, 9 Science Museum Road\r
+                                Tsim Sha Tsui  Kowloon  999077\r
+                               HK\r
+\r
+50-3D-C6   (hex)               Xiaomi Communications Co Ltd\r
+503DC6     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
+B0-BD-1B   (hex)               Dongguan Liesheng Electronic Co., Ltd.\r
+B0BD1B     (base 16)           Dongguan Liesheng Electronic Co., Ltd.\r
+                               F5, Building B, North Block, Gaosheng Tech Park, No. 84 Zhongli Road, Nancheng District, Dongguan Ci\r
+                               dongguan   guangdong  523000\r
+                               CN\r
+\r
+D4-EC-AB   (hex)               vivo Mobile Communication Co., Ltd.\r
+D4ECAB     (base 16)           vivo Mobile Communication Co., Ltd.\r
+                               #283,BBK Road\r
+                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+                               CN\r
+\r
+BC-3E-CB   (hex)               vivo Mobile Communication Co., Ltd.\r
+BC3ECB     (base 16)           vivo Mobile Communication Co., Ltd.\r
+                               #283,BBK Road\r
+                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+                               CN\r
+\r
+08-79-8C   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+08798C     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+54-DB-A2   (hex)               Fibrain\r
+54DBA2     (base 16)           Fibrain\r
+                               Zaczernie 190F\r
+                               Zaczernie  Subcarpathia  36-062\r
+                               PL\r
+\r
+08-9B-B9   (hex)               Nokia Solutions and Networks GmbH & Co. KG\r
+089BB9     (base 16)           Nokia Solutions and Networks GmbH & Co. KG\r
+                               Werinherstrasse 91\r
+                               München  Bavaria  D-81541\r
+                               DE\r
+\r
+10-96-93   (hex)               Amazon Technologies Inc.\r
+109693     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102 \r
+                               Reno  NV  89507\r
+                               US\r
+\r
+34-AF-B3   (hex)               Amazon Technologies Inc.\r
+34AFB3     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102 \r
+                               Reno  NV  89507\r
+                               US\r
+\r
+64-A1-98   (hex)               Huawei Device Co., Ltd.\r
+64A198     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+5C-9A-A1   (hex)               Huawei Device Co., Ltd.\r
+5C9AA1     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+24-ED-FD   (hex)               Siemens Canada Limited\r
+24EDFD     (base 16)           Siemens Canada Limited\r
+                               1954 Technology Drive\r
+                               Peterborough  Ontario  K9J 6X7\r
+                               CA\r
+\r
+6C-CD-D6   (hex)               NETGEAR\r
+6CCDD6     (base 16)           NETGEAR\r
+                               350 East Plumeria Drive\r
+                               San Jose  CA  95134\r
+                               US\r
+\r
+54-07-64   (hex)               Huawei Device Co., Ltd.\r
+540764     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+DC-D7-A0   (hex)               Huawei Device Co., Ltd.\r
+DCD7A0     (base 16)           Huawei Device Co., Ltd.\r
+                               No.2 of Xincheng Road, Songshan Lake Zone\r
+                               Dongguan  Guangdong  523808\r
+                               CN\r
+\r
+98-77-E7   (hex)               Kaonmedia CO., LTD.\r
+9877E7     (base 16)           Kaonmedia CO., LTD.\r
+                               884-3, Seongnam-daero, Bundang-gu\r
+                               Seongnam-si  Gyeonggi-do  13517\r
+                               KR\r
+\r
+14-18-C3   (hex)               Intel Corporate\r
+1418C3     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3  \r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+78-D4-F1   (hex)               IEEE Registration Authority\r
+78D4F1     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
index cbfdf97c0232255c67762d207da96ddaa9a2a611..31de1496a92a7ba4ce9eb57e11f31f20b81a9805 100644 (file)
@@ -3908,12 +3908,6 @@ F4-69-D5   (hex)         Rosco, Inc
                                Jamaica  NY  11435\r
                                US\r
 \r
-4C-93-A6   (hex)               4D Sistem Ticaret A.S.\r
-400000-4FFFFF     (base 16)            4D Sistem Ticaret A.S.\r
-                               Oran Mah. Turan Gunes Bul. Park Oran Ofis 180-Y No:6 Cankaya \r
-                               ANKARA    06550\r
-                               TR\r
-\r
 4C-93-A6   (hex)               Private\r
 500000-5FFFFF     (base 16)            Private\r
 \r
@@ -4187,16 +4181,82 @@ C00000-CFFFFF     (base 16)             ClearCaptions LLC
                                Singapore    486123\r
                                SG\r
 \r
+8C-AE-49   (hex)               Chengdu BillDTE Technology Co., Ltd\r
+600000-6FFFFF     (base 16)            Chengdu BillDTE Technology Co., Ltd\r
+                               Chengdu BiiDTE Technology Co.,Ltd\r
+                               Chengdu  Sichuan  610041\r
+                               CN\r
+\r
 8C-AE-49   (hex)               Gigawave\r
 A00000-AFFFFF     (base 16)            Gigawave\r
                                Unit 4 Metro Business Park, ballycurreen\r
                                cork    T12 HP60\r
                                IE\r
 \r
-8C-AE-49   (hex)               Chengdu BillDTE Technology Co., Ltd\r
-600000-6FFFFF     (base 16)            Chengdu BillDTE Technology Co., Ltd\r
-                               Chengdu BiiDTE Technology Co.,Ltd\r
-                               Chengdu  Sichuan  610041\r
+8C-AE-49   (hex)               TTR Corporation\r
+900000-9FFFFF     (base 16)            TTR Corporation\r
+                               20-1 Iwaoshi-machi\r
+                               Takasaki-shi  Gunma  370-0044\r
+                               JP\r
+\r
+8C-AE-49   (hex)               Precitec Optronik GmbH\r
+700000-7FFFFF     (base 16)            Precitec Optronik GmbH\r
+                               Schleussnerstraße 54\r
+                               Neu-Isenburg  Hessen  63263\r
+                               DE\r
+\r
+8C-AE-49   (hex)               Parametric GmbH\r
+C00000-CFFFFF     (base 16)            Parametric GmbH\r
+                               Waldeggstrasse 82\r
+                               Interlaken  BE  3800\r
+                               CH\r
+\r
+8C-AE-49   (hex)               LLC Taipit - Measuring Equipment\r
+800000-8FFFFF     (base 16)            LLC Taipit - Measuring Equipment\r
+                               Voroshilova, 2\r
+                               Saint-Petersburg    193318\r
+                               RU\r
+\r
+A4-53-EE   (hex)               Stellamore\r
+100000-1FFFFF     (base 16)            Stellamore\r
+                               Room 1519, 15th Floor, Block A, Economic Building, Baoyuan Huafeng Headquarters, No. 288, Xixiang Avenue, Bao'an District\r
+                               Shenzhen  Guangdong  518100\r
+                               CN\r
+\r
+8C-AE-49   (hex)               Shenzhen C & D Electronics Co., Ltd.\r
+E00000-EFFFFF     (base 16)            Shenzhen C & D Electronics Co., Ltd.\r
+                               9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District\r
+                               ShenZhen  GuangDong  518000\r
+                               CN\r
+\r
+A4-53-EE   (hex)               Dongguan HuaFuu industrial co., LTD\r
+900000-9FFFFF     (base 16)            Dongguan HuaFuu industrial co., LTD\r
+                               Huafuu technology park,jinggangzhong Road,shatian\r
+                               Dongguan  Guangdong  523841\r
+                               CN\r
+\r
+A4-53-EE   (hex)               Ubisafe Smart Devices\r
+200000-2FFFFF     (base 16)            Ubisafe Smart Devices\r
+                               Getulio Vargas 2729\r
+                               Sao Jose  SC  88103-400\r
+                               BR\r
+\r
+4C-93-A6   (hex)               4TheWall - 4D Sistem A.S\r
+400000-4FFFFF     (base 16)            4TheWall - 4D Sistem A.S\r
+                               Oran Mah. Turan Gunes Bul. Park Oran Ofis 180-Y No:6 Cankaya \r
+                               ANKARA    06550\r
+                               TR\r
+\r
+A0-02-4A   (hex)               Xiaojie Technology (Shenzhen) Co., Ltd\r
+600000-6FFFFF     (base 16)            Xiaojie Technology (Shenzhen) Co., Ltd\r
+                               801#, Block B1,Kexing Secience Park, Hi-Tech Industrial Park, Nanshan District\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+78-D4-F1   (hex)               Huaqin Telecom Technology Co.,Ltd.\r
+500000-5FFFFF     (base 16)            Huaqin Telecom Technology Co.,Ltd.\r
+                               Building 1,No.399, Keyuan Road, Pudong, Shanghai China\r
+                               Shanghai    200120\r
                                CN\r
 \r
 4C-4B-F9   (hex)               Shenzhen dingsheng technology co., LTD\r
@@ -8060,6 +8120,54 @@ A00000-AFFFFF     (base 16)              AU Optronics Corporation
                                Ewing  NJ  08628\r
                                US\r
 \r
+8C-AE-49   (hex)               H3 Platform\r
+100000-1FFFFF     (base 16)            H3 Platform\r
+                               11F-1, No. 79, Sec. 1, Xingtai 5th rd., Xizhi\r
+                               New Taipei    221\r
+                               TW\r
+\r
+A4-53-EE   (hex)               MAHLE ELECTRONICS, SLU\r
+000000-0FFFFF     (base 16)            MAHLE ELECTRONICS, SLU\r
+                               Ctra. Madrid-Valencia Km. 196\r
+                               Motilla del Palancar  Cuenca  16200\r
+                               ES\r
+\r
+A4-53-EE   (hex)               Aura Home, Inc.\r
+600000-6FFFFF     (base 16)            Aura Home, Inc.\r
+                               50 Eldridge Street, Suite 5D\r
+                               New York  NY  10002\r
+                               US\r
+\r
+A4-53-EE   (hex)               SSK CORPORATION\r
+D00000-DFFFFF     (base 16)            SSK CORPORATION\r
+                               3F, M-10, Centre of Hi-Tech Industrial Park, Nanshan\r
+                               Shenzhen    518054\r
+                               CN\r
+\r
+A0-02-4A   (hex)               Argos Solutions AS\r
+400000-4FFFFF     (base 16)            Argos Solutions AS\r
+                               Dyrmyrgata 35\r
+                               Kongsberg    3611\r
+                               NO\r
+\r
+A0-02-4A   (hex)               Danriver Technologies Corp.\r
+200000-2FFFFF     (base 16)            Danriver Technologies Corp.\r
+                               Building 3#,  2F, Yunxin Rd. \r
+                               Shanghai    200436\r
+                               CN\r
+\r
+A0-02-4A   (hex)               Xi'an Yingsheng Electric Technology Co.,Ltd.\r
+B00000-BFFFFF     (base 16)            Xi'an Yingsheng Electric Technology Co.,Ltd.\r
+                               Room 303, building B, Xi'an University of Technology science and Technology Park, 26 Gazelle road, Zhang Ba Street office,\r
+                               Xi'an    710065\r
+                               CN\r
+\r
+A0-02-4A   (hex)               Kontakt Micro-Location Sp z o.o.\r
+900000-9FFFFF     (base 16)            Kontakt Micro-Location Sp z o.o.\r
+                               Stoczniowcow 3\r
+                               Krakow    30-709\r
+                               PL\r
+\r
 20-85-93   (hex)               UNILUMIN GROUP CO.,LTD\r
 300000-3FFFFF     (base 16)            UNILUMIN GROUP CO.,LTD\r
                                No.112 Yongfu Rd.,BaoanDistrict,\r
@@ -11846,12 +11954,6 @@ B00000-BFFFFF     (base 16)            Vehant Technologies Pvt Ltd.
                                Greater Noida  Uttar Pradesh  201310\r
                                IN\r
 \r
-C0-61-9A   (hex)               Stello\r
-400000-4FFFFF     (base 16)            Stello\r
-                               1041 Rue Parent\r
-                               Saint-Bruno-de-Montarville  Quebec  J3V 6L7\r
-                               CA\r
-\r
 C0-61-9A   (hex)               IPG Automotive GmbH\r
 600000-6FFFFF     (base 16)            IPG Automotive GmbH\r
                                Bannwaldallee 60\r
@@ -12044,6 +12146,48 @@ D00000-DFFFFF     (base 16)            innolectric AG
                                Bochum    44799 \r
                                DE\r
 \r
+C0-61-9A   (hex)               Stello\r
+400000-4FFFFF     (base 16)            Stello\r
+                               9995 Rue de Châteauneuf (Local V)\r
+                               Brossard  Quebec  J4Z 3V7\r
+                               CA\r
+\r
+8C-AE-49   (hex)               Larch Networks\r
+D00000-DFFFFF     (base 16)            Larch Networks\r
+                               11 Amal Str.\r
+                               Rosh Ain    4809239\r
+                               IL\r
+\r
+A4-53-EE   (hex)               T-Touching Co., Ltd.\r
+800000-8FFFFF     (base 16)            T-Touching Co., Ltd.\r
+                               28B, No. 4, Science and Technology 10th Road\r
+                               Dongguan  GuangDong  52300\r
+                               CN\r
+\r
+A0-02-4A   (hex)               bitbee Inc\r
+D00000-DFFFFF     (base 16)            bitbee Inc\r
+                               #703, 361 Simindae-ro, Dongan-gu,\r
+                               anyang-si  gyeonggi-do  14057\r
+                               KR\r
+\r
+A4-53-EE   (hex)               Beijing Lanke Science and Technology Co.,LTd.\r
+700000-7FFFFF     (base 16)            Beijing Lanke Science and Technology Co.,LTd.\r
+                               Room 607, building 6, No.1, Chaoqian Road, science and Technology Park, Changping District\r
+                               Beijing     102209\r
+                               CN\r
+\r
+A0-02-4A   (hex)               Zhejiang Hechuan Technology Co.,Ltd\r
+000000-0FFFFF     (base 16)            Zhejiang Hechuan Technology Co.,Ltd\r
+                               No. 9, Fucai Road, Longyou Industrial Zone, Quzhou City, Zhejiang Province, PRC\r
+                               Quzhou    324000\r
+                               CN\r
+\r
+A0-02-4A   (hex)               SomaDetect Inc\r
+300000-3FFFFF     (base 16)            SomaDetect Inc\r
+                               241 Canada Street, Suite 10 \r
+                               Fredericton  New Brunswick  E3A 4A1\r
+                               CA\r
+\r
 4C-4B-F9   (hex)               Shandong Linkotech Electronic Co., Ltd.\r
 600000-6FFFFF     (base 16)            Shandong Linkotech Electronic Co., Ltd.\r
                                22nd Floor, Building 2, Aosheng Building, No.1166 Xinyi Street, High-tech Zone\r
@@ -15950,6 +16094,54 @@ E00000-EFFFFF     (base 16)            Dangerous Music Group, LLC
 8C-47-6E   (hex)               Private\r
 700000-7FFFFF     (base 16)            Private\r
 \r
+8C-AE-49   (hex)               BERTIN TECHNOLOGIES\r
+300000-3FFFFF     (base 16)            BERTIN TECHNOLOGIES\r
+                               10 Avenue Ampère\r
+                               Montigny-le-Bretonneux  IDF  78180\r
+                               FR\r
+\r
+8C-AE-49   (hex)               Gati Information Technolog(Kunshan)Co.,Ltd.\r
+500000-5FFFFF     (base 16)            Gati Information Technolog(Kunshan)Co.,Ltd.\r
+                               2-5 / F, room 7, No. 88, Baifu Road, Economic and Technological Development Zone\r
+                               Kunshan.  jiangsu  215300\r
+                               CN\r
+\r
+8C-AE-49   (hex)               SEVERIN Elektrogeräte GmbH\r
+200000-2FFFFF     (base 16)            SEVERIN Elektrogeräte GmbH\r
+                               Röhre 27\r
+                               Sundern  NRW  59846\r
+                               DE\r
+\r
+A4-53-EE   (hex)               Williamson Corporation\r
+400000-4FFFFF     (base 16)            Williamson Corporation\r
+                               70 Domino Drive\r
+                               Concord  MA  01742\r
+                               US\r
+\r
+A4-53-EE   (hex)               SOS LAB Co., Ltd.\r
+C00000-CFFFFF     (base 16)            SOS LAB Co., Ltd.\r
+                               B-101, BI Center, GIST 123 Cheomdangwagi-ro\r
+                               Gwangju    61005\r
+                               KR\r
+\r
+A4-53-EE   (hex)               Foshan Yisihang Electrical Technology Co., Ltd.\r
+500000-5FFFFF     (base 16)            Foshan Yisihang Electrical Technology Co., Ltd.\r
+                               F4 Block A Lege Industrial Park, North Yucheng Road, Lunjiao Town, Shunde District\r
+                               Foshan  Guangdong  528308\r
+                               CN\r
+\r
+A4-53-EE   (hex)               Larva.io OÜ\r
+300000-3FFFFF     (base 16)            Larva.io OÜ\r
+                               Sidur 3\r
+                               Tallinn    11313\r
+                               EE\r
+\r
+A0-02-4A   (hex)               IoTecha Corp\r
+E00000-EFFFFF     (base 16)            IoTecha Corp\r
+                               2555 Route 130, Suite 2\r
+                               Cranbury  NJ  08512\r
+                               US\r
+\r
 20-85-93   (hex)               Great Lite International\r
 700000-7FFFFF     (base 16)            Great Lite International\r
                                11F., No.207-2, Sec. 3, Beixin Rd., Xindian Dist.,\r
@@ -19966,3 +20158,63 @@ E00000-EFFFFF     (base 16)            Annapurna labs
                                Matam Scientific Industries Center,   Building 8.2\r
                                Mail box 15123  Haifa  3508409\r
                                IL\r
+\r
+8C-AE-49   (hex)               Jiangsu Sixingda Information Technology Co., Ltd.\r
+400000-4FFFFF     (base 16)            Jiangsu Sixingda Information Technology Co., Ltd.\r
+                               Jiangsu Sixingda Information Technology Co., Ltd.\r
+                               Nanjing  Jiangsu  210000\r
+                               CN\r
+\r
+8C-AE-49   (hex)               Suzhou Guowang Electronics Technology Co., Ltd.\r
+B00000-BFFFFF     (base 16)            Suzhou Guowang Electronics Technology Co., Ltd.\r
+                               No. 99, Changli Road, 703, Wuzhong science and technology entrepreneurship Park\r
+                               Suzhou    215168\r
+                               CN\r
+\r
+8C-AE-49   (hex)               Ouman Oy\r
+000000-0FFFFF     (base 16)            Ouman Oy\r
+                               Voimatie 6\r
+                               Kempele    FIN-90440\r
+                               FI\r
+\r
+A4-53-EE   (hex)               Viper Design, LLC\r
+B00000-BFFFFF     (base 16)            Viper Design, LLC\r
+                               85 Cude Lane\r
+                               Madison  TN  37115\r
+                               US\r
+\r
+A0-02-4A   (hex)               Donguan Amsamotion Automation Technology Co., Ltd\r
+500000-5FFFFF     (base 16)            Donguan Amsamotion Automation Technology Co., Ltd\r
+                               Block A, Zosun Intelligence Creation Zone, No.9 Yizhan Road, Yuanwubian Streeet Nancheng District,\r
+                               Dongguan  Gunagdong  523000\r
+                               CN\r
+\r
+A0-02-4A   (hex)               Guangdong Jinpeng Technology Co. LTD\r
+A00000-AFFFFF     (base 16)            Guangdong Jinpeng Technology Co. LTD\r
+                               Room 504, 5 / F, Self-built A3 Building, No. 50 Science Avenue, Huangpu District\r
+                               Guangzhou    510700\r
+                               CN\r
+\r
+A0-02-4A   (hex)               Encroute AB\r
+C00000-CFFFFF     (base 16)            Encroute AB\r
+                               Box 2062\r
+                               Sundbyberg    17402\r
+                               SE\r
+\r
+A0-02-4A   (hex)               Vitec Imaging Solutions Spa\r
+100000-1FFFFF     (base 16)            Vitec Imaging Solutions Spa\r
+                               Via Valsugana 100\r
+                               Cassola  Vicenza  36022\r
+                               IT\r
+\r
+A0-02-4A   (hex)               Beijing Lyratone Technology Co., Ltd\r
+800000-8FFFFF     (base 16)            Beijing Lyratone Technology Co., Ltd\r
+                               1st floor, Caigang building, No.40 Beiyuan Road\r
+                               Beijing    100020\r
+                               CN\r
+\r
+78-D4-F1   (hex)               Cartender\r
+100000-1FFFFF     (base 16)            Cartender\r
+                               Via della Meccanica 2a\r
+                               Padova  PD  35127\r
+                               IT\r
index f7d37444cac068fca0f36d3880a6373385564f3b..aeb1382f88f5a5310d4ee5b4229af7713f105318 100644 (file)
@@ -1733,12 +1733,6 @@ D1C000-D1CFFF     (base 16)              Specialised Imaging Limited
                                Pitstone  Bucks  LU7 9GX\r
                                GB\r
 \r
-70-B3-D5   (hex)               Viko Elektrik-Elektronik A.Ş.\r
-EC8000-EC8FFF     (base 16)            Viko Elektrik-Elektronik A.Ş.\r
-                               Abdurrahmangazi Mah. Ebubekir Cad. No:44 Sancaktepe\r
-                               Istanbul    34887\r
-                               TR\r
-\r
 70-B3-D5   (hex)               ATX Networks Corp\r
 9D9000-9D9FFF     (base 16)            ATX Networks Corp\r
                                1-501 Clements Road West\r
@@ -4175,12 +4169,6 @@ EF1000-EF1FFF     (base 16)              Nanotok LLC
                                Hong Kong  Hong Kong  00000\r
                                HK\r
 \r
-70-B3-D5   (hex)               Technology Link Corporation\r
-B1B000-B1BFFF     (base 16)            Technology Link Corporation\r
-                               Shin-Yokohama Kohoku-ku\r
-                               yokohama  kanagawa  222-0033\r
-                               JP\r
-\r
 70-B3-D5   (hex)               VANTAGE INTEGRATED SECURITY SOLUTIONS PVT LTD\r
 6BE000-6BEFFF     (base 16)            VANTAGE INTEGRATED SECURITY SOLUTIONS PVT LTD\r
                                B3, Bredon House, 321, Tettenhall Road, Tettenhall\r
@@ -4205,11 +4193,11 @@ F47000-F47FFF     (base 16)             TXMission Ltd.
                                Watford  Hertfordshire  WD25 8HU\r
                                GB\r
 \r
-70-B3-D5   (hex)               sensorway\r
-C52000-C52FFF     (base 16)            sensorway\r
-                               A-339 samsong techno valley, 140 tongilro, deockyanggu\r
-                               goyangsi  gyeonggido  10594\r
-                               KR\r
+70-B3-D5   (hex)               Technology Link Corporation\r
+B1B000-B1BFFF     (base 16)            Technology Link Corporation\r
+                               Shin-Yokohama Kohoku-ku\r
+                               yokohama  kanagawa  222-0033\r
+                               JP\r
 \r
 70-B3-D5   (hex)               Tucsen Photonics Co., Ltd. \r
 8A7000-8A7FFF     (base 16)            Tucsen Photonics Co., Ltd. \r
@@ -4217,11 +4205,11 @@ C52000-C52FFF     (base 16)             sensorway
                                fuzhou    350000\r
                                CN\r
 \r
-70-B3-D5   (hex)               Beijing Yourong Runda Rechnology Development Co.Ltd.\r
-980000-980FFF     (base 16)            Beijing Yourong Runda Rechnology Development Co.Ltd.\r
-                               Changping District Science and Technology Park Advanced Road 37\r
-                               Beijing    6219650\r
-                               CN\r
+70-B3-D5   (hex)               sensorway\r
+C52000-C52FFF     (base 16)            sensorway\r
+                               A-339 samsong techno valley, 140 tongilro, deockyanggu\r
+                               goyangsi  gyeonggido  10594\r
+                               KR\r
 \r
 70-B3-D5   (hex)               KDT Corp.\r
 E72000-E72FFF     (base 16)            KDT Corp.\r
@@ -4229,11 +4217,11 @@ E72000-E72FFF     (base 16)             KDT Corp.
                                shaoxing  zhejiang  312030\r
                                CN\r
 \r
-70-B3-D5   (hex)               AUTOMATICA Y REGULACION S.A.\r
-EBF000-EBFFFF     (base 16)            AUTOMATICA Y REGULACION S.A.\r
-                               Condell 1735, Nunoa\r
-                               Santiago  RM  7770331\r
-                               CL\r
+70-B3-D5   (hex)               Beijing Yourong Runda Rechnology Development Co.Ltd.\r
+980000-980FFF     (base 16)            Beijing Yourong Runda Rechnology Development Co.Ltd.\r
+                               Changping District Science and Technology Park Advanced Road 37\r
+                               Beijing    6219650\r
+                               CN\r
 \r
 70-B3-D5   (hex)               R.C. Systems Inc\r
 52F000-52FFFF     (base 16)            R.C. Systems Inc\r
@@ -4247,18 +4235,18 @@ EBF000-EBFFFF     (base 16)             AUTOMATICA Y REGULACION S.A.
                                Brendola  Vicenza  36040\r
                                IT\r
 \r
+70-B3-D5   (hex)               AUTOMATICA Y REGULACION S.A.\r
+EBF000-EBFFFF     (base 16)            AUTOMATICA Y REGULACION S.A.\r
+                               Condell 1735, Nunoa\r
+                               Santiago  RM  7770331\r
+                               CL\r
+\r
 70-B3-D5   (hex)               Digital Solutions JSC\r
 D9F000-D9FFFF     (base 16)            Digital Solutions JSC\r
                                room 4, office 1, 3rd floor, building 7, house 9a, 2nd Sinichkina Str.\r
                                Moscow    111020\r
                                RU\r
 \r
-70-B3-D5   (hex)               DOGA\r
-62A000-62AFFF     (base 16)            DOGA\r
-                               11 rue Lavoisier\r
-                               MAUREPAS    78310\r
-                               FR\r
-\r
 70-B3-D5   (hex)               Oculii\r
 B96000-B96FFF     (base 16)            Oculii\r
                                829 Space Dr\r
@@ -4277,11 +4265,11 @@ B96000-B96FFF     (base 16)             Oculii
                                Woodside  NY  11377\r
                                US\r
 \r
-70-B3-D5   (hex)               Remote Diagnostic Technologies Ltd\r
-C99000-C99FFF     (base 16)            Remote Diagnostic Technologies Ltd\r
-                               Pavilion C2 Ashwood Park, Ashwood Way\r
-                               Basingstoke  Hampshire  RG23 8BG\r
-                               GB\r
+70-B3-D5   (hex)               DOGA\r
+62A000-62AFFF     (base 16)            DOGA\r
+                               11 rue Lavoisier\r
+                               MAUREPAS    78310\r
+                               FR\r
 \r
 70-B3-D5   (hex)               NEUROPHET, Inc.\r
 E31000-E31FFF     (base 16)            NEUROPHET, Inc.\r
@@ -4289,6 +4277,18 @@ E31000-E31FFF     (base 16)              NEUROPHET, Inc.
                                Seoul  Province  06247\r
                                KR\r
 \r
+70-B3-D5   (hex)               Remote Diagnostic Technologies Ltd\r
+C99000-C99FFF     (base 16)            Remote Diagnostic Technologies Ltd\r
+                               Pavilion C2 Ashwood Park, Ashwood Way\r
+                               Basingstoke  Hampshire  RG23 8BG\r
+                               GB\r
+\r
+70-B3-D5   (hex)               Gogo Business Aviation\r
+3E0000-3E0FFF     (base 16)            Gogo Business Aviation\r
+                               105 Edgeview Dr., Suite 300\r
+                               Broomfield  CO  80021\r
+                               US\r
+\r
 70-B3-D5   (hex)               Chromateq\r
 944000-944FFF     (base 16)            Chromateq\r
                                191, allée de Lauzard, Bat. B, RDC 1 (Chromateq)\r
@@ -4307,30 +4307,12 @@ F3D000-F3DFFF     (base 16)             KAYA Instruments
                                Nesher     3688520\r
                                IL\r
 \r
-70-B3-D5   (hex)               Gogo Business Aviation\r
-3E0000-3E0FFF     (base 16)            Gogo Business Aviation\r
-                               105 Edgeview Dr., Suite 300\r
-                               Broomfield  CO  80021\r
-                               US\r
-\r
 70-B3-D5   (hex)               Asiga Pty Ltd\r
 53E000-53EFFF     (base 16)            Asiga Pty Ltd\r
                                Unit 2, 19-21 Bourke Road\r
                                Alexandria  New South Wales  2015\r
                                AU\r
 \r
-70-B3-D5   (hex)               ENABLER LTD.\r
-15A000-15AFFF     (base 16)            ENABLER LTD.\r
-                               29F Shiroyama Trust Tower 4-3-1 Toranomon \r
-                               Minato-ku  Tokyo  105-6029\r
-                               JP\r
-\r
-70-B3-D5   (hex)               LINEAGE POWER PVT LTD.,\r
-62E000-62EFFF     (base 16)            LINEAGE POWER PVT LTD.,\r
-                               30-A1, KIADB, 1ST PHASE INDUSTRIAL ESTATE,KUMBALGODU, BANGALORE-MYSORE ROAD\r
-                               BANGALORE  KARNATAKA  560074\r
-                               IN\r
-\r
 70-B3-D5   (hex)               Salupo Sas\r
 898000-898FFF     (base 16)            Salupo Sas\r
                                Via Laganeto n. 129\r
@@ -4343,35 +4325,53 @@ F3D000-F3DFFF     (base 16)             KAYA Instruments
                                Amagasaki  Hyogo  660-0082\r
                                JP\r
 \r
+70-B3-D5   (hex)               LINEAGE POWER PVT LTD.,\r
+62E000-62EFFF     (base 16)            LINEAGE POWER PVT LTD.,\r
+                               30-A1, KIADB, 1ST PHASE INDUSTRIAL ESTATE,KUMBALGODU, BANGALORE-MYSORE ROAD\r
+                               BANGALORE  KARNATAKA  560074\r
+                               IN\r
+\r
+70-B3-D5   (hex)               ENABLER LTD.\r
+15A000-15AFFF     (base 16)            ENABLER LTD.\r
+                               29F Shiroyama Trust Tower 4-3-1 Toranomon \r
+                               Minato-ku  Tokyo  105-6029\r
+                               JP\r
+\r
 70-B3-D5   (hex)               Grupo Epelsa S.L.\r
 40D000-40DFFF     (base 16)            Grupo Epelsa S.L.\r
                                C/ Punto Net,3\r
                                Alcala de Henares  Madrid  28805\r
                                ES\r
 \r
+70-B3-D5   (hex)               WEPTECH elektronik GmbH\r
+9CD000-9CDFFF     (base 16)            WEPTECH elektronik GmbH\r
+                               Ostring 10\r
+                               Landau    76829\r
+                               DE\r
+\r
 70-B3-D5   (hex)               AnaPico AG\r
 0BB000-0BBFFF     (base 16)            AnaPico AG\r
                                Europa-Strasse 9\r
                                Glattbrugg  Schweiz  8152\r
                                CH\r
 \r
+70-B3-D5   (hex)               Egag, LLC\r
+9A8000-9A8FFF     (base 16)            Egag, LLC\r
+                               303 King James Ct\r
+                               Upper Marlboro  MD  20774\r
+                               US\r
+\r
 70-B3-D5   (hex)               Season Electronics Ltd\r
 F46000-F46FFF     (base 16)            Season Electronics Ltd\r
                                600 Nest Business Park \r
                                Havant  Hampshire  PO9 5TL\r
                                GB\r
 \r
-70-B3-D5   (hex)               WEPTECH elektronik GmbH\r
-9CD000-9CDFFF     (base 16)            WEPTECH elektronik GmbH\r
-                               Ostring 10\r
-                               Landau    76829\r
-                               DE\r
-\r
-70-B3-D5   (hex)               Egag, LLC\r
-9A8000-9A8FFF     (base 16)            Egag, LLC\r
-                               303 King James Ct\r
-                               Upper Marlboro  MD  20774\r
-                               US\r
+70-B3-D5   (hex)               Algodue Elettronica Srl\r
+191000-191FFF     (base 16)            Algodue Elettronica Srl\r
+                               Via P. Gobetti, 16F\r
+                               Maggiora  NO  28014\r
+                               IT\r
 \r
 70-B3-D5   (hex)               Hermann Sewerin GmbH\r
 484000-484FFF     (base 16)            Hermann Sewerin GmbH\r
@@ -4385,42 +4385,18 @@ F46000-F46FFF     (base 16)             Season Electronics Ltd
                                GwangMyung-si  Gyeonggi-do, Korea  14322\r
                                KR\r
 \r
-70-B3-D5   (hex)               Algodue Elettronica Srl\r
-191000-191FFF     (base 16)            Algodue Elettronica Srl\r
-                               Via P. Gobetti, 16F\r
-                               Maggiora  NO  28014\r
-                               IT\r
-\r
 70-B3-D5   (hex)               Beijing Vizum Technology Co.,Ltd.\r
 F33000-F33FFF     (base 16)            Beijing Vizum Technology Co.,Ltd.\r
                                Room603, Floor6, Block2, No.1 Zhongguancun, No.81 Beiqing Road\r
                                Beijing  Beijing  100094\r
                                CN\r
 \r
-70-B3-D5   (hex)               Volution Group UK\r
-687000-687FFF     (base 16)            Volution Group UK\r
-                               Vent-Axia Ltd, Fleming Way\r
-                               Crawley  WEST SUSSEX  RH10 9YX\r
-                               GB\r
-\r
-70-B3-D5   (hex)               Vertex Co.,Ltd.\r
-8DD000-8DDFFF     (base 16)            Vertex Co.,Ltd.\r
-                               4-1-17 Higashifuchinobe,Chuo-ku\r
-                               Sagamihara  Kanagawa  252-0203\r
-                               JP\r
-\r
 70-B3-D5   (hex)               Monnit Corporation\r
 393000-393FFF     (base 16)            Monnit Corporation\r
                                3400 S West Temple\r
                                Salt Lake City  UT  84115\r
                                US\r
 \r
-70-B3-D5   (hex)               Specialized Communications Corp.\r
-867000-867FFF     (base 16)            Specialized Communications Corp.\r
-                               20940 Twin Springs Drive\r
-                               Smithsburg    21783\r
-                               US\r
-\r
 70-B3-D5   (hex)               eSight\r
 FD9000-FD9FFF     (base 16)            eSight\r
                                515 Legget Drive, Suite 200\r
@@ -4433,6 +4409,24 @@ D99000-D99FFF     (base 16)              Nilar AB
                                Gävle  Gavleborg  80647\r
                                SE\r
 \r
+70-B3-D5   (hex)               Volution Group UK\r
+687000-687FFF     (base 16)            Volution Group UK\r
+                               Vent-Axia Ltd, Fleming Way\r
+                               Crawley  WEST SUSSEX  RH10 9YX\r
+                               GB\r
+\r
+70-B3-D5   (hex)               Vertex Co.,Ltd.\r
+8DD000-8DDFFF     (base 16)            Vertex Co.,Ltd.\r
+                               4-1-17 Higashifuchinobe,Chuo-ku\r
+                               Sagamihara  Kanagawa  252-0203\r
+                               JP\r
+\r
+70-B3-D5   (hex)               Specialized Communications Corp.\r
+867000-867FFF     (base 16)            Specialized Communications Corp.\r
+                               20940 Twin Springs Drive\r
+                               Smithsburg    21783\r
+                               US\r
+\r
 70-B3-D5   (hex)               Jabil, Inc.\r
 736000-736FFF     (base 16)            Jabil, Inc.\r
                                888 Executive Center Dr. W.\r
@@ -4487,6 +4481,12 @@ D06000-D06FFF     (base 16)              YUYAMA MFG Co.,Ltd
                                Guangzhou  Guangdong  510665\r
                                CN\r
 \r
+70-B3-D5   (hex)               7thSense Design Limited\r
+E46000-E46FFF     (base 16)            7thSense Design Limited\r
+                               2 The Courtyard, Shoreham Road\r
+                               Upper Beeding  West Sussex  BN44 3TN\r
+                               GB\r
+\r
 70-B3-D5   (hex)               Cominfo, Inc.\r
 6F5000-6F5FFF     (base 16)            Cominfo, Inc.\r
                                Nabrezi 695\r
@@ -4499,24 +4499,12 @@ D06000-D06FFF     (base 16)             YUYAMA MFG Co.,Ltd
                                Shenyang  Liaoning  110000\r
                                CN\r
 \r
-70-B3-D5   (hex)               7thSense Design Limited\r
-E46000-E46FFF     (base 16)            7thSense Design Limited\r
-                               2 The Courtyard, Shoreham Road\r
-                               Upper Beeding  West Sussex  BN44 3TN\r
-                               GB\r
-\r
 70-B3-D5   (hex)               Weltek Technologies Co. Ltd.\r
 C48000-C48FFF     (base 16)            Weltek Technologies Co. Ltd.\r
                                Flat A-B, 12/F, Block 1, Wah Fung Ind. Centre, 33-39 Kwai Fung Crescent, Kwai Chung, N.T.\r
                                HK    852\r
                                HK\r
 \r
-70-B3-D5   (hex)               TimeMachines Inc.\r
-756000-756FFF     (base 16)            TimeMachines Inc.\r
-                               300 S 68th Street Place, Suite 100\r
-                               Lincoln  NE  68510\r
-                               US\r
-\r
 70-B3-D5   (hex)               BirdDog Australia\r
 3B9000-3B9FFF     (base 16)            BirdDog Australia\r
                                Unit 1, 8 Theobald St\r
@@ -4529,11 +4517,11 @@ C0D000-C0DFFF     (base 16)             Clarity Medical Pvt Ltd
                                MOHALI  Punjab  140306\r
                                IN\r
 \r
-70-B3-D5   (hex)               KRONOTECH SRL\r
-626000-626FFF     (base 16)            KRONOTECH SRL\r
-                               VIALE UNGHERIA 125\r
-                               UDINE  ITALY/UDINE  33100\r
-                               IT\r
+70-B3-D5   (hex)               TimeMachines Inc.\r
+756000-756FFF     (base 16)            TimeMachines Inc.\r
+                               300 S 68th Street Place, Suite 100\r
+                               Lincoln  NE  68510\r
+                               US\r
 \r
 70-B3-D5   (hex)               Algra tec AG\r
 80C000-80CFFF     (base 16)            Algra tec AG\r
@@ -4541,6 +4529,12 @@ C0D000-C0DFFF     (base 16)              Clarity Medical Pvt Ltd
                                Merenschwand  Aargau  5634\r
                                CH\r
 \r
+70-B3-D5   (hex)               KRONOTECH SRL\r
+626000-626FFF     (base 16)            KRONOTECH SRL\r
+                               VIALE UNGHERIA 125\r
+                               UDINE  ITALY/UDINE  33100\r
+                               IT\r
+\r
 70-B3-D5   (hex)               Enlaps\r
 2AF000-2AFFFF     (base 16)            Enlaps\r
                                29 chemin du vieux chene, Tarmac\r
@@ -4559,11 +4553,11 @@ C0D000-C0DFFF     (base 16)             Clarity Medical Pvt Ltd
                                Neusaess  Bayern  85356\r
                                DE\r
 \r
-70-B3-D5   (hex)               Shangnuo company\r
-82B000-82BFFF     (base 16)            Shangnuo company\r
-                               Nong'an district\r
-                               Changchun  Jilin  130000\r
-                               CN\r
+70-B3-D5   (hex)               NaraControls Inc\r
+3FD000-3FDFFF     (base 16)            NaraControls Inc\r
+                               youngdong daero\r
+                               Seoul    06072\r
+                               KR\r
 \r
 70-B3-D5   (hex)               Shanghai Westwell Information and Technology Company Ltd\r
 856000-856FFF     (base 16)            Shanghai Westwell Information and Technology Company Ltd\r
@@ -4571,11 +4565,11 @@ C0D000-C0DFFF     (base 16)             Clarity Medical Pvt Ltd
                                Shanghai  Shanghai  200050\r
                                CN\r
 \r
-70-B3-D5   (hex)               NaraControls Inc\r
-3FD000-3FDFFF     (base 16)            NaraControls Inc\r
-                               youngdong daero\r
-                               Seoul    06072\r
-                               KR\r
+70-B3-D5   (hex)               Shangnuo company\r
+82B000-82BFFF     (base 16)            Shangnuo company\r
+                               Nong'an district\r
+                               Changchun  Jilin  130000\r
+                               CN\r
 \r
 70-B3-D5   (hex)               Vision Sensing Co., Ltd.\r
 93F000-93FFFF     (base 16)            Vision Sensing Co., Ltd.\r
@@ -4613,12 +4607,6 @@ F41000-F41FFF     (base 16)              DUEVI SRL
                                TORINO  TORINO  10142\r
                                IT\r
 \r
-70-B3-D5   (hex)               Daifuku CO., Ltd.\r
-3A2000-3A2FFF     (base 16)            Daifuku CO., Ltd.\r
-                               1225 Nakazaiji, Hino-cho, Gamo-gun, Shiga\r
-                               Gamo-gun  Shiga-ken  529-1692\r
-                               JP\r
-\r
 70-B3-D5   (hex)               CLARESYS LIMITED\r
 485000-485FFF     (base 16)            CLARESYS LIMITED\r
                                154E Brook Drive, Milton Park\r
@@ -4631,18 +4619,18 @@ F41000-F41FFF     (base 16)             DUEVI SRL
                                Bengaluru  Karnataka  562149\r
                                IN\r
 \r
+70-B3-D5   (hex)               Daifuku CO., Ltd.\r
+3A2000-3A2FFF     (base 16)            Daifuku CO., Ltd.\r
+                               1225 Nakazaiji, Hino-cho, Gamo-gun, Shiga\r
+                               Gamo-gun  Shiga-ken  529-1692\r
+                               JP\r
+\r
 70-B3-D5   (hex)               Panamera\r
 7B1000-7B1FFF     (base 16)            Panamera\r
                                Rua. Dr. Brasilio Vicente de Castro, 111\r
                                Critiba  Parana  81200-526\r
                                BR\r
 \r
-70-B3-D5   (hex)               QUNU LABS PRIVATE LIMITED\r
-9A6000-9A6FFF     (base 16)            QUNU LABS PRIVATE LIMITED\r
-                               Centenary Building, 2nd Floor,, East Wing, No. 28 M.G. Road\r
-                               BANGALORE  KARNATAKA  560025\r
-                               IN\r
-\r
 70-B3-D5   (hex)               ALTIT.CO.,Ltd.\r
 552000-552FFF     (base 16)            ALTIT.CO.,Ltd.\r
                                Gasan Digital 1 ro 88, 1905\r
@@ -4655,6 +4643,12 @@ F41000-F41FFF     (base 16)              DUEVI SRL
                                Bengaluru  Karnataka  560066\r
                                IN\r
 \r
+70-B3-D5   (hex)               QUNU LABS PRIVATE LIMITED\r
+9A6000-9A6FFF     (base 16)            QUNU LABS PRIVATE LIMITED\r
+                               Centenary Building, 2nd Floor,, East Wing, No. 28 M.G. Road\r
+                               BANGALORE  KARNATAKA  560025\r
+                               IN\r
+\r
 70-B3-D5   (hex)               Galaxy Next Generation, Inc.\r
 E1D000-E1DFFF     (base 16)            Galaxy Next Generation, Inc.\r
                                285 Big A Rd \r
@@ -4685,24 +4679,30 @@ DCD000-DCDFFF     (base 16)             C TECH BILISIM TEKNOLOJILERI SAN. VE TIC. A.S.
                                Istanbul    34912\r
                                TR\r
 \r
-70-B3-D5   (hex)               TableConnect GmbH\r
-7BD000-7BDFFF     (base 16)            TableConnect GmbH\r
-                               Schlossgasse 13/2/3\r
-                               Vienna  Vienna  1050\r
-                               AT\r
-\r
 70-B3-D5   (hex)               Cubic ITS, Inc. dba GRIDSMART Technologies\r
 7EC000-7ECFFF     (base 16)            Cubic ITS, Inc. dba GRIDSMART Technologies\r
                                10545 Hardin Valley Rd\r
                                Knoxville  TN  37932\r
                                US\r
 \r
+70-B3-D5   (hex)               TableConnect GmbH\r
+7BD000-7BDFFF     (base 16)            TableConnect GmbH\r
+                               Schlossgasse 13/2/3\r
+                               Vienna  Vienna  1050\r
+                               AT\r
+\r
 70-B3-D5   (hex)               Eldes Ltd\r
 8B6000-8B6FFF     (base 16)            Eldes Ltd\r
                                Ukmerges 283b\r
                                Vilnius    LT-06313\r
                                LT\r
 \r
+70-B3-D5   (hex)               Circle Consult ApS\r
+23D000-23DFFF     (base 16)            Circle Consult ApS\r
+                               Rundforbivej 271A\r
+                               Naerum    2850\r
+                               DK\r
+\r
 70-B3-D5   (hex)               Foerster-Technik GmbH\r
 453000-453FFF     (base 16)            Foerster-Technik GmbH\r
                                Gerwigstraße 25\r
@@ -4715,11 +4715,11 @@ D85000-D85FFF     (base 16)             BTG Instruments AB
                                Saffle  Varmland  66132\r
                                SE\r
 \r
-70-B3-D5   (hex)               Circle Consult ApS\r
-23D000-23DFFF     (base 16)            Circle Consult ApS\r
-                               Rundforbivej 271A\r
-                               Naerum    2850\r
-                               DK\r
+70-B3-D5   (hex)               Velvac Incorporated\r
+44F000-44FFFF     (base 16)            Velvac Incorporated\r
+                               2405 S. Calhoun Road\r
+                               New Berlin  WI  53151-2709\r
+                               US\r
 \r
 70-B3-D5   (hex)               CreevX\r
 BF4000-BF4FFF     (base 16)            CreevX\r
@@ -4727,24 +4727,72 @@ BF4000-BF4FFF     (base 16)             CreevX
                                Randalstown  Antrim  BT41 3LH\r
                                GB\r
 \r
+70-B3-D5   (hex)               Connido Limited\r
+71D000-71DFFF     (base 16)            Connido Limited\r
+                               35 Kingsland Road\r
+                               London    E2 8AA\r
+                               GB\r
+\r
 70-B3-D5   (hex)               Potter Electric Signal Co. LLC\r
 261000-261FFF     (base 16)            Potter Electric Signal Co. LLC\r
                                1609 Park 370 Place\r
                                Hazelwood  MO  63042\r
                                US\r
 \r
-70-B3-D5   (hex)               Velvac Incorporated\r
-44F000-44FFFF     (base 16)            Velvac Incorporated\r
-                               2405 S. Calhoun Road\r
-                               New Berlin  WI  53151-2709\r
-                               US\r
+70-B3-D5   (hex)               EDF Lab\r
+BDC000-BDCFFF     (base 16)            EDF Lab\r
+                               7 Bd Gaspard Monge\r
+                               PALAISEAU    91120\r
+                               FR\r
 \r
-70-B3-D5   (hex)               Connido Limited\r
-71D000-71DFFF     (base 16)            Connido Limited\r
-                               35 Kingsland Road\r
-                               London    E2 8AA\r
+70-B3-D5   (hex)               EarTex\r
+627000-627FFF     (base 16)            EarTex\r
+                               41 Corsham Street\r
+                               London  England  N1 6DR\r
                                GB\r
 \r
+70-B3-D5   (hex)               PANASONIC LIFE SOLUTIONS ELEKTRİK SANAYİ VE TİCARE\r
+EC8000-EC8FFF     (base 16)            PANASONIC LIFE SOLUTIONS ELEKTRİK SANAYİ VE TİCARE\r
+                               Abdurrahmangazi Mah. Ebubekir Cad. No:44 Sancaktepe\r
+                               Istanbul    34887\r
+                               TR\r
+\r
+70-B3-D5   (hex)               VALEO CDA\r
+51F000-51FFFF     (base 16)            VALEO CDA\r
+                               Hummendorfer Str 74\r
+                               Kronach    96317\r
+                               DE\r
+\r
+70-B3-D5   (hex)               Telco Antennas Pty Ltd\r
+256000-256FFF     (base 16)            Telco Antennas Pty Ltd\r
+                               5/1 Roebuck St\r
+                               Hemmant  QLD  4154\r
+                               AU\r
+\r
+70-B3-D5   (hex)               enders GmbH\r
+D3E000-D3EFFF     (base 16)            enders GmbH\r
+                               Sonnenstraße 39\r
+                               Ergolding    84030\r
+                               DE\r
+\r
+70-B3-D5   (hex)               DaiShin Information & Communications Co., Ltd\r
+560000-560FFF     (base 16)            DaiShin Information & Communications Co., Ltd\r
+                               DaiShin I&C Bldg., 205-28, Gasan digital 1-ro Geumcheon-gu\r
+                               Seoul  Seoul  08501\r
+                               KR\r
+\r
+70-B3-D5   (hex)               ULSee Inc\r
+1B7000-1B7FFF     (base 16)            ULSee Inc\r
+                               9F, No.97, Jingye 1st Road  Zhongshan Dist.,Taipei City 104451 Taiwan\r
+                               Taipei  Taipei  104451\r
+                               TW\r
+\r
+70-B3-D5   (hex)               Nexus Electric S.A.\r
+CD8000-CD8FFF     (base 16)            Nexus Electric S.A.\r
+                               Serú 63\r
+                               Mendoza  Mendoza  M5500FNA\r
+                               AR\r
+\r
 70-B3-D5   (hex)               EVCO SPA\r
 A80000-A80FFF     (base 16)            EVCO SPA\r
                                VIA FELTRE N. 81\r
@@ -8420,12 +8468,6 @@ C78000-C78FFF     (base 16)              NETA Elektronik AS
                                Istanbul  -  34775\r
                                TR\r
 \r
-70-B3-D5   (hex)               Farmobile\r
-5A8000-5A8FFF     (base 16)            Farmobile\r
-                               18132 Melrose Dr.\r
-                               Bucyrus  KS  66013\r
-                               \r
-\r
 70-B3-D5   (hex)               Nautel Limted\r
 EB0000-EB0FFF     (base 16)            Nautel Limted\r
                                10089 Peggy's Cove Road\r
@@ -9047,30 +9089,24 @@ A7F000-A7FFFF     (base 16)             AUDIO VISUAL DIGITAL SYSTEMS
                                Bergisch Gladbach  North Rhine-Westphalia  51465\r
                                DE\r
 \r
-70-B3-D5   (hex)               Cetitec GmbH\r
-B36000-B36FFF     (base 16)            Cetitec GmbH\r
-                               Mannheimer Strasse 17\r
-                               Pforzheim    75179\r
-                               DE\r
-\r
 70-B3-D5   (hex)               DONG IL VISION Co., Ltd.\r
 038000-038FFF     (base 16)            DONG IL VISION Co., Ltd.\r
                                #9 Ftrek tower, 11-25, Simindaero 327 beongil,Dongan-gu\r
                                Anyangi-Si  Gyeonggi-Do  14055\r
                                KR\r
 \r
+70-B3-D5   (hex)               Cetitec GmbH\r
+B36000-B36FFF     (base 16)            Cetitec GmbH\r
+                               Mannheimer Strasse 17\r
+                               Pforzheim    75179\r
+                               DE\r
+\r
 70-B3-D5   (hex)               Kamacho Scale Co., Ltd.\r
 385000-385FFF     (base 16)            Kamacho Scale Co., Ltd.\r
                                2246 Mure\r
                                Takamatsu-shi  Kagawa-ken  761-0196\r
                                JP\r
 \r
-70-B3-D5   (hex)               Visual Robotics\r
-0F4000-0F4FFF     (base 16)            Visual Robotics\r
-                               38 Irving Rd\r
-                               Eugene  OR  97404\r
-                               US\r
-\r
 70-B3-D5   (hex)               Vessel Technology Ltd\r
 44D000-44DFFF     (base 16)            Vessel Technology Ltd\r
                                Banchory Business Centre, Burn O'Bennie Road\r
@@ -9083,11 +9119,11 @@ FA8000-FA8FFF     (base 16)             Munters
                                Pethch Tikva  Israel  4959376\r
                                IL\r
 \r
-70-B3-D5   (hex)               TEX COMPUTER SRL \r
-6C2000-6C2FFF     (base 16)            TEX COMPUTER SRL \r
-                               VIA MERCADANTE 35\r
-                               CATTOLICA   RIMINI   47841\r
-                               IT\r
+70-B3-D5   (hex)               Visual Robotics\r
+0F4000-0F4FFF     (base 16)            Visual Robotics\r
+                               38 Irving Rd\r
+                               Eugene  OR  97404\r
+                               US\r
 \r
 70-B3-D5   (hex)               TangRen C&S CO., Ltd\r
 3FC000-3FCFFF     (base 16)            TangRen C&S CO., Ltd\r
@@ -9095,29 +9131,29 @@ FA8000-FA8FFF     (base 16)             Munters
                                Shenzhen  Guangdong  518052\r
                                CN\r
 \r
+70-B3-D5   (hex)               TEX COMPUTER SRL \r
+6C2000-6C2FFF     (base 16)            TEX COMPUTER SRL \r
+                               VIA MERCADANTE 35\r
+                               CATTOLICA   RIMINI   47841\r
+                               IT\r
+\r
 70-B3-D5   (hex)               LOTES TM OOO\r
 EA5000-EA5FFF     (base 16)            LOTES TM OOO\r
                                Barklaya 22, str.1\r
                                Moscow    121309\r
                                RU\r
 \r
-70-B3-D5   (hex)               Yi An Electronics Co., Ltd\r
-F28000-F28FFF     (base 16)            Yi An Electronics Co., Ltd\r
-                               5F.-2, No. 81, Sec. 1, Xintai 5th Rd., Xizhi Dist\r
-                                New Taipei City    22101\r
-                               TW\r
-\r
 70-B3-D5   (hex)               Ariston Thermo s.p.a.\r
 3D6000-3D6FFF     (base 16)            Ariston Thermo s.p.a.\r
                                Via Aristide Merloni 45\r
                                Fabriano  Ancona  60044\r
                                IT\r
 \r
-70-B3-D5   (hex)               MG s.r.l.\r
-130000-130FFF     (base 16)            MG s.r.l.\r
-                               via Monte Bianco, 1\r
-                               Solbiate Olona  VA  21058\r
-                               IT\r
+70-B3-D5   (hex)               Yi An Electronics Co., Ltd\r
+F28000-F28FFF     (base 16)            Yi An Electronics Co., Ltd\r
+                               5F.-2, No. 81, Sec. 1, Xintai 5th Rd., Xizhi Dist\r
+                                New Taipei City    22101\r
+                               TW\r
 \r
 70-B3-D5   (hex)               DORLET SAU\r
 639000-639FFF     (base 16)            DORLET SAU\r
@@ -9131,6 +9167,18 @@ F28000-F28FFF     (base 16)              Yi An Electronics Co., Ltd
                                Ryazan    390048\r
                                RU\r
 \r
+70-B3-D5   (hex)               MG s.r.l.\r
+130000-130FFF     (base 16)            MG s.r.l.\r
+                               via Monte Bianco, 1\r
+                               Solbiate Olona  VA  21058\r
+                               IT\r
+\r
+70-B3-D5   (hex)               Postmark Incorporated \r
+CBB000-CBBFFF     (base 16)            Postmark Incorporated \r
+                               3197 Duncan Lane\r
+                               San Luis Obispo  CA  93401\r
+                               US\r
+\r
 70-B3-D5   (hex)               Glory Technology Service Inc.\r
 801000-801FFF     (base 16)            Glory Technology Service Inc.\r
                                3F., No.43-1, Ln. 11, Sec. 6, Minquan E. Rd\r
@@ -9143,12 +9191,6 @@ F28000-F28FFF     (base 16)              Yi An Electronics Co., Ltd
                                Gifu-shi  Gifu  500-8122\r
                                JP\r
 \r
-70-B3-D5   (hex)               Postmark Incorporated \r
-CBB000-CBBFFF     (base 16)            Postmark Incorporated \r
-                               3197 Duncan Lane\r
-                               San Luis Obispo  CA  93401\r
-                               US\r
-\r
 70-B3-D5   (hex)               Abbott Diagnostics Technologies AS\r
 53F000-53FFFF     (base 16)            Abbott Diagnostics Technologies AS\r
                                P. O.  Box 6863 Rodeløkka\r
@@ -9173,12 +9215,6 @@ CBB000-CBBFFF     (base 16)              Postmark Incorporated
                                VILLA BARTOLOMEA  IT  37049\r
                                IT\r
 \r
-70-B3-D5   (hex)               Global Power Products\r
-3B1000-3B1FFF     (base 16)            Global Power Products\r
-                               225 Arnold Road\r
-                               Lawrenceville    30044\r
-                               US\r
-\r
 70-B3-D5   (hex)               Sankyo Intec Co,ltd\r
 E7F000-E7FFFF     (base 16)            Sankyo Intec Co,ltd\r
                                127 Tokimata\r
@@ -9191,6 +9227,18 @@ E7F000-E7FFFF     (base 16)              Sankyo Intec Co,ltd
                                waltham  MA  02453\r
                                US\r
 \r
+70-B3-D5   (hex)               Global Power Products\r
+3B1000-3B1FFF     (base 16)            Global Power Products\r
+                               225 Arnold Road\r
+                               Lawrenceville    30044\r
+                               US\r
+\r
+70-B3-D5   (hex)               Nidec asi spa\r
+D88000-D88FFF     (base 16)            Nidec asi spa\r
+                               s.s11 , ca sordis 4\r
+                               Montebello Vicentino  vicenza  36054\r
+                               IT\r
+\r
 70-B3-D5   (hex)               EnergizeEV\r
 EB6000-EB6FFF     (base 16)            EnergizeEV\r
                                #160, 1684 Decoto Road\r
@@ -9203,12 +9251,6 @@ F66000-F66FFF     (base 16)              Seznam.cz, a.s., CZ26168685
                                Praha  Czech Republic  15000\r
                                CZ\r
 \r
-70-B3-D5   (hex)               Nidec asi spa\r
-D88000-D88FFF     (base 16)            Nidec asi spa\r
-                               s.s11 , ca sordis 4\r
-                               Montebello Vicentino  vicenza  36054\r
-                               IT\r
-\r
 70-B3-D5   (hex)               Frog Cellsat Limited\r
 C5E000-C5EFFF     (base 16)            Frog Cellsat Limited\r
                                D-213, Sector-63, Noida\r
@@ -9251,11 +9293,11 @@ C5E000-C5EFFF     (base 16)             Frog Cellsat Limited
                                Shanghai  Shanghai  201114\r
                                CN\r
 \r
-70-B3-D5   (hex)               NooliTIC\r
-E51000-E51FFF     (base 16)            NooliTIC\r
-                               165 avenue de bretagne\r
-                               LILLE    59000\r
-                               FR\r
+70-B3-D5   (hex)               Sphere of economical technologies Ltd\r
+1C1000-1C1FFF     (base 16)            Sphere of economical technologies Ltd\r
+                               132, 7-ya Liniya Str.\r
+                               Omsk  Omskaya oblast  644021\r
+                               RU\r
 \r
 70-B3-D5   (hex)               Simplified MFG\r
 66F000-66FFFF     (base 16)            Simplified MFG\r
@@ -9263,11 +9305,11 @@ E51000-E51FFF     (base 16)             NooliTIC
                                Mesa  AZ  85206\r
                                US\r
 \r
-70-B3-D5   (hex)               Sphere of economical technologies Ltd\r
-1C1000-1C1FFF     (base 16)            Sphere of economical technologies Ltd\r
-                               132, 7-ya Liniya Str.\r
-                               Omsk  Omskaya oblast  644021\r
-                               RU\r
+70-B3-D5   (hex)               NooliTIC\r
+E51000-E51FFF     (base 16)            NooliTIC\r
+                               165 avenue de bretagne\r
+                               LILLE    59000\r
+                               FR\r
 \r
 70-B3-D5   (hex)               Scenario Automation\r
 43C000-43CFFF     (base 16)            Scenario Automation\r
@@ -9305,18 +9347,18 @@ D35000-D35FFF     (base 16)             King-On Technology Ltd.
                                New Taipei City  Taiwan  23143\r
                                TW\r
 \r
-70-B3-D5   (hex)               BRS Sistemas Eletrônicos\r
-3CD000-3CDFFF     (base 16)            BRS Sistemas Eletrônicos\r
-                               Rua Gomes de Freitas, 491 / 204\r
-                               Porto Alegre  RS  91380-000\r
-                               BR\r
-\r
 70-B3-D5   (hex)               Nuance Hearing Ltd.\r
 AE4000-AE4FFF     (base 16)            Nuance Hearing Ltd.\r
                                Raoul Wallenberg 24, Building A1, Floor 3\r
                                Tel Aviv    6971920\r
                                IL\r
 \r
+70-B3-D5   (hex)               BRS Sistemas Eletrônicos\r
+3CD000-3CDFFF     (base 16)            BRS Sistemas Eletrônicos\r
+                               Rua Gomes de Freitas, 491 / 204\r
+                               Porto Alegre  RS  91380-000\r
+                               BR\r
+\r
 70-B3-D5   (hex)               HONG JIANG ELECTRONICS CO., LTD.\r
 E64000-E64FFF     (base 16)            HONG JIANG ELECTRONICS CO., LTD.\r
                                9F, No. 649-3, Zhong Zheng Rd.,, Xin Zhuang Dist., New Taipei City,, TAIWAN(R.O.C.)\r
@@ -9329,18 +9371,18 @@ E64000-E64FFF     (base 16)             HONG JIANG ELECTRONICS CO., LTD.
                                TianHe  GuangZhou  515800\r
                                CN\r
 \r
-70-B3-D5   (hex)               Malin Space Science System\r
-FE5000-FE5FFF     (base 16)            Malin Space Science System\r
-                               5880 Pacific Center Blvd \r
-                               San Diego  CA  92121\r
-                               US\r
-\r
 70-B3-D5   (hex)               OLEDCOMM\r
 7D3000-7D3FFF     (base 16)            OLEDCOMM\r
                                10-12 avenue de l'Europe\r
                                Vélizy Villacoublay  Ile de France  78140\r
                                FR\r
 \r
+70-B3-D5   (hex)               Malin Space Science System\r
+FE5000-FE5FFF     (base 16)            Malin Space Science System\r
+                               5880 Pacific Center Blvd \r
+                               San Diego  CA  92121\r
+                               US\r
+\r
 70-B3-D5   (hex)               Wexiodisk AB\r
 905000-905FFF     (base 16)            Wexiodisk AB\r
                                Mardvagen 4\r
@@ -9383,12 +9425,6 @@ F02000-F02FFF     (base 16)              ABECO Industrie Computer GmbH
                                Straelen  NRW  47638\r
                                DE\r
 \r
-70-B3-D5   (hex)               Abbott Diagnostics Technologies AS\r
-DDE000-DDEFFF     (base 16)            Abbott Diagnostics Technologies AS\r
-                               P. O.  Box 6863 Rodeløkka\r
-                               Oslo  Oslo  0504\r
-                               NO\r
-\r
 70-B3-D5   (hex)               PuS GmbH und Co. KG\r
 09D000-09DFFF     (base 16)            PuS GmbH und Co. KG\r
                                Hainstr. 13\r
@@ -9407,6 +9443,12 @@ B22000-B22FFF     (base 16)              YUYAMA MFG Co.,Ltd
                                MEISHINGUCHI,TOYONAKA  OSAKA  561-0841\r
                                JP\r
 \r
+70-B3-D5   (hex)               Abbott Diagnostics Technologies AS\r
+DDE000-DDEFFF     (base 16)            Abbott Diagnostics Technologies AS\r
+                               P. O.  Box 6863 Rodeløkka\r
+                               Oslo  Oslo  0504\r
+                               NO\r
+\r
 70-B3-D5   (hex)               Laser Imagineering Vertriebs GmbH\r
 3EE000-3EEFFF     (base 16)            Laser Imagineering Vertriebs GmbH\r
                                Rudolf-Diesel-Weg 5\r
@@ -9488,17 +9530,23 @@ A31000-A31FFF     (base 16)             Private
                                London    E1 2JH\r
                                GB\r
 \r
+70-B3-D5   (hex)               BIRTECH TECHNOLOGY\r
+E65000-E65FFF     (base 16)            BIRTECH TECHNOLOGY\r
+                               Ak is Business Center, Tuzla, Istanbul / Turkey\r
+                               Istanbul  Tuzla  34944\r
+                               TR\r
+\r
 70-B3-D5   (hex)               SUN ELECTRONICS CO.,LTD.\r
 D82000-D82FFF     (base 16)            SUN ELECTRONICS CO.,LTD.\r
                                667-2,Furugori,Misato-machi,Kodama-gun\r
                                Saitama-ken    367-0111\r
                                JP\r
 \r
-70-B3-D5   (hex)               BIRTECH TECHNOLOGY\r
-E65000-E65FFF     (base 16)            BIRTECH TECHNOLOGY\r
-                               Ak is Business Center, Tuzla, Istanbul / Turkey\r
-                               Istanbul  Tuzla  34944\r
-                               TR\r
+70-B3-D5   (hex)               xTom GmbH\r
+8B5000-8B5FFF     (base 16)            xTom GmbH\r
+                               Kreuzstr.60\r
+                               Duesseldorf  NRW  40210\r
+                               DE\r
 \r
 70-B3-D5   (hex)               Transit Solutions, LLC.\r
 E68000-E68FFF     (base 16)            Transit Solutions, LLC.\r
@@ -9512,12 +9560,6 @@ E68000-E68FFF     (base 16)              Transit Solutions, LLC.
                                Tel Aviv    6971920\r
                                IL\r
 \r
-70-B3-D5   (hex)               xTom GmbH\r
-8B5000-8B5FFF     (base 16)            xTom GmbH\r
-                               Kreuzstr.60\r
-                               Duesseldorf  NRW  40210\r
-                               DE\r
-\r
 70-B3-D5   (hex)               E-Controls\r
 6E2000-6E2FFF     (base 16)            E-Controls\r
                                PASSATGE GARROTXA, 6\r
@@ -9525,13 +9567,13 @@ E68000-E68FFF     (base 16)             Transit Solutions, LLC.
                                ES\r
 \r
 70-B3-D5   (hex)               Potter Electric Signal Co. LLC\r
-B9A000-B9AFFF     (base 16)            Potter Electric Signal Co. LLC\r
+1BE000-1BEFFF     (base 16)            Potter Electric Signal Co. LLC\r
                                1609 Park 370 Place\r
                                Hazelwood  MO  63042\r
                                US\r
 \r
 70-B3-D5   (hex)               Potter Electric Signal Co. LLC\r
-1BE000-1BEFFF     (base 16)            Potter Electric Signal Co. LLC\r
+B9A000-B9AFFF     (base 16)            Potter Electric Signal Co. LLC\r
                                1609 Park 370 Place\r
                                Hazelwood  MO  63042\r
                                US\r
@@ -9542,26 +9584,86 @@ FAC000-FACFFF     (base 16)             Integrated Protein Technologies, Inc.
                                Evanston  IL  60204\r
                                US\r
 \r
-70-B3-D5   (hex)               System West dba ICS Electronics\r
-E06000-E06FFF     (base 16)            System West dba ICS Electronics\r
-                               7034 Commerce Circle Suite A\r
-                               Pleasanton  CA  94588\r
-                               US\r
-\r
-70-B3-D5   (hex)               Nevotek\r
-358000-358FFF     (base 16)            Nevotek\r
-                               5201 Great America Pkwy ste 320\r
-                               Santa Clara  CA  95054\r
-                               US\r
+70-B3-D5   (hex)               ABB\r
+C47000-C47FFF     (base 16)            ABB\r
+                               Fulachstrasse 150\r
+                               Schaffhausen    8200\r
+                               CH\r
 \r
-70-B3-D5   (hex)               Arctos Showlasertechnik GmbH\r
-D02000-D02FFF     (base 16)            Arctos Showlasertechnik GmbH\r
-                               Sägewerkstraße 16\r
-                               Saaldorf-Surheim  Bavaria  83416\r
+70-B3-D5   (hex)               GETT Geraetetechnik GmbH\r
+290000-290FFF     (base 16)            GETT Geraetetechnik GmbH\r
+                               Mittlerer Ring 1\r
+                               Treuen    08233\r
                                DE\r
 \r
-70-B3-D5   (hex)               Gremesh.com\r
-218000-218FFF     (base 16)            Gremesh.com\r
+70-B3-D5   (hex)               ACRIOS Systems s.r.o.\r
+CEE000-CEEFFF     (base 16)            ACRIOS Systems s.r.o.\r
+                               Tvar?žkova, 2738\r
+                               Rožnov pod Radhošt?m    75661\r
+                               CZ\r
+\r
+70-B3-D5   (hex)               CREATIVE\r
+A65000-A65FFF     (base 16)            CREATIVE\r
+                               801 Chenil Bldg. 266 Hwagokro,\r
+                               Gangseogu  seoul  07673\r
+                               KR\r
+\r
+70-B3-D5   (hex)               BAE Systems\r
+AFC000-AFCFFF     (base 16)            BAE Systems\r
+                               1098 Clark Street\r
+                               Endicott  NY  13760\r
+                               US\r
+\r
+70-B3-D5   (hex)               Samwell International Inc\r
+B42000-B42FFF     (base 16)            Samwell International Inc\r
+                               No. 317-1, Sec.2, An Kang Rd., Hsintien Dist\r
+                               New Taipei City    231\r
+                               TW\r
+\r
+70-B3-D5   (hex)               DAYOUPLUS\r
+474000-474FFF     (base 16)            DAYOUPLUS\r
+                               3F 509, Dunchon-daero, Jungwon-gu, Seongnam-si, Gyeonggi-do, Republic of Korea\r
+                               Seongnam-si  Gyeonggi-do  13217\r
+                               KR\r
+\r
+70-B3-D5   (hex)               Guangzhou Xianhe Technology Engineering Co., Ltd\r
+C13000-C13FFF     (base 16)            Guangzhou Xianhe Technology Engineering Co., Ltd\r
+                               No. 30-6, Jiantai Road, Dongyong Town, Nansha District\r
+                               Guangzhou  Guangdong  511453\r
+                               CN\r
+\r
+70-B3-D5   (hex)               Lightside Instruments AS\r
+EC2000-EC2FFF     (base 16)            Lightside Instruments AS\r
+                               Thorvald Meyers gate 34A\r
+                               Oslo    0555\r
+                               NO\r
+\r
+70-B3-D5   (hex)               Farmobile, LLC\r
+5A8000-5A8FFF     (base 16)            Farmobile, LLC\r
+                               4001 West 114th Street  Suite 300\r
+                               Leawood  KS  66211\r
+                               US\r
+\r
+70-B3-D5   (hex)               System West dba ICS Electronics\r
+E06000-E06FFF     (base 16)            System West dba ICS Electronics\r
+                               7034 Commerce Circle Suite A\r
+                               Pleasanton  CA  94588\r
+                               US\r
+\r
+70-B3-D5   (hex)               Nevotek\r
+358000-358FFF     (base 16)            Nevotek\r
+                               5201 Great America Pkwy ste 320\r
+                               Santa Clara  CA  95054\r
+                               US\r
+\r
+70-B3-D5   (hex)               Arctos Showlasertechnik GmbH\r
+D02000-D02FFF     (base 16)            Arctos Showlasertechnik GmbH\r
+                               Sägewerkstraße 16\r
+                               Saaldorf-Surheim  Bavaria  83416\r
+                               DE\r
+\r
+70-B3-D5   (hex)               Gremesh.com\r
+218000-218FFF     (base 16)            Gremesh.com\r
                                Beursplein 37\r
                                Rotterdam  Zuid-Holland  3011 AA\r
                                NL\r
@@ -13745,6 +13847,18 @@ F23000-F23FFF     (base 16)            Lyse AS
                                Bad Marienberg  Rheinland-Pfalz  56470\r
                                DE\r
 \r
+70-B3-D5   (hex)               Walton Hi-Tech Industries Ltd.\r
+E5C000-E5CFFF     (base 16)            Walton Hi-Tech Industries Ltd.\r
+                               HOLDING NO. I-65/2, WARD NO-07\r
+                               CHANDRA, KALIAKOIR, GAZIPUR.    1750\r
+                               BD\r
+\r
+70-B3-D5   (hex)               Flextronics International Kft\r
+699000-699FFF     (base 16)            Flextronics International Kft\r
+                               38. Zrinyi Str.\r
+                               Zalaegerszeg  Zala  8900\r
+                               HU\r
+\r
 70-B3-D5   (hex)               JFA Electronics Industry and Commerce EIRELI\r
 5F7000-5F7FFF     (base 16)            JFA Electronics Industry and Commerce EIRELI\r
                                Rua Flor das Pedras, 175\r
@@ -13757,12 +13871,6 @@ F23000-F23FFF     (base 16)            Lyse AS
                                Boonton Township  NJ  07005\r
                                US\r
 \r
-70-B3-D5   (hex)               Walton Hi-Tech Industries Ltd.\r
-E5C000-E5CFFF     (base 16)            Walton Hi-Tech Industries Ltd.\r
-                               HOLDING NO. I-65/2, WARD NO-07\r
-                               CHANDRA, KALIAKOIR, GAZIPUR.    1750\r
-                               BD\r
-\r
 70-B3-D5   (hex)               aquila biolabs GmbH\r
 7DB000-7DBFFF     (base 16)            aquila biolabs GmbH\r
                                Arnold-Sommerfeld-Ring 2\r
@@ -13775,12 +13883,6 @@ C82000-C82FFF     (base 16)            Sicon srl
                                Isola Vicentina  Vicenza  36033\r
                                IT\r
 \r
-70-B3-D5   (hex)               Flextronics International Kft\r
-699000-699FFF     (base 16)            Flextronics International Kft\r
-                               38. Zrinyi Str.\r
-                               Zalaegerszeg  Zala  8900\r
-                               HU\r
-\r
 70-B3-D5   (hex)               LGE\r
 DAE000-DAEFFF     (base 16)            LGE\r
                                10, Magokjungang 10-ro, Gangseo-gu\r
@@ -13835,6 +13937,12 @@ F64000-F64FFF     (base 16)            silicom
                                Borehamwood  Hert  WD6 1NA\r
                                GB\r
 \r
+70-B3-D5   (hex)               Kospel S.A.\r
+249000-249FFF     (base 16)            Kospel S.A.\r
+                               Olchowa 1\r
+                               Koszalin    75-136\r
+                               PL\r
+\r
 70-B3-D5   (hex)               Microchip Technology Germany II GmbH&Co.KG\r
 77F000-77FFFF     (base 16)            Microchip Technology Germany II GmbH&Co.KG\r
                                Emmy-Noether-Straße 14\r
@@ -13847,12 +13955,6 @@ C98000-C98FFF     (base 16)            Trust Automation
                                San Luis Obispo  CA  93401\r
                                US\r
 \r
-70-B3-D5   (hex)               Kospel S.A.\r
-249000-249FFF     (base 16)            Kospel S.A.\r
-                               Olchowa 1\r
-                               Koszalin    75-136\r
-                               PL\r
-\r
 70-B3-D5   (hex)               Coheros Oy\r
 D2E000-D2EFFF     (base 16)            Coheros Oy\r
                                Tammukkakatu 6\r
@@ -13865,18 +13967,6 @@ E24000-E24FFF     (base 16)            Gogo Business Aviation
                                Broomfield  CO  80021\r
                                US\r
 \r
-70-B3-D5   (hex)               Taejin InfoTech\r
-A75000-A75FFF     (base 16)            Taejin InfoTech\r
-                               40, Imi-ro, A-411\r
-                               Uiwang-si  Gyeonggi-do  16006\r
-                               KR\r
-\r
-70-B3-D5   (hex)               ARCLAN'SYSTEM\r
-25C000-25CFFF     (base 16)            ARCLAN'SYSTEM\r
-                               1140 rue Ampère - Actimart II - Lot 9\r
-                               AIX EN PROVENCE    13290\r
-                               FR\r
-\r
 70-B3-D5   (hex)               Smart Embedded Systems\r
 A09000-A09FFF     (base 16)            Smart Embedded Systems\r
                                6701  Koll Center Parkway #250\r
@@ -13889,6 +13979,18 @@ F6A000-F6AFFF     (base 16)            Guan Show Technologe Co., Ltd.
                                 Kaohsiung City     802\r
                                TW\r
 \r
+70-B3-D5   (hex)               Taejin InfoTech\r
+A75000-A75FFF     (base 16)            Taejin InfoTech\r
+                               40, Imi-ro, A-411\r
+                               Uiwang-si  Gyeonggi-do  16006\r
+                               KR\r
+\r
+70-B3-D5   (hex)               ARCLAN'SYSTEM\r
+25C000-25CFFF     (base 16)            ARCLAN'SYSTEM\r
+                               1140 rue Ampère - Actimart II - Lot 9\r
+                               AIX EN PROVENCE    13290\r
+                               FR\r
+\r
 70-B3-D5   (hex)               LLC Sarov Innovative Technologies (WIZOLUTION)\r
 50F000-50FFFF     (base 16)            LLC Sarov Innovative Technologies (WIZOLUTION)\r
                                RUSSIAN FEDERATION, Nizhny Novgorod region, Varlamovskaya road, 7, build 2\r
@@ -13901,6 +14003,12 @@ A77000-A77FFF     (base 16)            SPX Radiodetection
                                Bristol  Avon  BS14 0AF\r
                                GB\r
 \r
+70-B3-D5   (hex)               INVISSYS\r
+AD4000-AD4FFF     (base 16)            INVISSYS\r
+                               25 rue marcel issartier\r
+                               merignac    33700\r
+                               FR\r
+\r
 70-B3-D5   (hex)               LM-Instruments Oy\r
 5AC000-5ACFFF     (base 16)            LM-Instruments Oy\r
                                Norrbyn rantatie 8\r
@@ -13913,28 +14021,16 @@ DBB000-DBBFFF     (base 16)           Fuhr GmbH Filtertechnik
                                Klein-Winternheim  Rheinland-Pfalz  55270\r
                                DE\r
 \r
-70-B3-D5   (hex)               Sanmina Israel\r
-C18000-C18FFF     (base 16)            Sanmina Israel\r
-                               Koren Industrial Zone , POBox 102\r
-                               Maalot  Israel  2101002\r
-                               IL\r
-\r
-70-B3-D5   (hex)               INVISSYS\r
-AD4000-AD4FFF     (base 16)            INVISSYS\r
-                               25 rue marcel issartier\r
-                               merignac    33700\r
-                               FR\r
-\r
 70-B3-D5   (hex)               Panoramic Power\r
 669000-669FFF     (base 16)            Panoramic Power\r
                                15 Atir Yeda\r
                                Kfar Saba    4464312\r
                                IL\r
 \r
-70-B3-D5   (hex)               Panoramic Power\r
-06D000-06DFFF     (base 16)            Panoramic Power\r
-                               Atir Yeda 15\r
-                               Kfar Saba    4464312\r
+70-B3-D5   (hex)               Sanmina Israel\r
+C18000-C18FFF     (base 16)            Sanmina Israel\r
+                               Koren Industrial Zone , POBox 102\r
+                               Maalot  Israel  2101002\r
                                IL\r
 \r
 70-B3-D5   (hex)               Avlinkpro\r
@@ -13943,11 +14039,11 @@ AD4000-AD4FFF     (base 16)           INVISSYS
                                Totowa  NJ  07512\r
                                US\r
 \r
-70-B3-D5   (hex)               DECYBEN\r
-683000-683FFF     (base 16)            DECYBEN\r
-                               170 Rue Raymond Losserand\r
-                               Paris    75014\r
-                               FR\r
+70-B3-D5   (hex)               Panoramic Power\r
+06D000-06DFFF     (base 16)            Panoramic Power\r
+                               Atir Yeda 15\r
+                               Kfar Saba    4464312\r
+                               IL\r
 \r
 70-B3-D5   (hex)               C4I Systems Ltd\r
 5C6000-5C6FFF     (base 16)            C4I Systems Ltd\r
@@ -13961,11 +14057,11 @@ C36000-C36FFF     (base 16)           Knowledge Resources GmbH
                                Bsel  BS  4057\r
                                CH\r
 \r
-70-B3-D5   (hex)               CoreEL Technologies Pvt Ltd\r
-10D000-10DFFF     (base 16)            CoreEL Technologies Pvt Ltd\r
-                               #21, 7th Main, 1st Block ,Koramangala, \r
-                               Bangalore  Karnataka  560034\r
-                               IN\r
+70-B3-D5   (hex)               DECYBEN\r
+683000-683FFF     (base 16)            DECYBEN\r
+                               170 Rue Raymond Losserand\r
+                               Paris    75014\r
+                               FR\r
 \r
 70-B3-D5   (hex)               adnexo GmbH\r
 4E3000-4E3FFF     (base 16)            adnexo GmbH\r
@@ -13985,6 +14081,12 @@ C23000-C23FFF     (base 16)            Sumitomo Heavy Industries, Ltd.
                                Moscow  Moscow  109380\r
                                RU\r
 \r
+70-B3-D5   (hex)               CoreEL Technologies Pvt Ltd\r
+10D000-10DFFF     (base 16)            CoreEL Technologies Pvt Ltd\r
+                               #21, 7th Main, 1st Block ,Koramangala, \r
+                               Bangalore  Karnataka  560034\r
+                               IN\r
+\r
 70-B3-D5   (hex)               Shenzhen Vikings Technology Co., Ltd.\r
 46A000-46AFFF     (base 16)            Shenzhen Vikings Technology Co., Ltd.\r
                                Floor 3, building 2, tiantong industrial park, gaofeng community, dalang street, longhua district\r
@@ -13997,18 +14099,18 @@ C23000-C23FFF     (base 16)           Sumitomo Heavy Industries, Ltd.
                                Ho Chi Minh City  Ho Chi Minh  70000\r
                                VN\r
 \r
-70-B3-D5   (hex)               aelettronica group srl\r
-AD9000-AD9FFF     (base 16)            aelettronica group srl\r
-                               via matteotti,22\r
-                               gaggiano  milano  20083\r
-                               IT\r
-\r
 70-B3-D5   (hex)               C W F Hamilton & Co Ltd\r
 82A000-82AFFF     (base 16)            C W F Hamilton & Co Ltd\r
                                20 Lunns Road, Middleton\r
                                Christchurch  Canterbury  8024\r
                                NZ\r
 \r
+70-B3-D5   (hex)               aelettronica group srl\r
+AD9000-AD9FFF     (base 16)            aelettronica group srl\r
+                               via matteotti,22\r
+                               gaggiano  milano  20083\r
+                               IT\r
+\r
 70-B3-D5   (hex)               Wuhan Xingtuxinke ELectronic Co.,Ltd\r
 165000-165FFF     (base 16)            Wuhan Xingtuxinke ELectronic Co.,Ltd\r
                                NO.C3-8F,Software Park,Optics Valley,East Lake Development Zone,Wuhan,Hubei,China\r
@@ -14057,18 +14159,18 @@ B90000-B90FFF     (base 16)           Amico Corporation
                                Seung-nam Si  Gyeonggi-Do  13488\r
                                KR\r
 \r
-70-B3-D5   (hex)               TIAMA\r
-8A1000-8A1FFF     (base 16)            TIAMA\r
-                               ZA des Plattes - 1 Chemin des Plattes\r
-                               VOURLES     69390 \r
-                               FR\r
-\r
 70-B3-D5   (hex)               Honeywell/Intelligrated\r
 94C000-94CFFF     (base 16)            Honeywell/Intelligrated\r
                                10045 International Blvd\r
                                Cincinnati  OH  45246\r
                                US\r
 \r
+70-B3-D5   (hex)               TIAMA\r
+8A1000-8A1FFF     (base 16)            TIAMA\r
+                               ZA des Plattes - 1 Chemin des Plattes\r
+                               VOURLES     69390 \r
+                               FR\r
+\r
 70-B3-D5   (hex)               LARIMART SPA\r
 536000-536FFF     (base 16)            LARIMART SPA\r
                                VIA DI TORREVECCHIA\r
@@ -14087,18 +14189,18 @@ EDA000-EDAFFF     (base 16)           Breas Medical AB
                                Mölnlycke    SE-435 33\r
                                SE\r
 \r
-70-B3-D5   (hex)               Packet Power\r
-B54000-B54FFF     (base 16)            Packet Power\r
-                               2716 Summer Str. N.E.\r
-                               Minneapolis  MN  55413\r
-                               US\r
-\r
 70-B3-D5   (hex)               Ketronixs Sdn Bhd\r
 6AC000-6ACFFF     (base 16)            Ketronixs Sdn Bhd\r
                                51-17-B Menara BHL Bank, Jalan Sultan Ahmad Shah\r
                                Georgetown  Penang  10050\r
                                MY\r
 \r
+70-B3-D5   (hex)               Packet Power\r
+B54000-B54FFF     (base 16)            Packet Power\r
+                               2716 Summer Str. N.E.\r
+                               Minneapolis  MN  55413\r
+                               US\r
+\r
 70-B3-D5   (hex)               Alto Aviation\r
 D0F000-D0FFFF     (base 16)            Alto Aviation\r
                                86 Leominster Road\r
@@ -14153,6 +14255,12 @@ E11000-E11FFF     (base 16)            Engage Technologies
                                Brooklyn Park  MN  55428\r
                                US\r
 \r
+70-B3-D5   (hex)               Proemion GmbH\r
+A03000-A03FFF     (base 16)            Proemion GmbH\r
+                               Donaustraße 14\r
+                               Fulda  Hessen  36043\r
+                               DE\r
+\r
 70-B3-D5   (hex)               GPSat Systems\r
 386000-386FFF     (base 16)            GPSat Systems\r
                                Suite 1 22 Aberdeen Road\r
@@ -14165,12 +14273,6 @@ E11000-E11FFF     (base 16)            Engage Technologies
                                Havant  Hampshire  PO9 5TL\r
                                GB\r
 \r
-70-B3-D5   (hex)               Proemion GmbH\r
-A03000-A03FFF     (base 16)            Proemion GmbH\r
-                               Donaustraße 14\r
-                               Fulda  Hessen  36043\r
-                               DE\r
-\r
 70-B3-D5   (hex)               Magenta Labs, Inc.\r
 376000-376FFF     (base 16)            Magenta Labs, Inc.\r
                                164 Townsend Street Unit 1\r
@@ -14237,12 +14339,6 @@ B71000-B71FFF     (base 16)            Optiver Pty Ltd
                                MONTCEAU LES MINES  SAONE ET LOIRE  71300\r
                                FR\r
 \r
-70-B3-D5   (hex)               DAVE SRL\r
-27B000-27BFFF     (base 16)            DAVE SRL\r
-                               VIA TALPONEDO 29/A\r
-                               PORCIA  PORDENONE  330850\r
-                               IT\r
-\r
 70-B3-D5   (hex)               ZAO ZEO\r
 619000-619FFF     (base 16)            ZAO ZEO\r
                                Khachaturiana 14a\r
@@ -14267,6 +14363,12 @@ B71000-B71FFF     (base 16)            Optiver Pty Ltd
                                Shanghai  Shanghai  201612\r
                                CN\r
 \r
+70-B3-D5   (hex)               DAVE SRL\r
+27B000-27BFFF     (base 16)            DAVE SRL\r
+                               VIA TALPONEDO 29/A\r
+                               PORCIA  PORDENONE  330850\r
+                               IT\r
+\r
 70-B3-D5   (hex)               MB connect line GmbH Fernwartungssysteme\r
 8FB000-8FBFFF     (base 16)            MB connect line GmbH Fernwartungssysteme\r
                                Winnettener Straße 6\r
@@ -14285,18 +14387,18 @@ B71000-B71FFF     (base 16)           Optiver Pty Ltd
                                Singapore  Singapore  479237\r
                                SG\r
 \r
-70-B3-D5   (hex)               WILMORE ELECTRONICS COMPANY\r
-ED4000-ED4FFF     (base 16)            WILMORE ELECTRONICS COMPANY\r
-                               607 US HIGHWAY 70A E\r
-                               HILLSBOROUGH  NC  27278-8526\r
-                               US\r
-\r
 70-B3-D5   (hex)               Cubic ITS, Inc. dba GRIDSMART Technologies\r
 CBF000-CBFFFF     (base 16)            Cubic ITS, Inc. dba GRIDSMART Technologies\r
                                10545 Hardin Valley Rd\r
                                Knoxville  TN  37932\r
                                US\r
 \r
+70-B3-D5   (hex)               WILMORE ELECTRONICS COMPANY\r
+ED4000-ED4FFF     (base 16)            WILMORE ELECTRONICS COMPANY\r
+                               607 US HIGHWAY 70A E\r
+                               HILLSBOROUGH  NC  27278-8526\r
+                               US\r
+\r
 70-B3-D5   (hex)               Veo Robotics, Inc.\r
 6C4000-6C4FFF     (base 16)            Veo Robotics, Inc.\r
                                411 Waverley Oaks Rd. Suite 107\r
@@ -14327,18 +14429,6 @@ CDD000-CDDFFF     (base 16)            Teneo IoT B.V.
                                Winterswijk    7101 EK\r
                                NL\r
 \r
-70-B3-D5   (hex)               tetronik GmbH AEN\r
-909000-909FFF     (base 16)            tetronik GmbH AEN\r
-                               Silberbachstr.10\r
-                               Taunusstein  Hessen  65232\r
-                               DE\r
-\r
-70-B3-D5   (hex)               EBE Mobility & Green Energy GmbH\r
-624000-624FFF     (base 16)            EBE Mobility & Green Energy GmbH\r
-                               Prießnitzgasse 16\r
-                               Mödling  Austria  2340\r
-                               AT\r
-\r
 70-B3-D5   (hex)               WuXi anktech Co., Ltd \r
 B61000-B61FFF     (base 16)            WuXi anktech Co., Ltd \r
                                Room1801, No.6 Third Financial Street, Binhu District, Wuxi City, Jiangsu Province\r
@@ -14357,17 +14447,11 @@ AB1000-AB1FFF     (base 16)           ISRV Zrt.
                                Budapest  PEST  1024 \r
                                HU\r
 \r
-70-B3-D5   (hex)               Potter Electric Signal Co. LLC\r
-70C000-70CFFF     (base 16)            Potter Electric Signal Co. LLC\r
-                               1609 Park 370 Place\r
-                               Hazelwood  MO  63042\r
-                               US\r
-\r
-70-B3-D5   (hex)               Potter Electric Signal Co. LLC\r
-C17000-C17FFF     (base 16)            Potter Electric Signal Co. LLC\r
-                               1609 Park 370 Place\r
-                               Hazelwood  MO  63042\r
-                               US\r
+70-B3-D5   (hex)               tetronik GmbH AEN\r
+909000-909FFF     (base 16)            tetronik GmbH AEN\r
+                               Silberbachstr.10\r
+                               Taunusstein  Hessen  65232\r
+                               DE\r
 \r
 70-B3-D5   (hex)               Boundary Technologies Ltd\r
 BBC000-BBCFFF     (base 16)            Boundary Technologies Ltd\r
@@ -14375,11 +14459,59 @@ BBC000-BBCFFF     (base 16)           Boundary Technologies Ltd
                                Edinburgh  Midlothian  EH3 6NL\r
                                GB\r
 \r
-70-B3-D5   (hex)               Microvision\r
-5F5000-5F5FFF     (base 16)            Microvision\r
-                               272, Digital-ro, 1004ho Microvision.\r
-                               Guro-gu, Seoul, Republic of Korea    08848\r
-                               KR\r
+70-B3-D5   (hex)               EBE Mobility & Green Energy GmbH\r
+624000-624FFF     (base 16)            EBE Mobility & Green Energy GmbH\r
+                               Prießnitzgasse 16\r
+                               Mödling  Austria  2340\r
+                               AT\r
+\r
+70-B3-D5   (hex)               Potter Electric Signal Co. LLC\r
+C17000-C17FFF     (base 16)            Potter Electric Signal Co. LLC\r
+                               1609 Park 370 Place\r
+                               Hazelwood  MO  63042\r
+                               US\r
+\r
+70-B3-D5   (hex)               Potter Electric Signal Co. LLC\r
+70C000-70CFFF     (base 16)            Potter Electric Signal Co. LLC\r
+                               1609 Park 370 Place\r
+                               Hazelwood  MO  63042\r
+                               US\r
+\r
+70-B3-D5   (hex)               Field Design Inc.\r
+8D1000-8D1FFF     (base 16)            Field Design Inc.\r
+                               BrightCore 4F, Kita-Shinagaw 5-5-15\r
+                               Shinagawa-ku  Tokyo  1410001\r
+                               JP\r
+\r
+70-B3-D5   (hex)               Microvision\r
+5F5000-5F5FFF     (base 16)            Microvision\r
+                               272, Digital-ro, 1004ho Microvision.\r
+                               Guro-gu, Seoul, Republic of Korea    08848\r
+                               KR\r
+\r
+70-B3-D5   (hex)               Alfa Elettronica srl\r
+BF0000-BF0FFF     (base 16)            Alfa Elettronica srl\r
+                               Via Amman, 35\r
+                               Cordenons  - - not required - -  33084\r
+                               IT\r
+\r
+70-B3-D5   (hex)               Utopi Ltd\r
+80E000-80EFFF     (base 16)            Utopi Ltd\r
+                               3 Candymill Lane\r
+                               Hamilton    ML3 0FD\r
+                               GB\r
+\r
+70-B3-D5   (hex)               PREO INDUSTRIES FAR EAST LTD\r
+8E8000-8E8FFF     (base 16)            PREO INDUSTRIES FAR EAST LTD\r
+                               UNIT B, 26/F, AMIATA IND'L BLDG\r
+                               HONG KONG    NIL\r
+                               HK\r
+\r
+70-B3-D5   (hex)               Entec Solar S.L.\r
+887000-887FFF     (base 16)            Entec Solar S.L.\r
+                               C/ Bambú 4\r
+                               Madrid  Madrid  28036\r
+                               ES\r
 \r
 70-B3-D5   (hex)               YUYAMA MFG Co.,Ltd\r
 BBB000-BBBFFF     (base 16)            YUYAMA MFG Co.,Ltd\r
@@ -17480,12 +17612,6 @@ A51000-A51FFF     (base 16)            RF Code
                                Genova  Italy  16152\r
                                IT\r
 \r
-70-B3-D5   (hex)               Road-iQ, LLC\r
-4DD000-4DDFFF     (base 16)            Road-iQ, LLC\r
-                               2183 Alpine Way\r
-                               Bellingham  WA  98226\r
-                               US\r
-\r
 70-B3-D5   (hex)               LLVISION TECHNOLOGY CO.,LTD\r
 E21000-E21FFF     (base 16)            LLVISION TECHNOLOGY CO.,LTD\r
                                Room302,Building A Fuxing,No.30 He Tao Yuan,Guan Dong Dian Bei Jie\r
@@ -18587,30 +18713,24 @@ BE0000-BE0FFF     (base 16)           Cognosos, Inc.
                                Taoyuan      330\r
                                TW\r
 \r
-70-B3-D5   (hex)               Zhuhai Lonl electric Co.,Ltd.\r
-EA9000-EA9FFF     (base 16)            Zhuhai Lonl electric Co.,Ltd.\r
-                               2nd floor, building B3, nanfang software park, xiangzhou district\r
-                               Zhuhai  Guangdong   519000\r
-                               CN\r
-\r
 70-B3-D5   (hex)               PolyTech A/S\r
 F4C000-F4CFFF     (base 16)            PolyTech A/S\r
                                HI Park 445\r
                                Herning  Herning  7400\r
                                DK\r
 \r
+70-B3-D5   (hex)               Zhuhai Lonl electric Co.,Ltd.\r
+EA9000-EA9FFF     (base 16)            Zhuhai Lonl electric Co.,Ltd.\r
+                               2nd floor, building B3, nanfang software park, xiangzhou district\r
+                               Zhuhai  Guangdong   519000\r
+                               CN\r
+\r
 70-B3-D5   (hex)               Shanghai Tiancheng Communication Technology Corporation\r
 1C3000-1C3FFF     (base 16)            Shanghai Tiancheng Communication Technology Corporation\r
                                No.618,Guangxing Rd.,Songjiang \r
                                shanghai    200090\r
                                CN\r
 \r
-70-B3-D5   (hex)               T&M Media Pty Ltd\r
-B41000-B41FFF     (base 16)            T&M Media Pty Ltd\r
-                               6, 476 Gardeners Road\r
-                               Alexandria  NSW  2015\r
-                               AU\r
-\r
 70-B3-D5   (hex)               SAMBO HITECH\r
 282000-282FFF     (base 16)            SAMBO HITECH\r
                                469,Seokjung-ro,Namdong-Gu\r
@@ -18623,34 +18743,40 @@ F9F000-F9FFFF     (base 16)           M.A.C. Solutions (UK) Ltd
                                Redditch  Worcestershire  B98 8LG\r
                                GB\r
 \r
-70-B3-D5   (hex)               Shenzhen CAMERAY ELECTRONIC CO., LTD\r
-1E2000-1E2FFF     (base 16)            Shenzhen CAMERAY ELECTRONIC CO., LTD\r
-                               4-5FL, Building 1, Guanghui Science, and Technology Park; Minqing Road, Longhua Town\r
-                               shenzhen  GD  518109\r
-                               CN\r
-\r
-70-B3-D5   (hex)               Vulcan Wireless Inc.\r
-E4D000-E4DFFF     (base 16)            Vulcan Wireless Inc.\r
-                               2218 Faraday Ave Suite 110\r
-                               Carlsbad  CA  92008\r
-                               US\r
-\r
 70-B3-D5   (hex)               ERA TOYS LIMITED\r
 193000-193FFF     (base 16)            ERA TOYS LIMITED\r
                                Room 505, 5th Floor, Beverley Commercial Centre, 87-105 Chatham Road South\r
                                Tsim Sha Tsui  Kowloon  0000\r
                                HK\r
 \r
+70-B3-D5   (hex)               T&M Media Pty Ltd\r
+B41000-B41FFF     (base 16)            T&M Media Pty Ltd\r
+                               6, 476 Gardeners Road\r
+                               Alexandria  NSW  2015\r
+                               AU\r
+\r
+70-B3-D5   (hex)               A&T Corporation\r
+32E000-32EFFF     (base 16)            A&T Corporation\r
+                               2023-1\r
+                               Endo, Fujisawa, Kanagawa    252-0816\r
+                               JP\r
+\r
 70-B3-D5   (hex)               Scorpion Precision Industry (HK)CO. Ltd.\r
 02B000-02BFFF     (base 16)            Scorpion Precision Industry (HK)CO. Ltd.\r
                                16th Floor, Excelsior Industrial Building,68-76 Sha Tsui Road,\r
                                Tsuen Wan  New Territories  999077\r
                                HK\r
 \r
-70-B3-D5   (hex)               Cryptotronix LLC\r
-0DB000-0DBFFF     (base 16)            Cryptotronix LLC\r
-                               P.O. Box 273029\r
-                               Fort Collins  CO  80525\r
+70-B3-D5   (hex)               Shenzhen CAMERAY ELECTRONIC CO., LTD\r
+1E2000-1E2FFF     (base 16)            Shenzhen CAMERAY ELECTRONIC CO., LTD\r
+                               4-5FL, Building 1, Guanghui Science, and Technology Park; Minqing Road, Longhua Town\r
+                               shenzhen  GD  518109\r
+                               CN\r
+\r
+70-B3-D5   (hex)               Vulcan Wireless Inc.\r
+E4D000-E4DFFF     (base 16)            Vulcan Wireless Inc.\r
+                               2218 Faraday Ave Suite 110\r
+                               Carlsbad  CA  92008\r
                                US\r
 \r
 70-B3-D5   (hex)               MIVO Technology AB\r
@@ -18659,11 +18785,11 @@ E4D000-E4DFFF     (base 16)           Vulcan Wireless Inc.
                                Stockholm    11215\r
                                SE\r
 \r
-70-B3-D5   (hex)               A&T Corporation\r
-32E000-32EFFF     (base 16)            A&T Corporation\r
-                               2023-1\r
-                               Endo, Fujisawa, Kanagawa    252-0816\r
-                               JP\r
+70-B3-D5   (hex)               Cryptotronix LLC\r
+0DB000-0DBFFF     (base 16)            Cryptotronix LLC\r
+                               P.O. Box 273029\r
+                               Fort Collins  CO  80525\r
+                               US\r
 \r
 70-B3-D5   (hex)               TOMEI TSUSHIN KOGYO CO,.LTD\r
 FB1000-FB1FFF     (base 16)            TOMEI TSUSHIN KOGYO CO,.LTD\r
@@ -18671,12 +18797,6 @@ FB1000-FB1FFF     (base 16)            TOMEI TSUSHIN KOGYO CO,.LTD
                                Inazawa Shi  Aichi ken  4928274\r
                                JP\r
 \r
-70-B3-D5   (hex)               DogWatch Inc\r
-1E7000-1E7FFF     (base 16)            DogWatch Inc\r
-                               10 Michigan Drive\r
-                               Natick    01760\r
-                               US\r
-\r
 70-B3-D5   (hex)               RCH Vietnam Limited Liability Company\r
 C09000-C09FFF     (base 16)            RCH Vietnam Limited Liability Company\r
                                Workshop F.01B-2, Lot No. F.01B Long Hau\r
@@ -18689,6 +18809,24 @@ F69000-F69FFF     (base 16)            Copper Labs, Inc.
                                Boulder  CO  80301\r
                                US\r
 \r
+70-B3-D5   (hex)               DogWatch Inc\r
+1E7000-1E7FFF     (base 16)            DogWatch Inc\r
+                               10 Michigan Drive\r
+                               Natick    01760\r
+                               US\r
+\r
+70-B3-D5   (hex)               Grossenbacher Systeme AG\r
+B75000-B75FFF     (base 16)            Grossenbacher Systeme AG\r
+                               Spinnereistrasse 10\r
+                               St. Gallen    9008\r
+                               CH\r
+\r
+70-B3-D5   (hex)               ITsynergy Ltd\r
+D2A000-D2AFFF     (base 16)            ITsynergy Ltd\r
+                               9 Bonhill Street\r
+                               London    EC2A 4DJ\r
+                               GB\r
+\r
 70-B3-D5   (hex)               SHENZHEN HUINENGYUAN Technology Co., Ltd\r
 A83000-A83FFF     (base 16)            SHENZHEN HUINENGYUAN Technology Co., Ltd\r
                                Room 206, 3 Building, Hongwanchuangke Center, Gushu, Xixiang, Baoan District\r
@@ -18713,41 +18851,23 @@ C94000-C94FFF     (base 16)           Vars Technology
                                Blaricum    1261WT\r
                                NL\r
 \r
-70-B3-D5   (hex)               Grossenbacher Systeme AG\r
-B75000-B75FFF     (base 16)            Grossenbacher Systeme AG\r
-                               Spinnereistrasse 10\r
-                               St. Gallen    9008\r
-                               CH\r
-\r
-70-B3-D5   (hex)               ITsynergy Ltd\r
-D2A000-D2AFFF     (base 16)            ITsynergy Ltd\r
-                               9 Bonhill Street\r
-                               London    EC2A 4DJ\r
-                               GB\r
-\r
 70-B3-D5   (hex)               Vaunix Technology Corporation\r
 EE6000-EE6FFF     (base 16)            Vaunix Technology Corporation\r
                                7 New Pasture Rd\r
                                Newburyport  MA  01950\r
                                US\r
 \r
-70-B3-D5   (hex)               chargeBIG\r
-869000-869FFF     (base 16)            chargeBIG\r
-                               Pragstraße 26-46\r
-                               Stuttgart    70376\r
-                               DE\r
-\r
 70-B3-D5   (hex)               Portrait Displays, Inc.\r
 D77000-D77FFF     (base 16)            Portrait Displays, Inc.\r
                                6663 OWENS DR\r
                                PLEASANTON  CA  94588\r
                                US\r
 \r
-70-B3-D5   (hex)               Sprintshield d.o.o.\r
-B03000-B03FFF     (base 16)            Sprintshield d.o.o.\r
-                               Marina Getaldi?a 3\r
-                               Velika Gorica    10410\r
-                               HR\r
+70-B3-D5   (hex)               chargeBIG\r
+869000-869FFF     (base 16)            chargeBIG\r
+                               Pragstraße 26-46\r
+                               Stuttgart    70376\r
+                               DE\r
 \r
 70-B3-D5   (hex)               Tricom Research Inc.\r
 601000-601FFF     (base 16)            Tricom Research Inc.\r
@@ -18755,11 +18875,11 @@ B03000-B03FFF     (base 16)           Sprintshield d.o.o.
                                Irvine  CA  92614\r
                                US\r
 \r
-70-B3-D5   (hex)               Mictrotrac Retsch GmbH\r
-F09000-F09FFF     (base 16)            Mictrotrac Retsch GmbH\r
-                               Retsch-Allee 1-5\r
-                               Haan  NRW  42781\r
-                               DE\r
+70-B3-D5   (hex)               Sprintshield d.o.o.\r
+B03000-B03FFF     (base 16)            Sprintshield d.o.o.\r
+                               Marina Getaldi?a 3\r
+                               Velika Gorica    10410\r
+                               HR\r
 \r
 70-B3-D5   (hex)               KeyProd\r
 473000-473FFF     (base 16)            KeyProd\r
@@ -18767,22 +18887,10 @@ F09000-F09FFF     (base 16)           Mictrotrac Retsch GmbH
                                Paris    77008\r
                                FR\r
 \r
-70-B3-D5   (hex)               WARECUBE,INC\r
-AD3000-AD3FFF     (base 16)            WARECUBE,INC\r
-                               #A-811, 142-10, Saneop-ro, 156beon-gil, Gwonseon-gu\r
-                               Suwon-si    16648\r
-                               KR\r
-\r
-70-B3-D5   (hex)               myUpTech AB\r
-FC3000-FC3FFF     (base 16)            myUpTech AB\r
-                               Box 14\r
-                               Markaryd    28532\r
-                               SE\r
-\r
-70-B3-D5   (hex)               Scharco Elektronik GmbH\r
-C72000-C72FFF     (base 16)            Scharco Elektronik GmbH\r
-                               Tilsiter Strasse 8\r
-                               Wuppertal  NRW  42277\r
+70-B3-D5   (hex)               Mictrotrac Retsch GmbH\r
+F09000-F09FFF     (base 16)            Mictrotrac Retsch GmbH\r
+                               Retsch-Allee 1-5\r
+                               Haan  NRW  42781\r
                                DE\r
 \r
 70-B3-D5   (hex)               MB connect line GmbH Fernwartungssysteme\r
@@ -18797,12 +18905,30 @@ E01000-E01FFF     (base 16)           EarTex
                                London  England  N1 6DR\r
                                GB\r
 \r
+70-B3-D5   (hex)               Scharco Elektronik GmbH\r
+C72000-C72FFF     (base 16)            Scharco Elektronik GmbH\r
+                               Tilsiter Strasse 8\r
+                               Wuppertal  NRW  42277\r
+                               DE\r
+\r
 70-B3-D5   (hex)               AVL DiTEST GmbH\r
 78D000-78DFFF     (base 16)            AVL DiTEST GmbH\r
                                Alte Poststrasse 156\r
                                Graz    8020\r
                                AT\r
 \r
+70-B3-D5   (hex)               WARECUBE,INC\r
+AD3000-AD3FFF     (base 16)            WARECUBE,INC\r
+                               #A-811, 142-10, Saneop-ro, 156beon-gil, Gwonseon-gu\r
+                               Suwon-si    16648\r
+                               KR\r
+\r
+70-B3-D5   (hex)               myUpTech AB\r
+FC3000-FC3FFF     (base 16)            myUpTech AB\r
+                               Box 14\r
+                               Markaryd    28532\r
+                               SE\r
+\r
 70-B3-D5   (hex)               TextSpeak Corporation\r
 F0E000-F0EFFF     (base 16)            TextSpeak Corporation\r
                                55 Greensfarm RD 2nd Flr 200-69\r
@@ -18815,18 +18941,18 @@ F0E000-F0EFFF     (base 16)           TextSpeak Corporation
                                Zola Predosa  Bologna  40069\r
                                IT\r
 \r
-70-B3-D5   (hex)               HongSeok Ltd.\r
-30A000-30AFFF     (base 16)            HongSeok Ltd.\r
-                               166, Osan-ro, Osan-myeon\r
-                               Iksan-si  Jeollabuk-do  54670\r
-                               KR\r
-\r
 70-B3-D5   (hex)               WAYNE ANALYTICS LLC\r
 301000-301FFF     (base 16)            WAYNE ANALYTICS LLC\r
                                100 Rialto Place, Suite 721\r
                                MELBOURNE  FL  32901\r
                                US\r
 \r
+70-B3-D5   (hex)               HongSeok Ltd.\r
+30A000-30AFFF     (base 16)            HongSeok Ltd.\r
+                               166, Osan-ro, Osan-myeon\r
+                               Iksan-si  Jeollabuk-do  54670\r
+                               KR\r
+\r
 70-B3-D5   (hex)               GS Elektromedizinsiche Geräte G. Stemple GmbH\r
 3D3000-3D3FFF     (base 16)            GS Elektromedizinsiche Geräte G. Stemple GmbH\r
                                Hauswiesenstr. 26\r
@@ -18857,16 +18983,22 @@ E1C000-E1CFFF     (base 16)           RoomMate AS
                                Daejeon  Yuseong-gu  34016\r
                                KR\r
 \r
+70-B3-D5   (hex)               Sequent AG\r
+291000-291FFF     (base 16)            Sequent AG\r
+                               Eptingerstrasse 3\r
+                               Basel    4052\r
+                               CH\r
+\r
 70-B3-D5   (hex)               KODENSHI CORP.\r
 DBA000-DBAFFF     (base 16)            KODENSHI CORP.\r
                                161,Jyuichi,Makishima\r
                                UJI  KYOTO  6110041\r
                                JP\r
 \r
-70-B3-D5   (hex)               Sequent AG\r
-291000-291FFF     (base 16)            Sequent AG\r
-                               Eptingerstrasse 3\r
-                               Basel    4052\r
+70-B3-D5   (hex)               ID Quantique SA\r
+657000-657FFF     (base 16)            ID Quantique SA\r
+                               3 chemin de la marbrerie\r
+                               Carouge    1227\r
                                CH\r
 \r
 70-B3-D5   (hex)               Profusion Limited\r
@@ -18875,12 +19007,6 @@ DBA000-DBAFFF     (base 16)            KODENSHI CORP.
                                Southend on Sea  Essex  SS2 6UN\r
                                GB\r
 \r
-70-B3-D5   (hex)               ID Quantique SA\r
-657000-657FFF     (base 16)            ID Quantique SA\r
-                               3 chemin de la marbrerie\r
-                               Carouge    1227\r
-                               CH\r
-\r
 70-B3-D5   (hex)               CDS Institute of Management Strategy, Inc.\r
 3A3000-3A3FFF     (base 16)            CDS Institute of Management Strategy, Inc.\r
                                Fukuyoshi-cho Billding 7F, Roppongi 2-2-6\r
@@ -18923,12 +19049,6 @@ B6F000-B6FFFF     (base 16)            Integra Metering SAS
                                Ramsen    8262\r
                                CH\r
 \r
-70-B3-D5   (hex)               K&A Electronics Inc.\r
-9E4000-9E4FFF     (base 16)            K&A Electronics Inc.\r
-                               2609 Pinelawn dr.\r
-                               La Crescenta  CA  91214\r
-                               US\r
-\r
 70-B3-D5   (hex)               Paramount Bed Holdings Co., Ltd.\r
 8F1000-8F1FFF     (base 16)            Paramount Bed Holdings Co., Ltd.\r
                                2-14-5. Higashisuna\r
@@ -18947,6 +19067,12 @@ B6F000-B6FFFF     (base 16)            Integra Metering SAS
                                LONDON  County (optional)  N17 9LJ\r
                                GB\r
 \r
+70-B3-D5   (hex)               K&A Electronics Inc.\r
+9E4000-9E4FFF     (base 16)            K&A Electronics Inc.\r
+                               2609 Pinelawn dr.\r
+                               La Crescenta  CA  91214\r
+                               US\r
+\r
 70-B3-D5   (hex)               Indutherm Giesstechnologie GmbH\r
 8DE000-8DEFFF     (base 16)            Indutherm Giesstechnologie GmbH\r
                                Brettener Straße 32\r
@@ -18971,6 +19097,12 @@ D97000-D97FFF     (base 16)            BRS Sistemas Eletrônicos
                                Porto Alegre - RS  (Non U.S.)  91380-000\r
                                BR\r
 \r
+70-B3-D5   (hex)               Ideas srl\r
+B63000-B63FFF     (base 16)            Ideas srl\r
+                               Via dei Brughi, 21\r
+                               Gessate  Milan  20060\r
+                               IT\r
+\r
 70-B3-D5   (hex)               2M Technology\r
 F7D000-F7DFFF     (base 16)            2M Technology\r
                                802 Greenview Drive \r
@@ -18983,18 +19115,30 @@ F7D000-F7DFFF     (base 16)           2M Technology
                                Natick  MA  01760\r
                                US\r
 \r
-70-B3-D5   (hex)               Ideas srl\r
-B63000-B63FFF     (base 16)            Ideas srl\r
-                               Via dei Brughi, 21\r
-                               Gessate  Milan  20060\r
-                               IT\r
-\r
 70-B3-D5   (hex)               Invert Robotics Ltd.\r
 FC7000-FC7FFF     (base 16)            Invert Robotics Ltd.\r
                                Unit A, 235 Annex Road\r
                                Christchurch    8024\r
                                NZ\r
 \r
+70-B3-D5   (hex)               AERIAL CAMERA SYSTEMS Ltd\r
+FC4000-FC4FFF     (base 16)            AERIAL CAMERA SYSTEMS Ltd\r
+                               3 The Merlin Centre, Lancaster Road,\r
+                               HIGH WYCOMBE    HP12 3QL\r
+                               GB\r
+\r
+70-B3-D5   (hex)               TUALCOM ELEKTRONIK A.S.\r
+4A3000-4A3FFF     (base 16)            TUALCOM ELEKTRONIK A.S.\r
+                               Mustafa Kemal mah.\r
+                               ANKARA    06530\r
+                               TR\r
+\r
+70-B3-D5   (hex)               Underground Systems, Inc.\r
+424000-424FFF     (base 16)            Underground Systems, Inc.\r
+                               3A Trowbridge Drive\r
+                               Bethel  CT  06801\r
+                               US\r
+\r
 70-B3-D5   (hex)               MPM Micro Präzision Marx GmbH\r
 F60000-F60FFF     (base 16)            MPM Micro Präzision Marx GmbH\r
                                Neuenweiherstraße 19\r
@@ -19007,23 +19151,17 @@ F60000-F60FFF     (base 16)           MPM Micro Präzision Marx GmbH
                                San Francisco  CA  94103-4938\r
                                US\r
 \r
-70-B3-D5   (hex)               Underground Systems, Inc.\r
-424000-424FFF     (base 16)            Underground Systems, Inc.\r
-                               3A Trowbridge Drive\r
-                               Bethel  CT  06801\r
-                               US\r
-\r
-70-B3-D5   (hex)               AERIAL CAMERA SYSTEMS Ltd\r
-FC4000-FC4FFF     (base 16)            AERIAL CAMERA SYSTEMS Ltd\r
-                               3 The Merlin Centre, Lancaster Road,\r
-                               HIGH WYCOMBE    HP12 3QL\r
-                               GB\r
+70-B3-D5   (hex)               Hensoldt Sensors GmbH\r
+2D3000-2D3FFF     (base 16)            Hensoldt Sensors GmbH\r
+                               Woerthstrasse 85\r
+                               Ulm  Baden-Wuerttemberg  89081\r
+                               DE\r
 \r
-70-B3-D5   (hex)               TUALCOM ELEKTRONIK A.S.\r
-4A3000-4A3FFF     (base 16)            TUALCOM ELEKTRONIK A.S.\r
-                               Mustafa Kemal mah.\r
-                               ANKARA    06530\r
-                               TR\r
+70-B3-D5   (hex)               Kron Medidores\r
+C1E000-C1EFFF     (base 16)            Kron Medidores\r
+                               Rua Alexandre de Gusmão, 278\r
+                               São Paulo  São Paulo  04760-020\r
+                               BR\r
 \r
 70-B3-D5   (hex)               Shanghai Jupper Technology Co.Ltd\r
 157000-157FFF     (base 16)            Shanghai Jupper Technology Co.Ltd\r
@@ -19031,23 +19169,17 @@ FC4000-FC4FFF     (base 16)           AERIAL CAMERA SYSTEMS Ltd
                                Shanghai    201315\r
                                CN\r
 \r
-70-B3-D5   (hex)               Kron Medidores\r
-C1E000-C1EFFF     (base 16)            Kron Medidores\r
-                               Rua Alexandre de Gusmão, 278\r
-                               São Paulo  São Paulo  04760-020\r
-                               BR\r
-\r
-70-B3-D5   (hex)               IK MULTIMEDIA PRODUCTION SRL\r
-2FB000-2FBFFF     (base 16)            IK MULTIMEDIA PRODUCTION SRL\r
-                               Via dell'Industria 46\r
-                               Modena  Italy  41122\r
-                               IT\r
+70-B3-D5   (hex)               S-Rain Control A/S\r
+B68000-B68FFF     (base 16)            S-Rain Control A/S\r
+                               Oldenvej 6\r
+                               Kvistgård  Copenhagen  DK-3490\r
+                               DK\r
 \r
-70-B3-D5   (hex)               Hensoldt Sensors GmbH\r
-2D3000-2D3FFF     (base 16)            Hensoldt Sensors GmbH\r
-                               Woerthstrasse 85\r
-                               Ulm  Baden-Wuerttemberg  89081\r
-                               DE\r
+70-B3-D5   (hex)               Thermo Fisher Scientific Inc.\r
+D96000-D96FFF     (base 16)            Thermo Fisher Scientific Inc.\r
+                               Thermo Fisher Scientific Inc.\r
+                               Shanghai  Shanghai  201206\r
+                               CN\r
 \r
 70-B3-D5   (hex)               Autonomic Controls, Inc.\r
 BC7000-BC7FFF     (base 16)            Autonomic Controls, Inc.\r
@@ -19055,35 +19187,29 @@ BC7000-BC7FFF     (base 16)           Autonomic Controls, Inc.
                                ARMONK  NY  10504\r
                                US\r
 \r
+70-B3-D5   (hex)               IK MULTIMEDIA PRODUCTION SRL\r
+2FB000-2FBFFF     (base 16)            IK MULTIMEDIA PRODUCTION SRL\r
+                               Via dell'Industria 46\r
+                               Modena  Italy  41122\r
+                               IT\r
+\r
 70-B3-D5   (hex)               CYG CONTRON CO.LTD\r
 A8C000-A8CFFF     (base 16)            CYG CONTRON CO.LTD\r
                                BUILDING A.NO.11 OF THE 6TH TECHNOGY ROAD,PHASE III OF TECNOLOGY INNOVATION COAST,ZHUHAI NATIONAL HI-TECH INDUSTRIES DEVELOPMENT ZONE\r
                                Zhuhai    519000\r
                                CN\r
 \r
-70-B3-D5   (hex)               Thermo Fisher Scientific Inc.\r
-D96000-D96FFF     (base 16)            Thermo Fisher Scientific Inc.\r
-                               Thermo Fisher Scientific Inc.\r
-                               Shanghai  Shanghai  201206\r
-                               CN\r
-\r
-70-B3-D5   (hex)               S-Rain Control A/S\r
-B68000-B68FFF     (base 16)            S-Rain Control A/S\r
-                               Oldenvej 6\r
-                               Kvistgård  Copenhagen  DK-3490\r
-                               DK\r
-\r
 70-B3-D5   (hex)               LIGPT\r
 D14000-D14FFF     (base 16)            LIGPT\r
                                167, Jukdong-ro\r
                                Daejeon   Yuseong-gu  34127\r
                                KR\r
 \r
-70-B3-D5   (hex)               Royal Engineering Consultancy Private Limited\r
-34F000-34FFFF     (base 16)            Royal Engineering Consultancy Private Limited\r
-                               203 2nd Floor Jyoti Building 66 Nehru Place\r
-                               New Delhi    110019\r
-                               IN\r
+70-B3-D5   (hex)               Innoknight\r
+AE8000-AE8FFF     (base 16)            Innoknight\r
+                               Rm. 1A2-A01, No. 1, Lixing 1st Rd., East Dist., Hsinchu City 300, Taiwan (R.O.C.)\r
+                               Hsinchu    300\r
+                               TW\r
 \r
 70-B3-D5   (hex)               Melissa Climate Jsc\r
 2DD000-2DDFFF     (base 16)            Melissa Climate Jsc\r
@@ -19091,11 +19217,11 @@ D14000-D14FFF     (base 16)           LIGPT
                                Sofia    1000\r
                                BG\r
 \r
-70-B3-D5   (hex)               Innoknight\r
-AE8000-AE8FFF     (base 16)            Innoknight\r
-                               Rm. 1A2-A01, No. 1, Lixing 1st Rd., East Dist., Hsinchu City 300, Taiwan (R.O.C.)\r
-                               Hsinchu    300\r
-                               TW\r
+70-B3-D5   (hex)               Royal Engineering Consultancy Private Limited\r
+34F000-34FFFF     (base 16)            Royal Engineering Consultancy Private Limited\r
+                               203 2nd Floor Jyoti Building 66 Nehru Place\r
+                               New Delhi    110019\r
+                               IN\r
 \r
 70-B3-D5   (hex)               NUBURU Inc.\r
 DC7000-DC7FFF     (base 16)            NUBURU Inc.\r
@@ -19103,6 +19229,18 @@ DC7000-DC7FFF     (base 16)            NUBURU Inc.
                                Centennial  CO  80112\r
                                US\r
 \r
+70-B3-D5   (hex)               Projects Unlimited Inc.\r
+7C5000-7C5FFF     (base 16)            Projects Unlimited Inc.\r
+                               6300 Sand Lake Road\r
+                               Dayton  OH  45414\r
+                               US\r
+\r
+70-B3-D5   (hex)               Hilo\r
+B86000-B86FFF     (base 16)            Hilo\r
+                               4-6 Kiprou str\r
+                               Tavros  Athens  17778\r
+                               GR\r
+\r
 70-B3-D5   (hex)               Vigorcloud Co., Ltd.\r
 A3E000-A3EFFF     (base 16)            Vigorcloud Co., Ltd.\r
                                3F., No. 11, Xinpo 1st St., Xindian Dist.,\r
@@ -19121,23 +19259,17 @@ A3E000-A3EFFF     (base 16)           Vigorcloud Co., Ltd.
                                Incheon  2nd floor, 16 Giljuro, Seogu  22793\r
                                KR\r
 \r
-70-B3-D5   (hex)               Projects Unlimited Inc.\r
-7C5000-7C5FFF     (base 16)            Projects Unlimited Inc.\r
-                               6300 Sand Lake Road\r
-                               Dayton  OH  45414\r
-                               US\r
-\r
 70-B3-D5   (hex)               RFHIC\r
 25E000-25EFFF     (base 16)            RFHIC\r
                                41-14, Burim-ro 170beon-gil\r
                                Dongan-gu, Anyang-si  Gyeonggi-do  14055\r
                                KR\r
 \r
-70-B3-D5   (hex)               Hilo\r
-B86000-B86FFF     (base 16)            Hilo\r
-                               4-6 Kiprou str\r
-                               Tavros  Athens  17778\r
-                               GR\r
+70-B3-D5   (hex)               ADDE\r
+79C000-79CFFF     (base 16)            ADDE\r
+                               21 impasse frédéric faÿs\r
+                               Villeurbanne    69100\r
+                               FR\r
 \r
 70-B3-D5   (hex)               Federated Wireless, Inc. \r
 E22000-E22FFF     (base 16)            Federated Wireless, Inc. \r
@@ -19145,24 +19277,18 @@ E22000-E22FFF     (base 16)           Federated Wireless, Inc.
                                Arlington   VA  22203\r
                                US\r
 \r
-70-B3-D5   (hex)               Nocix, LLC\r
-BE2000-BE2FFF     (base 16)            Nocix, LLC\r
-                               201 East 16th Ave\r
-                               North Kansas City  MO  64116\r
-                               US\r
-\r
-70-B3-D5   (hex)               ADDE\r
-79C000-79CFFF     (base 16)            ADDE\r
-                               21 impasse frédéric faÿs\r
-                               Villeurbanne    69100\r
-                               FR\r
-\r
 70-B3-D5   (hex)               DEUTA-WERKE GmbH\r
 F6B000-F6BFFF     (base 16)            DEUTA-WERKE GmbH\r
                                Paffrather Str. 140\r
                                Bergisch Gladbach  North Rhine-Westphalia  51465\r
                                DE\r
 \r
+70-B3-D5   (hex)               Nocix, LLC\r
+BE2000-BE2FFF     (base 16)            Nocix, LLC\r
+                               201 East 16th Ave\r
+                               North Kansas City  MO  64116\r
+                               US\r
+\r
 70-B3-D5   (hex)               Servotronix Motion Control\r
 B0E000-B0EFFF     (base 16)            Servotronix Motion Control\r
                                21C Yagia Kapayim st.\r
@@ -19181,23 +19307,17 @@ E87000-E87FFF     (base 16)           STACKFORCE GmbH
                                Eschbach    79427\r
                                DE\r
 \r
-70-B3-D5   (hex)               Qlinx Technologies\r
-EC9000-EC9FFF     (base 16)            Qlinx Technologies\r
-                               1717 N Street NW Ste 1\r
-                               Washington  DC  20036\r
-                               US\r
-\r
 70-B3-D5   (hex)               Pantherun Technologies Pvt Ltd\r
 B14000-B14FFF     (base 16)            Pantherun Technologies Pvt Ltd\r
                                311 6th main road Hal 2nd stage\r
                                Bangalore  Karnataka  560038\r
                                IN\r
 \r
-70-B3-D5   (hex)               Liberator Pty Ltd\r
-561000-561FFF     (base 16)            Liberator Pty Ltd\r
-                               265?Gilbert Street\r
-                               Adelaide     SA 5000\r
-                               AU\r
+70-B3-D5   (hex)               Qlinx Technologies\r
+EC9000-EC9FFF     (base 16)            Qlinx Technologies\r
+                               1717 N Street NW Ste 1\r
+                               Washington  DC  20036\r
+                               US\r
 \r
 70-B3-D5   (hex)               EASTERN SCIENCE & TECHNOLOGY CO., LTD\r
 2DF000-2DFFFF     (base 16)            EASTERN SCIENCE & TECHNOLOGY CO., LTD\r
@@ -19211,11 +19331,17 @@ B14000-B14FFF     (base 16)           Pantherun Technologies Pvt Ltd
                                Bridge of Don  Aberdeen  AB22 8GT\r
                                GB\r
 \r
-70-B3-D5   (hex)               Contec Americas Inc.\r
-883000-883FFF     (base 16)            Contec Americas Inc.\r
-                               3991 Sarno Rd\r
-                               Melbourne  FL  32934\r
-                               US\r
+70-B3-D5   (hex)               Liberator Pty Ltd\r
+561000-561FFF     (base 16)            Liberator Pty Ltd\r
+                               265?Gilbert Street\r
+                               Adelaide     SA 5000\r
+                               AU\r
+\r
+70-B3-D5   (hex)               International Super Computer Co., Ltd.\r
+806000-806FFF     (base 16)            International Super Computer Co., Ltd.\r
+                               807-3, 8 / F, block F, No. 9, Shangdi Third Street, Haidian District\r
+                               Beijing    100085\r
+                               CN\r
 \r
 70-B3-D5   (hex)               Hon Hai Precision IND.CO.,LTD\r
 B45000-B45FFF     (base 16)            Hon Hai Precision IND.CO.,LTD\r
@@ -19223,11 +19349,11 @@ B45000-B45FFF     (base 16)           Hon Hai Precision IND.CO.,LTD
                                TAIPEI  TAIWAN  33859\r
                                CN\r
 \r
-70-B3-D5   (hex)               International Super Computer Co., Ltd.\r
-806000-806FFF     (base 16)            International Super Computer Co., Ltd.\r
-                               807-3, 8 / F, block F, No. 9, Shangdi Third Street, Haidian District\r
-                               Beijing    100085\r
-                               CN\r
+70-B3-D5   (hex)               Contec Americas Inc.\r
+883000-883FFF     (base 16)            Contec Americas Inc.\r
+                               3991 Sarno Rd\r
+                               Melbourne  FL  32934\r
+                               US\r
 \r
 70-B3-D5   (hex)               Rivercity Innovations Ltd.\r
 156000-156FFF     (base 16)            Rivercity Innovations Ltd.\r
@@ -19277,17 +19403,29 @@ C46000-C46FFF     (base 16)           eumig industrie-TV GmbH.
                                Menomonee Falls  WI  53051\r
                                US\r
 \r
+70-B3-D5   (hex)               EkspertStroyProekt LLC\r
+DE9000-DE9FFF     (base 16)            EkspertStroyProekt LLC\r
+                               office 400, str.61, d.2/4, Luzhnetskaya nab.\r
+                               Moscow  Moscow  119270\r
+                               RU\r
+\r
 70-B3-D5   (hex)               EA Elektroautomatik GmbH & Co. KG\r
 4C3000-4C3FFF     (base 16)            EA Elektroautomatik GmbH & Co. KG\r
                                Helmholtzstraße 31-33\r
                                Viersen  NRW  41747\r
                                DE\r
 \r
-70-B3-D5   (hex)               EkspertStroyProekt LLC\r
-DE9000-DE9FFF     (base 16)            EkspertStroyProekt LLC\r
-                               office 400, str.61, d.2/4, Luzhnetskaya nab.\r
-                               Moscow  Moscow  119270\r
-                               RU\r
+70-B3-D5   (hex)               GSP Sprachtechnologie GmbH\r
+93C000-93CFFF     (base 16)            GSP Sprachtechnologie GmbH\r
+                               Teltowkanalstraße 1\r
+                               Berlin    12247\r
+                               DE\r
+\r
+70-B3-D5   (hex)               GUNMA ELECTRONICS CO LTD\r
+64F000-64FFFF     (base 16)            GUNMA ELECTRONICS CO LTD\r
+                               760 OOMAMA\r
+                               MIDORI-CITY  GUNMA  376-0101\r
+                               JP\r
 \r
 70-B3-D5   (hex)               YDK Technologies Co.,Ltd\r
 7F0000-7F0FFF     (base 16)            YDK Technologies Co.,Ltd\r
@@ -19295,6 +19433,12 @@ DE9000-DE9FFF     (base 16)            EkspertStroyProekt LLC
                                Shibuya-ku  Tokyo  151-0051\r
                                JP\r
 \r
+70-B3-D5   (hex)               Velvac Incorporated\r
+4DD000-4DDFFF     (base 16)            Velvac Incorporated\r
+                               2183 Alpine Way\r
+                               Bellingham  WA  98226\r
+                               US\r
+\r
 70-B3-D5   (hex)               Potter Electric Signal Co. LLC\r
 A1B000-A1BFFF     (base 16)            Potter Electric Signal Co. LLC\r
                                1609 Park 370 Place\r
@@ -19307,6 +19451,42 @@ BEB000-BEBFFF     (base 16)            Potter Electric Signal Co. LLC
                                Hazelwood  MO  63042\r
                                US\r
 \r
+70-B3-D5   (hex)               Digitella Inc.\r
+D03000-D03FFF     (base 16)            Digitella Inc.\r
+                               2F, Banpodaero 99\r
+                               Seocho-gu  Seoul  06657\r
+                               KR\r
+\r
+70-B3-D5   (hex)               Twoway Communications, Inc.\r
+41C000-41CFFF     (base 16)            Twoway Communications, Inc.\r
+                               41 Wu Kung 6 Rd., New Taipei Industrial Park, New Taipei City,24891,Taiwan,R.O.C.\r
+                               New Taipei city  Taipei  24891\r
+                               TW\r
+\r
+70-B3-D5   (hex)               Power Electronics Espana, S.L.\r
+BDB000-BDBFFF     (base 16)            Power Electronics Espana, S.L.\r
+                               PI Pla de Carrases, CV-35 Salida 30Salida 30-\r
+                               lliria  Valencia  46160\r
+                               ES\r
+\r
+70-B3-D5   (hex)               B2cloud lda\r
+29E000-29EFFF     (base 16)            B2cloud lda\r
+                               Urbanizacao do correlo 4,14\r
+                               Gandra  Paredes  4585-362\r
+                               PT\r
+\r
+70-B3-D5   (hex)               Elman srl\r
+B2C000-B2CFFF     (base 16)            Elman srl\r
+                               Via di Valle Caia, km 4.700\r
+                               Pomezia  Roma  00040\r
+                               IT\r
+\r
+70-B3-D5   (hex)               AADONA Communication Pvt Ltd\r
+ED9000-ED9FFF     (base 16)            AADONA Communication Pvt Ltd\r
+                               1st Floor, Phoenix Tech Tower, Plot No. 14/46, IDA - Uppal\r
+                               Hyderabad  Telangana  500039\r
+                               IN\r
+\r
 70-B3-D5   (hex)               DISMUNTEL SAL\r
 92C000-92CFFF     (base 16)            DISMUNTEL SAL\r
                                Pol ind cotes\r
@@ -22649,12 +22829,6 @@ AA7000-AA7FFF     (base 16)            ATEME
                                Bievres  IDF  91470\r
                                \r
 \r
-70-B3-D5   (hex)               Farmobile\r
-13F000-13FFFF     (base 16)            Farmobile\r
-                               18132 Melrose Dr.\r
-                               Bucyrus  KS  66013\r
-                               \r
-\r
 70-B3-D5   (hex)               Code Blue Corporation\r
 C3F000-C3FFFF     (base 16)            Code Blue Corporation\r
                                259 Hedcor St\r
@@ -23609,17 +23783,23 @@ A6A000-A6AFFF     (base 16)           Privafy, Inc
                                Oslo  Oslo  0504\r
                                NO\r
 \r
+70-B3-D5   (hex)               RCH Vietnam Limited Liability Company\r
+6BD000-6BDFFF     (base 16)            RCH Vietnam Limited Liability Company\r
+                               Workshop F.01B-2, Lot No. F.01B Long Hau\r
+                               Ho Chi Minh City  Ho Chi Minh  70000\r
+                               VN\r
+\r
 70-B3-D5   (hex)               Gamber Johnson-LLC\r
 E34000-E34FFF     (base 16)            Gamber Johnson-LLC\r
                                3001 Borham Ave\r
                                Stevens Point  WI  54481\r
                                US\r
 \r
-70-B3-D5   (hex)               RCH Vietnam Limited Liability Company\r
-6BD000-6BDFFF     (base 16)            RCH Vietnam Limited Liability Company\r
-                               Workshop F.01B-2, Lot No. F.01B Long Hau\r
-                               Ho Chi Minh City  Ho Chi Minh  70000\r
-                               VN\r
+70-B3-D5   (hex)               YUYAMA MFG Co.,Ltd\r
+C2B000-C2BFFF     (base 16)            YUYAMA MFG Co.,Ltd\r
+                               3-3-1\r
+                               TOYONAKASHI  OSAKA  561-0841\r
+                               JP\r
 \r
 70-B3-D5   (hex)               YUYAMA MFG Co.,Ltd\r
 1F2000-1F2FFF     (base 16)            YUYAMA MFG Co.,Ltd\r
@@ -23633,77 +23813,71 @@ E34000-E34FFF     (base 16)           Gamber Johnson-LLC
                                Moscow    105484\r
                                RU\r
 \r
-70-B3-D5   (hex)               YUYAMA MFG Co.,Ltd\r
-C2B000-C2BFFF     (base 16)            YUYAMA MFG Co.,Ltd\r
-                               3-3-1\r
-                               TOYONAKASHI  OSAKA  561-0841\r
-                               JP\r
-\r
 70-B3-D5   (hex)               eSMART Technologies SA\r
 979000-979FFF     (base 16)            eSMART Technologies SA\r
                                Chemin de la Rueyre, 118\r
                                Renens VD    1020\r
                                CH\r
 \r
-70-B3-D5   (hex)               Duplomatic MS spa\r
-DE1000-DE1FFF     (base 16)            Duplomatic MS spa\r
-                               Via Re Depaolini 24\r
-                               Parabiago  Milan  20015\r
-                               IT\r
-\r
 70-B3-D5   (hex)               Axnes AS\r
 65F000-65FFFF     (base 16)            Axnes AS\r
                                Terje Løvåsvei 1\r
                                Grimstad    4879\r
                                NO\r
 \r
+70-B3-D5   (hex)               Duplomatic MS spa\r
+DE1000-DE1FFF     (base 16)            Duplomatic MS spa\r
+                               Via Re Depaolini 24\r
+                               Parabiago  Milan  20015\r
+                               IT\r
+\r
 70-B3-D5   (hex)               Nanjing Pingguang Electronic Technology Co., Ltd\r
 541000-541FFF     (base 16)            Nanjing Pingguang Electronic Technology Co., Ltd\r
                                B30/B31 4th Floor, Building#11, Shengtai Road, JiangNing District\r
                                NanJing    211100\r
                                CN\r
 \r
+70-B3-D5   (hex)               PHYZHON Health Inc\r
+744000-744FFF     (base 16)            PHYZHON Health Inc\r
+                               180 Blue Ravine Road, suite A\r
+                               Folsom  CA  95630\r
+                               US\r
+\r
 70-B3-D5   (hex)               thingdust AG\r
 3C1000-3C1FFF     (base 16)            thingdust AG\r
                                Moosstrasse 7\r
                                Lucerne  Lucerne  6003\r
                                CH\r
 \r
+70-B3-D5   (hex)               Panoramic Power\r
+53A000-53AFFF     (base 16)            Panoramic Power\r
+                               15 Atir Yeda\r
+                               Kfar Saba    4464312\r
+                               IL\r
+\r
 70-B3-D5   (hex)               ALVAT s.r.o.\r
 369000-369FFF     (base 16)            ALVAT s.r.o.\r
                                Chodovska 228/3\r
                                Praha 4    14100\r
                                CZ\r
 \r
-70-B3-D5   (hex)               PHYZHON Health Inc\r
-744000-744FFF     (base 16)            PHYZHON Health Inc\r
-                               180 Blue Ravine Road, suite A\r
-                               Folsom  CA  95630\r
-                               US\r
-\r
 70-B3-D5   (hex)               PCB Piezotronics\r
 4CA000-4CAFFF     (base 16)            PCB Piezotronics\r
                                3425 Walden Avenue\r
                                Depew  NY  14043\r
                                US\r
 \r
-70-B3-D5   (hex)               Panoramic Power\r
-53A000-53AFFF     (base 16)            Panoramic Power\r
-                               15 Atir Yeda\r
-                               Kfar Saba    4464312\r
-                               IL\r
-\r
 70-B3-D5   (hex)               STEP sarl\r
 481000-481FFF     (base 16)            STEP sarl\r
                                11, avenue Aristide Berges\r
                                LANCEY  ISERE  38190\r
                                FR\r
 \r
-70-B3-D5   (hex)               ZPAS S.A.\r
-2D9000-2D9FFF     (base 16)            ZPAS S.A.\r
-                               Przygorze 209\r
-                               Woliborz  Lower Silesian (Dolno?l?skie)  57-431\r
-                               PL\r
+70-B3-D5   (hex)               Mianjie Technology\r
+8FC000-8FCFFF     (base 16)            Mianjie Technology\r
+                               Zhubang2000 Building2 1205\r
+                               Beijing    100000\r
+                               CN\r
 \r
 70-B3-D5   (hex)               Redstone Sunshine(Beijing)Technology Co.,Ltd.\r
 6C9000-6C9FFF     (base 16)            Redstone Sunshine(Beijing)Technology Co.,Ltd.\r
@@ -23711,11 +23885,11 @@ DE1000-DE1FFF     (base 16)           Duplomatic MS spa
                                Beijing    100020\r
                                CN\r
 \r
-70-B3-D5   (hex)               Mianjie Technology\r
-8FC000-8FCFFF     (base 16)            Mianjie Technology\r
-                               Zhubang2000 Building2 1205\r
-                               Beijing    100000\r
-                               CN\r
+70-B3-D5   (hex)               ZPAS S.A.\r
+2D9000-2D9FFF     (base 16)            ZPAS S.A.\r
+                               Przygorze 209\r
+                               Woliborz  Lower Silesian (Dolno?l?skie)  57-431\r
+                               PL\r
 \r
 70-B3-D5   (hex)               HAI ROBOTICS Co., Ltd.\r
 0B7000-0B7FFF     (base 16)            HAI ROBOTICS Co., Ltd.\r
@@ -23741,18 +23915,18 @@ DE1000-DE1FFF     (base 16)           Duplomatic MS spa
                                Santa Ana  CA  92705\r
                                US\r
 \r
-70-B3-D5   (hex)               Peter Huber Kaeltemaschinenbau AG\r
-DC4000-DC4FFF     (base 16)            Peter Huber Kaeltemaschinenbau AG\r
-                               Werner-von-Siemens-Str. 1\r
-                               Offenburg  Ba-Wue  77656\r
-                               DE\r
-\r
 70-B3-D5   (hex)               Beijing Aumiwalker technology CO.,LTD\r
 C7C000-C7CFFF     (base 16)            Beijing Aumiwalker technology CO.,LTD\r
                                Floor 6, Tower 1, No.1 Zhonghe Road Fengtai Science Park Beijing P.R.C.\r
                                Beijing  Beijing  100071\r
                                CN\r
 \r
+70-B3-D5   (hex)               Peter Huber Kaeltemaschinenbau AG\r
+DC4000-DC4FFF     (base 16)            Peter Huber Kaeltemaschinenbau AG\r
+                               Werner-von-Siemens-Str. 1\r
+                               Offenburg  Ba-Wue  77656\r
+                               DE\r
+\r
 70-B3-D5   (hex)               Kazdream Technologies LLP\r
 089000-089FFF     (base 16)            Kazdream Technologies LLP\r
                                10, Turkestan Str.\r
@@ -23765,6 +23939,12 @@ E5A000-E5AFFF     (base 16)            Cardinal Scales Manufacturing Co
                                Webb City  MO  64870\r
                                US\r
 \r
+70-B3-D5   (hex)               Military Research Institute\r
+2F7000-2F7FFF     (base 16)            Military Research Institute\r
+                               Veslarska 230\r
+                               Brno    63700\r
+                               CZ\r
+\r
 70-B3-D5   (hex)               Farmpro Ltd\r
 17C000-17CFFF     (base 16)            Farmpro Ltd\r
                                806, 28 Digitalro 30gil, Gurogu\r
@@ -23777,12 +23957,6 @@ E83000-E83FFF     (base 16)            Talleres de Escoriaza SA
                                Irun  Gipuzkoa  20305\r
                                ES\r
 \r
-70-B3-D5   (hex)               Military Research Institute\r
-2F7000-2F7FFF     (base 16)            Military Research Institute\r
-                               Veslarska 230\r
-                               Brno    63700\r
-                               CZ\r
-\r
 70-B3-D5   (hex)               Network Innovations\r
 DA7000-DA7FFF     (base 16)            Network Innovations\r
                                4950 West Prospect Road\r
@@ -23795,6 +23969,18 @@ DA7000-DA7FFF     (base 16)            Network Innovations
                                Champagne au Mont d'Or  Rhône  69543\r
                                FR\r
 \r
+70-B3-D5   (hex)               Grossenbacher Systeme AG\r
+5FE000-5FEFFF     (base 16)            Grossenbacher Systeme AG\r
+                               Spinnereistrasse 10\r
+                               St. Gallen    9008\r
+                               CH\r
+\r
+70-B3-D5   (hex)               QUISS GmbH\r
+AAB000-AABFFF     (base 16)            QUISS GmbH\r
+                               Lilienthalstraße 5\r
+                               Puchheim    82178\r
+                               DE\r
+\r
 70-B3-D5   (hex)               Shanghai Qinyue Communication Technology Co., Ltd.\r
 B57000-B57FFF     (base 16)            Shanghai Qinyue Communication Technology Co., Ltd.\r
                                Room 101,Building 51,Lane 588,ShuPing Road,Jiading District\r
@@ -23807,24 +23993,18 @@ B57000-B57FFF     (base 16)           Shanghai Qinyue Communication Technology Co., Ltd.
                                Oslo  Select One  1405\r
                                NO\r
 \r
-70-B3-D5   (hex)               QUISS GmbH\r
-AAB000-AABFFF     (base 16)            QUISS GmbH\r
-                               Lilienthalstraße 5\r
-                               Puchheim    82178\r
-                               DE\r
-\r
-70-B3-D5   (hex)               Grossenbacher Systeme AG\r
-5FE000-5FEFFF     (base 16)            Grossenbacher Systeme AG\r
-                               Spinnereistrasse 10\r
-                               St. Gallen    9008\r
-                               CH\r
-\r
 70-B3-D5   (hex)               Accolade Technology Inc\r
 87A000-87AFFF     (base 16)            Accolade Technology Inc\r
                                124 Grove Street, Suite 315\r
                                FRANKLIN  MA  02038\r
                                US\r
 \r
+70-B3-D5   (hex)               Loehnert Elektronik GmbH\r
+8A3000-8A3FFF     (base 16)            Loehnert Elektronik GmbH\r
+                               Oskar-Sembach-Ring 18\r
+                               Lauf a.d.Peg.  Bavaria  91207\r
+                               DE\r
+\r
 70-B3-D5   (hex)               Adcole Space\r
 922000-922FFF     (base 16)            Adcole Space\r
                                734 Forest St.,Suite #100\r
@@ -23843,17 +24023,11 @@ AAB000-AABFFF     (base 16)           QUISS GmbH
                                Dinkelsbuehl  Bavaria  91550\r
                                DE\r
 \r
-70-B3-D5   (hex)               Loehnert Elektronik GmbH\r
-8A3000-8A3FFF     (base 16)            Loehnert Elektronik GmbH\r
-                               Oskar-Sembach-Ring 18\r
-                               Lauf a.d.Peg.  Bavaria  91207\r
-                               DE\r
-\r
-70-B3-D5   (hex)               plc-tec AG\r
-095000-095FFF     (base 16)            plc-tec AG\r
-                               Panoramastrasse 5\r
-                               Hägglingen    5607\r
-                               CH\r
+70-B3-D5   (hex)               Tobi Tribe Inc\r
+D68000-D68FFF     (base 16)            Tobi Tribe Inc\r
+                               13263 MIDDLETON FARM LN,\r
+                               HERNDON,  VA  20171\r
+                               US\r
 \r
 70-B3-D5   (hex)               Edge Power Solutions\r
 612000-612FFF     (base 16)            Edge Power Solutions\r
@@ -23861,11 +24035,11 @@ AAB000-AABFFF     (base 16)           QUISS GmbH
                                Melbourne  FL  32940\r
                                US\r
 \r
-70-B3-D5   (hex)               Tobi Tribe Inc\r
-D68000-D68FFF     (base 16)            Tobi Tribe Inc\r
-                               13263 MIDDLETON FARM LN,\r
-                               HERNDON,  VA  20171\r
-                               US\r
+70-B3-D5   (hex)               Eurotempest AB\r
+E37000-E37FFF     (base 16)            Eurotempest AB\r
+                               Algolgatan 10\r
+                               Linköping  Other  58335\r
+                               SE\r
 \r
 70-B3-D5   (hex)               Antek Technology \r
 9E5000-9E5FFF     (base 16)            Antek Technology \r
@@ -23873,11 +24047,17 @@ D68000-D68FFF     (base 16)           Tobi Tribe Inc
                                Taipei    100\r
                                TW\r
 \r
-70-B3-D5   (hex)               Eurotempest AB\r
-E37000-E37FFF     (base 16)            Eurotempest AB\r
-                               Algolgatan 10\r
-                               Linköping  Other  58335\r
-                               SE\r
+70-B3-D5   (hex)               plc-tec AG\r
+095000-095FFF     (base 16)            plc-tec AG\r
+                               Panoramastrasse 5\r
+                               Hägglingen    5607\r
+                               CH\r
+\r
+70-B3-D5   (hex)               Weihai Weigao Medical Imaging Technology Co., Ltd\r
+534000-534FFF     (base 16)            Weihai Weigao Medical Imaging Technology Co., Ltd\r
+                               No. 566-1, Qishan Road, Lingang Economic and Technological Development Zone\r
+                               Weihai  Shandong  264210\r
+                               CN\r
 \r
 70-B3-D5   (hex)               ARECA EMBEDDED SYSTEMS PVT LTD\r
 F15000-F15FFF     (base 16)            ARECA EMBEDDED SYSTEMS PVT LTD\r
@@ -23897,12 +24077,6 @@ F59000-F59FFF     (base 16)            KOREA SPECTRAL PRODUCTS
                                Incheon    21999\r
                                KR\r
 \r
-70-B3-D5   (hex)               Weihai Weigao Medical Imaging Technology Co., Ltd\r
-534000-534FFF     (base 16)            Weihai Weigao Medical Imaging Technology Co., Ltd\r
-                               No. 566-1, Qishan Road, Lingang Economic and Technological Development Zone\r
-                               Weihai  Shandong  264210\r
-                               CN\r
-\r
 70-B3-D5   (hex)               LiveCopper Inc.\r
 9E9000-9E9FFF     (base 16)            LiveCopper Inc.\r
                                600 Greer Rd\r
@@ -23939,18 +24113,6 @@ F59000-F59FFF     (base 16)            KOREA SPECTRAL PRODUCTS
                                Shenzhen  Guangdong   518132\r
                                CN\r
 \r
-70-B3-D5   (hex)               CAST Group of Companies Inc.\r
-BDE000-BDEFFF     (base 16)            CAST Group of Companies Inc.\r
-                               35 Ripley Ave.\r
-                               Toronto  Ontario  M6S3P2\r
-                               CA\r
-\r
-70-B3-D5   (hex)               Momentum Data Systems\r
-116000-116FFF     (base 16)            Momentum Data Systems\r
-                               5432 Bolsa Ave Unit B\r
-                               Huntington Beach  CA  92649\r
-                               US\r
-\r
 70-B3-D5   (hex)               Camozzi Automation SpA\r
 3AB000-3ABFFF     (base 16)            Camozzi Automation SpA\r
                                Via Eritrea 20/I\r
@@ -23969,36 +24131,42 @@ BDE000-BDEFFF     (base 16)           CAST Group of Companies Inc.
                                Nürnberg  Bavaria  90441\r
                                DE\r
 \r
+70-B3-D5   (hex)               CAST Group of Companies Inc.\r
+BDE000-BDEFFF     (base 16)            CAST Group of Companies Inc.\r
+                               35 Ripley Ave.\r
+                               Toronto  Ontario  M6S3P2\r
+                               CA\r
+\r
+70-B3-D5   (hex)               Momentum Data Systems\r
+116000-116FFF     (base 16)            Momentum Data Systems\r
+                               5432 Bolsa Ave Unit B\r
+                               Huntington Beach  CA  92649\r
+                               US\r
+\r
 70-B3-D5   (hex)               Arris\r
 988000-988FFF     (base 16)            Arris\r
                                2500 Walsh Ave.\r
                                Santa Clara  CA  95014\r
                                US\r
 \r
-70-B3-D5   (hex)               Xirgo Technologies LLC\r
-646000-646FFF     (base 16)            Xirgo Technologies LLC\r
-                               188 Camino Ruiz\r
-                               Camarillo  CA  93012\r
-                               US\r
-\r
 70-B3-D5   (hex)               Transit Solutions, LLC.\r
 4E2000-4E2FFF     (base 16)            Transit Solutions, LLC.\r
                                114 West Grandview Avenue\r
                                Zelienople  PA  16063\r
                                US\r
 \r
+70-B3-D5   (hex)               Xirgo Technologies LLC\r
+646000-646FFF     (base 16)            Xirgo Technologies LLC\r
+                               188 Camino Ruiz\r
+                               Camarillo  CA  93012\r
+                               US\r
+\r
 70-B3-D5   (hex)               JD Squared, Inc.\r
 562000-562FFF     (base 16)            JD Squared, Inc.\r
                                915 Riverview Drive\r
                                Johnson City  TN  37601\r
                                US\r
 \r
-70-B3-D5   (hex)               VOCAL Technologies Ltd.\r
-7B5000-7B5FFF     (base 16)            VOCAL Technologies Ltd.\r
-                               520 LEE ENTRANCE STE 202\r
-                               BUFFALO  NY  142282583\r
-                               US\r
-\r
 70-B3-D5   (hex)               Deltronic Security AB\r
 CEC000-CECFFF     (base 16)            Deltronic Security AB\r
                                E A Rosengrensgata 4\r
@@ -24011,6 +24179,12 @@ F90000-F90FFF     (base 16)            Atman Tecnologia Ltda
                                Vitória  Espírito Santo  29070-010\r
                                BR\r
 \r
+70-B3-D5   (hex)               VOCAL Technologies Ltd.\r
+7B5000-7B5FFF     (base 16)            VOCAL Technologies Ltd.\r
+                               520 LEE ENTRANCE STE 202\r
+                               BUFFALO  NY  142282583\r
+                               US\r
+\r
 70-B3-D5   (hex)               Shenyang TECHE Technology Co.,Ltd\r
 47D000-47DFFF     (base 16)            Shenyang TECHE Technology Co.,Ltd\r
                                oom2302, Changfeng building, 26-2 Pangjiang street, Dadong District\r
@@ -24023,6 +24197,12 @@ F90000-F90FFF     (base 16)            Atman Tecnologia Ltda
                                Helsingborg    25225\r
                                SE\r
 \r
+70-B3-D5   (hex)               Larraioz Elektronika\r
+176000-176FFF     (base 16)            Larraioz Elektronika\r
+                               FACT Larraioz, Ctra GI3162 km 2,2\r
+                               Zarautz    20800\r
+                               ES\r
+\r
 70-B3-D5   (hex)               Omsk Manufacturing Association named after A.S. Popov\r
 A61000-A61FFF     (base 16)            Omsk Manufacturing Association named after A.S. Popov\r
                                10 Let Oktyabrya str, 195\r
@@ -24035,11 +24215,11 @@ A61000-A61FFF     (base 16)           Omsk Manufacturing Association named after A.S. Pop
                                VENDARGUES    34740\r
                                FR\r
 \r
-70-B3-D5   (hex)               Larraioz Elektronika\r
-176000-176FFF     (base 16)            Larraioz Elektronika\r
-                               FACT Larraioz, Ctra GI3162 km 2,2\r
-                               Zarautz    20800\r
-                               ES\r
+70-B3-D5   (hex)               ICsec S.A.\r
+395000-395FFF     (base 16)            ICsec S.A.\r
+                               Wichrowa 1A\r
+                               Poznan    60-446\r
+                               PL\r
 \r
 70-B3-D5   (hex)               Potter Electric Signal Co. LLC\r
 7A4000-7A4FFF     (base 16)            Potter Electric Signal Co. LLC\r
@@ -24059,8 +24239,50 @@ F5D000-F5DFFF     (base 16)            Potter Electric Signal Co. LLC
                                Hazelwood  MO  63042\r
                                US\r
 \r
-70-B3-D5   (hex)               ICsec S.A.\r
-395000-395FFF     (base 16)            ICsec S.A.\r
-                               Wichrowa 1A\r
-                               Poznan    60-446\r
-                               PL\r
+70-B3-D5   (hex)               KMtronic ltd\r
+540000-540FFF     (base 16)            KMtronic ltd\r
+                               Dobri Czintulov 28A str.\r
+                                Gorna Oryahovica  VT  5100\r
+                               BG\r
+\r
+70-B3-D5   (hex)               MIJIENETRTECH CO.,LTD\r
+DCB000-DCBFFF     (base 16)            MIJIENETRTECH CO.,LTD\r
+                               402, Ilshin Techno Valley,555, Dalseo-daero Dalseo-gu\r
+                               Daegu    42709\r
+                               KR\r
+\r
+70-B3-D5   (hex)               Mitech Integrated Systems Inc.\r
+C28000-C28FFF     (base 16)            Mitech Integrated Systems Inc.\r
+                               219 Robert Hicks Dr\r
+                               Toronto  ON  M2R3R3\r
+                               CA\r
+\r
+70-B3-D5   (hex)               SOtM\r
+CC7000-CC7FFF     (base 16)            SOtM\r
+                               202 SSANGYONG-DONG 84/9 WOLBONG 4RO SEOBUK GU\r
+                               Cheonan  Chungnam  31171\r
+                               KR\r
+\r
+70-B3-D5   (hex)               Terratel Technology s.r.o.\r
+31A000-31AFFF     (base 16)            Terratel Technology s.r.o.\r
+                               Dukelska 2192\r
+                               Benesov  CZ  25601\r
+                               CZ\r
+\r
+70-B3-D5   (hex)               Teledyne API\r
+F9D000-F9DFFF     (base 16)            Teledyne API\r
+                               9970 Carroll Canyon Road\r
+                               San Diego  CA  92131-1106\r
+                               US\r
+\r
+70-B3-D5   (hex)               QIT Co., Ltd.\r
+81C000-81CFFF     (base 16)            QIT Co., Ltd.\r
+                               #713, ACE Gwanggyo Tower1, 17, Daehak 4-ro, Yeongtong-gu\r
+                               Suwon-si  Gyeonggi-do  16226\r
+                               KR\r
+\r
+70-B3-D5   (hex)               Farmobile, LLC\r
+13F000-13FFFF     (base 16)            Farmobile, LLC\r
+                               4001 West 114th Street  Suite 300\r
+                               Leawood  KS  66211\r
+                               US\r
index 5c77387a26130454dfe775e5ee7c5edb62827058..63a56b49cc66bcb171f0356b2a38baa3d271c9b1 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # Those files right now are not supported by the grammar. Also,
 # they are very long but quite repetitive and the parser is not very fast.
index 4174c7598ffb9cb86d25ed5854d57b516b4aafeb..ed07224b3ccb8fcd559a74d33d9a7a79c5f3416b 100755 (executable)
@@ -202,9 +202,8 @@ def check_matches(groups):
             except ParseBaseException as e:
                 error('Pattern {!r} is invalid: {}', rest, e)
                 continue
-
-        if not rest.endswith(':*'):
-            error("pattern {!r} does not end with ':*'", match)
+            if rest[-1] not in '*:':
+                error('pattern {} does not end with "*" or ":"', match)
 
     matches.sort()
     prev = None
index e1dc3da818b8dca8157323acde8e5860459ff4f8..4ef971f0433373c64fbc719fe24c632486b894bf 100644 (file)
@@ -1,8 +1,8 @@
 #
 #      List of PCI ID's
 #
-#      Version: 2020.10.11
-#      Date:    2020-10-11 03:15:01
+#      Version: 2020.10.25
+#      Date:    2020-10-25 03:15:01
 #
 #      Maintained by Albert Pool, Martin Mares, and other volunteers from
 #      the PCI ID Project at https://pci-ids.ucw.cz/.
                1d49 0200  ThinkSystem 430-8i SAS/SATA 12Gb HBA
                1d49 0202  ThinkSystem 430-8e SAS/SATA 12Gb HBA
                1d49 0204  ThinkSystem 430-8i SAS/SATA 12Gb Dense HBA
+# PCIe switch SES management endpoint
+       00b2  PEX880xx PCIe Gen 4 Switch SES management endpoint
        00be  SAS3504 Fusion-MPT Tri-Mode RAID On Chip (ROC)
        00bf  SAS3404 Fusion-MPT Tri-Mode I/O Controller Chip (IOC)
        00c0  SAS3324 PCI-Express Fusion-MPT SAS-3
        67e9  Baffin [Polaris11]
        67eb  Baffin [Radeon Pro V5300X]
        67ef  Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X]
+               1025 1367  RX560X 4GB
                1028 1703  RX 560D OEM OC 2 GB
                103c 3421  Radeon RX 460
                1043 0561  AREZ Radeon RX 560
        7347  Navi 14 [Radeon Pro W5500M]
        734f  Navi 14 [Radeon Pro W5300M]
        7360  Navi 12 [Radeon Pro 5600M]
+       73bf  Navi 21 [Radeon RX 6900 Series]
+       73c3  Navi 23
+       73df  Navi 22
        7833  RS350 Host Bridge
        7834  RS350 [Radeon 9100 PRO/XT IGP]
        7835  RS350M [Mobility Radeon 9000 IGP]
        13fb  GM204GLM [Quadro M5500]
        1401  GM206 [GeForce GTX 960]
        1402  GM206 [GeForce GTX 950]
+       1404  GM206 [GeForce GTX 960 FAKE]
        1406  GM206 [GeForce GTX 960 OEM]
        1407  GM206 [GeForce GTX 750 v2]
        1427  GM206M [GeForce GTX 965M]
        1c30  GP106GL [Quadro P2000]
        1c31  GP106GL [Quadro P2200]
        1c35  GP106
+       1c36  GP106
        1c60  GP106BM [GeForce GTX 1060 Mobile 6GB]
                103c 8390  GeForce GTX 1060 Max-Q 6GB
        1c61  GP106BM [GeForce GTX 1050 Ti Mobile]
        1fd9  TU117BM [GeForce GTX 1650 Mobile Refresh]
        1ff9  TU117GLM [Quadro T1000 Mobile]
        20b0  GA100 [A100 SXM4 40GB]
+       20b1  GA100 [A100 PCIe 40GB]
        20be  GA100 [GRID A100A]
        20bf  GA100 [GRID A100B]
        20f1  GA100 [A100 PCIe 40GB]
        2230  GA102GL [RTX A6000]
        223f  GA102GL
        2482  GA104 [GeForce RTX 3070 Ti]
-       2484  GA104 [GeForce RTX 3070]
+       2484  GA104 [GeForce RTX 3070 8GB / 16GB]
+               10de 146b  GA104 [GeForce RTX 3070]
+               10de 14ae  GA104 [GeForce RTX 3070 16GB]
        2486  GA104 [GeForce RTX 3060 Ti]
-       249c  GA104M [GeForce RTX 3070 Mobile]
+       249c  GA104M [GeForce RTX 3070 Mobile / Max-Q]
        249d  GA104M [GeForce RTX 3070 Mobile / Max-Q]
+       24ac  GA104 [GeForce RTX 30x0 Engineering Sample]
+       24ad  GA104 [GeForce RTX 3060 Engineering Sample]
        24af  GA104 [GeForce RTX 3070 Engineering Sample]
        24bf  GA104 [GeForce RTX 3070 Engineering Sample]
+       24dc  GA104 [GeForce RTX 3070 16GB Engineering Sample]
        252f  GA106 [GeForce RTX 3060 Engineering Sample]
+       25af  GA107 [GeForce RTX 3050 Engineering Sample]
 10df  Emulex Corporation
        0720  OneConnect NIC (Skyhawk)
                103c 1934  FlexFabric 20Gb 2-port 650M Adapter
                1137 00ce  VIC 1225T PCIe Management Controller
                1137 012e  VIC 1227 PCIe Management Controller
                1137 014d  VIC 1385 PCIe Management Controller
+               1137 0217  VIC 1455 PCIe Management Controller
+               1137 0218  VIC 1457 PCIe Management Controller
        0043  VIC Ethernet NIC
                1137 0047  VIC P81E PCIe Ethernet NIC
                1137 0048  VIC M81KR Mezzanine Ethernet NIC
 125b  Asix Electronics Corporation
        1400  AX88141 Fast Ethernet Controller
                1186 1100  AX8814X Based PCI Fast Ethernet Adapter
+       9100  AX99100 PCIe to Multi I/O Controller
+               a000 1000  Serial Port
+               a000 2000  Parallel Port
+               a000 6000  SPI
+               a000 7000  Local Bus
 125c  Aurora Technologies, Inc.
        0101  Saturn 4520P
        0640  Aries 16000P
 15b7  Sandisk Corp
        2001  Skyhawk Series NVME SSD
        5001  WD Black NVMe SSD
-       5002  WD Black 2018/PC SN720 NVMe SSD
-       5003  WD Black 2018/PC SN520 NVMe SSD
+       5002  WD Black 2018 / PC SN720 NVMe SSD
+       5003  WD Black 2018 / PC SN520 NVMe SSD
+       5006  WD Black 2019/PC SN750 NVMe SSD
+       5009  WD Blue SN550 NVMe SSD
+               15b7 5009  WD Blue SN550 NVMe SSD
 15b8  ADDI-DATA GmbH
        1001  APCI1516 SP controller (16 digi outputs)
        1003  APCI1032 SP controller (32 digi inputs w/ opto coupler)
 1974  Star Electronics GmbH & Co. KG
        0009  FlexCard PMC-II
        0011  FlexCard PMC-II Ethernet
+       0018  FlexCard PXIe3
+       0019  FlexCard PCIe3
 1976  TRENDnet
 1977  Parsec
 197b  JMicron Technology Corp.
        1285  PC300 NVMe Solid State Drive 1TB
        1327  BC501 NVMe Solid State Drive 512GB
        1504  SC300 512GB M.2 2280 SATA Solid State Drive
+       243b  PE6110 NVMe Solid State Drive
+               1c5c 0100  PE6110 NVMe Solid State Drive
        2839  PE8000 Series NVMe Solid State Drive
-               0100 1c5c  PE8000 Series NVMe Solid State Drive
+               1c5c 0100  PE8000 Series NVMe Solid State Drive
 1c5f  Beijing Memblaze Technology Co. Ltd.
        000d  PBlaze5 520/526 AIC
        003d  PBlaze5 920/926 AIC
        1202  NVMe SSD Controller MAP1202
        1601  NVMe SSD Controller MAP1601
 1e4c  GSI Technology
-# Associative Processing Unit chip
-       0010  Gemini [ Lida ]
+# Associative Processing Unit (APU)
+       0010  APU [Leda-G]
                1e4c 0120  SE120
 1e57  Beijing Panyi Technology Co., Ltd
        0100  The device has already been deleted.
                0000 0100  PY8800 64GB Accelerator
 1e6b  Axiado Corp.
+1e7b  Dataland
 1e7c  Brainchip Inc
        bca1  AKD1000 Neural Network Coprocessor [Akida]
 1e85  Heitec AG
 # aka SED Systems
 1e94  Calian SED
 1e95  Solid State Storage Technology Corporation
+1eae  XFX Limited
 1eb1  VeriSilicon Inc
        1001  Video Accelerator
 # nee Tumsan Oy
                8086 0001  Ethernet Network Adapter I225-T1
                8086 0002  Ethernet Network Adapter I225-T1
        15f3  Ethernet Controller I225-V
+               8086 0003  Intel(R) Ethernet Controller (3) I225-V
        15f4  Ethernet Connection (15) I219-LM
        15f5  Ethernet Connection (15) I219-V
        15f6  I210 Gigabit Ethernet Connection
        163d  Broadwell-U Integrated Graphics
        163e  Broadwell-U Integrated Graphics
        1889  Ethernet Adaptive Virtual Function
+       1890  Ethernet Connection E822-C for backplane
+       1891  Ethernet Connection E822-C for QSFP
+       1892  Ethernet Connection E822-C for SFP
+       1893  Ethernet Connection E822-C/X557-AT 10GBASE-T
+       1894  Ethernet Connection E822-C 1GbE
+       1897  Ethernet Connection E822-L for backplane
+       1898  Ethernet Connection E822-L for SFP
+       1899  Ethernet Connection E822-L/X557-AT 10GBASE-T
+       189a  Ethernet Connection E822-L 1GbE
        18a0  C4xxx Series QAT
        18a1  C4XXX Series QAT Virtual Function
        1900  Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
        3e30  8th/9th Gen Core 8-core Desktop Processor Host Bridge/DRAM Registers [Coffee Lake S]
        3e33  8th/9th Gen Core Processor Host Bridge/DRAM Registers [Coffee Lake]
        3e34  Coffee Lake HOST and DRAM Controller
+       3e35  Coffee Lake Host Bridge/DRAM Registers
        3e81  8th Gen Core Processor PCIe Controller (x16)
        3e85  8th Gen Core Processor PCIe Controller (x8)
        3e89  8th Gen Core Processor PCIe Controller (x4)
                152d 8a24  QS-8236-16i
                152d 8a36  QS-8240-24i
                152d 8a37  QS-8242-24i
+               193d 1104  RAID P2404-Mf-4i-2GB
+               193d 1105  RAID P4408-Mf-8i-2GB
+               193d 1106  RAID P2404-Mf-4i-1GB
+               193d 1107  RAID P4408-Mf-8i-4GB
                193d 8460  HBA H460-M1
                193d 8461  HBA H460-B1
                193d c460  RAID P460-M2
                9005 0805  SmartRAID 3102-8i
                9005 0806  SmartRAID 3100
                9005 0807  SmartRAID 3162-8i
+               9005 0808  SmartRAID 3101E-4i
+               9005 0809  SmartRAID 3102E-8i
                9005 0900  SmartHBA 2100-8i
                9005 0901  SmartHBA 2100-4i
                9005 0902  HBA 1100-8i
                9005 1202  SmartRAID 3154-8i8e
                9005 1280  HBA 1100-16i
                9005 1281  HBA 1100-16e
+               9005 1282  SmartHBA 2100-16i
                9005 1300  HBA 1100-8i8e
                9005 1301  HBA 1100-24i
                9005 1302  SmartHBA 2100-8i8e
        1202  STAR1200I NVMe SSD
        1203  STAR1200L NVMe SSD
        1204  STAR1200E NVMe SSD
+a000  Asix Electronics Corporation (Wrong ID)
 a0a0  AOPEN Inc.
 a0f1  UNISYS Corporation
 a200  NEC Corporation
index a62adc33e6400f0a6fba474368bfa2e501e654da..797a79691ed88bea69d9b02809a0370f0b2abdd4 100644 (file)
  <tr class="even"><td>Meta View, Inc.</td><td>CFR</td><td>07/15/2020</td> </tr>
  <tr class="odd"><td>MILCOTS</td><td>MLC</td><td>07/15/2020</td> </tr>
  <tr class="even"><td>NZXT (PNP same EDID)_</td><td>NXT</td><td>07/15/2020</td> </tr>
+ <tr class="odd"><td>Unicompute Technology Co., Ltd.</td><td>UTC</td><td>10/19/2020</td> </tr>
       </tbody>
     </table>
   </body>
index 8caeb56a5fb01876df5d11162e0da0088aedab5d..6134b27d0381584f159730345de06a1aaa3555fb 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="binfmt.d" conditional='ENABLE_BINFMT'
     xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 479cbb5d92bc8e704f6358b018dc2c3902159255..a6137a065935b9960396014954a3c299628e9379 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="bootctl" conditional='ENABLE_EFI'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 0c2edfc8a582bfab205a90876f7b184ba7ba3746..781e539191ed4f86f24a45fbfcf475d98102cfd2 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="bootup">
 
index 06d17b201a89afbb31049b8539c5fdc83318af70..912f30264144ef9b3983de40ba7d1b2e340f61e4 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="busctl"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 46da7741c97e5cf7abcb63cf460f1d31199f31ee..942a31db7454336bcf82f1b9f51d4c3fbefce9c9 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="coredump.conf" conditional="ENABLE_COREDUMP"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 150d410c24cc5d4ad681627aeadfc1cf3cd4f78d..62dbb314c9be16f538d3bbffe93589614db19990 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="coredumpctl" conditional='ENABLE_COREDUMP'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 567762751b8ed1176a30059e3d0b1a455f5312c0..14bf93a0f79c0cf3a4470a4e6051736c5856a3b0 100644 (file)
@@ -3,7 +3,7 @@
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This is based on crypttab(5) from Fedora's initscripts package, which in
   turn is based on Debian's version.
index dc4b242fc373fe8dd7d71b05b7b911c085ee7bf5..9963322fc9a88945000aec6eeb5609633a4d147c 100644 (file)
@@ -11,3 +11,5 @@
 <!ENTITY KILL_USER_PROCESSES @KILL_USER_PROCESSES_YES_NO@>
 <!ENTITY DEBUGTTY @DEBUGTTY@>
 <!ENTITY RC_LOCAL_PATH @RC_LOCAL_PATH@>
+<!ENTITY fedora_latest_version "33">
+<!ENTITY fedora_cloud_release "1.2">
index 57a9cc97d258b754e1b2439766715437efc9489c..6e4dc27f5dc134dabbfaec3f174f9b93cddfbb31 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 
index d9af519d324b73dc8bbffd882bc120c2954f617a..2ed361fcc2b5617928270d26a6af01a07a77a0fa 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 -->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
index b5ae08473dc21f8ca9699633aa9157930b26da2c..db95d2f75b52e1170cd69d4e204dc283723b4b4d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="daemon">
 
index e0063e051d6d9114e737482b6d2db98a4432968f..addb0effdb375a4cb8f10fff57f96866694332cc 100644 (file)
@@ -1,4 +1,4 @@
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.directives">
   <refentryinfo>
index f14ebbce7cbe0fb49a9a678410ee5f3d2e36edf4..25c6ce2c616a9d9133113b6cfc754873c24714f2 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="dnssec-trust-anchors.d" conditional='ENABLE_RESOLVE'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 4db44616a733aa1cac798b73b70b8c66b77536a1..272211cbd4222e64b62a3ec99d3981b7e6c8c5ad 100644 (file)
@@ -3,7 +3,7 @@
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   Copyright © 2016 Red Hat, Inc.
 -->
index 996876f48a379bcae1390bf7921144f6e9d4d3b4..6c64b726f0f31fa9d239475fb94cbbeffcdbfbf0 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="file-hierarchy">
 
index f811b1034848c7c9dcf1c1ee919a55d574561328..4b3beb80b799aeb6aaba2cba01514cf40de454a6 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="halt"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 8afe993dac1bef87fe66598b3c14ea7d34fb8293..a9cf2f8550ec8cb6079006aa1472842f420f4865 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="homectl" conditional='ENABLE_HOMED'
     xmlns:xi="http://www.w3.org/2001/XInclude">
         <term><option>--realm=</option><replaceable>REALM</replaceable></term>
 
         <listitem><para>The realm for the user. The realm associates a user with a specific organization or
-        installation, and allows distuingishing users of the same name defined in different contexts. The
+        installation, and allows distinguishing users of the same name defined in different contexts. The
         realm can be any string that also qualifies as valid DNS domain name, and it is recommended to use
         the organization's or installation's domain name for this purpose, but this is not enforced nor
         required. On each system only a single user of the same name may exist, and if a user with the same
index d43a83de3eb81f688b660f83ebaccdef6e7cb607..7e99aa61919030b21830e9b9b6100e2b46c269a5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="homed.conf" conditional='ENABLE_HOMED'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index bb880c336ca89afb79e91bb6b0d90b117a228f9c..edbeef8f4af6dd877b30991a28c7a8d3674174fb 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="hostname">
   <refentryinfo>
index 7ca62f48105a7ab822e6807ac6c502118d33612f..8c00867e739ab9926168e331508dc1ddc4e89f5c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="hostnamectl" conditional='ENABLE_HOSTNAMED'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 5e906907472c15592bddae81fae698c8980c18a8..2c1e502dcd4053c49e77e09446262fb9f28b585c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="hwdb" conditional="ENABLE_HWDB">
   <refentryinfo>
index f6a9f1565e4b799b0c7b61ece28d95d7a15be90c..3f69f30df32f6259a16de6fb249625e7351df697 100644 (file)
@@ -3,7 +3,7 @@
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   Copyright © 2015 Chris Morgan
 -->
index 2a67e6fd055ad86e4dfbe1947f72f888b23752ce..403eb57c69bed7b21e8c9fa38f3afa759071fd2e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="journal-upload.conf" conditional='HAVE_MICROHTTPD'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index fa230484a15c18dae10f391c2c44cb5668409f2a..379344170d1add7e17efed24a85d70d99443e93f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
   <refentry id="journalctl"
             xmlns:xi="http://www.w3.org/2001/XInclude">
index 2281e069d50917e395c0155f5f88ddd9247d786f..e50e8cd5c7f24de8b7346d0bb0412d781a3e2c87 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="journald.conf"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 8f61188a63d1b455f33d5e17bc3a305a157428fb..7a4109916c154b7f87a9158234ba7e79f66e6533 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="kernel-command-line">
 
index 3de95f70881087142bbee98b0b196213c0639f03..37eefe256e90b309256d19f4f0a71e11dfbfde2a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="kernel-install"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 049e9f75d7f212760f6af036b1bc74a24447968b..3b32673f39edef901a53f5cc1020b4cafe9825e0 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refsect1>
   <title>Environment</title>
@@ -87,7 +87,7 @@
       pager may be enabled automatically as describe above. Setting <varname>SYSTEMD_PAGERSECURE=0</varname>
       or not removing it from the inherited environment allows the user to invoke arbitrary commands. Note
       that if the <varname>$SYSTEMD_PAGER</varname> or <varname>$PAGER</varname> variables are to be
-      honoured, <varname>$SYSTEMD_PAGERSECURE</varname> must be set too. It might be reasonable to completly
+      honoured, <varname>$SYSTEMD_PAGERSECURE</varname> must be set too. It might be reasonable to completely
       disable the pager using <option>--no-pager</option> instead.</para></listitem>
     </varlistentry>
 
index e378c4dd7cd5403fe7b20e1f90f55684bf523cf6..e3b0634c9f09ecb62492555a4f133e3475b2c5a5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refsect1>
   <title>Notes</title>
index c35bc292ed3b349757fb2eff1bec68ff0f22ce35..4b87962fc0d231dcdc88abb96ebd0832d2f03747 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="libudev"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index 4b01a93bd06758436b2c963ceee2411df2af2a53..29315ceb1743a3353460a5a1aa42749c881f9018 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="loader.conf" conditional='ENABLE_EFI'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index a92cf50a8d73b3321d412966e1db03f38d1b7a64..b24ad9cf2eb5a3c9a1fe31ca5fc0b123dff570fd 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="locale.conf">
   <refentryinfo>
index 5efb5fec7c56aca9143559caf6693dfe9d1600fd..7f7e5775c00128b3eb9d1a91bfada428606ab347 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="localectl" conditional='ENABLE_LOCALED'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 0f1652ee2e5e5e859a1b752cca75a63f33986ea5..73c1b8e5a30f95a6419fabb8ac191c88a8684cde 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="localtime">
   <refentryinfo>
index acc5aa9a6f2a0eb2b6b988f8a12f4a19959e1381..d3745ce52d64eaccf22a7719b43ed38881a689e1 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="loginctl" conditional='ENABLE_LOGIND'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 7857073acacaa00d7c3c49922f93f10c361ef237..be62b6b572307cf1ec9f96f3ce0e2a227896e067 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="logind.conf" conditional='ENABLE_LOGIND'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 7e889ca47a9e09fd40f35a451c701277d5d8de7a..f61634fde54e867e2e11cea0657bc7853a24f819 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="machine-id">
   <refentryinfo>
 
     <orderedlist>
       <listitem><para>If <filename>/etc/machine-id</filename> does not exist, this is a first boot.  During
-      early boot, <command>systemd</command> will write <literal>unitialized\n</literal> to this file and overmount
+      early boot, <command>systemd</command> will write <literal>uninitialized\n</literal> to this file and overmount
       a temporary file which contains the actual machine ID.  Later (after <filename>first-boot-complete.target</filename>
       has been reached), the real machine ID will be written to disk.</para></listitem>
 
index 7a0a396a1ebabcbe4387d9cba7773e12b9d4e482..c42f6e22113456d22df014008d9d53f8972528ac 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="machine-info">
   <refentryinfo>
index 5f940459840728620edfa3d47037e01d718a7485..9026849559b57ba4c1f6380948a8d9fb7752e9ad 100644 (file)
@@ -1,7 +1,10 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="machinectl" conditional='ENABLE_MACHINED'
     xmlns:xi="http://www.w3.org/2001/XInclude">
 
     <example>
       <title>Download a Fedora image, set a root password in it, start
-      it as service</title>
+      it as service</title>
 
-      <programlisting># machinectl pull-raw --verify=no https://dl.fedoraproject.org/pub/fedora/linux/releases/27/CloudImages/x86_64/images/Fedora-Cloud-Base-27-1.6.x86_64.raw.xz
-# systemd-nspawn -M Fedora-Cloud-Base-27-1.6.x86_64
+      <programlisting># machinectl pull-raw --verify=no \
+      https://download.fedoraproject.org/pub/fedora/linux/releases/&fedora_latest_version;/Cloud/x86_64/images/Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86_64.raw.xz \
+      Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86-64
+# systemd-nspawn -M Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86-64
 # passwd
 # exit
-# machinectl start Fedora-Cloud-Base-27-1.6.x86_64
-# machinectl login Fedora-Cloud-Base-27-1.6.x86_64</programlisting>
+# machinectl start Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86-64
+# machinectl login Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86-64</programlisting>
 
       <para>This downloads the specified <filename>.raw</filename>
       image with verification disabled. Then, a shell is opened in it
index d056ad0c71f0537eb53184f28e3c4aeb62db579e..f555d629dfa5df11d0ba430fe1014eedf0db0184 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # This is lame, I know, but meson has no other include mechanism
 subdir('rules')
index d126634e731f600c157973fc552dbecf40aa10ae..cd0c00687a54f3b2662328fffc2dba5c4b6088ff 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="modules-load.d" conditional='HAVE_KMOD'
     xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 9b50912765b348e0ba1c0136a28c74ce7342f3a9..540b34c3790494043ccb4f7387c3e22928a43a5d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="networkctl" conditional='ENABLE_NETWORKD'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 821212c343a728beb8812552eb91361a5a9b107d..65aecb62567724a20938d0dcf55d301d96ecfcaf 100644 (file)
@@ -3,7 +3,7 @@
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   Copyright © 2014 Vinay Kulkarni
 -->
index e12d9bf5b2b41495a308ae963b0bea132aa067e0..8d5b549c3b142798a0f3afc389f49e5d15e8bcea 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="nss-myhostname" conditional='ENABLE_NSS_MYHOSTNAME'>
 
index 56ee073c8a357ec508ec8c3966f4fababa170b07..b2785df410c19992e840fd7e7eca5fe50864a2fc 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="nss-mymachines" conditional='ENABLE_NSS_MYMACHINES'>
 
index e6963e5812a93e18c7bc0bac35c73a294d5c1fd3..78c92030aca4cc9cecb462b603447c72b12c943f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="nss-resolve" conditional='ENABLE_NSS_RESOLVE'>
 
index 6285b8da9da332a7fa8b8dcadb83c259be9bb452..1fee8cc8ba051bbf1e9841adcc3139b98f750d6c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="nss-systemd" conditional='ENABLE_NSS_SYSTEMD'>
 
index 10633b92fca9805a2326fe9b491fb0843cbf17b5..b5e8a44282aac9e28619c4bdb72b0ad88265c576 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="oomctl" conditional='ENABLE_OOMD'
   xmlns:xi="http://www.w3.org/2001/XInclude">
index e6be947c5bc035881195450ceb662c7bbcf05911..35a0686bc50176b6b094463e2cac714d4ecc6d17 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="oomd.conf" conditional='ENABLE_OOMD'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 1fdfb8943a6feaeff77be4711ccbbc4f18e827f2..da6dd7628e281732e7ccfc2f48a820c00e9bd317 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="org.freedesktop.LogControl1"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 8d3defbfe035c986412fc6ce4e5931e921ab010f..b977e1b46f6d3ec43055ae882eb6162f33ddf218 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="org.freedesktop.home1" conditional='ENABLE_HOMED'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 6b2341e48c08217531e872ee809cb2ecf4195325..f8e199ceaafd2102bfd04688bc6bcfbca046e28d 100644 (file)
@@ -5,7 +5,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="org.freedesktop.hostname1" conditional='ENABLE_HOSTNAMED'
     xmlns:xi="http://www.w3.org/2001/XInclude">
@@ -260,7 +260,8 @@ node /org/freedesktop/hostname1 {
       <interfacename>org.freedesktop.hostname1.set-hostname</interfacename>. For
       <function>SetStaticHostname()</function> and <function>SetPrettyHostname()</function> it is
       <interfacename>org.freedesktop.hostname1.set-static-hostname</interfacename>. For
-      <function>SetIconName()</function> and <function>SetChassis()</function> it is
+      <function>SetIconName()</function>, <function>SetChassis()</function>, <function>SetDeployment()</function>
+      and <function>SetLocation()</function> it is
       <interfacename>org.freedesktop.hostname1.set-machine-info</interfacename>.</para>
     </refsect2>
   </refsect1>
index 472b9f999e879753fa8c53701ee30c665c743bfb..9558ee138f8ab70c903d0e181b209693239f68c2 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="org.freedesktop.import1" conditional='ENABLE_IMPORTD'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 3956eaf8a7b8c1f58189a4bb3d2461f3562ba1e4..1da386d6a7d2b8d3cdcf9666c96a79efabc303c8 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="org.freedesktop.locale1" conditional='ENABLE_LOCALED'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 17ffd493ab385b126d81e02dcf09ed1b6833a038..ad27b226b8ab2c8b8010ee3a94de42231dd1bcde 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="org.freedesktop.login1" conditional='ENABLE_LOGIND'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index da4738b615e485e18a28aa173bec59008344d6ec..284c3d60e4658a0f4831222210dc5169b6344882 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="org.freedesktop.machine1" conditional='ENABLE_MACHINED'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 289a7b6e89ded47fab31e18bfe6f9f7a06f9aeeb..ab0725e8674678144eba70a13fc69df294f1f098 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="org.freedesktop.oom1" conditional='ENABLE_OOMD'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index b06155662a59fdb28e8f742b8710fea0b946137d..41562360a012524cc95d9c24a0894d5d0d8ef117 100644 (file)
@@ -5,7 +5,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="org.freedesktop.resolve1" conditional='ENABLE_RESOLVE'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 3c0e5b6eb14712344192c3628f217a97612fd0ab..78fd0b3378d58c084c33836d82305cf8231e1c04 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="org.freedesktop.systemd1" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
@@ -3968,6 +3968,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
       @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
       readonly b PassPacketInfo = ...;
       @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
+      readonly s Timestamping = '...';
+      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
       readonly b RemoveOnStop = ...;
       @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
       readonly a(ss) Listen = [...];
@@ -4523,6 +4525,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
 
     <!--property PassPacketInfo is not documented!-->
 
+    <!--property Timestamping is not documented!-->
+
     <!--property RemoveOnStop is not documented!-->
 
     <!--property Listen is not documented!-->
@@ -5065,6 +5069,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
 
     <variablelist class="dbus-property" generated="True" extra-ref="PassPacketInfo"/>
 
+    <variablelist class="dbus-property" generated="True" extra-ref="Timestamping"/>
+
     <variablelist class="dbus-property" generated="True" extra-ref="RemoveOnStop"/>
 
     <variablelist class="dbus-property" generated="True" extra-ref="Listen"/>
@@ -7205,6 +7211,8 @@ node /org/freedesktop/systemd1/unit/systemd_2dtmpfiles_2dclean_2etimer {
       @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
       readonly t RandomizedDelayUSec = ...;
       @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
+      readonly b FixedRandomDelay = ...;
+      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
       readonly b Persistent = ...;
       @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
       readonly b WakeSystem = ...;
@@ -7230,6 +7238,8 @@ node /org/freedesktop/systemd1/unit/systemd_2dtmpfiles_2dclean_2etimer {
 
     <!--property RandomizedDelayUSec is not documented!-->
 
+    <!--property FixedRandomDelay is not documented!-->
+
     <!--property Persistent is not documented!-->
 
     <!--property WakeSystem is not documented!-->
@@ -7270,6 +7280,8 @@ node /org/freedesktop/systemd1/unit/systemd_2dtmpfiles_2dclean_2etimer {
 
     <variablelist class="dbus-property" generated="True" extra-ref="RandomizedDelayUSec"/>
 
+    <variablelist class="dbus-property" generated="True" extra-ref="FixedRandomDelay"/>
+
     <variablelist class="dbus-property" generated="True" extra-ref="Persistent"/>
 
     <variablelist class="dbus-property" generated="True" extra-ref="WakeSystem"/>
index 325c3acfb1e078bc8634281c9a5864ccb4165048..52efa68935d1cd8315b46317346d1ebb7e06bc37 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="org.freedesktop.timedate1" conditional='ENABLE_TIMEDATED'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index cd5b5bf1589a0a1e75b5f8f06eaf9c5f972e7843..674180679b54f0d234377a8e486735b84f8e876c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="os-release">
   <refentryinfo>
index 609743be6b2f24b34725c76daa11d3bf146d9d16..c26209f111bb946796a7975c53c92d67b3fae47a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="pam_systemd" conditional='HAVE_PAM'>
 
index ab02f98337202e60dbc21d42e27de819796e3c9b..93e84358058830e06f3abc6f31914dfcb0783ad7 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="pam_systemd_home" conditional='ENABLE_PAM_HOME'>
 
index d24c010e2ce49564ee7457bf17446cf7fc2f2074..3653207d727ec6fc5c18a79e8a6d368e3ad3653c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="portablectl" conditional='ENABLE_PORTABLED'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 501171e78a887f245756cfce1206ef43c6a02816..ef3226c5a6fd36b04192bca0dc8877c9f27c8159 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="pstore.conf" conditional="ENABLE_PSTORE"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index a4bd8f52d774d40bc487aaf6b57b6c9c1547cdf8..fb6cae7b9b6a6bd447c3afdfe02381ddbacaf6d3 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="resolvectl" conditional='ENABLE_RESOLVE'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 2cefc4094905bf274e18092314d20f0fd4414cf8..3fa2c6f10ac924d4444d3b3b4835b2ae4974e947 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="resolved.conf" conditional='ENABLE_RESOLVE'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index cc3c2ef5e3b7b3ea42c95270abe7cb8cc598d7c2..cacbbd75bcc89fcd1d9a604ecfbc1264c77c1f58 100644 (file)
@@ -529,11 +529,13 @@ manpages = [
   ''],
  ['sd_event_add_time',
   '3',
-  ['sd_event_source_get_time',
+  ['sd_event_add_time_relative',
+   'sd_event_source_get_time',
    'sd_event_source_get_time_accuracy',
    'sd_event_source_get_time_clock',
    'sd_event_source_set_time',
    'sd_event_source_set_time_accuracy',
+   'sd_event_source_set_time_relative',
    'sd_event_time_handler_t'],
   ''],
  ['sd_event_exit', '3', ['sd_event_get_exit_code'], ''],
index 75a572cb00ec831e0fd9ad01add75de36cad1e28..f5e1e00da444e156bd9cc7ef4359902d0c51fcc8 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="runlevel" conditional='HAVE_SYSV_COMPAT'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index e5590c81c74cd1fbbd4eeed843c48f6487810a88..a69efe03f01f1bcdafa18058be391400cfb6965f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd-bus-errors"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 199a4a81e998c36f547c86739d479e05288c50f1..05fce44acf0d76d66c735c141c91a5dc0ebb2e75 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd-bus" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index a01ec5878690ca5a30d18028c022c7c41fe1816d..5dee3e893c834e97b89645c2879ae3e1ff8eaaa1 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd-daemon"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index afdafff5dad1990ac72cac7e2875dae69f2e4f4f..a28c9b87ec019f39ebef005daf6a61e686754355 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd-event" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 13552e584603e1d8af6390b0a36d73a434d089b3..254c218ac636bfc01a86fa16d893fc5de6bbc7d1 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd-hwdb" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 22d5e0e3ed718fb2ba2ef23c67cc179a57aaf3cd..b5a7e77f8c8479c331700ce8f1ae34069423611f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd-id128"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index a3ee1ea9e1e7b283a0e01958d68cd0c14b0bed87..4609868c11354a96fac55d0e2a610bb076a24c5b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd-journal"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index f39be20fc51d626c558629e9d534932f57eea057..0127b691f55311d1e53a719ee2871e036011db89 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd-login" conditional='HAVE_PAM'
   xmlns:xi="http://www.w3.org/2001/XInclude">
index 6a6a6206334d412cd364e1115f7c206221aaaf21..d9b3ddc83eafcf206f2fbbac97c3b326ad1c6b25 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_booted"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index 071060dde6987d98e3fb459858b61065c35c12f5..1ce1c1367482cc635d0bad57decc3e6198abca0f 100644 (file)
@@ -3,7 +3,7 @@
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   Copyright © 2016 Julian Orth
 -->
index fd11e46fcb930eeb391ed1110683166c34578f04..da3989ef94b367429bbb0c82fdc56ef1f1f83d12 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_add_node_enumerator"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index bce71bd11a121d0954dc9b5dd1a8cb8838cad256..0bb6676ebe1ab231038a182a4ffe0555b8a32fd2 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_add_object"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index cc442d161cdb611802d60344eb276a7fbfc24622..df2704ac99116040010d199990cea252486e5ed4 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_add_object_manager"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 2a207d28487b2ec0134da56a37a9cc4ec926aa78..bb34d4a7b920a630c63cc0a7a3f22b8010a17dc9 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_attach_event"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index f47f9c8526e57032e52594801860f6219c5c6896..2c27f934ac10e7de1493838ab68a5f3ddca6657b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_call"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index ac9cf143ad18ae92271ae1e38c6a7ef41a275c61..762ea11c01067531c11e309005de21edaa930b6d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_call_method"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index ba2a180ee2d0f6c51facc091bd145a6f884fc56d..3075f24bda23fe6032d05827fc8fc31960d459fa 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_can_send"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 42db1074700de4ea82b1f6d4a495ffb6549e6dd7..319d4c0f04328ea1d9cefe939b5f5937adf03401 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_close"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index a3e8079c5187a930675a1ff3722c3bcb4aeed770..e52bee97760fb290079037775a5015418fc341af 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_creds_get_pid" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index d1a168a23b7d368d291f9ffce5e28ef2dbc8e6d5..ea3acc447e9a5851f6d97df5af455478d8d12b0b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_creds_new_from_pid" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index c21876834642d2b29bda022dc68808135d2d4a47..4ae26414ebd356d9f451cb5f7000f3d691cafd20 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_default" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 26ec7d1d708f2403e6baba799dd290f289770497..08d5be400ed27f93651bde28e221f78e0e750955 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_emit_signal"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index f948b5914f54bcb42a3377b34be07729dfec633a..82b91cbe3c72f9feab12b1de5713b838120751dc 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_enqueue_for_read"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 3ce375bb2bee1fd012079cffd821d23faaf4860c..324d455d59393c42aa5afb92b839ba7a47e938cd 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_error" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 1dfc7259e2368f277dc77685e486fd153e4ce56e..f62b43fd7d78d7210f7f6c407363dfbf0332f56f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_error_add_map"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 0a1843a849c7c4da21ae0c7ad767f6cdc0d2d7ef..c3756b83e0791ed1b8fbc9ed070c28755cc89141 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_get_current_handler" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 466606118bd465e53875d7fac7df8c47cee1f761..689bba6f38d6fd8fb01f6d58aa6120a511f14d61 100644 (file)
@@ -3,7 +3,7 @@
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   Copyright © 2016 Julian Orth
 -->
index f949c936c21403432eadc29c361921ce666cbf10..c9978d8ba760709792ca34641c02f53b78a19b03 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_get_n_queued_read">
 
index 37313365738fbe5317700ffb9a0a4965a4291e5b..6f0541d97ad61d5937b324c25fb1a7b863478a6a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_get_name_creds" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 8f3ce6436dce2ecb998bef379cf495253a6e1230..8249485f254efe8d7949bb9212e2a4d81de0ae5a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_get_name_machine_id" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index a72024e5a7eb8f4812bb8beaf06aa4a8d3a71e73..4b1614e352404fd5445700c38fa715ffa6e88454 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_interface_name_is_valid" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
index 4a21189c1d2a5f4cd6fb8f2645b485ef3e16aa84..8e0aed29b3319c6768a1d99f703507215cb6eecd 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_is_open"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index ad7ecd00e3d373358c3ec6fd44e291280002570b..d8f7e60b7dc220be7bfac13c4f76a004eff3f5f1 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_list_names"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 7f9235954f47aba033efdc637019d69dbd06bef4..a1c87366de031d73e3191a5723fd7711f8b5c72c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_append"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index d81ddc558f0ddff107a21b0260e6235969b4650a..57df7c8a4d503b22b3b96236d848d151fd52a95b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_append_array"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index a180046b963e1f512e8fa686518c7418d297650a..aca4d1fe7a885f5c2c29101a83c889339cefcb82 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_append_basic" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index c59b8a4284271a0fdf4e472554c680ac4bc20738..7812a6f8003bd2e3bb34cdecf6118c84b206cbcf 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_append_string_memfd"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 2ce321633d51971c5af12ebd24411c03cd312d02..ecb536cfd053aac75407833bb972553296e5e727 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_append_strv"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index ce21c7e748acbb6a1f1a336c22bf5b2be0435663..9cff48a2bae9e8118f085259f3c39b7c173ac08f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_at_end" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
index cd8ad72e46e34122b617a3c20a9864066ef0309e..278bc354596ab4a86078941e2c6d8410d0657057 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_copy" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 720b114273d21d9cb34cea1cb0199e0f25fe4c59..eac0541ca4acdf385b1332bc142dd9b64d936160 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_dump"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 7b9408c049b688a57c03902f568bf2212a13ad3b..148bda5feb099bd43dc67fe4176b684b44c16497 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_get_cookie"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 958b832534f83d7439ebd8c5c995c53cd5a62166..605e2b4afe760cd7d2bf5ce5bae465099602a2e7 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_get_monotonic_usec"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index e3f41346b657b2734c67929f22826b60a071a254..203145bcdd007974502d35cc35ecb3d52d9e8147 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_get_signature" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
index 442c763a4924c22f7fc198ca0413cee0959d0991..dd86316832fd8def38426ac4a1eac2b073fcb376 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_get_type" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 7eb2c49fcca23ff9fd54efa7d7a0638af1bb6f54..4907c5a7559c66572d28634fe768f4507f790974 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_new" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
index cfb13af51fafec2da1834d6f178c6d9618a462d3..f6278e3c738e742ced2b48efb6e8b0fe8dd55997 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_new_method_call"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 39bb24c3a53613b10f0f7d45b050f68ee1dffae1..7897190cde68de8957ffbe7a008cb61e02187ded 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_new_method_error"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 5ac35e7a3a6dcbf7455f0c7b89f515d71414a904..17862deb0b1a4aebfe17cb70d1de2aec56a9d7cf 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_new_signal"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 64fda41b12113112d2fe64cd5796f2b711648ce6..27b953ecc190c1170051b3d9106e1fb531827bc9 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_open_container"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 2b5f1000be7c1d1ce8fac81ba56fd65f0a5e059e..b94385b02f56eb02503c4d5d04aa5c52fea4979f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_read"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 9bac0246c8458b568521b169b97211efc6a8c0a3..daff9097da9591ea7b941ec692fa8ebd5bbb36f9 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_read_array">
 
index dc9f960618cf0788c83e2bbc1c0e7a62f651aa1e..a308780f673a6bd72b0d5ea11ec0eaca3f3f1806 100644 (file)
@@ -3,7 +3,7 @@
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   Copyright © 2016 Julian Orth
 -->
index a86bbe45d8911bb9cea4e547d5410a115248fb97..a90ae84098395122209936ea8094155bf02cac1a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_read_strv">
 
index cbfa2511d23b564f4723ed14e5cd6c0f10502a60..5640d2821a3f478a509239c2568c87b31fc4613f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_rewind"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 03783d927918d1c877e1ef07e1b605b63b64e928..53d3a218bbea3e54f9f47b1d34987e3363e0c90e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_seal"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 8f3e8aeb8eb0e5ef9e646fb0a4a5f852812347eb..f9539659830985b25572cda761ac1c8147792495 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_sensitive" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 51da5ff3b89e4a81da4153e3ca33e85fc6c2ba14..6308b5e23c98bc90dcd8500e3aa7ed4f23f9ca4f 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_set_destination" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
index 43a94c83c78aad59926018b9d2b52e1b93803d06..dccb99ad8104029dda5975961a5ba3e228126469 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_set_expect_reply" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 0e740ab26152aedca449ece013d809ced121e6d9..7a227c4a2779a80ac264418ffdcc8b2763bc29dd 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_skip" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
index e03a253885d80dcd039e5f383957a2b6c98b4838..9f3a34790ae8bd621441306b01f2e83d6473f50d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_message_verify_type" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
index 340049fc972e384418d9633783a494ba56096762..a4893b62e79facc3c0af62bdff03920fcb32daab 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_negotiate_fds" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index ceca3350fc44ce8f58907095135bdb46112219a1..355b34bad8e14be987d895cbcdd2d6bbf7ba97d2 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_new" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index ade11bc15e1537d8a8cd8b9f57b315d2808a19cf..15aa8a1b863beeae9d97f61a02036925dde33e2c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_path_encode" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 8f35388da3f0977f0e18ee19425f13559b3456b1..225bced1cd223016e4705452f520bba11936c622 100644 (file)
@@ -3,7 +3,7 @@
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   Copyright © 2016 Julian Orth
 -->
index 54cd81771733d2c2ea2c47204c1ca9600639773e..d0769e8c85b0c83586bc46066bb394738b6f928d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_query_sender_creds" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index dcf9ee299fbe79d53b134d3fd75ccbd07610efe6..93b6663887b7c4b77d1b340cc8c3d5bdb91183ae 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_reply_method_error"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index a6052c61fd89af2bdd7e765abc6bedfe4e5ed578..76e4adecd5e1d08caf9a4f42a1fdcd1407f5cc7e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_reply_method_return"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index f8a49c006b242900886302050b24c8784c0da0fa..ea4ea2279d98855fc987f2a54cf94acff1d76f1b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_request_name"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 233dd7c4fa69293186f5ce6d9159da222c09f6c0..c4c623a1e85e8f78c3128040bc6dca11c8feb871 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_send"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 8404da53f1e6aaab02e6185e3082f76b1b029c0d..c88e88cc5a0424583cca08e98703ddab895a5827 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_set_address"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 64ca35644398cd21e507e30420140e7286964452..cf3bbae0b552c56d49bdf1e01e896db2465890ea 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_set_close_on_exit"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index b025112b6393e7503a8a86922344c6b0b4732c20..b2dfcf0cf9cc15010d1143a303666ca8554c1641 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_set_connected_signal"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index bd3ec78864b251f63814fe8a44bfabc1f25f5182..bbd3835f01d64306149104d2603259632bf2687e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_set_description" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 8bd904ba40779cb3757a380b63d290a0b78651ab..a694aef4f24e7181c05181a1d5c41470d2e48c83 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_set_exit_on_disconnect"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 006020aae709ff4a1253c28a0781a3a97b8cd0f0..0db13e22ae147c2cc62c6dc5332baf4534ff1d78 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_set_method_call_timeout" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 411ccad28c9ffef2de173bff49379f06c3748961..83ede3befb2669965c735614d439cd27a5d4f06a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_set_property"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index b3f67d9f917a97c892449946c39c3c19a2db38c7..c6e07acc979737344c4039e307ed5ea1c7d7a307 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_set_sender"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 625dfd44687b40a7677b9d8c62ffa6bee581baf4..e2cd74da90caa6f4901a3952110f2fd651b3c7f5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_set_server"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 5638cdc0a62e4cbc503e2976457ac601b6352304..20f6f53a2c8a0a8235519c3db147d25f014ecebe 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_set_watch_bind"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 26541a9d97b410b188f6ac2fe7561de6f6099048..48400ad15a5708d3c99903364588ebf90a07d2b4 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_slot_get_bus" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
index ef144ece6d4ae4ac0b5dd2fd278355161e12786e..c200bc4a5a9d89703731dc4e3287b50e2de08d9f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_slot_ref" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
index 9bc2ba859257299903542697b3889ca16b6fa820..4a8df0cc48eece40a87f9b8db993d536de057c2f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_slot_set_description" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
index c2a0876e212506cd0f3d8b9e8476e21874ba418a..4de77d2baad3fe14706687f9bceed7a9edaddd6e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_slot_set_destroy_callback"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index ecfc07951415536cbc86328e9a43b6d77b2da213..dd3a9500cf3285c6e657b77d0b69f5dc919ac67a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_slot_set_floating" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index f0456b4413427451dd79b69ffde41fa40ae3560e..9fa5f3a97838a746f65d664df6508c4314cf27a8 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_slot_set_userdata" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 0be07f4777880d89936c66f7bb78a2ce7efaa62d..68fe3e0e220ad67b49db4d01ba918482183fbf20 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_start"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 29501adf57da062154409e3074d2ae567df9cefb..ae90e4488230c533b704ad6d9ee30344033033b6 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_track_add_name" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 9b79eb4c2dad4673ef60e85592ccf9b1b1ce0a3b..84812b00e519199713162ed85e6f286895db92a4 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_bus_track_new" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 7b97dc02fdd9be397cad8c682256d78972fe99e6..005602d04e0c32ff26d3abaaf3df2770608c0903 100644 (file)
@@ -3,7 +3,7 @@
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   Copyright © 2016 Julian Orth
 -->
index 74ebe6d2641a5edb9e7ff085c38cb36d8599723c..2961b3ee5e3c27ff1793cd1f6b3b49d89bd274d4 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_add_child" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index d1d6d980ee9d04fd3ae70f94229a73e4a9a86e66..54e8823000eb70d093b331fe863ddc6e31465bcc 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_add_defer" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 27d43853e65facf73d982c6a0959912689118516..1681143eb15d4855298054f007df6b0943306897 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_add_inotify" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 51238f47555bb90e786af8f784d5ffa03a236831..323e57c79d0d19415c938c8d1432fad2b270d8a5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_add_io" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 85de53120f1e57349658040d1aac2b7abda3f9b3..1f0854f6cb0912d52c6300a6cb25b4f23be6b3cd 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_add_signal" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 24a316f9edd7b6317e70dd7ee47d4f4f729458d8..3e8927f9666d8f193ef4d7e539d0d03026a03556 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_add_time" xmlns:xi="http://www.w3.org/2001/XInclude">
 
 
   <refnamediv>
     <refname>sd_event_add_time</refname>
+    <refname>sd_event_add_time_relative</refname>
     <refname>sd_event_source_get_time</refname>
     <refname>sd_event_source_set_time</refname>
+    <refname>sd_event_source_set_time_relative</refname>
     <refname>sd_event_source_get_time_accuracy</refname>
     <refname>sd_event_source_set_time_accuracy</refname>
     <refname>sd_event_source_get_time_clock</refname>
index 53aed7001267a89ea5f366d53c8354b856d1c38e..e13cbe18ab9d499942c47d3fac94931edd855fa4 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_exit" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 3e78182137542ba7418121257aa696cc3e8f55d9..a3b11e41ee3cd0af78ba3126b00ba0a429a293f0 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_get_fd" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 0e572c40ee46a60a2ab6e35437dd4b53ed083738..352137ec098fe8236fb20a111fa48bfac1b48b81 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_new" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 2d2b085015f5597954479271de2218841884db37..789b9e028847ac6c4b3f9e5fa52bf6eb950cb692 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_now" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 5c33d61fdf05d6d3518f0a2905f4df057087ad09..81c51b7060393416f65a6f4bdf2fbf1d06c0aee6 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_run" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index cacc683b578814f8d22034943f8fe2aa1388e3a8..28d647c7bcdea49f72e234871e793d15b4fa506f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_set_watchdog" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 2b059a35231aeab013baab0b89f0d457340f804c..b301d6f9b9b94c9f0703526a7c26cf580db95cf3 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_source_get_event" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 603d4ad3775abc8d152cbda024bb6f28d9c3d5e6..5906930b3c3be64cc4f6b16c1df042115eeba570 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_source_get_pending" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 717cc5be9e6adef9d031f74d62f4229f93f52800..bea3e71914e571f71be5a0befb4e8389d6d14f46 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_source_set_description" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 3df926b8634f02728fa71ed3078e850fa177c8fb..4e39f21020d053b1519523bd680d7768f0f89039 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_source_set_destroy_callback"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 6a7a39b4276c6617b34e725f882b88a06dec55df..cf00695fda6f925c04127ba6db05d8bc77765720 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_source_set_enabled" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index f9d87488c476447af07bca989fed4936d1dc5046..6f839cddc0aa9018cb538537c40ad3f1a0ccada0 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_source_set_exit_on_failure" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 89341d18c4309592c68c7c7648d13754b24cc8c6..7f3ed86a6585ff0bfe9a4b58f08485ef28379a56 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_source_set_floating" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 63c33ca19e41f9a5c3f04480fa0c367ca709ece2..f24b00edd51d109cb96f7f6c811d68e28038edc0 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_source_set_prepare" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index d1cb416dcb220afcc87deff1c17fb9fb46443a6d..2616c12e3fc7aed942fef68d89439d0e1348f714 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_source_set_priority" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index fe315845fa277096de307032b62b38e63749c7bc..f3649c4e712e9ff36ee28aa76b1ac368cb714b6e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_source_set_userdata" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 81131fa737f373b8f85612dc75d0b8212a5bbbad..a7699e354782a8e0e7ee87604e4a34b435185913 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_source_unref" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 210a0c948d02d8b36a9b4b1b74cbd75d701d55b6..25e21b9d5cfbf52b00538343f171c65b42d2db61 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_event_wait" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index ed4b77b3ea5ccf00bb9d90440ed09b00734fb5bc..3596dbc0de8cbcb3be54aad6c79821a51d84dff5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_get_seats" conditional='HAVE_PAM'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index dbaaf6292cff8620b09aa9894f77351e05bc0786..76a6c176278102363f6d713845e5de2267679122 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_hwdb_get" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
index 8f1c01b7314bde75c720ade641030110956288ee..c071599ae6a33fcdabfab3f0f1a761eefac53abc 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_hwdb_new" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
index bb85d8839f4daa6de6567347aa3aeb5e91a5598c..2df4496f19248e6703e8871d25aea7d7c0bb7028 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_id128_get_machine" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 9cf55ddab03fcd2ac4ab6f4c5aa3e6e5e49b8ef9..cf6ca7726f1b7187824489b43febc66983f354be 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_id128_randomize" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 4f585e35a0b6090ba566ee33effcbfafb82af683..d9c981717f55c9edce1c975e829733a0c0cad007 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_id128_to_string" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 339bb327079bd071c774997bcfaee5645f704a27..99f152400422d1a536cd37d49140cdb67b199e54 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_is_fifo"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index 83f7fe9242d840df42a72ce586b07cf84dd72023..f7f5ee364ad99a5cacc498eafaa97eeb36542a02 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_add_match" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 791d1c74695cf79536973db444c3161f1338c9d2..62bb53bb30584006883ba9f1c288b45712f844d1 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_enumerate_fields" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 8c7058a132f640f997f40b78a6bcf6ec1ccc26e0..ad5992f0ba37c42b7bdd705ea9ed90ed1f52a6a1 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_get_catalog" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 851bfde816d26303c63cafe26792c736e77c7fb3..acaba069607bcc90c09aea917bdfe1383e5b483a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_get_cursor" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index a76855feaa669cabc2817d564c431f3af1cad9c7..445130e1cb36bd1e39314aa973e140fc0f20ca03 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_get_cutoff_realtime_usec" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 209f5deaa1dde53b989b7aa11e6361c4ca647a5f..b18aaec658eb77d1c444788c4ade4b8603ad3e47 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_get_data" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index fc55bbd5ff5aa97b15f74f81368ce573d7cd069a..52360c76c334d0ef83d2e9685c89bd0c884f6d2a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_get_fd" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index f8150ded194b66ce3e43a042959f95a9a48220fa..025b6a1a5aaefea8f98a716a4c216d7170524286 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_get_realtime_usec"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 63683715627646e30f6657db3111c4432b6caaab..e6fcd67df14ca99c0d72cc7b56a9e9ede649b8e7 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_get_usage" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 02fdc12473e57176acb2adb03b923f11fd15fb4c..a1e0529423018ab4e8c51ca554d70edb981cc7af 100644 (file)
@@ -3,7 +3,7 @@
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 -->
 
 <refentry id="sd_journal_has_runtime_files" xmlns:xi="http://www.w3.org/2001/XInclude">
index 20d153db6487d3862f97e4fdc747605fa5bf10e5..56083317371cd6d94c1d0478e17fc4a75296a3cf 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_next" xmlns:xi="http://www.w3.org/2001/XInclude">
 
@@ -78,9 +78,9 @@
     the read pointer back one entry.</para>
 
     <para><function>sd_journal_next_skip()</function> and
-    <function>sd_journal_previous_skip()</function> advance/set back
-    the read pointer by multiple entries at once, as specified in the
-    <varname>skip</varname> parameter.</para>
+    <function>sd_journal_previous_skip()</function> advance/set back the read pointer by multiple
+    entries at once, as specified in the <varname>skip</varname> parameter. The <varname>skip</varname>
+    parameter must be less than or equal to 2147483647 (2^31-1).</para>
 
     <para>The journal is strictly ordered by reception time, and hence
     advancing to the next entry guarantees that the entry then
index bdece26ccca971d85f6af06a22443f8c2a135f95..8f62c966eafefd079578813a2d1eb8288404c1b9 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_open"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 84adab5c7b22bcfb9e66aca34a480ab19be73139..47b1f8ab1b449a4f561efe72de5c4a7565e5dd6c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_print" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 88beaa6460cd4f05904a656de68395f6db583481..9e88ebed31bc53776fffe5348df3cf7f0c4af487 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_query_unique" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 8e505f91e4d1f2e3118b9c8d8345e7305e78fca6..869889a4bf665c94267238f1ad3675606e6b04c0 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_seek_head" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index bdb27cc8ac8d08da5123fe523e9886a6757d0392..af2234e77d69c1db6f9cd6594c2bfa4450fcc249 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_journal_stream_fd" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 4973718ef6b5f6cf68b125ec73f9b070289ad715..60135790508daba86472757805c18465dac23364 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_listen_fds"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index d1c83e2d20080a3f8e025f4e370588a0378c4e55..57d22f9f6524b75a4223990e021ef83b14b25f9d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_login_monitor_new" conditional='HAVE_PAM'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index a8db371230b956111f75ac6d98ad0d1e49cb9cee..6e5fe9e23dc9c0c839bd6e2cccd0a818df440d2e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_machine_get_class" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 3721ed91ef83d1d3655f41f8d22eecc618795f78..69e1b024ade54761a218255c52538749b8601486 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_notify"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index 9316090cceeaa49b7e090bcf74c3a1c8e3884b70..01fb1ed8f158352fb6b66b624c8cad18f85451a1 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_path_lookup" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index f684c03aeba4576bd69868d0fdb5350a9ab9f728..3e30acad8db7bf5274b78557d6b6a2f673ae0312 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_pid_get_owner_uid" conditional='HAVE_PAM'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 94401caa7280335d5e9fcaee8cbae92f4ba590d7..9cdbf357e7ce5002da1010fd88ec5368bf9c72ec 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_seat_get_active" conditional='HAVE_PAM'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index d4a12f533c04cfafe4a129a4d773ec1fb7f45184..9941a05a86fe98203c9e46d5b5dc56112ad57582 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_session_is_active" conditional='HAVE_PAM'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index ed38559bb37f80709c1307478c475dec6b9b4e9b..dcac27b326206561a26f00d61aa7041a1b24446d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_uid_get_state" conditional='HAVE_PAM'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 0aa5609a3525f8694d74c92bbe79dbfa5882eb3a..26bd57bbb2db93845b95d60eca4969f35b14dbbf 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="sd_watchdog_enabled"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index bc2fa6074499a8ccb763a3c0dd2289a4ea708802..f29010f6b653f910363810a44d9219564fbd2c77 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="shutdown"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index ee8cc7bc0a11b050127416007fd3a22ba6e03fab..69cd7b0c0f060d2e6c00f06bcb1ba10263ac2692 100644 (file)
@@ -3,7 +3,7 @@
           "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
   Copyright © 2014 Josh Triplett
 -->
 
index 6a61d9ec079a82a6a31a9606269a5f9c73406a95..64274ce8f31e032ffc74d3e8ebd41328c197a34a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <variablelist>
   <varlistentry id='help'>
index 5b73043ce2d424b53ac629a33c05175bc5fdbfe7..40bb6cc3ea00a57f23e59e346741cc9f0fd23390 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <tbody>
   <row id='b'>
index 15e048b12d99ca519ea25c186fd0b21632ed8a5b..61cdf468d97b381579f9d97b6e4556c376258681 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 -->
 
 <refsect1>
index d34879506311397165cf2bc9586bfbc98f41dd37..4d810e6c0c47f4d2655fe9777cc999da68a6859b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="sysctl.d"
     xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 94aa08bd6dd6d36cea2855c2fddd89793daf552d..afd3d32bc5aea309c2eb585e116f92923704ef2c 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 -->
 
 <refsect1>
index 61f8d9c9fe30ef7a013e360b819f8ccd023d9086..c83c9c49af626933a5e41a27d741923e459525ee 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemctl"
           xmlns:xi="http://www.w3.org/2001/XInclude">
@@ -1060,6 +1060,14 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
     <refsect2>
       <title>Environment Commands</title>
 
+      <para><command>systemd</command> supports an environment block that is passed to processes the manager
+      spawns. The names of the variables can contain ASCII letters, digits, and the underscore
+      character. Variable names cannot be empty or start with a digit. In variable values, most characters
+      are allowed, but non-printable characters are currently rejected. The total length of the environment
+      block is limited to <constant>_SC_ARG_MAX</constant> value defined by
+      <citerefentry project='man-pages'><refentrytitle>sysconf</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
+      </para>
+
       <variablelist>
         <varlistentry>
           <term><command>show-environment</command></term>
@@ -1091,8 +1099,9 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
           <term><command>set-environment <replaceable>VARIABLE=VALUE</replaceable>…</command></term>
 
           <listitem>
-            <para>Set one or more systemd manager environment variables,
-            as specified on the command line.</para>
+            <para>Set one or more systemd manager environment variables, as specified on the command
+            line. This command will fail if variable names and values do not conform to the rules listed
+            above.</para>
           </listitem>
         </varlistentry>
         <varlistentry>
@@ -1113,13 +1122,11 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
           </term>
 
           <listitem>
-            <para>Import all, one or more environment variables set on
-            the client into the systemd manager environment block. If
-            no arguments are passed, the entire environment block is
-            imported. Otherwise, a list of one or more environment
-            variable names should be passed, whose client-side values
-            are then imported into the manager's environment
-            block.</para>
+            <para>Import all, one or more environment variables set on the client into the systemd manager
+            environment block. If no arguments are passed, the entire environment block is imported.
+            Otherwise, a list of one or more environment variable names should be passed, whose client-side
+            values are then imported into the manager's environment block. This command will silently ignore
+            any assignments which do not conform to the rules listed above.</para>
           </listitem>
         </varlistentry>
       </variablelist>
index c7f72abc455feec7008cc79b905d6fe84c81d68f..01df7da1931f56375efec96131cf516f5acb8aa3 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-analyze" conditional='ENABLE_ANALYZE'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index ba8fe7e9280ac352355cd6d4227e90d0a0afc3b3..03b7317cd3506c187b3ff5b6cf4d89796def4ad8 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-ask-password-console.service">
 
   <refentryinfo>
index f696623ee7bee066b0690ec56bee359271b8797f..95e6fd6873f63f8f25a970e8d3204426b4972d55 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-ask-password"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 682c52efb1d3c53551362fd755da175d9aacdbf5..7294910ca38696a06946bff1833d150cfffe0429 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-backlight@.service" conditional='ENABLE_BACKLIGHT'>
 
   <refentryinfo>
index 41a8247c5f400b5c46a508a333093eb056b86ad0..25c5e6dcc262cd5cc0d8f48fa8cce48c9367b1fb 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-binfmt.service" conditional='ENABLE_BINFMT'
     xmlns:xi="http://www.w3.org/2001/XInclude">
 
index 8275838bce0f3cba40a6241d754796eb05b0fd72..e945ee8c73cf8e823654da52600aa93708aef22f 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-bless-boot-generator" conditional='ENABLE_EFI'>
 
   <refentryinfo>
index 1787d7216fa4c5c325a5901442109eae6670692e..53d7e4afdc1644b3ad9431c882d6dccbc5904eaf 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-bless-boot.service" conditional='ENABLE_EFI'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index e92fdd63c0119753a420082c0573a6eafe433390..39a2aa80c9822bc5e9bc4df52f477d325faaf169 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-boot-check-no-failures.service"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index b2948a5c4b5dc38528d7ff0fa4810ad919dc982e..b94665bfca0dd0a50082f4aa4fb7acc3464f5fa7 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-boot-system-token.service" conditional='ENABLE_EFI'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index ee6ad1d533304f107871ab84972a85f6f108b9e8..09f2854d83a2a7d3931d92a2e46ab18e440aa7d7 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-boot" conditional='ENABLE_EFI'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 96d3072a1f350c793672be9a6e23fa66bd941e1d..aff295bd8717dfb041d221397164827e8f7eee09 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-cat"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 2d209ab323d339865549d18aa8643500d5214396..da853ec5aa0d21074a2374a8e14f84286c992545 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-cgls"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 356ec05c776247c61ff5c1bdded20913f5aeb239..a6d9671952b4e7dbec98512e4810158224a67d09 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-cgtop"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 1ab7e598a7c46583145372829da01014c35c624b..e5aec51943456af2b175564f0602468d3f1d1d19 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-coredump" conditional='ENABLE_COREDUMP'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index cb18db246b9906a2bfb3c2f73ec7a14f4b8a6c0f..4284f78c4e0c9cbbe61343465d1a32f4af0b81f5 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-cryptsetup-generator" conditional='HAVE_LIBCRYPTSETUP'>
 
   <refentryinfo>
         <varname>luks.uuid=</varname>, the data device will be set to the one specified by
         <varname>rd.luks.data=</varname> or <varname>luks.data=</varname> of the corresponding UUID.</para>
 
-        <para>LUKS data device parameter is usefull for specifying encrypted data devices with detached headers specified in
+        <para>LUKS data device parameter is useful for specifying encrypted data devices with detached headers specified in
         <varname>luks.options</varname> entry containing <literal>header=</literal> argument. For example,
         <varname>rd.luks.uuid=</varname>b40f1abf-2a53-400a-889a-2eccc27eaa40
         <varname>rd.luks.options=</varname>b40f1abf-2a53-400a-889a-2eccc27eaa40=header=/path/to/luks.hdr
index 164fc2ed849ea225843347d933048357a0d4bd88..216db7467c4d264ca2b1fb35b7b2a0836cd72084 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-cryptsetup@.service" conditional='HAVE_LIBCRYPTSETUP'>
 
   <refentryinfo>
index 305dc2ff371bb92020e90673d5426ecb88f7361f..531209bec2519c23975b113e1189abba47a7d9c8 100644 (file)
@@ -5,7 +5,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-debug-generator">
 
   <refentryinfo>
index 381add7f0c4ff52205bc2c2b591a96a63d019082..7a83bc9fca369e1d650e81f0890c4f4efdedd029 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-delta"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 36c4602d6965159ed86e0af79caa3e4a31ca3c79..09491f7f112b55305973b0082c422efa65e2d7d6 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-detect-virt"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 1c761c4996b5121f3f6251174f792be68a0c2d68..ed2153f765bfe613f34aea13c4376dd26cc12071 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-dissect" conditional='HAVE_BLKID'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 708db01b4a61ca6c82709073fcfea7011a341f30..a9b6b987dea922977d65b836b673738e6a521cf8 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-environment-d-generator" conditional='ENABLE_ENVIRONMENT_D'>
 
   <refentryinfo>
index 86ef175ab8308d4c5330a2d034f588624289aa47..f5d78be4884d892613a63c631fab431a74e2c049 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-escape"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index e60bfa0eb0b306d27c65551e41c5523fa943f628..a1607abb84a17ba875880f2a8dd62335fee12498 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-firstboot" conditional='ENABLE_FIRSTBOOT'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 16fad1ae04d118017a7b7ee675bc4390aa0ced34..035382913f3ea48eba837b73788dbea3f9cc1e01 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-fsck@.service">
 
   <refentryinfo>
index e842f3f9bc84e1a6b47a953ecbe87c9e3936b341..ec8f5c988e10b1225bc1b89e8a21917dee2cd9f9 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-fstab-generator">
 
   <refentryinfo>
index efd490bf3a5bae77f6faf3948e90d74cfbbb189f..507a001ca592e2c03ce739c657995437eddcb847 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-getty-generator">
 
   <refentryinfo>
index 7476edcffc6c4e007145fae044adb6e7b8097dbb..989bc0c46fed8679b867ca977779cf4681a702d5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-gpt-auto-generator" conditional='HAVE_BLKID'>
 
index 2b102cc94073f81aabc5f0d15195e372cb7b6a78..96072ae7fbac167f58a547d9bd7a34a202fd0a9d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-halt.service">
 
index 60d66b201da6105cf9192e0b75f2e75be13145e8..910fcaeb2508ef664cfcd80f3a06d311a504ccdb 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-hibernate-resume-generator" conditional='ENABLE_HIBERNATE'>
 
   <refentryinfo>
index 88858ef6c88ad3e1467c5ac84ef6d1304f964648..c460393d9eaf107db55bdc4158e897065b7d3a53 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-hibernate-resume@.service" conditional='ENABLE_HIBERNATE'>
 
   <refentryinfo>
index d6a239bc96e1a5cce33fee9a505c63e56cfcdcd4..2bc1dba3754f910d6654aa09c91031ae9de0b7d2 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-homed.service" conditional='ENABLE_HOMED'>
 
index 1aa32a61cedc3b9a0291d2349e482fed407d1b3f..c0c46b66094c3a18f622f7d629fd8f870b7c3178 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-hostnamed.service" conditional='ENABLE_HOSTNAMED'>
 
index 15a2c0130a0bc8f8f3ef32866a8a9b3914975a8a..70c052ef8d7dac4d391f471c09d6ccffe700fb02 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-hwdb" conditional="ENABLE_HWDB"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 747b703653209cc1f9df20d9f15eaea9464b4f6e..21cbf1604f0fc1629c5bc6555611611767dec926 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-id128" xmlns:xi="http://www.w3.org/2001/XInclude">
 
index fa3c3a812f05e035fad9c5c80d1d67194c8b249d..19cc69f1a53d590cb3f380df71a46fac61253e3a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-importd.service" conditional='ENABLE_IMPORTD'>
 
index e0399ebbb1c055045af0cc5cc72213faadd9be0a..2fee0ede8458bf1d4a554ce424dc54aaecb4562e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-inhibit"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index ea93efd3f0153f6147455435f94e521ed8bf28cc..b435800c394f64ffa1960dfcb3491a8d891c6f14 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-initctl.service" conditional='HAVE_SYSV_COMPAT'>
 
index a7c50f382f0fe8a538259ad434a99de081aeefd1..61a403766975655d8b39d535a499b0be6c9c24c5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-journal-gatewayd.service" conditional='HAVE_MICROHTTPD'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 1db0128f746d780315e425096ca51bc91f7c9f0f..6e068a617a0a32592fc7ae711031e413004288cb 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-journal-remote" conditional='HAVE_MICROHTTPD'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 174bef803f45401f3d231f5df968abea3b9d262d..e2b39bf96e693efda217765b9dd46190cbd3765d 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-journal-upload" conditional='HAVE_MICROHTTPD'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 1ed36dace9fd3b9572ba50e7f73facafb46aaf89..35cfbde86c8b94e728657ad7f8aa3f64c6e5b5cc 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-journald.service">
 
index 49eeeffee6e368e55c977d2dfc07eb06f50ef418..b0a4a9fb037aa38753a4ccec5d947b11793c6363 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-localed.service" conditional='ENABLE_LOCALED'>
 
index bbfcad4af6b354303b00cdcec9d27dc9d9e1930f..746c9163b47c667552221e5904860218f7c61fe8 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-logind.service" conditional='ENABLE_LOGIND'>
 
index 40c9f436cf4a45017b94caf7da2e0f48005a7a47..cffc3e58ee41c95667e99c87aee9a3e6b70b5751 100644 (file)
@@ -3,7 +3,7 @@
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   Copyright © 2014 Didier Roche
 -->
index 0454c11c8cf4e03f73ce42abe6f94b4e466056f6..2c2a0964932b7325758d9dd3772da3061a7dbb30 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-machine-id-setup"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index a6b1aa0f1389cda4d6872062dc4782dc3bc5979f..1b4318fdbb8f8386e54eed9d8978ff10eec2fc6f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-machined.service" conditional='ENABLE_MACHINED'>
 
index 9aa058588edeb3c64aa0e54715ddd9662acdb6c5..5ea200cc5cce4fee47cfb1acc41116195a0a111e 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-makefs@.service">
 
   <refentryinfo>
index b849b81939d0815c244652347878774269b88a73..0144650e8708e8bb8a5dd4e6f8a82c3caefa15e9 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-modules-load.service" conditional='HAVE_KMOD'>
 
   <refentryinfo>
index 3641c90248aa30c06629fd5456e0b4ddeb743eec..1cde3ab00cd6fe0c0d247a722ed1ab91fe5a9ce2 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-mount"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 4a3f78a9e57915e18ef427a19487baced68ed262..67567c4099efb8a998591d57e67441cf445bb359 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-network-generator.service" conditional='ENABLE_NETWORKD'>
 
index e2f1eb0e831b9c61478b078b2e11496b48d8139c..6d2c71d8c7bf3f001e92478806d501b3a82bb8d5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-networkd-wait-online.service" conditional='ENABLE_NETWORKD'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 2913bb953df0f68ae86dd61679202aa4c0fe1357..df6e180ffcde40af0e4b52de49d48e91045b976f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-networkd.service" conditional='ENABLE_NETWORKD'>
 
index f61bfd9980925c6bc00ae1db484239dcfeedf25d..3fed92ef0eedf40a2526fda18e290f83dd21fa60 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-notify"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 8152cf0f1351316009fe53bdeff8f4ed12968d48..588924ee61b595bc692241c809809907b0a1d24f 100644 (file)
@@ -1,10 +1,10 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
-<!ENTITY fedora_latest_version "32">
-<!ENTITY fedora_cloud_release "1.6">
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-nspawn"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 9d72373d1ef3c0befd1b3e8f0f4a57b2e383ed1b..9cb9c6076a910d156d0e86f3b3fdfa878c9d1982 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-oomd.service" conditional='ENABLE_OOMD'>
 
index 91a8786abdb7082a7b4043758459d924c7dd862f..f2ca87d36843dbf06e337f38691b6c052deeea14 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-path"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 3363a1d946179eecc6c6c9782025bde3a457f75c..ce91b4fcbb09b4389b97a778ac4e6eaec3c16102 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-portabled.service" conditional='ENABLE_PORTABLED'>
 
index 335a3b3d183e1b67d3e14cebb6140e61390ef8c5..306f1099b04544783e34bc9ceb7b5f9a63c3f1bb 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-pstore" conditional='ENABLE_PSTORE'
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 9ba9f3950b73bae81e1ca95bdd22e7d16b554226..4e2a5a43eb9eb408ff5691336027a87e94db837d 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-quotacheck.service" conditional='ENABLE_QUOTACHECK'>
 
   <refentryinfo>
index a9e322425f5dfe2fdafa597249def2446afb6a61..3137ed0c81d6282100826587f1738201c3959348 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-random-seed.service" conditional='ENABLE_RANDOMSEED'>
 
   <refentryinfo>
index b51f50a1e14779ba28b4f2ad6f27dc2c3692a89d..9e175247fd3468cb62e3c1f24d64ce55fed1bbf0 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-rc-local-generator" conditional='HAVE_SYSV_COMPAT'>
   <refentryinfo>
index 4f89156264a2e521eb658d7c728b10d01038286a..be74307f9b960ac4fb970be99cdf53b55f70d272 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-remount-fs.service">
 
   <refentryinfo>
index b234cfe94969bbf4f42c4e67b36fb624421908db..16add32b2d46b7005084d24fdc040cbeff248613 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-repart" conditional='ENABLE_REPART'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 8f3494e36b0b16cbd672c655544f1d1129daae9d..12aefd5a892f5296dc8fbc66f134ae587a9ed7b8 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-resolved.service" conditional='ENABLE_RESOLVE'>
 
 
       <para>In case of single-label names, when search domains are defined, the same logic applies, except
       that the name is first suffixed by each of the search domains in turn. Note that this search logic
-      doesn't apply to any names with at least one dot. Also see the discussion about compatiblity with
+      doesn't apply to any names with at least one dot. Also see the discussion about compatibility with
       the traditional glibc resolver below.</para></listitem>
 
       <listitem><para>If a query does not match any configured routing domain (either per-link or global), it
       <filename>/etc/hosts</filename>.</para></listitem>
 
       <listitem><para>Single-label names are not resolved for A and AAAA records using unicast DNS (unless
-      overriden with <varname>ResolveUnicastSingleLabel=</varname>, see
+      overridden with <varname>ResolveUnicastSingleLabel=</varname>, see
       <citerefentry><refentrytitle>resolved.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
       This is similar to the <option>no-tld-query</option> option being set in
       <citerefentry><refentrytitle>resolv.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
index bc3322cf2d36ced276adb6d9cfdb73924a4fe3fd..d89eb91d435ba91aceeba54547bd0fb93acaffea 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-rfkill.service" conditional='ENABLE_RFKILL'>
 
   <refentryinfo>
index db84cf73a82164f759d3af0c748b284c6b2c9ce5..02924b45f148dfb230ad484846c180be7cd5f4bc 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-run-generator">
 
   <refentryinfo>
index c1471e108f2d77baa0fc0e585a5b746b3d6fbf7b..fc8716ea79d304ce2f0d4e5b655f9d7ab601d866 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-run"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index a3714f52ae62345666d3df315c65ceebd0ae1ca2..d117a212acdafca9f25ea52422d89afd473a3035 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-sleep.conf"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 20a557219257d5db8ff9165a2a902fe5c3ecfdb0..a9d00dce21e40f8c82b7d850614c1fc551bb75d5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-socket-activate"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index a4e18989fc106900eeada51dd70a153490c1166e..e512a4334e95752b1097b150c67b3210c86d0998 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-socket-proxyd"
     xmlns:xi="http://www.w3.org/2001/XInclude">
 
index e57000e09ad91443e04fe66892ed3e9a19f93b4e..e4a6de548f915c70dfaea6895053ee9a4d6831f8 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-suspend.service"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index fa1cbef586b1f0eccb63dba95795c04bd87cca18..751aa2b09e07563579dd9e24156d37c51ed0ffe1 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-sysctl.service"
     xmlns:xi="http://www.w3.org/2001/XInclude">
 
index d816c0b2c8d8aef3f4918223d5f660ba70ffd8ac..8711be26e34939ae32088cfb58dab911ca915517 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-system-update-generator">
 
   <refentryinfo>
index c64e57c2777ef4d36b7192748110ecf19ac34ed3..736218e5193f03f96a48636ed2b656ad13374d82 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-system.conf"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 1e5853a55b8e86469d8f0a5a2b6c3b8a4b9afd5a..950a8b4499bbb9e306cbacd2bf94468929b9026c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-sysusers"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 7396d4ab606e4950fb203065cb0b783a4dff7738..14ab932fedb6b7531493c9e3070675166aa4d859 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-sysv-generator" conditional="HAVE_SYSV_COMPAT">
 
   <refentryinfo>
index 685fe74339e999067ac3ed65f34d20ff1efc8bcc..28f55a184e18d2bc3ab5cc3fab3f8cb2f184231b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-time-wait-sync.service" conditional='ENABLE_TIMESYNCD'>
 
index 93cfdf511803a06c109101e6450aa8b0905f1fc3..112bdf3040d7e30c68ecf3a81ff344f69ed54e55 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-timedated.service" conditional='ENABLE_TIMEDATED'>
 
index 3dff63779bd56e44ee23cb3cde30838488668f88..ff14c40665b3bca1389d7597555b2cb5a739f64d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-timesyncd.service" conditional='ENABLE_TIMESYNCD'>
 
index b6011c344a8a5205c1b43eb32e177e4328212bb9..90c2626685edd526106b0673a7ee9a8a1e9a568b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-tmpfiles"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 36089dff83c11332e626d9bce07cdc5a4ddf3836..995657683b663e33cb06c0faf0f09bfe1b864716 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-tty-ask-password-agent"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 3698bfaf19a9ed831210a3d24c990942e7efffb1..2852f314660be3da8bda6c44f0c7d77dc207858e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-udev-settle.service"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index e49690dc74b2c78d7ec78be06a11b41b581f9c23..5df4cd6a223ef98018c6883cc7ef82335c4f1ee5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-udevd.service"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index f26da5102abdbaf7f9df8eccc2e9d7583bd1aa6c..3393010ff639b4f3b9f59b9899d275098ae7a71a 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-update-done.service">
 
   <refentryinfo>
index e1059ec733f07aeab9c96a973d3865e0f0218d1e..ff01893b94f5896994e778d5357a2cff31a1b607 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-update-utmp.service" conditional="ENABLE_UTMP">
 
   <refentryinfo>
index ab33d469a20d204df1d1fc9d892a852249f0ca8e..f05e4e3222632d2e69675480df0dcdb26981f5fa 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-user-sessions.service" conditional='HAVE_PAM'>
 
   <refentryinfo>
index 9d5841c0f01ca55546cc56cf352c448043fa3a6d..a6234be214c3db54929937433ce7ceb098efa413 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd-userdbd.service" conditional='ENABLE_USERDB'>
 
index 7e763837201b054ca441be0bca96a6a6819c71b6..80577edba0513b3a6063b219b108527340f3c941 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-vconsole-setup.service" conditional='ENABLE_VCONSOLE'>
 
   <refentryinfo>
index bcacd59cf965ddf1c7f28174e16ee5ef59f96b2f..d2736a7fd518dd2cfe7b3bc217da54897638b86c 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-veritysetup-generator" conditional='HAVE_LIBCRYPTSETUP'>
 
   <refentryinfo>
index 2c71c3e70bf88094eae3aff2e553269632466b78..c9554b087aebb35bfd0a33670f459e36d83c5c93 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-veritysetup@.service" conditional='HAVE_LIBCRYPTSETUP'>
 
   <refentryinfo>
index 0b1f39e34d0e13841681436cd2fcb565af195372..d591da2f779e27d60cc837d7ccafc23bcfa2661b 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-volatile-root.service">
 
   <refentryinfo>
index 07b6e455f703e794cb63ebb501e18688c9692a30..4d153c30403afff7c9166f4115e4722cab0061de 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd-xdg-autostart-generator" conditional="ENABLE_XDG_AUTOSTART">
 
   <refentryinfo>
@@ -21,7 +21,7 @@
   </refnamediv>
 
   <refsynopsisdiv>
-    <para><filename>/usr/lib/systemd/system-generators/systemd-xdg-autostart-generator</filename></para>
+    <para><filename>/usr/lib/systemd/user-generators/systemd-xdg-autostart-generator</filename></para>
   </refsynopsisdiv>
 
   <refsect1>
index 29b9bb14e14fc659a36a30d0b626f90c3fafe1bc..a592fd3af2f6a4d73af1ff378fa696a4eacc622b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.automount">
   <refentryinfo>
index 49b59ebf13013ae06f3c10b837a0b5e671018877..255ca3373bbcb354856066011f361f13c29a16f5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.device">
   <refentryinfo>
index c4f7ef6e6bcf757a4ebd18a5c1ad2f5cf618364b..96a14b1ba542063cc7e21878092e42c2f6d1bda5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.dnssd"
           xmlns:xi="http://www.w3.org/2001/XInclude"
index 4ffe89065d1fdcf5993dedf250e800650e9b9847..663d7dcddf944cb54ea8c16edf14f43cd53a224c 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.environment-generator" conditional='ENABLE_ENVIRONMENT_D'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 9da919c3795b61edff4fd3e9f2a204cf69170217..ae362206be3597169b5f93d3813a05559fde24df 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.exec" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
@@ -885,7 +885,7 @@ CapabilityBoundingSet=~CAP_B CAP_C</programlisting>
         <citerefentry><refentrytitle>umask</refentrytitle><manvolnum>2</manvolnum></citerefentry> for
         details. Defaults to 0022 for system units. For user units the default value is inherited from the
         per-user service manager (whose default is in turn inherited from the system service manager, and
-        thus typically also is 0022 — unless overriden by a PAM module). In order to change the per-user mask
+        thus typically also is 0022 — unless overridden by a PAM module). In order to change the per-user mask
         for all user services, consider setting the <varname>UMask=</varname> setting of the user's
         <filename>user@.service</filename> system service instance. The per-user umask may also be set via
         the <varname>umask</varname> field of a user's <ulink url="https://systemd.io/USER_RECORD">JSON User
@@ -2186,13 +2186,18 @@ SystemCallErrorNumber=EPERM</programlisting>
       <varlistentry>
         <term><varname>Environment=</varname></term>
 
-        <listitem><para>Sets environment variables for executed processes. Takes a space-separated list of variable
-        assignments. This option may be specified more than once, in which case all listed variables will be set. If
-        the same variable is set twice, the later setting will override the earlier setting. If the empty string is
-        assigned to this option, the list of environment variables is reset, all prior assignments have no
-        effect. Variable expansion is not performed inside the strings, however, specifier expansion is possible. The $
-        character has no special meaning. If you need to assign a value containing spaces or the equals sign to a
-        variable, use double quotes (") for the assignment.</para>
+        <listitem><para>Sets environment variables for executed processes. Takes a space-separated list of
+        variable assignments. This option may be specified more than once, in which case all listed variables
+        will be set. If the same variable is set twice, the later setting will override the earlier
+        setting. If the empty string is assigned to this option, the list of environment variables is reset,
+        all prior assignments have no effect. Variable expansion is not performed inside the strings,
+        however, specifier expansion is possible. The <literal>$</literal> character has no special
+        meaning. If you need to assign a value containing spaces or the equals sign to a variable, use double
+        quotes (") for the assignment.</para>
+
+        <para>The names of the variables can contain ASCII letters, digits, and the underscore
+        character. Variable names cannot be empty or start with a digit. In variable values, most characters
+        are allowed, but non-printable characters are currently rejected.</para>
 
         <para>Example:
         <programlisting>Environment="VAR1=word1 word2" VAR2=word3 "VAR3=$word 5 6"</programlisting>
@@ -2701,15 +2706,16 @@ StandardInputData=SWNrIHNpdHplIGRhIHVuJyBlc3NlIEtsb3BzLAp1ZmYgZWVtYWwga2xvcHAncy
         credential plus a file system path. The ID must be a short ASCII string suitable as filename in the
         filesystem, and may be chosen freely by the user. If the specified path is absolute it is opened as
         regular file and the credential data is read from it. If the absolute path refers to an
-        <constant>AF_UNIX</constant> stream socket in the file system a connection is made to it and the
-        credential data read from the connection, providing an easy IPC integration point for dynamically
-        providing credentials from other services. If the specified path is not absolute and itself qualifies
-        as valid credential identifier it is understood to refer to a credential that the service manager
-        itself received via the <varname>$CREDENTIALS_DIRECTORY</varname> environment variable, which may be
-        used to propagate credentials from an invoking environment (e.g. a container manager that invoked the
-        service manager) into a service. The contents of the file/socket may be arbitrary binary or textual
-        data, including newline characters and NUL bytes. This option may be used multiple times, each time
-        defining an additional credential to pass to the unit.</para>
+        <constant>AF_UNIX</constant> stream socket in the file system a connection is made to it (only once
+        at unit start-up) and the credential data read from the connection, providing an easy IPC integration
+        point for dynamically providing credentials from other services. If the specified path is not
+        absolute and itself qualifies as valid credential identifier it is understood to refer to a
+        credential that the service manager itself received via the <varname>$CREDENTIALS_DIRECTORY</varname>
+        environment variable, which may be used to propagate credentials from an invoking environment (e.g. a
+        container manager that invoked the service manager) into a service. The contents of the file/socket
+        may be arbitrary binary or textual data, including newline characters and <constant>NUL</constant>
+        bytes. This option may be used multiple times, each time defining an additional credential to pass to
+        the unit.</para>
 
         <para>The credential files/IPC sockets must be accessible to the service manager, but don't have to
         be directly accessible to the unit's processes: the credential data is read and copied into separate,
@@ -2723,7 +2729,22 @@ StandardInputData=SWNrIHNpdHplIGRhIHVuJyBlc3NlIEtsb3BzLAp1ZmYgZWVtYWwga2xvcHAncy
         e.g. <literal>ExecStart=cat ${CREDENTIALS_DIRECTORY}/mycred</literal>.</para>
 
         <para>Currently, an accumulated credential size limit of 1M bytes per unit is
-        enforced.</para></listitem>
+        enforced.</para>
+
+        <para>If referencing an <constant>AF_UNIX</constant> stream socket to connect to, the connection will
+        originate from an abstract namespace socket, that includes information about the unit and the
+        credential ID in its socket name. Use <citerefentry
+        project='man-pages'><refentrytitle>getpeername</refentrytitle><manvolnum>2</manvolnum></citerefentry>
+        to query this information. The returned socket name is formatted as <constant>NUL</constant>
+        <replaceable>RANDOM</replaceable> <literal>/unit/</literal> <replaceable>UNIT</replaceable>
+        <literal>/</literal> <replaceable>ID</replaceable>, i.e. a <constant>NUL</constant> byte (as required
+        for abstract namespace socket names), followed by a random string (consisting of alphadecimal
+        characters), followed by the literal string <literal>/unit/</literal>, followed by the requesting
+        unit name, followed by the literal character <literal>/</literal>, followed by the textual credential
+        ID requested. Example: <literal>\0adf9d86b6eda275e/unit/foobar.service/credx</literal> in case the
+        credential <literal>credx</literal> is requested for a unit <literal>foobar.service</literal>. This
+        functionality is useful for using a single listening socket to serve credentials to multiple
+        consumers.</para></listitem>
       </varlistentry>
 
       <varlistentry>
index b8d0cd578aa3939861ec5a001586c3841658a857..b1936bed4db45216f932ece8698c29ccbd0e3e7e 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.generator">
   <refentryinfo>
index 73e3039d6e394ee6701e1cb8573a5910fca63c10..f1883200a786f25e0b4e0df71ce40d56f350280b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.journal-fields">
 
index 73f61c80e4fdf28c5c9a5bf9f2a3556b8f334e9c..57eb6403c734c787d2beb7b46424e4606337afa3 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.kill">
   <refentryinfo>
index 9a9ff6bd3b3dbc771a3f7b6fba8691b8bf649d64..504977c862d2f7f6509b91ef2baeb2f52b0e661d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.link">
   <refentryinfo>
index e9e2f6840844d1d1a08e2d774e64df59ef1f9ae6..8b71c96ab5e369a67f52cf705ee5dd6f0fa41d8c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.mount">
   <refentryinfo>
index e894db7cd6a7457d4ea1b15ff1430c8e0d851eef..054de92c0b4bd70ebfff156d30979af638c812d1 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.net-naming-scheme">
   <refentryinfo>
         <varlistentry>
           <term><constant>v247</constant></term>
 
-          <listitem><para>If the PCI slot is assocated with PCI bridge and that has multiple child network
+          <listitem><para>If the PCI slot is associated with PCI bridge and that has multiple child network
           controllers then all of them might derive the same value of <varname>ID_NET_NAME_SLOT</varname>
           property. That could cause naming conflict if the property is selected as a device name. Now, we detect the
           situation, slot - bridge relation, and we don't produce the <varname>ID_NET_NAME_SLOT</varname> property to
index a95beb6f9fa14b57616202301e7e829b9d276fd0..9e3cd7fdff370d183c9f1fe7c30e5422a2b26019 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.netdev" conditional='ENABLE_NETWORKD'>
 
index 1eb8274e8325aa149de736883f83f7f5958bab56..281c12a1c55dd2e8618e62197aeef9510ee8ed91 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.network" conditional='ENABLE_NETWORKD'
           xmlns:xi="http://www.w3.org/2001/XInclude">
@@ -2254,9 +2254,8 @@ IPv6Token=prefixstable:2002:da8:1::</programlisting></para>
       <varlistentry>
         <term><varname>RouterLifetimeSec=</varname></term>
 
-        <listitem><para>Takes a timespan. Configures the IPv6 router lifetime in seconds. If set,
-        this host also announces itself in Router Advertisements as an IPv6
-        router for the network link. When unset, the host is not acting as a router.</para>
+        <listitem><para>Takes a timespan. Configures the IPv6 router lifetime in seconds. When set to
+        0, the host is not acting as a router. Defaults to 30 minutes.</para>
         </listitem>
       </varlistentry>
 
index 4b37c5dc4400b9cb24b18d927e2f63e299d3a8fc..0125b71e349589d33eb4641a2c0dc525a219e4b4 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.nspawn">
 
index 242448aa041346bfb2959bb1dc11dd72b2eda9bb..ef02d6f931d40208620d125e4b2c5d9474b6c698 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.offline-updates">
   <refentryinfo>
index 604bf494ba71a6222a4df753a18e3be622a5ebe5..bca1514b3368a4b4439032adc4e9549e43776486 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.path">
   <refentryinfo>
index 092c186738a23850608b942b5e24911015d2ddae..5697e50be7c6de411eb298d203cb1c4b27033957 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="systemd.preset">
 
   <refentryinfo>
index b40fa86145451a23a85a968edd54d7f9b7e733f1..6c513ed57ea848e4aa734fb8cde4c7ababe0a66b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.resource-control" xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
index 449b90b48455733f35df7712862adf1c1ae90dcf..7d7b32df46d7f3c9c1da68994660f3bc61046863 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.scope">
   <refentryinfo>
index 5bb13fcfe75c21a28023473144e634a77fb74f97..5da6d132eecafdf48262afa97aba5b45551a5fe1 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.service">
   <refentryinfo>
index 928c9905e105e2214fe37be8eb868c0e03419969..0d3616f8b11af8a1eb2635101662a506a933a60b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.slice">
   <refentryinfo>
index 079cdf00523617ba8ef109b7e38929a8a9ee32dd..520a90624971a168985039f928358f0d4ae38fa2 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.socket">
   <refentryinfo>
 
       <varlistentry>
         <term><varname>ListenFIFO=</varname></term>
-        <listitem><para>Specifies a file system FIFO to listen on.
-        This expects an absolute file system path as argument.
-        Behavior otherwise is very similar to the
-        <varname>ListenDatagram=</varname> directive
-        above.</para></listitem>
+        <listitem><para>Specifies a file system FIFO (see <citerefentry
+        project='man-pages'><refentrytitle>fifo</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
+        details) to listen on.  This expects an absolute file system path as argument.  Behavior otherwise is
+        very similar to the <varname>ListenDatagram=</varname> directive above.</para></listitem>
       </varlistentry>
 
       <varlistentry>
 
       <varlistentry>
         <term><varname>ListenMessageQueue=</varname></term>
-        <listitem><para>Specifies a POSIX message queue name to listen
-        on. This expects a valid message queue name (i.e. beginning
-        with /). Behavior otherwise is very similar to the
-        <varname>ListenFIFO=</varname> directive above. On Linux
-        message queue descriptors are actually file descriptors and
-        can be inherited between processes.</para></listitem>
+        <listitem><para>Specifies a POSIX message queue name to listen on (see <citerefentry
+        project='man-pages'><refentrytitle>mq_overview</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+        for details). This expects a valid message queue name (i.e. beginning with
+        <literal>/</literal>). Behavior otherwise is very similar to the <varname>ListenFIFO=</varname>
+        directive above. On Linux message queue descriptors are actually file descriptors and can be
+        inherited between processes.</para></listitem>
       </varlistentry>
 
       <varlistentry>
       <varlistentry>
         <term><varname>PassPacketInfo=</varname></term>
         <listitem><para>Takes a boolean value. This controls the <constant>IP_PKTINFO</constant>,
-        <constant>IPV6_RECVPKTINFO</constant> and <constant>NETLINK_PKTINFO</constant> socket options, which
-        enable reception of additional per-packet metadata as ancillary message, on
-        <constant>AF_INET</constant>, <constant>AF_INET6</constant> and <constant>AF_UNIX</constant> sockets.
-        Defaults to <option>false</option>.</para></listitem>
+        <constant>IPV6_RECVPKTINFO</constant>, <constant>NETLINK_PKTINFO</constant> or
+        <constant>PACKET_AUXDATA</constant> socket options, which enable reception of additional per-packet
+        metadata as ancillary message, on <constant>AF_INET</constant>, <constant>AF_INET6</constant>,
+        <constant>AF_UNIX</constant> and <constant>AF_PACKET</constant> sockets.  Defaults to
+        <option>false</option>.</para></listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><varname>Timestamping=</varname></term>
+        <listitem><para>Takes one of <literal>off</literal>, <literal>us</literal> (alias:
+        <literal>usec</literal>, <literal>µs</literal>) or <literal>ns</literal> (alias:
+        <literal>nsec</literal>). This controls the <constant>SO_TIMESTAMP</constant> or
+        <constant>SO_TIMESTAMPNS</constant> socket options, and enables whether ingress network traffic shall
+        carry timestamping metadata. Defaults to <option>off</option>.</para></listitem>
       </varlistentry>
 
       <varlistentry>
index c3c6b144d124f4ce9db90891c4037975780481a8..a70e9ee0cae83b5b88fa64b921bfc1d03b377a7c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.special">
 
@@ -41,7 +41,6 @@
     <filename>hybrid-sleep.target</filename>,
     <filename>suspend-then-hibernate.target</filename>,
     <filename>initrd.target</filename>,
-    <filename>initrd-cryptsetup.target</filename>,
     <filename>initrd-fs.target</filename>,
     <filename>initrd-root-device.target</filename>,
     <filename>initrd-root-fs.target</filename>,
         <varlistentry>
           <term><filename>cryptsetup.target</filename></term>
           <listitem>
-            <para>A target that pulls in setup services for local encrypted block devices.
-            See <filename>remote-cryptsetup.target</filename> below for the equivalent target for remote
-            volumes, and <filename>initrd-cryptsetup.target</filename> below for the equivalent target in the
-            initrd.</para>
+            <para>A target that pulls in setup services for all
+            encrypted block devices.</para>
           </listitem>
         </varlistentry>
         <varlistentry>
         <varlistentry>
           <term><filename>initrd.target</filename></term>
           <listitem>
-            <para>This is the default target in the initrd, similar to <filename>default.target</filename>
+            <para>This is the default target in the initramfs, similar to <filename>default.target</filename>
             in the main system. It is used to mount the real root and transition to it. See
             <citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
             more discussion.</para>
           </listitem>
         </varlistentry>
-        <varlistentry>
-          <term><filename>initrd-cryptsetup.target</filename></term>
-          <listitem>
-            <para>A target that pulls in setup services for all encrypted block devices. See
-            <filename>cryptsetup.target</filename> and <filename>remote-cryptsetup.target</filename> for the
-            equivalent targets in the real root.</para>
-          </listitem>
-        </varlistentry>
         <varlistentry>
           <term><filename>initrd-fs.target</filename></term>
           <listitem>
             <para>Similar to <filename>cryptsetup.target</filename>, but for encrypted
             devices which are accessed over the network. It is used for
             <citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-            entries marked with <option>_netdev</option>.
-            See <filename>cryptsetup.target</filename> for the equivalent target for local volumes, and
-            <filename>initrd-cryptsetup.target</filename> for the equivalent target in the initrd.</para>
+            entries marked with <option>_netdev</option>.</para>
           </listitem>
         </varlistentry>
         <varlistentry>
index 4b1f850af4f3c1444e758f8d00f16312065b98b2..3e41d6f0bfed7ffc30617990ed5cdf9b2548772c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.swap"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index df100ec4e7b3634eaa517e22d89ef3ed8ea161f1..7960adb65977eb421631e5f7400d1cf4fea67fc8 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.syntax">
 
index a706a4588af78c3330901f045e101eb44825dfe7..bd618d8e93b1e7c790490ee3db0a4ac8e80324da 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.target">
   <refentryinfo>
index 79fe9735c42984bca40fb329c4e1d05b5276a63c..a759707fec6670b1028c8b72ca7bad61e4eca8e7 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.time">
 
index 32f7814f8e54cf435e42a60f818cb3e404b0eeba..9fe7ff3255cffd4064d3c66f305942d64f5c7baa 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.timer">
   <refentryinfo>
       <varlistentry>
         <term><varname>RandomizedDelaySec=</varname></term>
 
-        <listitem><para>Delay the timer by a randomly selected, evenly
-        distributed amount of time between 0 and the specified time
-        value. Defaults to 0, indicating that no randomized delay
-        shall be applied. Each timer unit will determine this delay
-        randomly before each iteration, and the delay will simply be
-        added on top of the next determined elapsing time. This is
-        useful to stretch dispatching of similarly configured timer
-        events over a certain amount time, to avoid that they all fire
-        at the same time, possibly resulting in resource
-        congestion. Note the relation to
-        <varname>AccuracySec=</varname> above: the latter allows the
-        service manager to coalesce timer events within a specified
-        time range in order to minimize wakeups, the former does the
-        opposite: it stretches timer events over a time range, to make
-        it unlikely that they fire simultaneously. If
-        <varname>RandomizedDelaySec=</varname> and
-        <varname>AccuracySec=</varname> are used in conjunction, first
-        the randomized delay is added, and then the result is
-        possibly further shifted to coalesce it with other timer
-        events happening on the system. As mentioned above
-        <varname>AccuracySec=</varname> defaults to 1min and
-        <varname>RandomizedDelaySec=</varname> to 0, thus encouraging
-        coalescing of timer events. In order to optimally stretch
-        timer events over a certain range of time, make sure to set
-        <varname>RandomizedDelaySec=</varname> to a higher value, and
-        <varname>AccuracySec=1us</varname>.</para></listitem>
+        <listitem><para>Delay the timer by a randomly selected, evenly distributed amount of time between 0
+        and the specified time value. Defaults to 0, indicating that no randomized delay shall be applied.
+        Each timer unit will determine this delay randomly before each iteration, and the delay will simply
+        be added on top of the next determined elapsing time, unless modified with
+        <varname>FixedRandomDelay=</varname>, see below.</para>
+
+        <para>This setting is useful to stretch dispatching of similarly configured timer events over a
+        certain time interval, to prevent them from firing all at the same time, possibly resulting in
+        resource congestion.</para>
+
+        <para>Note the relation to <varname>AccuracySec=</varname> above: the latter allows the service
+        manager to coalesce timer events within a specified time range in order to minimize wakeups, while
+        this setting does the opposite: it stretches timer events over an interval, to make it unlikely that
+        they fire simultaneously. If <varname>RandomizedDelaySec=</varname> and
+        <varname>AccuracySec=</varname> are used in conjunction, first the randomized delay is added, and
+        then the result is possibly further shifted to coalesce it with other timer events happening on the
+        system. As mentioned above <varname>AccuracySec=</varname> defaults to 1 minute and
+        <varname>RandomizedDelaySec=</varname> to 0, thus encouraging coalescing of timer events. In order to
+        optimally stretch timer events over a certain range of time, set
+        <varname>AccuracySec=1us</varname> and <varname>RandomizedDelaySec=</varname> to some higher value.
+        </para></listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><varname>FixedRandomDelay=</varname></term>
+
+        <listitem><para>Takes a boolean argument. When enabled, the randomized offset specified by
+        <varname>RandomizedDelaySec=</varname> is reused for all firings of the same timer. For a given timer
+        unit, the offset depends on the machine ID, user identifier and timer name, which means that it is
+        stable between restarts of the manager. This effectively creates a fixed offset for an individual
+        timer, reducing the jitter in firings of this timer, while still avoiding firing at the same time as
+        other similarly configured timers.</para>
+
+        <para>This setting has no effect if <varname>RandomizedDelaySec=</varname> is set to 0. Defaults to
+        <option>false</option>.</para></listitem>
       </varlistentry>
 
       <varlistentry>
         when the system clock (<constant>CLOCK_REALTIME</constant>) jumps relative to the monotonic clock
         (<constant>CLOCK_MONOTONIC</constant>), or when the local system timezone is modified. These options
         can be used alone or in combination with other timer expressions (see above) within the same timer
-        unit. These options default to false.</para></listitem>
+        unit. These options default to <option>false</option>.</para></listitem>
       </varlistentry>
 
       <varlistentry>
         is nonetheless subject to the delay imposed by <varname>RandomizedDelaySec=</varname>.
         This is useful to catch up on missed runs of the service when the system was powered down. Note that
         this setting only has an effect on timers configured with <varname>OnCalendar=</varname>. Defaults to
-        <varname>false</varname>.</para>
+        <option>false</option>.</para>
 
         <para>Use <command>systemctl clean --what=state …</command> on the timer unit to remove the timestamp
         file maintained by this option from disk. In particular, use this command before uninstalling a timer
         from suspend, should it be suspended and if the system supports this. Note that this option will only
         make sure the system resumes on the appropriate times, it will not take care of suspending it again
         after any work that is to be done is finished. Defaults to
-        <varname>false</varname>.</para>
+        <option>false</option>.</para>
 
         <para>Note that this functionality requires privileges and is thus generally only available in the
         system service manager.</para>
         <varname>RemainAfterElapse=</varname> is on, starting the timer a second time has no effect. However,
         if <varname>RemainAfterElapse=</varname> is off and the timer unit was already unloaded, it can be
         started again, and thus the service can be triggered multiple times. Defaults to
-        <varname>yes</varname>.</para></listitem>
+        <option>true</option>.</para></listitem>
       </varlistentry>
     </variablelist>
   </refsect1>
index 4b8e515fe2a6d6d74b89197653b7d844ace88e7c..aa545d0a1956d6e0b438159330df57390bd9dce2 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd.unit"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 20f1a4ebeaf0b0d245bfe7c103af00a060ad906b..882b5a6c74eba66f6b96aa6756a6e313f6b5dc9f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="systemd"
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 52b2d89474af211999533741b76ef5f30562acba..a76dda954b14433c7ffbb1ffaeb88ef0bb7fd3e8 100644 (file)
@@ -2,7 +2,7 @@
 <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 <refentry id="sysusers.d" conditional='ENABLE_SYSUSERS'
     xmlns:xi="http://www.w3.org/2001/XInclude">
 
index da24c081ee764b8a575458caee6671ec0ecd9f12..e5c70d4a18a9934d74b3cde4552c4f6c1d4ab3de 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 -->
 
 <refsect1>
index 0fffd510934d8d953b298461c7c0f504f018e6a4..294b359a3ad7e08f9732210f5b43726ac5ee4a2c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="telinit" conditional='HAVE_SYSV_COMPAT'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 49de3444be7e2145127a4169e2c4cd1321c1e874..fb38d07e1a8382fd5123f192a02e2fe9da52fa05 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refsect1>
 
index a8c1f5c0f312fd98b66bfbab62f64a46d0ba7935..e7db4870c05ad39e684939db8ae3edf9c9c9d2a9 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="timedatectl" conditional='ENABLE_TIMEDATECTL'
   xmlns:xi="http://www.w3.org/2001/XInclude">
index c1a37ec837c771bea4439779cfdaa0335e1053d8..1cbea9eaa55d10dfc2075b291dc048f2f17446d3 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="timesyncd.conf" conditional='ENABLE_TIMESYNCD'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 5b81bb5888f4dd3e9a9d574cef373c05a0762c61..5f690548470b4727879d8e06a5f862d258be2683 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   Copyright © 2010 Brandon Philips
 -->
index aa695b5e04b8587bd9a3d0281c9e335375e5b045..df0a70c9fb0d6c1c529b63bcacbc8088981089e5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="udev.conf"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index a41a39a43f9726ce7697f7eeda0a4d6903a98bb9..68067fbbd9c28d388792871ff244452edf296765 100644 (file)
@@ -3,7 +3,7 @@
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
   Copyright © 2014 Jason St. John
 -->
 
@@ -23,7 +23,8 @@
     <refpurpose>Dynamic device management</refpurpose>
   </refnamediv>
 
-  <refsect1><title>Description</title>
+  <refsect1>
+    <title>Description</title>
     <para>udev supplies the system software with device events, manages permissions
     of device nodes and may create additional symlinks in the <filename>/dev/</filename>
     directory, or renames network interfaces. The kernel usually just assigns unpredictable
@@ -44,7 +45,8 @@
     sources is provided by the library libudev.</para>
   </refsect1>
 
-  <refsect1><title>Rules Files</title>
+  <refsect1>
+      <title>Rules Files</title>
       <para>The udev rules are read from the files located in the system rules directories
       <filename>/usr/lib/udev/rules.d</filename> and <filename>/usr/local/lib/udev/rules.d</filename>, the
       volatile runtime directory <filename>/run/udev/rules.d</filename> and the local administration
       pointing to the device node, or run a specified program as part of
       the event handling.</para>
 
-      <para>A rule consists of a comma-separated list of one or more key-value pairs.
-      Each key has a distinct operation, depending on the used operator. Valid
-      operators are:</para>
-      <variablelist>
-        <varlistentry>
-          <term><literal>==</literal></term>
-          <listitem>
-            <para>Compare for equality.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><literal>!=</literal></term>
-          <listitem>
-            <para>Compare for inequality.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><literal>=</literal></term>
-          <listitem>
-            <para>Assign a value to a key. Keys that represent a list are reset
-            and only this single value is assigned.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><literal>+=</literal></term>
-          <listitem>
-            <para>Add the value to a key that holds a list of entries.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><literal>-=</literal></term>
-          <listitem>
-            <para>Remove the value from a key that holds a list of entries.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><literal>:=</literal></term>
-          <listitem>
-            <para>Assign  a  value  to  a key finally; disallow any later changes.</para>
-          </listitem>
-        </varlistentry>
-      </variablelist>
-
-      <para>The following key names can be used to match against device properties.
-      Some of the keys also match against properties of the parent devices in sysfs,
-      not only the device that has generated the event. If multiple keys that match
-      a parent device are specified in a single rule, all these keys must match at
-      one and the same parent device.</para>
-      <variablelist class='udev-directives'>
-        <varlistentry>
-          <term><varname>ACTION</varname></term>
-          <listitem>
-            <para>Match the name of the event action.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>DEVPATH</varname></term>
-          <listitem>
-            <para>Match the devpath of the event device.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>KERNEL</varname></term>
-          <listitem>
-            <para>Match the name of the event device.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>NAME</varname></term>
-          <listitem>
-            <para>Match the name of a network interface. It can be used once the
-            NAME key has been set in one of the preceding rules.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>SYMLINK</varname></term>
-          <listitem>
-            <para>Match the name of a symlink targeting the node. It can
-            be used once a SYMLINK key has been set in one of the preceding
-            rules. There may be multiple symlinks; only one needs to match.
-            </para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>SUBSYSTEM</varname></term>
-          <listitem>
-            <para>Match the subsystem of the event device.</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term><varname>DRIVER</varname></term>
-          <listitem>
-            <para>Match the driver name of the event device. Only set this key for devices
-            which are bound to a driver at the time the event is generated.</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term><varname>ATTR{<replaceable>filename</replaceable>}</varname></term>
-          <listitem>
-            <para>Match sysfs attribute values of the event device. Trailing
-            whitespace in the attribute values is ignored unless the specified match
-            value itself contains trailing whitespace.
-            </para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term><varname>SYSCTL{<replaceable>kernel parameter</replaceable>}</varname></term>
-          <listitem>
-            <para>Match a kernel parameter value.
-            </para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>KERNELS</varname></term>
-          <listitem>
-            <para>Search the devpath upwards for a matching device name.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>SUBSYSTEMS</varname></term>
-          <listitem>
-            <para>Search the devpath upwards for a matching device subsystem name.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>DRIVERS</varname></term>
-          <listitem>
-            <para>Search the devpath upwards for a matching device driver name.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>ATTRS{<replaceable>filename</replaceable>}</varname></term>
-          <listitem>
-            <para>Search the devpath upwards for a device with matching sysfs attribute values.
-            If multiple <varname>ATTRS</varname> matches are specified, all of them
-            must match on the same device. Trailing whitespace in the attribute values is ignored
-            unless the specified match value itself contains trailing whitespace.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>TAGS</varname></term>
-          <listitem>
-            <para>Search the devpath upwards for a device with matching tag.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>ENV{<replaceable>key</replaceable>}</varname></term>
-          <listitem>
-            <para>Match against a device property value.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>CONST{<replaceable>key</replaceable>}</varname></term>
-          <listitem>
-            <para>Match against a system-wide constant. Supported keys are:</para>
-            <variablelist>
-              <varlistentry>
-                <term><literal>arch</literal></term>
-                <listitem>
-                  <para>System's architecture. See <option>ConditionArchitecture=</option> in
-                  <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-                  for possible values.</para>
-                </listitem>
-              </varlistentry>
-              <varlistentry>
-                <term><literal>virt</literal></term>
-                <listitem>
-                  <para>System's virtualization environment. See
-                  <citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
-                  for possible values.</para>
-                </listitem>
-              </varlistentry>
-            </variablelist>
-            <para>Unknown keys will never match.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>TAG</varname></term>
-          <listitem>
-            <para>Match against a device tag.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>TEST{<replaceable>octal mode mask</replaceable>}</varname></term>
-          <listitem>
-            <para>Test the existence of a file. An octal mode mask can be specified
-            if needed.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>PROGRAM</varname></term>
-          <listitem>
-            <para>Execute a program to determine whether there is a match; the key is true if the program
-            returns successfully. The device properties are made available to the executed program in the
-            environment. The program's standard output is available in the <varname>RESULT</varname>
-            key.</para>
-
-            <para>This can only be used for very short-running foreground tasks. For details, see
-            <varname>RUN</varname>.</para>
-
-            <para>Note that multiple <varname>PROGRAM</varname> keys may be specified in one rule, and
-            <literal>=</literal>, <literal>:=</literal>, and <literal>+=</literal> have the same effect as
-            <literal>==</literal>.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>RESULT</varname></term>
-          <listitem>
-            <para>Match the returned string of the last <varname>PROGRAM</varname> call.
-            This key can be used in the same or in any later rule after a
-            <varname>PROGRAM</varname> call.</para>
-          </listitem>
-        </varlistentry>
-      </variablelist>
-
-      <para>Most of the fields support shell glob pattern matching and
-      alternate patterns. The following special characters are supported:</para>
-      <variablelist>
-        <varlistentry>
-          <term><literal>*</literal></term>
-          <listitem>
-            <para>Matches zero or more characters.</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term><literal>?</literal></term>
-          <listitem>
-            <para>Matches any single character.</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term><literal>[]</literal></term>
-          <listitem>
-            <para>Matches any single character specified within the brackets. For
-            example, the pattern string <literal>tty[SR]</literal>
-            would match either <literal>ttyS</literal> or <literal>ttyR</literal>.
-            Ranges are also supported via the <literal>-</literal> character.
-            For example, to match on the range of all digits, the pattern
-            <literal>[0-9]</literal> could be used. If the first character
-            following the <literal>[</literal> is a <literal>!</literal>,
-            any characters not enclosed are matched.</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term><literal>|</literal></term>
-          <listitem>
-            <para>Separates alternative patterns. For example, the pattern string
-            <literal>abc|x*</literal> would match either <literal>abc</literal>
-            or <literal>x*</literal>.</para>
-          </listitem>
-        </varlistentry>
-      </variablelist>
-
-      <para>The following keys can get values assigned:</para>
-      <variablelist class='udev-directives'>
-        <varlistentry>
-          <term><varname>NAME</varname></term>
-          <listitem>
-            <para>The name to use for a network interface. See
-            <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-            for a higher-level mechanism for setting the interface name.
-            The name of a device node cannot be changed by udev, only additional
-            symlinks can be created.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>SYMLINK</varname></term>
-          <listitem>
-            <para>The name of a symlink targeting the node. Every matching rule adds
-            this value to the list of symlinks to be created.</para>
-            <para>The set of characters to name a symlink is limited. Allowed
-            characters are <literal>0-9A-Za-z#+-.:=@_/</literal>, valid UTF-8 character
-            sequences, and <literal>\x00</literal> hex encoding. All other
-            characters are replaced by a <literal>_</literal> character.</para>
-            <para>Multiple symlinks may be specified by separating the names by the
-            space character. In case multiple devices claim the same name, the link
-            always points to the device with the highest link_priority. If the current
-            device goes away, the links are re-evaluated and the device with the
-            next highest link_priority becomes the owner of the link. If no
-            link_priority is specified, the order of the devices (and which one of
-            them owns the link) is undefined.</para>
-            <para>Symlink names must never conflict with the kernel's default device
-            node names, as that would result in unpredictable behavior.
-            </para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>OWNER</varname>, <varname>GROUP</varname>, <varname>MODE</varname></term>
-          <listitem>
-            <para>The permissions for the device node. Every specified value overrides
-            the compiled-in default value.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>SECLABEL{<replaceable>module</replaceable>}</varname></term>
-          <listitem>
-            <para>Applies the specified Linux Security Module label to the device node.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>ATTR{<replaceable>key</replaceable>}</varname></term>
-          <listitem>
-            <para>The value that should be written to a sysfs attribute of the
-            event device.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>SYSCTL{<replaceable>kernel parameter</replaceable>}</varname></term>
-          <listitem>
-            <para>The value that should be written to kernel parameter.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>ENV{<replaceable>key</replaceable>}</varname></term>
-          <listitem>
-            <para>Set a device property value. Property names with a leading <literal>.</literal>
-            are neither stored in the database nor exported to events or
-            external tools (run by, for example, the <varname>PROGRAM</varname>
-            match key).</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>TAG</varname></term>
-          <listitem>
-            <para>Attach a tag to a device. This is used to filter events for users
-            of libudev's monitor functionality, or to enumerate a group of tagged
-            devices. The implementation can only work efficiently if only a few
-            tags are attached to a device. It is only meant to be used in
-            contexts with specific device filter requirements, and not as a
-            general-purpose flag. Excessive use might result in inefficient event
-            handling.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>RUN{<replaceable>type</replaceable>}</varname></term>
-          <listitem>
-            <para>Specify a program to be executed after processing of all the rules for the event. With
-            <literal>+=</literal>, this invocation is added to the list, and with <literal>=</literal> or
-            <literal>:=</literal>, it replaces any previous contents of the list. Please note that both
-            <literal>program</literal> and <literal>builtin</literal> types described below use a single
-            list, so clearing the list with <literal>:=</literal> and <literal>=</literal> affects both
-            types.</para>
-
-            <para><replaceable>type</replaceable> may be:</para>
-            <variablelist>
-              <varlistentry>
-                <term><literal>program</literal></term>
-                <listitem>
-                  <para>Execute an external program specified as the assigned
-                  value. If no absolute path is given, the program is expected
-                  to live in <filename>/usr/lib/udev</filename>; otherwise, the
-                  absolute path must be specified.</para>
-                  <para>This is the default if no <replaceable>type</replaceable>
-                  is specified.</para>
-                </listitem>
-              </varlistentry>
-              <varlistentry>
-                <term><literal>builtin</literal></term>
-                <listitem>
-                  <para>As <varname>program</varname>, but use one of the
-                  built-in programs rather than an external one.</para>
-                </listitem>
-              </varlistentry>
-            </variablelist>
-
-            <para>The program name and following arguments are separated by spaces. Single quotes can be
-            used to specify arguments with spaces.</para>
-
-            <para>This can only be used for very short-running foreground tasks. Running an event process for
-            a long period of time may block all further events for this or a dependent device.</para>
-
-            <para>Note that running programs that access the network or mount/unmount filesystems is not
-            allowed inside of udev rules, due to the default sandbox that is enforced on
-            <filename>systemd-udevd.service</filename>.</para>
-
-            <para>Starting daemons or other long-running processes is not allowed; the forked processes,
-            detached or not, will be unconditionally killed after the event handling has finished. In order
-            to activate long-running processes from udev rules, provide a service unit and pull it in from a
-            udev device using the <varname>SYSTEMD_WANTS</varname> device property. See
-            <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-            for details.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>LABEL</varname></term>
-          <listitem>
-            <para>A named label to which a <varname>GOTO</varname> may jump.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>GOTO</varname></term>
-          <listitem>
-            <para>Jumps to the next <varname>LABEL</varname> with a matching name.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>IMPORT{<replaceable>type</replaceable>}</varname></term>
-          <listitem>
-            <para>Import a set of variables as device properties, depending on
-            <replaceable>type</replaceable>:</para>
-
-            <variablelist>
-              <varlistentry>
-                <term><literal>program</literal></term>
-                <listitem>
-                  <para>Execute an external program specified as the assigned
-                  value and, if it returns successfully,
-                  import its output, which must be in environment key
-                  format. Path specification, command/argument separation,
-                  and quoting work like in <varname>RUN</varname>.</para>
-                </listitem>
-              </varlistentry>
-              <varlistentry>
-                <term><literal>builtin</literal></term>
-                <listitem>
-                  <para>Similar to <literal>program</literal>, but use one of the
-                  built-in programs rather than an external one.</para>
-                </listitem>
-              </varlistentry>
-             <varlistentry>
-                <term><literal>file</literal></term>
-                <listitem>
-                  <para>Import a text file specified as the assigned value, the content
-                  of which must be in environment key format.</para>
-                </listitem>
-              </varlistentry>
-              <varlistentry>
-                <term><literal>db</literal></term>
-                <listitem>
-                  <para>Import a single property specified as the assigned value from the
-                  current device database. This works only if the database is already populated
-                  by an earlier event.</para>
-                </listitem>
-              </varlistentry>
-              <varlistentry>
-                <term><literal>cmdline</literal></term>
-                <listitem>
-                  <para>Import a single property from the kernel command line. For simple flags
-                  the value of the property is set to <literal>1</literal>.</para>
-                </listitem>
-              </varlistentry>
-              <varlistentry>
-                <term><literal>parent</literal></term>
-                <listitem>
-                  <para>Import the stored keys from the parent device by reading
-                  the database entry of the parent device. The value assigned to
-                  <option>IMPORT{parent}</option> is used as a filter of key names
-                  to import (with the same shell glob pattern matching used for
-                  comparisons).</para>
-                </listitem>
-              </varlistentry>
-            </variablelist>
-
-            <para>This can only be used for very short-running foreground tasks. For details see
-            <option>RUN</option>.</para>
-
-            <para>Note that multiple <varname>IMPORT{}</varname> keys may be specified in one rule, and
-            <literal>=</literal>, <literal>:=</literal>, and <literal>+=</literal> have the same effect as
-            <literal>==</literal>. The key is true if the import is successful, unless <literal>!=</literal>
-            is used as the operator which causes the key to be true if the import failed.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><varname>OPTIONS</varname></term>
-          <listitem>
-            <para>Rule and device options:</para>
-            <variablelist class='udev-directives'>
-              <varlistentry>
-                <term><option>link_priority=<replaceable>value</replaceable></option></term>
-                <listitem>
-                  <para>Specify the priority of the created symlinks. Devices with higher
-                  priorities overwrite existing symlinks of other devices. The default is 0.</para>
-                </listitem>
-              </varlistentry>
-              <varlistentry>
-                <term><option>string_escape=<replaceable>none|replace</replaceable></option></term>
-                <listitem>
-                  <para>Usually, control and other possibly unsafe characters are replaced
-                  in strings used for device naming. The mode of replacement can be specified
-                  with this option.</para>
-                </listitem>
-              </varlistentry>
-              <varlistentry>
-                <term><option>static_node=</option></term>
-                <listitem>
-                  <para>Apply the permissions specified in this rule to the
-                  static device node with the specified name. Also, for every
-                  tag specified in this rule, create a symlink
-                  in the directory
-                  <filename>/run/udev/static_node-tags/<replaceable>tag</replaceable></filename>
-                  pointing at the static device node with the specified name.
-                  Static device node creation is performed by systemd-tmpfiles
-                  before systemd-udevd is started. The static nodes might not
-                  have a corresponding kernel device; they are used to trigger
-                  automatic kernel module loading when they are accessed.</para>
-                </listitem>
-              </varlistentry>
-              <varlistentry>
-                <term><option>watch</option></term>
-                <listitem>
-                  <para>Watch the device node with inotify; when the node is
-                  closed after being opened for writing, a change uevent is
-                  synthesized.</para>
-                </listitem>
-              </varlistentry>
-              <varlistentry>
-                <term><option>nowatch</option></term>
-                <listitem>
-                  <para>Disable the watching of a device node with inotify.</para>
-                </listitem>
-              </varlistentry>
+      <para>A rule consists of a comma-separated list of one or more key-operator-value expressions.
+      Each expression has a distinct effect, depending on the key and operator used.</para>
+
+      <refsect2>
+        <title>Operators</title>
+        <variablelist>
+          <varlistentry>
+            <term><literal>==</literal></term>
+            <listitem>
+              <para>Compare for equality.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>!=</literal></term>
+            <listitem>
+              <para>Compare for inequality.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>=</literal></term>
+            <listitem>
+              <para>Assign a value to a key. Keys that represent a list are reset
+              and only this single value is assigned.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>+=</literal></term>
+            <listitem>
+              <para>Add the value to a key that holds a list of entries.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>-=</literal></term>
+            <listitem>
+              <para>Remove the value from a key that holds a list of entries.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><literal>:=</literal></term>
+            <listitem>
+              <para>Assign  a  value  to  a key finally; disallow any later changes.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+      </refsect2>
+
+      <refsect2>
+        <title>Values</title>
+          <para>Values are written as double quoted strings, such as ("string").
+          To include a quotation mark (") in the value, precede it by a backslash (\").
+          Any other occurrences of a character followed by a backslash are not further unescaped.
+          That is, "\t\n" is treated as four characters:
+          backslash, lowercase t, backslash, lowercase n.</para>
+
+          <para>The string can be prefixed with a lowercase e (e"string\n") to mark the string as
+          <ulink url="https://en.wikipedia.org/wiki/Escape_sequences_in_C#Table_of_escape_sequences">C-style escaped</ulink>.
+          For example, e"string\n" is parsed as 7 characters: 6 lowercase letters and a newline.
+          This can be useful for writting special characters when a kernel driver requires them.</para>
+
+          <para>Please note that <constant>NUL</constant> is not allowed in either string variant.</para>
+      </refsect2>
+
+      <refsect2>
+        <title>Keys</title>
+        <para>The following key names can be used to match against device properties.
+        Some of the keys also match against properties of the parent devices in sysfs,
+        not only the device that has generated the event. If multiple keys that match
+        a parent device are specified in a single rule, all these keys must match at
+        one and the same parent device.</para>
+        <variablelist class='udev-directives'>
+          <varlistentry>
+            <term><varname>ACTION</varname></term>
+            <listitem>
+              <para>Match the name of the event action.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>DEVPATH</varname></term>
+            <listitem>
+              <para>Match the devpath of the event device.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>KERNEL</varname></term>
+            <listitem>
+              <para>Match the name of the event device.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>NAME</varname></term>
+            <listitem>
+              <para>Match the name of a network interface. It can be used once the
+              NAME key has been set in one of the preceding rules.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>SYMLINK</varname></term>
+            <listitem>
+              <para>Match the name of a symlink targeting the node. It can
+              be used once a SYMLINK key has been set in one of the preceding
+              rules. There may be multiple symlinks; only one needs to match.
+              </para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>SUBSYSTEM</varname></term>
+            <listitem>
+              <para>Match the subsystem of the event device.</para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term><varname>DRIVER</varname></term>
+            <listitem>
+              <para>Match the driver name of the event device. Only set this key for devices
+              which are bound to a driver at the time the event is generated.</para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term><varname>ATTR{<replaceable>filename</replaceable>}</varname></term>
+            <listitem>
+              <para>Match sysfs attribute values of the event device. Trailing
+              whitespace in the attribute values is ignored unless the specified match
+              value itself contains trailing whitespace.
+              </para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term><varname>SYSCTL{<replaceable>kernel parameter</replaceable>}</varname></term>
+            <listitem>
+              <para>Match a kernel parameter value.
+              </para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>KERNELS</varname></term>
+            <listitem>
+              <para>Search the devpath upwards for a matching device name.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>SUBSYSTEMS</varname></term>
+            <listitem>
+              <para>Search the devpath upwards for a matching device subsystem name.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>DRIVERS</varname></term>
+            <listitem>
+              <para>Search the devpath upwards for a matching device driver name.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>ATTRS{<replaceable>filename</replaceable>}</varname></term>
+            <listitem>
+              <para>Search the devpath upwards for a device with matching sysfs attribute values.
+              If multiple <varname>ATTRS</varname> matches are specified, all of them
+              must match on the same device. Trailing whitespace in the attribute values is ignored
+              unless the specified match value itself contains trailing whitespace.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>TAGS</varname></term>
+            <listitem>
+              <para>Search the devpath upwards for a device with matching tag.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>ENV{<replaceable>key</replaceable>}</varname></term>
+            <listitem>
+              <para>Match against a device property value.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>CONST{<replaceable>key</replaceable>}</varname></term>
+            <listitem>
+              <para>Match against a system-wide constant. Supported keys are:</para>
+              <variablelist>
+                <varlistentry>
+                  <term><literal>arch</literal></term>
+                  <listitem>
+                    <para>System's architecture. See <option>ConditionArchitecture=</option> in
+                    <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                    for possible values.</para>
+                  </listitem>
+                </varlistentry>
+                <varlistentry>
+                  <term><literal>virt</literal></term>
+                  <listitem>
+                    <para>System's virtualization environment. See
+                    <citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+                    for possible values.</para>
+                  </listitem>
+                </varlistentry>
+              </variablelist>
+              <para>Unknown keys will never match.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>TAG</varname></term>
+            <listitem>
+              <para>Match against a device tag.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>TEST{<replaceable>octal mode mask</replaceable>}</varname></term>
+            <listitem>
+              <para>Test the existence of a file. An octal mode mask can be specified
+              if needed.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>PROGRAM</varname></term>
+            <listitem>
+              <para>Execute a program to determine whether there is a match; the key is true if the program
+              returns successfully. The device properties are made available to the executed program in the
+              environment. The program's standard output is available in the <varname>RESULT</varname>
+              key.</para>
+
+              <para>This can only be used for very short-running foreground tasks. For details, see
+              <varname>RUN</varname>.</para>
+
+              <para>Note that multiple <varname>PROGRAM</varname> keys may be specified in one rule, and
+              <literal>=</literal>, <literal>:=</literal>, and <literal>+=</literal> have the same effect as
+              <literal>==</literal>.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>RESULT</varname></term>
+            <listitem>
+              <para>Match the returned string of the last <varname>PROGRAM</varname> call.
+              This key can be used in the same or in any later rule after a
+              <varname>PROGRAM</varname> call.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <para>Most of the fields support shell glob pattern matching and
+        alternate patterns. The following special characters are supported:</para>
+        <variablelist>
+          <varlistentry>
+            <term><literal>*</literal></term>
+            <listitem>
+              <para>Matches zero or more characters.</para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term><literal>?</literal></term>
+            <listitem>
+              <para>Matches any single character.</para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term><literal>[]</literal></term>
+            <listitem>
+              <para>Matches any single character specified within the brackets. For
+              example, the pattern string <literal>tty[SR]</literal>
+              would match either <literal>ttyS</literal> or <literal>ttyR</literal>.
+              Ranges are also supported via the <literal>-</literal> character.
+              For example, to match on the range of all digits, the pattern
+              <literal>[0-9]</literal> could be used. If the first character
+              following the <literal>[</literal> is a <literal>!</literal>,
+              any characters not enclosed are matched.</para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term><literal>|</literal></term>
+            <listitem>
+              <para>Separates alternative patterns. For example, the pattern string
+              <literal>abc|x*</literal> would match either <literal>abc</literal>
+              or <literal>x*</literal>.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <para>The following keys can get values assigned:</para>
+        <variablelist class='udev-directives'>
+          <varlistentry>
+            <term><varname>NAME</varname></term>
+            <listitem>
+              <para>The name to use for a network interface. See
+              <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+              for a higher-level mechanism for setting the interface name.
+              The name of a device node cannot be changed by udev, only additional
+              symlinks can be created.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>SYMLINK</varname></term>
+            <listitem>
+              <para>The name of a symlink targeting the node. Every matching rule adds
+              this value to the list of symlinks to be created.</para>
+              <para>The set of characters to name a symlink is limited. Allowed
+              characters are <literal>0-9A-Za-z#+-.:=@_/</literal>, valid UTF-8 character
+              sequences, and <literal>\x00</literal> hex encoding. All other
+              characters are replaced by a <literal>_</literal> character.</para>
+              <para>Multiple symlinks may be specified by separating the names by the
+              space character. In case multiple devices claim the same name, the link
+              always points to the device with the highest link_priority. If the current
+              device goes away, the links are re-evaluated and the device with the
+              next highest link_priority becomes the owner of the link. If no
+              link_priority is specified, the order of the devices (and which one of
+              them owns the link) is undefined.</para>
+              <para>Symlink names must never conflict with the kernel's default device
+              node names, as that would result in unpredictable behavior.
+              </para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>OWNER</varname>, <varname>GROUP</varname>, <varname>MODE</varname></term>
+            <listitem>
+              <para>The permissions for the device node. Every specified value overrides
+              the compiled-in default value.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>SECLABEL{<replaceable>module</replaceable>}</varname></term>
+            <listitem>
+              <para>Applies the specified Linux Security Module label to the device node.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>ATTR{<replaceable>key</replaceable>}</varname></term>
+            <listitem>
+              <para>The value that should be written to a sysfs attribute of the
+              event device.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>SYSCTL{<replaceable>kernel parameter</replaceable>}</varname></term>
+            <listitem>
+              <para>The value that should be written to kernel parameter.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>ENV{<replaceable>key</replaceable>}</varname></term>
+            <listitem>
+              <para>Set a device property value. Property names with a leading <literal>.</literal>
+              are neither stored in the database nor exported to events or
+              external tools (run by, for example, the <varname>PROGRAM</varname>
+              match key).</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>TAG</varname></term>
+            <listitem>
+              <para>Attach a tag to a device. This is used to filter events for users
+              of libudev's monitor functionality, or to enumerate a group of tagged
+              devices. The implementation can only work efficiently if only a few
+              tags are attached to a device. It is only meant to be used in
+              contexts with specific device filter requirements, and not as a
+              general-purpose flag. Excessive use might result in inefficient event
+              handling.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>RUN{<replaceable>type</replaceable>}</varname></term>
+            <listitem>
+              <para>Specify a program to be executed after processing of all the rules for the event. With
+              <literal>+=</literal>, this invocation is added to the list, and with <literal>=</literal> or
+              <literal>:=</literal>, it replaces any previous contents of the list. Please note that both
+              <literal>program</literal> and <literal>builtin</literal> types described below use a single
+              list, so clearing the list with <literal>:=</literal> and <literal>=</literal> affects both
+              types.</para>
+
+              <para><replaceable>type</replaceable> may be:</para>
+              <variablelist>
+                <varlistentry>
+                  <term><literal>program</literal></term>
+                  <listitem>
+                    <para>Execute an external program specified as the assigned
+                    value. If no absolute path is given, the program is expected
+                    to live in <filename>/usr/lib/udev</filename>; otherwise, the
+                    absolute path must be specified.</para>
+                    <para>This is the default if no <replaceable>type</replaceable>
+                    is specified.</para>
+                  </listitem>
+                </varlistentry>
+                <varlistentry>
+                  <term><literal>builtin</literal></term>
+                  <listitem>
+                    <para>As <varname>program</varname>, but use one of the
+                    built-in programs rather than an external one.</para>
+                  </listitem>
+                </varlistentry>
+              </variablelist>
+
+              <para>The program name and following arguments are separated by spaces. Single quotes can be
+              used to specify arguments with spaces.</para>
+
+              <para>This can only be used for very short-running foreground tasks. Running an event process for
+              a long period of time may block all further events for this or a dependent device.</para>
+
+              <para>Note that running programs that access the network or mount/unmount filesystems is not
+              allowed inside of udev rules, due to the default sandbox that is enforced on
+              <filename>systemd-udevd.service</filename>.</para>
+
+              <para>Starting daemons or other long-running processes is not allowed; the forked processes,
+              detached or not, will be unconditionally killed after the event handling has finished. In order
+              to activate long-running processes from udev rules, provide a service unit and pull it in from a
+              udev device using the <varname>SYSTEMD_WANTS</varname> device property. See
+              <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+              for details.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>LABEL</varname></term>
+            <listitem>
+              <para>A named label to which a <varname>GOTO</varname> may jump.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>GOTO</varname></term>
+            <listitem>
+              <para>Jumps to the next <varname>LABEL</varname> with a matching name.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>IMPORT{<replaceable>type</replaceable>}</varname></term>
+            <listitem>
+              <para>Import a set of variables as device properties, depending on
+              <replaceable>type</replaceable>:</para>
+
+              <variablelist>
+                <varlistentry>
+                  <term><literal>program</literal></term>
+                  <listitem>
+                    <para>Execute an external program specified as the assigned
+                    value and, if it returns successfully,
+                    import its output, which must be in environment key
+                    format. Path specification, command/argument separation,
+                    and quoting work like in <varname>RUN</varname>.</para>
+                  </listitem>
+                </varlistentry>
+                <varlistentry>
+                  <term><literal>builtin</literal></term>
+                  <listitem>
+                    <para>Similar to <literal>program</literal>, but use one of the
+                    built-in programs rather than an external one.</para>
+                  </listitem>
+                </varlistentry>
               <varlistentry>
-                <term><option>db_persist</option></term>
-                <listitem>
-                  <para>Set the flag (sticky bit) on the udev database entry
-                  of the event device. Device properties are then kept in the
-                  database even when
-                  <command>udevadm info --cleanup-db</command> is called.
-                  This option can be useful in certain cases
-                  (e.g. Device Mapper devices) for persisting device state
-                  on the transition from initramfs.</para>
-                </listitem>
-              </varlistentry>
-            </variablelist>
-          </listitem>
-        </varlistentry>
-      </variablelist>
-
-      <para>The <varname>NAME</varname>, <varname>SYMLINK</varname>,
-      <varname>PROGRAM</varname>, <varname>OWNER</varname>,
-      <varname>GROUP</varname>, <varname>MODE</varname>, <varname>SECLABEL</varname>,
-      and <varname>RUN</varname> fields support simple string substitutions.
-      The <varname>RUN</varname> substitutions are performed after all rules
-      have been processed, right before the program is executed, allowing for
-      the use of device properties set by earlier matching rules. For all other
-      fields, substitutions are performed while the individual rule is being
-      processed. The available substitutions are:</para>
-      <variablelist class='udev-directives'>
-        <varlistentry>
-          <term><option>$kernel</option>, <option>%k</option></term>
-          <listitem>
-            <para>The kernel name for this device.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$number</option>, <option>%n</option></term>
-          <listitem>
-            <para>The kernel number for this device. For example, <literal>sda3</literal> has kernel number
-            3.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$devpath</option>, <option>%p</option></term>
-          <listitem>
-            <para>The devpath of the device.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$id</option>, <option>%b</option></term>
-          <listitem>
-            <para>The name of the device matched while searching the devpath
-              upwards for <option>SUBSYSTEMS</option>, <option>KERNELS</option>,
-              <option>DRIVERS</option>, and <option>ATTRS</option>.
-            </para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$driver</option></term>
-          <listitem>
-            <para>The driver name of the device matched while searching the
-              devpath upwards for <option>SUBSYSTEMS</option>,
-              <option>KERNELS</option>, <option>DRIVERS</option>, and
-              <option>ATTRS</option>.
-            </para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$attr{<replaceable>file</replaceable>}</option>, <option>%s{<replaceable>file</replaceable>}</option></term>
-          <listitem>
-            <para>The value of a sysfs attribute found at the device where
-              all keys of the rule have matched. If the matching device does not
-              have such an attribute, and a previous <option>KERNELS</option>,
-              <option>SUBSYSTEMS</option>, <option>DRIVERS</option>, or
-              <option>ATTRS</option> test selected a parent device, then the
-              attribute from that parent device is used.
-            </para>
-            <para>If the attribute is a symlink, the last element of the
-              symlink target is returned as the value.
-            </para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$env{<replaceable>key</replaceable>}</option>, <option>%E{<replaceable>key</replaceable>}</option></term>
-          <listitem>
-            <para>A device property value.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$major</option>, <option>%M</option></term>
-          <listitem>
-            <para>The kernel major number for the device.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$minor</option>, <option>%m</option></term>
-          <listitem>
-            <para>The kernel minor number for the device.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$result</option>, <option>%c</option></term>
-          <listitem>
-            <para>The string returned by the external program requested with
-            <varname>PROGRAM</varname>.
-            A single part of the string, separated by a space character, may be selected
-            by specifying the part number as an attribute: <literal>%c{N}</literal>.
-            If the number is followed by the <literal>+</literal> character, this part plus all remaining parts
-            of the result string are substituted: <literal>%c{N+}</literal>.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$parent</option>, <option>%P</option></term>
-          <listitem>
-            <para>The node name of the parent device.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$name</option></term>
-          <listitem>
-            <para>The current name of the device. If not changed by a rule, it is the
-            name of the kernel device.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$links</option></term>
-          <listitem>
-            <para>A space-separated list of the current symlinks. The value is
-            only set during a remove event or if an earlier rule assigned a value.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$root</option>, <option>%r</option></term>
-          <listitem>
-            <para>The udev_root value.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$sys</option>, <option>%S</option></term>
-          <listitem>
-            <para>The sysfs mount point.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$devnode</option>, <option>%N</option></term>
-          <listitem>
-            <para>The name of the device node.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>%%</option></term>
-          <listitem>
-          <para>The <literal>%</literal> character itself.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><option>$$</option></term>
-          <listitem>
-          <para>The <literal>$</literal> character itself.</para>
-          </listitem>
-        </varlistentry>
-      </variablelist>
+                  <term><literal>file</literal></term>
+                  <listitem>
+                    <para>Import a text file specified as the assigned value, the content
+                    of which must be in environment key format.</para>
+                  </listitem>
+                </varlistentry>
+                <varlistentry>
+                  <term><literal>db</literal></term>
+                  <listitem>
+                    <para>Import a single property specified as the assigned value from the
+                    current device database. This works only if the database is already populated
+                    by an earlier event.</para>
+                  </listitem>
+                </varlistentry>
+                <varlistentry>
+                  <term><literal>cmdline</literal></term>
+                  <listitem>
+                    <para>Import a single property from the kernel command line. For simple flags
+                    the value of the property is set to <literal>1</literal>.</para>
+                  </listitem>
+                </varlistentry>
+                <varlistentry>
+                  <term><literal>parent</literal></term>
+                  <listitem>
+                    <para>Import the stored keys from the parent device by reading
+                    the database entry of the parent device. The value assigned to
+                    <option>IMPORT{parent}</option> is used as a filter of key names
+                    to import (with the same shell glob pattern matching used for
+                    comparisons).</para>
+                  </listitem>
+                </varlistentry>
+              </variablelist>
+
+              <para>This can only be used for very short-running foreground tasks. For details see
+              <option>RUN</option>.</para>
+
+              <para>Note that multiple <varname>IMPORT{}</varname> keys may be specified in one rule, and
+              <literal>=</literal>, <literal>:=</literal>, and <literal>+=</literal> have the same effect as
+              <literal>==</literal>. The key is true if the import is successful, unless <literal>!=</literal>
+              is used as the operator which causes the key to be true if the import failed.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><varname>OPTIONS</varname></term>
+            <listitem>
+              <para>Rule and device options:</para>
+              <variablelist class='udev-directives'>
+                <varlistentry>
+                  <term><option>link_priority=<replaceable>value</replaceable></option></term>
+                  <listitem>
+                    <para>Specify the priority of the created symlinks. Devices with higher
+                    priorities overwrite existing symlinks of other devices. The default is 0.</para>
+                  </listitem>
+                </varlistentry>
+                <varlistentry>
+                  <term><option>string_escape=<replaceable>none|replace</replaceable></option></term>
+                  <listitem>
+                    <para>Usually, control and other possibly unsafe characters are replaced
+                    in strings used for device naming. The mode of replacement can be specified
+                    with this option.</para>
+                  </listitem>
+                </varlistentry>
+                <varlistentry>
+                  <term><option>static_node=</option></term>
+                  <listitem>
+                    <para>Apply the permissions specified in this rule to the
+                    static device node with the specified name. Also, for every
+                    tag specified in this rule, create a symlink
+                    in the directory
+                    <filename>/run/udev/static_node-tags/<replaceable>tag</replaceable></filename>
+                    pointing at the static device node with the specified name.
+                    Static device node creation is performed by systemd-tmpfiles
+                    before systemd-udevd is started. The static nodes might not
+                    have a corresponding kernel device; they are used to trigger
+                    automatic kernel module loading when they are accessed.</para>
+                  </listitem>
+                </varlistentry>
+                <varlistentry>
+                  <term><option>watch</option></term>
+                  <listitem>
+                    <para>Watch the device node with inotify; when the node is
+                    closed after being opened for writing, a change uevent is
+                    synthesized.</para>
+                  </listitem>
+                </varlistentry>
+                <varlistentry>
+                  <term><option>nowatch</option></term>
+                  <listitem>
+                    <para>Disable the watching of a device node with inotify.</para>
+                  </listitem>
+                </varlistentry>
+                <varlistentry>
+                  <term><option>db_persist</option></term>
+                  <listitem>
+                    <para>Set the flag (sticky bit) on the udev database entry
+                    of the event device. Device properties are then kept in the
+                    database even when
+                    <command>udevadm info --cleanup-db</command> is called.
+                    This option can be useful in certain cases
+                    (e.g. Device Mapper devices) for persisting device state
+                    on the transition from initramfs.</para>
+                  </listitem>
+                </varlistentry>
+              </variablelist>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <para>The <varname>NAME</varname>, <varname>SYMLINK</varname>,
+        <varname>PROGRAM</varname>, <varname>OWNER</varname>,
+        <varname>GROUP</varname>, <varname>MODE</varname>, <varname>SECLABEL</varname>,
+        and <varname>RUN</varname> fields support simple string substitutions.
+        The <varname>RUN</varname> substitutions are performed after all rules
+        have been processed, right before the program is executed, allowing for
+        the use of device properties set by earlier matching rules. For all other
+        fields, substitutions are performed while the individual rule is being
+        processed. The available substitutions are:</para>
+        <variablelist class='udev-directives'>
+          <varlistentry>
+            <term><option>$kernel</option>, <option>%k</option></term>
+            <listitem>
+              <para>The kernel name for this device.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$number</option>, <option>%n</option></term>
+            <listitem>
+              <para>The kernel number for this device. For example, <literal>sda3</literal> has kernel number
+              3.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$devpath</option>, <option>%p</option></term>
+            <listitem>
+              <para>The devpath of the device.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$id</option>, <option>%b</option></term>
+            <listitem>
+              <para>The name of the device matched while searching the devpath
+                upwards for <option>SUBSYSTEMS</option>, <option>KERNELS</option>,
+                <option>DRIVERS</option>, and <option>ATTRS</option>.
+              </para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$driver</option></term>
+            <listitem>
+              <para>The driver name of the device matched while searching the
+                devpath upwards for <option>SUBSYSTEMS</option>,
+                <option>KERNELS</option>, <option>DRIVERS</option>, and
+                <option>ATTRS</option>.
+              </para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$attr{<replaceable>file</replaceable>}</option>, <option>%s{<replaceable>file</replaceable>}</option></term>
+            <listitem>
+              <para>The value of a sysfs attribute found at the device where
+                all keys of the rule have matched. If the matching device does not
+                have such an attribute, and a previous <option>KERNELS</option>,
+                <option>SUBSYSTEMS</option>, <option>DRIVERS</option>, or
+                <option>ATTRS</option> test selected a parent device, then the
+                attribute from that parent device is used.
+              </para>
+              <para>If the attribute is a symlink, the last element of the
+                symlink target is returned as the value.
+              </para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$env{<replaceable>key</replaceable>}</option>, <option>%E{<replaceable>key</replaceable>}</option></term>
+            <listitem>
+              <para>A device property value.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$major</option>, <option>%M</option></term>
+            <listitem>
+              <para>The kernel major number for the device.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$minor</option>, <option>%m</option></term>
+            <listitem>
+              <para>The kernel minor number for the device.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$result</option>, <option>%c</option></term>
+            <listitem>
+              <para>The string returned by the external program requested with
+              <varname>PROGRAM</varname>.
+              A single part of the string, separated by a space character, may be selected
+              by specifying the part number as an attribute: <literal>%c{N}</literal>.
+              If the number is followed by the <literal>+</literal> character, this part plus all remaining parts
+              of the result string are substituted: <literal>%c{N+}</literal>.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$parent</option>, <option>%P</option></term>
+            <listitem>
+              <para>The node name of the parent device.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$name</option></term>
+            <listitem>
+              <para>The current name of the device. If not changed by a rule, it is the
+              name of the kernel device.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$links</option></term>
+            <listitem>
+              <para>A space-separated list of the current symlinks. The value is
+              only set during a remove event or if an earlier rule assigned a value.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$root</option>, <option>%r</option></term>
+            <listitem>
+              <para>The udev_root value.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$sys</option>, <option>%S</option></term>
+            <listitem>
+              <para>The sysfs mount point.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$devnode</option>, <option>%N</option></term>
+            <listitem>
+              <para>The name of the device node.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>%%</option></term>
+            <listitem>
+            <para>The <literal>%</literal> character itself.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term><option>$$</option></term>
+            <listitem>
+            <para>The <literal>$</literal> character itself.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+      </refsect2>
   </refsect1>
 
   <refsect1>
index 0deb1d0d2ca8f2b884ab2a02cab8932176acc025..f2d712f23f96a02a956265551d1246a8f8e2937d 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="udev_device_get_syspath"
   xmlns:xi="http://www.w3.org/2001/XInclude">
       <citerefentry><refentrytitle>udev_enumerate_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>udev_monitor_new_from_netlink</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>udev_list_entry</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
-      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
     </para>
   </refsect1>
 
index 2e5b67e7503b4f7c2ccd3c49beb7e52b9d25afee..c01e37799beccc7c94b3b2b1e83c1753f1eea684 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="udev_device_has_tag"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index 763041d223e43b4f5c75b6fc0c98ce1507a544b2..eef9ca94b855695f6480b9d0cc6de992c7619e35 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="udev_device_new_from_syspath"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index 0dbb926ff0a5e087506a93cc02e5f4a51d50750e..f900f3650aadcffe06a1270b30f58a01cc872157 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="udev_enumerate_add_match_subsystem"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index 013d5cc823371d87e32dd9be785b88eb7330e0fc..3360cf04540993bcb18e26d9a2726f35a91093fc 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="udev_enumerate_new"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index d3dddd415739c459765148b268c2ce5d3c4f7909..22151a532d203f65b27e579314601277d9f64086 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="udev_enumerate_scan_devices"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index 9f44812cb4d2b30cd0dba562ae8ccbc68eaa926c..94273cef855eeca008f8306f914bd7891052ea0d 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="udev_list_entry"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index 88a19f1da882b6c8513742f1bf367917178c342e..4e77db4836ec68941e21ed739a99f6a1fd6852b3 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="udev_monitor_filter_update"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index cc37d219364fa9e20904ed3aab213b9cc0f0d30f..538a27e2b11776142a05b0b6bf73bc5755af0be5 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="udev_monitor_new_from_netlink"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index 5b3f097d17902737b552ac7d9a49c3e58836a4df..bbdce3cb67c15385555e223f2ebcb8ab968219f2 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="udev_monitor_receive_device"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index 89fa05e38858bdca19b7c2bdc239e2c014127a00..34e249d486c1191a169891bc31c1c85faa50d497 100644 (file)
@@ -4,7 +4,7 @@
 <!ENTITY % entities SYSTEM "custom-entities.ent" >
 %entities;
 ]>
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="udev_new"
   xmlns:xi="http://www.w3.org/2001/XInclude">
index d2f6083bae0f6b8ffc16a05ae4a7a0ee1dcf7b9f..ec26cc3c07fed03d442057b9506bc86e2e82081b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="udevadm"
           xmlns:xi="http://www.w3.org/2001/XInclude">
index 8034735658c5d5e08dcf5eb1d83153d8dee92fc7..728118e60cb40e3c065aa99d2dd50743a859deb4 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <variablelist>
   <varlistentry id='user'>
index b9d1461404319e818a44ded815211efa2ea19888..0cf7f02352a61a018a44f36023ff210eaa9b9c31 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="user@.service">
   <refentryinfo>
index c86937760f3f53ca1a47bc752f1aff07c14be5ec..0c2dd73bb96a33d6980c996ef5242f2d1f23ce4d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="userdbctl" conditional='ENABLE_USERDB'
     xmlns:xi="http://www.w3.org/2001/XInclude">
index 2e2223cc6939c187de514306d4289d20fcb24aa8..378812bd2a68a754d6985f425876a0338cb03004 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <refentry id="vconsole.conf" conditional='ENABLE_VCONSOLE'>
   <refentryinfo>
index 307d1bd5f7c30461cd51585305ae79d2af28d584..19efa92db8f29ba5cb6a9f5793c13dfdb24acbbd 100644 (file)
@@ -1,7 +1,7 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 project('systemd', 'c',
-        version : '246',
+        version : '247',
         license : 'LGPLv2+',
         default_options: [
                 'c_std=gnu99',
@@ -13,7 +13,7 @@ project('systemd', 'c',
         meson_version : '>= 0.46',
        )
 
-libsystemd_version = '0.29.0'
+libsystemd_version = '0.30.0'
 libudev_version = '1.7.0'
 
 # We need the same data in two different formats, ugh!
@@ -1422,6 +1422,7 @@ else
         endif
 endif
 conf.set10('ENABLE_OOMD', have)
+substs.set10('ENABLE_OOMD', have)
 
 want_remote = get_option('remote')
 if want_remote != 'false'
@@ -1462,7 +1463,6 @@ foreach term : ['analyze',
                 'networkd',
                 'nss-myhostname',
                 'nss-systemd',
-                'oomd',
                 'portabled',
                 'pstore',
                 'quotacheck',
@@ -1561,21 +1561,11 @@ meson_apply_m4 = find_program('tools/meson-apply-m4.sh')
 
 includes = include_directories('src/basic',
                                'src/boot',
+                               'src/core',
                                'src/home',
-                               'src/shared',
-                               'src/systemd',
                                'src/journal',
                                'src/journal-remote',
-                               'src/nspawn',
-                               'src/resolve',
-                               'src/timesync',
-                               'src/time-wait-sync',
-                               'src/login',
-                               'src/udev',
-                               'src/libudev',
-                               'src/core',
-                               'src/shutdown',
-                               'src/xdg-autostart-generator',
+                               'src/libsystemd-network',
                                'src/libsystemd/sd-bus',
                                'src/libsystemd/sd-device',
                                'src/libsystemd/sd-event',
@@ -1584,7 +1574,17 @@ includes = include_directories('src/basic',
                                'src/libsystemd/sd-netlink',
                                'src/libsystemd/sd-network',
                                'src/libsystemd/sd-resolve',
-                               'src/libsystemd-network',
+                               'src/libudev',
+                               'src/login',
+                               'src/nspawn',
+                               'src/resolve',
+                               'src/shared',
+                               'src/shutdown',
+                               'src/systemd',
+                               'src/time-wait-sync',
+                               'src/timesync',
+                               'src/udev',
+                               'src/xdg-autostart-generator',
                                '.')
 
 add_project_arguments('-include', 'config.h', language : 'c')
@@ -3338,6 +3338,7 @@ foreach tuple : tests
         type = tuple.length() >= 5 ? tuple[4] : ''
         defs = tuple.length() >= 6 ? tuple[5] : []
         incs = tuple.length() >= 7 ? tuple[6] : includes
+        parallel = tuple.length() >= 8 ? tuple[7] : true
         timeout = 30
 
         name = sources[0].split('/')[-1].split('.')[0]
index 2c10054769fcea2e2fe1b2b97be119e4d4fc07d0..ff45d6035090339b5862a1a368ee098056a44c46 100644 (file)
@@ -1,5 +1,5 @@
 # -*- mode: meson -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 option('version-tag', type : 'string',
        description : 'override the git version string')
index 0c4a3eaa3a5e56d2acadb36961c485bd51f4ea8f..652254155c265c820ba0b3175e24a3cb7cd003c2 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 44c59b7dde90c5e978af957dd40f139c41c848db..a8e683455be551d9d2020a350bbea2039a0ed36f 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 8a8df2fcd3d05f194346dc5fa277a2885b0b7837..7e8ff48d75ceb91198c55706ec638829287cf52d 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 4d4482b33a8e499933b4f50e82a0ce516a937f28..b0ea57a67c17d5b9a102ae0cc84782ed4d2025a6 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 4144034cde10c9534fccc1c96cae06813fa36583..45c5ab173465518b36d100e0dec51753ed913838 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index dc7a42bf585543676289dfface0f5ea53e3d1a21..bca660ac28899956842899ab1c6f4d32317576ca 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 99a650eac3a683f780d3958f2b3ef341c0bca7cd..08f29ca7dff12d05a904e232bbf9927f487cfe32 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 if conf.get('ENABLE_NETWORKD') == 1
         install_data('80-container-host0.network',
index b7e667435168f99b15c25ee72c68d824e515e565..77f3a3f2cf96330a60292245e002f222be0134fd 100644 (file)
--- a/po/be.po
+++ b/po/be.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Belarusian translation for systemd.
 #
index ff570070420bb31ccf80a41fee83102cb5e126dd..4e80e8ee71e26e68fcfe1f49e9b4b7ab46b01625 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Belarusian translation for systemd.
 #
index cb7eaacf369936195901a6e3b643663aa617d4ab..0859b09737aa670ac3ed1fab7ed927291c5dd021 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Bulgarian translation of systemd po-file.
 # Copyright © 2016 Alexander Shopov <ash@kambanaria.org>
index 76b2c60b8ffc13aea04823608d207afdbfb9fc21..fcbdb23ae579ecf556f9358ababfb71f6fcf3796 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Catalan translation for systemd.
 # Walter Garcia-Fontes <walter.garcia@upf.edu>, 2016.
index ee48ee72ebaa6e45cdc1497a4364734b10d9c705..abc618857988e5784842ad50bd447f265157653b 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Czech translation for systemd.
 # Daniel Maixner <xskipy@gmail.com>, 2016.
@@ -6,9 +6,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: systemd master\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-19 18:02+0200\n"
-"PO-Revision-Date: 2020-07-01 16:40+0200\n"
+"Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n"
+"POT-Creation-Date: 2020-09-10 03:33+0000\n"
+"PO-Revision-Date: 2020-10-26 22:48+0100\n"
 "Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n"
 "Language-Team: Czech\n"
 "Language: cs\n"
@@ -17,7 +17,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Poedit 2.3.1\n"
+"X-Generator: Poedit 2.4.1\n"
 
 #: src/core/org.freedesktop.systemd1.policy.in:22
 msgid "Send passphrase back to system"
@@ -295,53 +295,67 @@ msgstr ""
 "ověření."
 
 #: src/login/org.freedesktop.login1.policy:117
+msgid "Allow applications to inhibit system handling of the reboot key"
+msgstr ""
+"Povolit aplikacím zakázat chovaní systému na stisknutí restartovacího "
+"tlačítka"
+
+#: src/login/org.freedesktop.login1.policy:118
+msgid ""
+"Authentication is required for an application to inhibit system handling of "
+"the reboot key."
+msgstr ""
+"Pro povolení aplikacím zakázat chovaní systému na stisknutí restartovacího "
+"tlačítka je vyžadováno ověření."
+
+#: src/login/org.freedesktop.login1.policy:128
 msgid "Allow non-logged-in user to run programs"
 msgstr "Povolit nepřihlášenému uživateli spouštět programy"
 
-#: src/login/org.freedesktop.login1.policy:118
+#: src/login/org.freedesktop.login1.policy:129
 msgid "Explicit request is required to run programs as a non-logged-in user."
 msgstr ""
 "Ke spuštění programů jako nepřihlášený uživatel je třeba speciální požadavek."
 
-#: src/login/org.freedesktop.login1.policy:127
+#: src/login/org.freedesktop.login1.policy:138
 msgid "Allow non-logged-in users to run programs"
 msgstr "Povolit nepřihlášeným uživatelům spouštět programy"
 
-#: src/login/org.freedesktop.login1.policy:128
+#: src/login/org.freedesktop.login1.policy:139
 msgid "Authentication is required to run programs as a non-logged-in user."
 msgstr "Ke spuštění programů jako nepřihlášený uživatel je vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:137
+#: src/login/org.freedesktop.login1.policy:148
 msgid "Allow attaching devices to seats"
 msgstr "Povolit připojování zařízení ke stanovištím"
 
-#: src/login/org.freedesktop.login1.policy:138
+#: src/login/org.freedesktop.login1.policy:149
 msgid "Authentication is required to attach a device to a seat."
 msgstr "Pro připojování zařízení ke stanovišti je vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:148
+#: src/login/org.freedesktop.login1.policy:159
 msgid "Flush device to seat attachments"
 msgstr "Odstranit přiřazení zařízení ke stanovištím"
 
-#: src/login/org.freedesktop.login1.policy:149
+#: src/login/org.freedesktop.login1.policy:160
 msgid "Authentication is required to reset how devices are attached to seats."
 msgstr ""
 "Pro resetování způsobu jak jsou zařízení přiřazována ke stanovištím je "
 "vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:158
+#: src/login/org.freedesktop.login1.policy:169
 msgid "Power off the system"
 msgstr "Vypnout systém"
 
-#: src/login/org.freedesktop.login1.policy:159
+#: src/login/org.freedesktop.login1.policy:170
 msgid "Authentication is required to power off the system."
 msgstr "Pro vypnutí systému je vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:169
+#: src/login/org.freedesktop.login1.policy:180
 msgid "Power off the system while other users are logged in"
 msgstr "Vypnout systém, i když jsou přihlášeni další uživatelé"
 
-#: src/login/org.freedesktop.login1.policy:170
+#: src/login/org.freedesktop.login1.policy:181
 msgid ""
 "Authentication is required to power off the system while other users are "
 "logged in."
@@ -349,11 +363,11 @@ msgstr ""
 "Pro vypnutí systému, když jsou přihlášeni další uživatelé je vyžadováno "
 "ověření."
 
-#: src/login/org.freedesktop.login1.policy:180
+#: src/login/org.freedesktop.login1.policy:191
 msgid "Power off the system while an application is inhibiting this"
 msgstr "Vypnout systém, i když aplikace požádala o zákaz vypnutí"
 
-#: src/login/org.freedesktop.login1.policy:181
+#: src/login/org.freedesktop.login1.policy:192
 msgid ""
 "Authentication is required to power off the system while an application is "
 "inhibiting this."
@@ -361,19 +375,19 @@ msgstr ""
 "Pro vypnutí systému, když aplikace požádala o zákaz vypnutí je vyžadováno "
 "ověření."
 
-#: src/login/org.freedesktop.login1.policy:191
+#: src/login/org.freedesktop.login1.policy:202
 msgid "Reboot the system"
 msgstr "Restartovat systém"
 
-#: src/login/org.freedesktop.login1.policy:192
+#: src/login/org.freedesktop.login1.policy:203
 msgid "Authentication is required to reboot the system."
 msgstr "Pro restartování systému je vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:202
+#: src/login/org.freedesktop.login1.policy:213
 msgid "Reboot the system while other users are logged in"
 msgstr "Restartovat systém, i když jsou přihlášeni další uživatelé"
 
-#: src/login/org.freedesktop.login1.policy:203
+#: src/login/org.freedesktop.login1.policy:214
 msgid ""
 "Authentication is required to reboot the system while other users are logged "
 "in."
@@ -381,11 +395,11 @@ msgstr ""
 "Pro restartování systému, když jsou přihlášeni další uživatelé je vyžadováno "
 "ověření."
 
-#: src/login/org.freedesktop.login1.policy:213
+#: src/login/org.freedesktop.login1.policy:224
 msgid "Reboot the system while an application is inhibiting this"
 msgstr "Restartovat systém, i když aplikace požádala o zákaz restartu"
 
-#: src/login/org.freedesktop.login1.policy:214
+#: src/login/org.freedesktop.login1.policy:225
 msgid ""
 "Authentication is required to reboot the system while an application is "
 "inhibiting this."
@@ -393,19 +407,19 @@ msgstr ""
 "Pro restartování systému, když aplikace požádala o zákaz restartu je "
 "vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:224
+#: src/login/org.freedesktop.login1.policy:235
 msgid "Halt the system"
 msgstr "Zastavit systém"
 
-#: src/login/org.freedesktop.login1.policy:225
+#: src/login/org.freedesktop.login1.policy:236
 msgid "Authentication is required to halt the system."
 msgstr "Pro zastavení systému je vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:235
+#: src/login/org.freedesktop.login1.policy:246
 msgid "Halt the system while other users are logged in"
 msgstr "Zastavit systém, i když jsou přihlášeni další uživatelé"
 
-#: src/login/org.freedesktop.login1.policy:236
+#: src/login/org.freedesktop.login1.policy:247
 msgid ""
 "Authentication is required to halt the system while other users are logged "
 "in."
@@ -413,11 +427,11 @@ msgstr ""
 "Pro zastavení systému, když jsou přihlášeni další uživatelé je vyžadováno "
 "ověření."
 
-#: src/login/org.freedesktop.login1.policy:246
+#: src/login/org.freedesktop.login1.policy:257
 msgid "Halt the system while an application is inhibiting this"
 msgstr "Zastavit systém, i když aplikace požádala o zákaz zastavení"
 
-#: src/login/org.freedesktop.login1.policy:247
+#: src/login/org.freedesktop.login1.policy:258
 msgid ""
 "Authentication is required to halt the system while an application is "
 "inhibiting this."
@@ -425,19 +439,19 @@ msgstr ""
 "Pro zastavení systému, když aplikace požádala o zákaz zastavení je "
 "vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:257
+#: src/login/org.freedesktop.login1.policy:268
 msgid "Suspend the system"
 msgstr "Uspat systém"
 
-#: src/login/org.freedesktop.login1.policy:258
+#: src/login/org.freedesktop.login1.policy:269
 msgid "Authentication is required to suspend the system."
 msgstr "Pro uspání systému je vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:267
+#: src/login/org.freedesktop.login1.policy:278
 msgid "Suspend the system while other users are logged in"
 msgstr "Uspat systém, i když jsou přihlášeni další uživatelé"
 
-#: src/login/org.freedesktop.login1.policy:268
+#: src/login/org.freedesktop.login1.policy:279
 msgid ""
 "Authentication is required to suspend the system while other users are "
 "logged in."
@@ -445,11 +459,11 @@ msgstr ""
 "Pro uspání systému, když jsou přihlášeni další uživatelé je vyžadováno "
 "ověření."
 
-#: src/login/org.freedesktop.login1.policy:278
+#: src/login/org.freedesktop.login1.policy:289
 msgid "Suspend the system while an application is inhibiting this"
 msgstr "Uspat systém, i když aplikace požádala o zákaz uspání"
 
-#: src/login/org.freedesktop.login1.policy:279
+#: src/login/org.freedesktop.login1.policy:290
 msgid ""
 "Authentication is required to suspend the system while an application is "
 "inhibiting this."
@@ -457,19 +471,19 @@ msgstr ""
 "Pro uspání systému, když aplikace požádala o zákaz uspání je vyžadováno "
 "ověření."
 
-#: src/login/org.freedesktop.login1.policy:289
+#: src/login/org.freedesktop.login1.policy:300
 msgid "Hibernate the system"
 msgstr "Hibernovat systém"
 
-#: src/login/org.freedesktop.login1.policy:290
+#: src/login/org.freedesktop.login1.policy:301
 msgid "Authentication is required to hibernate the system."
 msgstr "Pro hibernaci systému je vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:299
+#: src/login/org.freedesktop.login1.policy:310
 msgid "Hibernate the system while other users are logged in"
 msgstr "Hibernovat systém, i když jsou přihlášeni další uživatelé"
 
-#: src/login/org.freedesktop.login1.policy:300
+#: src/login/org.freedesktop.login1.policy:311
 msgid ""
 "Authentication is required to hibernate the system while other users are "
 "logged in."
@@ -477,11 +491,11 @@ msgstr ""
 "Pro hibernaci systému, když jsou přihlášeni další uživatelé je vyžadováno "
 "ověření."
 
-#: src/login/org.freedesktop.login1.policy:310
+#: src/login/org.freedesktop.login1.policy:321
 msgid "Hibernate the system while an application is inhibiting this"
 msgstr "Hibernovat systém, i když aplikace požádala o zákaz hibernace"
 
-#: src/login/org.freedesktop.login1.policy:311
+#: src/login/org.freedesktop.login1.policy:322
 msgid ""
 "Authentication is required to hibernate the system while an application is "
 "inhibiting this."
@@ -489,36 +503,36 @@ msgstr ""
 "Pro hibernaci systému, když aplikace požádala o zákaz hibernace je "
 "vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:321
+#: src/login/org.freedesktop.login1.policy:332
 msgid "Manage active sessions, users and seats"
 msgstr "Spravovat aktivní sezení, uživatele a stanoviště"
 
-#: src/login/org.freedesktop.login1.policy:322
+#: src/login/org.freedesktop.login1.policy:333
 msgid "Authentication is required to manage active sessions, users and seats."
 msgstr ""
 "Pro správu aktivních sezení, uživatelů a stanovišť je vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:331
+#: src/login/org.freedesktop.login1.policy:342
 msgid "Lock or unlock active sessions"
 msgstr "Zamknout nebo odemknout aktivní sezení"
 
-#: src/login/org.freedesktop.login1.policy:332
+#: src/login/org.freedesktop.login1.policy:343
 msgid "Authentication is required to lock or unlock active sessions."
 msgstr "Pro zamčení nebo odemčení aktivních sezení je vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:341
+#: src/login/org.freedesktop.login1.policy:352
 msgid "Set the reboot \"reason\" in the kernel"
 msgstr "Nastavit \"důvod\" rebootu v jádře"
 
-#: src/login/org.freedesktop.login1.policy:342
+#: src/login/org.freedesktop.login1.policy:353
 msgid "Authentication is required to set the reboot \"reason\" in the kernel."
 msgstr "Pro nastavení \"důvodu\" rebootu v jádře je vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:352
+#: src/login/org.freedesktop.login1.policy:363
 msgid "Indicate to the firmware to boot to setup interface"
 msgstr "Indikovat firmwaru, aby bootoval do instalačního prostředí"
 
-#: src/login/org.freedesktop.login1.policy:353
+#: src/login/org.freedesktop.login1.policy:364
 msgid ""
 "Authentication is required to indicate to the firmware to boot to setup "
 "interface."
@@ -526,41 +540,41 @@ msgstr ""
 "K indikaci firmwaru, aby bootoval do instalačního prostředí je vyžadováno "
 "ověření."
 
-#: src/login/org.freedesktop.login1.policy:363
+#: src/login/org.freedesktop.login1.policy:374
 msgid "Indicate to the boot loader to boot to the boot loader menu"
 msgstr "Indikovat zavaděči, aby bootoval do menu zavaděče"
 
-#: src/login/org.freedesktop.login1.policy:364
+#: src/login/org.freedesktop.login1.policy:375
 msgid ""
 "Authentication is required to indicate to the boot loader to boot to the "
 "boot loader menu."
 msgstr ""
 "K indikaci zavaděči, aby bootoval do menu zavaděče je vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:374
+#: src/login/org.freedesktop.login1.policy:385
 msgid "Indicate to the boot loader to boot a specific entry"
 msgstr "Indikovat zavaděči, aby bootoval specifickou položku"
 
-#: src/login/org.freedesktop.login1.policy:375
+#: src/login/org.freedesktop.login1.policy:386
 msgid ""
 "Authentication is required to indicate to the boot loader to boot into a "
 "specific boot loader entry."
 msgstr ""
 "K indikaci zavaděči, aby bootoval specifickou položku je vyžadováno ověření."
 
-#: src/login/org.freedesktop.login1.policy:385
+#: src/login/org.freedesktop.login1.policy:396
 msgid "Set a wall message"
 msgstr "Nastavit zprávu všem uživatelům"
 
-#: src/login/org.freedesktop.login1.policy:386
+#: src/login/org.freedesktop.login1.policy:397
 msgid "Authentication is required to set a wall message"
 msgstr "K nastavení zprávy všem uživatelům je vyžadováno ověření"
 
-#: src/login/org.freedesktop.login1.policy:395
+#: src/login/org.freedesktop.login1.policy:406
 msgid "Change Session"
 msgstr "Změnit sezení"
 
-#: src/login/org.freedesktop.login1.policy:396
+#: src/login/org.freedesktop.login1.policy:407
 msgid "Authentication is required to change the virtual terminal."
 msgstr "Pro změnu virtuálního terminálu je vyžadováno ověření."
 
@@ -861,37 +875,37 @@ msgid ""
 "shall be enabled."
 msgstr "Pro kontrolu synchronizace času ze sítě je vyžadováno ověření."
 
-#: src/core/dbus-unit.c:362
+#: src/core/dbus-unit.c:359
 msgid "Authentication is required to start '$(unit)'."
 msgstr "Pro spuštění „$(unit)” je vyžadováno ověření."
 
-#: src/core/dbus-unit.c:363
+#: src/core/dbus-unit.c:360
 msgid "Authentication is required to stop '$(unit)'."
 msgstr "Pro vypnutí „$(unit)” je vyžadováno ověření."
 
-#: src/core/dbus-unit.c:364
+#: src/core/dbus-unit.c:361
 msgid "Authentication is required to reload '$(unit)'."
 msgstr "Pro opětovné načtení „$(unit)” je vyžadováno ověření."
 
-#: src/core/dbus-unit.c:365 src/core/dbus-unit.c:366
+#: src/core/dbus-unit.c:362 src/core/dbus-unit.c:363
 msgid "Authentication is required to restart '$(unit)'."
 msgstr "Pro restart „$(unit)” je vyžadováno ověření."
 
-#: src/core/dbus-unit.c:538
+#: src/core/dbus-unit.c:535
 msgid ""
 "Authentication is required to send a UNIX signal to the processes of "
 "'$(unit)'."
 msgstr "Pro odeslání UNIX signálu procesům „$(unit)” je vyžadováno ověření."
 
-#: src/core/dbus-unit.c:569
+#: src/core/dbus-unit.c:566
 msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
 msgstr "Pro resetování chybného stavu „$(unit)” je vyžadováno ověření."
 
-#: src/core/dbus-unit.c:602
+#: src/core/dbus-unit.c:599
 msgid "Authentication is required to set properties on '$(unit)'."
 msgstr "Pro nastavení vlastností na „$(unit)” je vyžadováno ověření."
 
-#: src/core/dbus-unit.c:711
+#: src/core/dbus-unit.c:708
 msgid ""
 "Authentication is required to delete files and directories associated with "
 "'$(unit)'."
@@ -899,7 +913,7 @@ msgstr ""
 "Pro odstranění souborů nebo adresářů souvisejících s „$(unit)” je vyžadováno "
 "ověření."
 
-#: src/core/dbus-unit.c:760
+#: src/core/dbus-unit.c:757
 msgid ""
 "Authentication is required to freeze or thaw the processes of '$(unit)' unit."
 msgstr ""
index 1dafbc5a5c24be910cc42706094bb03cb38af5ea..74ee78628153fd28af7354fa81032d92a18cfca5 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Danish translation for systemd.
 # Daniel Machon <dmachon.dev@gmail.com>, 2015.
index 59a27d2634789bc6b4f31cee39c45d7559d65cd7..1b88d14e03e17fd8b98edceda6a7776eee28bcf9 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # German translation for systemd.
 # Christian Kirbach <Christian.Kirbach@gmail.com>, 2014, 2015.
index 535216f11cdb1889f34d061aefcc9115d86547de..fa581d9a91d353308e523df83dcb6b6fae7a0e27 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Greek translation for systemd.
 # Dimitris Spingos <dmtrs32@gmail.com>, 2014.
index d1bcd18db8dbfecb35899628cdaac0707da1b54b..9d92545da3c066eb40ea44c9493df33b402e959a 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Spanish translation for systemd.
 # Alex Puchades <alex94puchades@gmail.com>, 2015.
index d54de1e8e03be745433a06361ab0f7c5ceda4d32..a5f65ae7fd5e6d44f1e5ce4fd38233863024595c 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # French translations for systemd package
 # Traductions françaises du paquet systemd.
index d58c49342751775151f93257f45ecb3c82c1b439..4843e21c49eb42cbb7627c9e3d73ff28d871488f 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Fran Dieguez <frandieguez@gnome.org>, 2015.
 msgid ""
index 6cf7e8a05b5c5b6ebc22233c55b68c2d8a8b2342..23704ce95c5882267b3d5b295ffd917ccf672f8a 100644 (file)
--- a/po/hr.po
+++ b/po/hr.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # SOME DESCRIPTIVE TITLE.
 # This file is distributed under the same license as the PACKAGE package.
index d36bb4baad6c91fb95df5021a434ef09e257259a..0c8bb93ab2db35dd017ae3542a78f0b942ad5040 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Hungarian translation of systemd
 # Copyright © 2015, 2016. Free Software Foundation, Inc.
index 06268b308d641ff549723aa20960489354a8c869..3e5fb7a51d0fce0786a84eaf83a82f0298e9576f 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Indonesian translation for systemd.
 # Andika Triwidada <andika@gmail.com>, 2014.
index 1c1c6a40d0cf32627b6b81277a60c6f68d8739d6..595e4868ae9f8eef6eadbb5127c8f399699bc17e 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Italian translation for systemd package
 # Traduzione in italiano per il pacchetto systemd
index 54cccac9d4b20cc4ed488c81abe08379216ca5a6..7e55f1efcfb1c1d2f00e161e93fc52658501e7d3 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Japanese translation for systemd.
 #
index c4c4bd9747e6b96b8c1a9f9aea02215f1ab235e9..a5e3dbc3894f9ad7ea7abb0e2ce755c2a52cbd0d 100644 (file)
--- a/po/ko.po
+++ b/po/ko.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Korean translation for the systemd.
 # Seong-ho Cho <shcho@gnome.org>, 2015.
index 3611ac90f12c8b501b6260f4fa69c06ebf89ae0d..193f614f4fb47586357803963bc86912dfe79e2e 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 i18n = import('i18n')
 i18n.gettext(meson.project_name(),
index 3bf4d092d941c3c2813ea717af011e54ed120c6c..b4b3912a5b5cd611e662c890025e10cfab13b1b4 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Polish translation for systemd.
 #
index 1e807d89594c2794555b2f7132d13687ade889a9..188f8a9f98d73a549e14f9e6e86e82ddda7c9663 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Brazilian Portuguese translation for systemd.
 # Enrico Nicoletto <liverig@gmail.com>, 2014.
index 7924cf9f86bccbf671ea3a5d8b3a1e4bb5ff8ff6..6c46900752564354567d1a35082423c20a86a383 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Romanian translation for systemd.
 # va511e <va511e@yahoo.com>, 2015.
index 778da464567859ded13e16494a13ca119805b283..2211d1163018d20598fb52e6293d08f2770b88a6 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # translation of ru.po to Rissian
 #
index 8b87bd6a7d949b1bd6ac989252500343e5c561a5..d3dec2ba19f793baa59615d6cb8f23c6e76ac16e 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Slovak translation for systemd.
 # Dušan Kazik <prescott66@gmail.com>, 2017.
index 4747b26be94f5a6e92ca0aa6dd1d79eb92521df7..83920e80b3d8b33855b5a30a8ff88c9de9b3d20f 100644 (file)
--- a/po/sr.po
+++ b/po/sr.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # SOME DESCRIPTIVE TITLE.
 # This file is distributed under the same license as the PACKAGE package.
index 8148c6bce4c1d8165555dc2e8fc662e6899eb2d8..91108ad5ff12a69c26c08cae808da60d3600cda2 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Swedish translation for systemd.
 # Sebastian Rasmussen <sebras@gmail.com>, 2015.
index c5a76b2bfad8a1321fe689a000da838523a74019..0e04733372886f2a2d01355be8b51cfaa01e06a0 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -1,25 +1,25 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Turkish translation for systemd.
 # Necdet Yücel <necdetyucel@gmail.com>, 2014.
 # Gökhan Gurbetoğlu <ggurbet@gmail.com>, 2015.
-# Muhammet Kara <muhammetk@gnome.org>, 2015, 2016, 2017, 2018.
 # Oğuz Ersen <oguzersen@protonmail.com>, 2020.
+# Muhammet Kara <muhammetk@gmail.com>, 2015-2020.
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: systemd master\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-19 18:02+0200\n"
-"PO-Revision-Date: 2020-09-26 06:29+0000\n"
-"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
-"Language-Team: Turkish <https://translate.fedoraproject.org/projects/systemd/"
-"master/tr/>\n"
+"Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n"
+"POT-Creation-Date: 2020-09-27 03:31+0000\n"
+"PO-Revision-Date: 2020-11-01 15:10+0300\n"
+"Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n"
+"Language-Team: Turkish <gnometurk@gnome.org>\n"
 "Language: tr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.2.2\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"X-Generator: Gtranslator 3.38.0\n"
 
 #: src/core/org.freedesktop.systemd1.policy.in:22
 msgid "Send passphrase back to system"
@@ -72,72 +72,67 @@ msgstr "systemd durumunu yeniden yüklemek kimlik doğrulaması gerektiriyor."
 
 #: src/home/org.freedesktop.home1.policy:13
 msgid "Create a home area"
-msgstr ""
+msgstr "Ev alanı oluştur"
 
 #: src/home/org.freedesktop.home1.policy:14
-#, fuzzy
 #| msgid "Authentication is required to reload the systemd state."
 msgid "Authentication is required to create a user's home area."
-msgstr "systemd durumunu yeniden yüklemek kimlik doğrulaması gerektiriyor."
+msgstr "Bir kullanıcının ev alanını oluşturmak kimlik doğrulaması gerektirir."
 
 #: src/home/org.freedesktop.home1.policy:23
 msgid "Remove a home area"
-msgstr ""
+msgstr "Ev alanını kaldır"
 
 #: src/home/org.freedesktop.home1.policy:24
-#, fuzzy
 #| msgid "Authentication is required to reload the systemd state."
 msgid "Authentication is required to remove a user's home area."
-msgstr "systemd durumunu yeniden yüklemek kimlik doğrulaması gerektiriyor."
+msgstr "Bir kullanıcının ev alanını kaldırmak kimlik doğrulaması gerektirir."
 
 #: src/home/org.freedesktop.home1.policy:33
 msgid "Check credentials of a home area"
-msgstr ""
+msgstr "Bir ev alanının kimlik bilgilerini denetle"
 
 #: src/home/org.freedesktop.home1.policy:34
-#, fuzzy
 #| msgid ""
 #| "Authentication is required to attach or detach a portable service image."
 msgid ""
 "Authentication is required to check credentials against a user's home area."
 msgstr ""
-"Bir taşınabilir hizmet kalıbını tutturmak ya da ayırmak için kimlik "
-"doğrulaması gereklidir."
+"Bir kullanıcının ev alanının kimlik bilgilerini denetlemek için kimlik "
+"doğrulaması gerekir."
 
 #: src/home/org.freedesktop.home1.policy:43
 msgid "Update a home area"
-msgstr ""
+msgstr "Ev alanını güncelle"
 
 #: src/home/org.freedesktop.home1.policy:44
-#, fuzzy
 #| msgid "Authentication is required to attach a device to a seat."
 msgid "Authentication is required to update a user's home area."
-msgstr ""
-"Bir aygıtın yuvaya takılmasına izin vermek kimlik doğrulaması gerektiriyor."
+msgstr "Bir kullanıcının ev alanını güncellemek kimlik doğrulaması gerektirir."
 
 #: src/home/org.freedesktop.home1.policy:53
 msgid "Resize a home area"
-msgstr ""
+msgstr "Ev alanını yeniden boyutlandır"
 
 #: src/home/org.freedesktop.home1.policy:54
-#, fuzzy
 #| msgid "Authentication is required to set a wall message"
 msgid "Authentication is required to resize a user's home area."
-msgstr "Duvar mesajı ayarlamak için kimlik doğrulaması gereklidir"
+msgstr ""
+"Bir kullanıcının ev alanını yeniden boyutlandırmak kimlik doğrulaması "
+"gerektirir."
 
 #: src/home/org.freedesktop.home1.policy:63
 msgid "Change password of a home area"
-msgstr ""
+msgstr "Ev alanının parolasını değiştir"
 
 #: src/home/org.freedesktop.home1.policy:64
-#, fuzzy
 #| msgid ""
 #| "Authentication is required to manage active sessions, users and seats."
 msgid ""
 "Authentication is required to change the password of a user's home area."
 msgstr ""
-"Aktif oturumları, kullanıcıları ve yuvaları yönetmek için kimlik doğrulaması "
-"gereklidir."
+"Bir kullanıcının ev alanının parolasını değiştirmek kimlik doğrulaması "
+"gerektirir."
 
 #: src/hostname/org.freedesktop.hostname1.policy:20
 msgid "Set hostname"
@@ -328,57 +323,75 @@ msgstr ""
 "kimlik doğrulaması gereklidir."
 
 #: src/login/org.freedesktop.login1.policy:117
+#, fuzzy
+#| msgid "Allow applications to inhibit system handling of the power key"
+msgid "Allow applications to inhibit system handling of the reboot key"
+msgstr "Uygulamaların sistemin güç tuşunun kullanımını engellemesine izin ver"
+
+#: src/login/org.freedesktop.login1.policy:118
+#, fuzzy
+#| msgid ""
+#| "Authentication is required for an application to inhibit system handling "
+#| "of the power key."
+msgid ""
+"Authentication is required for an application to inhibit system handling of "
+"the reboot key."
+msgstr ""
+"Bir uygulamanın sistemin güç tuşunu idare etmesine engel olması için kimlik "
+"doğrulaması gereklidir."
+
+#: src/login/org.freedesktop.login1.policy:128
 msgid "Allow non-logged-in user to run programs"
 msgstr "Oturum açmamış kullanıcının program çalıştırmasına izin ver"
 
-#: src/login/org.freedesktop.login1.policy:118
+#: src/login/org.freedesktop.login1.policy:129
 msgid "Explicit request is required to run programs as a non-logged-in user."
 msgstr ""
 "Oturum açmamış bir kullanıcı olarak program çalıştırmak için açıkça istekte "
 "bulunulması gerekir."
 
-#: src/login/org.freedesktop.login1.policy:127
+#: src/login/org.freedesktop.login1.policy:138
 msgid "Allow non-logged-in users to run programs"
 msgstr "Oturum açmamış kullanıcıların program çalıştırmasına izin ver"
 
-#: src/login/org.freedesktop.login1.policy:128
+#: src/login/org.freedesktop.login1.policy:139
 msgid "Authentication is required to run programs as a non-logged-in user."
 msgstr ""
 "Oturum açmamış bir kullanıcı olarak program çalıştırmak için kimlik "
 "doğrulaması gereklidir."
 
-#: src/login/org.freedesktop.login1.policy:137
+#: src/login/org.freedesktop.login1.policy:148
 msgid "Allow attaching devices to seats"
 msgstr "Aygıtların yuvaya takılmasına izin ver"
 
-#: src/login/org.freedesktop.login1.policy:138
+#: src/login/org.freedesktop.login1.policy:149
 msgid "Authentication is required to attach a device to a seat."
 msgstr ""
 "Bir aygıtın yuvaya takılmasına izin vermek kimlik doğrulaması gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:148
+#: src/login/org.freedesktop.login1.policy:159
 msgid "Flush device to seat attachments"
 msgstr "Aygıtın yuvaya eklenmesini sıfırla"
 
-#: src/login/org.freedesktop.login1.policy:149
+#: src/login/org.freedesktop.login1.policy:160
 msgid "Authentication is required to reset how devices are attached to seats."
 msgstr ""
 "Aygıtların yuvalara nasıl takıldığını sıfırlamak kimlik doğrulama "
 "gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:158
+#: src/login/org.freedesktop.login1.policy:169
 msgid "Power off the system"
 msgstr "Sistemi kapat"
 
-#: src/login/org.freedesktop.login1.policy:159
+#: src/login/org.freedesktop.login1.policy:170
 msgid "Authentication is required to power off the system."
 msgstr "Sistemi kapatmak için kimlik doğrulaması gerekiyor."
 
-#: src/login/org.freedesktop.login1.policy:169
+#: src/login/org.freedesktop.login1.policy:180
 msgid "Power off the system while other users are logged in"
 msgstr "Diğer kullanıcılar oturum açmışken sistemi kapat"
 
-#: src/login/org.freedesktop.login1.policy:170
+#: src/login/org.freedesktop.login1.policy:181
 msgid ""
 "Authentication is required to power off the system while other users are "
 "logged in."
@@ -386,11 +399,11 @@ msgstr ""
 "Diğer kullanıcılar oturum açmışken sistemi kapatmak kimlik doğrulaması "
 "gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:180
+#: src/login/org.freedesktop.login1.policy:191
 msgid "Power off the system while an application is inhibiting this"
 msgstr "Bir uygulama engellenmesini isterken sistemi kapat"
 
-#: src/login/org.freedesktop.login1.policy:181
+#: src/login/org.freedesktop.login1.policy:192
 msgid ""
 "Authentication is required to power off the system while an application is "
 "inhibiting this."
@@ -398,19 +411,19 @@ msgstr ""
 "Bir uygulama engellenmesini isterken sistemi kapatmak kimlik doğrulaması "
 "gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:191
+#: src/login/org.freedesktop.login1.policy:202
 msgid "Reboot the system"
 msgstr "Sistemi yeniden başlat"
 
-#: src/login/org.freedesktop.login1.policy:192
+#: src/login/org.freedesktop.login1.policy:203
 msgid "Authentication is required to reboot the system."
 msgstr "Sistemi yeniden başlatmak kimlik doğrulaması gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:202
+#: src/login/org.freedesktop.login1.policy:213
 msgid "Reboot the system while other users are logged in"
 msgstr "Diğer kullanıcılar oturum açmışken sistemi yeniden başlat"
 
-#: src/login/org.freedesktop.login1.policy:203
+#: src/login/org.freedesktop.login1.policy:214
 msgid ""
 "Authentication is required to reboot the system while other users are logged "
 "in."
@@ -418,11 +431,11 @@ msgstr ""
 "Diğer kullanıcılar oturum açmışken sistemi yeniden başlatmak kimlik "
 "doğrulaması gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:213
+#: src/login/org.freedesktop.login1.policy:224
 msgid "Reboot the system while an application is inhibiting this"
 msgstr "Bir uygulama engellenmesini isterken sistemi yeniden başlat"
 
-#: src/login/org.freedesktop.login1.policy:214
+#: src/login/org.freedesktop.login1.policy:225
 msgid ""
 "Authentication is required to reboot the system while an application is "
 "inhibiting this."
@@ -430,19 +443,19 @@ msgstr ""
 "Bir uygulama engellenmesini isterken sistemi yeniden başlatmak kimlik "
 "doğrulaması gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:224
+#: src/login/org.freedesktop.login1.policy:235
 msgid "Halt the system"
 msgstr "Sistemi durdur"
 
-#: src/login/org.freedesktop.login1.policy:225
+#: src/login/org.freedesktop.login1.policy:236
 msgid "Authentication is required to halt the system."
 msgstr "Sistemi durdurmak kimlik doğrulaması gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:235
+#: src/login/org.freedesktop.login1.policy:246
 msgid "Halt the system while other users are logged in"
 msgstr "Diğer kullanıcılar oturum açmışken sistemi durdur"
 
-#: src/login/org.freedesktop.login1.policy:236
+#: src/login/org.freedesktop.login1.policy:247
 msgid ""
 "Authentication is required to halt the system while other users are logged "
 "in."
@@ -450,11 +463,11 @@ msgstr ""
 "Diğer kullanıcılar oturum açmışken sistemi durdurmak kimlik doğrulaması "
 "gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:246
+#: src/login/org.freedesktop.login1.policy:257
 msgid "Halt the system while an application is inhibiting this"
 msgstr "Bir uygulama engellenmesini isterken sistemi durdur"
 
-#: src/login/org.freedesktop.login1.policy:247
+#: src/login/org.freedesktop.login1.policy:258
 #, fuzzy
 #| msgid ""
 #| "Authentication is required to hibernate the system while an application "
@@ -466,19 +479,19 @@ msgstr ""
 "Bir uygulama engellenmesini isterken sistemi hazırda bekletmek kimlik "
 "doğrulaması gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:257
+#: src/login/org.freedesktop.login1.policy:268
 msgid "Suspend the system"
 msgstr "Sistemi askıya al"
 
-#: src/login/org.freedesktop.login1.policy:258
+#: src/login/org.freedesktop.login1.policy:269
 msgid "Authentication is required to suspend the system."
 msgstr "Sistemi askıya almak kimlik doğrulaması gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:267
+#: src/login/org.freedesktop.login1.policy:278
 msgid "Suspend the system while other users are logged in"
 msgstr "Diğer kullanıcılar oturum açmışken sistemi askıya al"
 
-#: src/login/org.freedesktop.login1.policy:268
+#: src/login/org.freedesktop.login1.policy:279
 msgid ""
 "Authentication is required to suspend the system while other users are "
 "logged in."
@@ -486,11 +499,11 @@ msgstr ""
 "Diğer kullanıcılar oturum açmışken sistemi askıya almak kimlik doğrulaması "
 "gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:278
+#: src/login/org.freedesktop.login1.policy:289
 msgid "Suspend the system while an application is inhibiting this"
 msgstr "Bir uygulama engellenmesini isterken sistemi askıya al"
 
-#: src/login/org.freedesktop.login1.policy:279
+#: src/login/org.freedesktop.login1.policy:290
 msgid ""
 "Authentication is required to suspend the system while an application is "
 "inhibiting this."
@@ -498,19 +511,19 @@ msgstr ""
 "Bir uygulama engellenmesini isterken sistemi askıya almak kimlik doğrulaması "
 "gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:289
+#: src/login/org.freedesktop.login1.policy:300
 msgid "Hibernate the system"
 msgstr "Sistemi hazırda beklet"
 
-#: src/login/org.freedesktop.login1.policy:290
+#: src/login/org.freedesktop.login1.policy:301
 msgid "Authentication is required to hibernate the system."
 msgstr "Sistemi hazırda bekletmek kimlik doğrulaması gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:299
+#: src/login/org.freedesktop.login1.policy:310
 msgid "Hibernate the system while other users are logged in"
 msgstr "Diğer kullanıcılar oturum açmışken sistemi hazırda beklet"
 
-#: src/login/org.freedesktop.login1.policy:300
+#: src/login/org.freedesktop.login1.policy:311
 msgid ""
 "Authentication is required to hibernate the system while other users are "
 "logged in."
@@ -518,11 +531,11 @@ msgstr ""
 "Diğer kullanıcılar oturum açmışken sistemi hazırda bekletmek kimlik "
 "doğrulaması gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:310
+#: src/login/org.freedesktop.login1.policy:321
 msgid "Hibernate the system while an application is inhibiting this"
 msgstr "Bir uygulama engellenmesini isterken sistemi hazırda beklet"
 
-#: src/login/org.freedesktop.login1.policy:311
+#: src/login/org.freedesktop.login1.policy:322
 msgid ""
 "Authentication is required to hibernate the system while an application is "
 "inhibiting this."
@@ -530,44 +543,44 @@ msgstr ""
 "Bir uygulama engellenmesini isterken sistemi hazırda bekletmek kimlik "
 "doğrulaması gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:321
+#: src/login/org.freedesktop.login1.policy:332
 msgid "Manage active sessions, users and seats"
 msgstr "Aktif oturumları, kullanıcıları ve yuvaları yönet"
 
-#: src/login/org.freedesktop.login1.policy:322
+#: src/login/org.freedesktop.login1.policy:333
 msgid "Authentication is required to manage active sessions, users and seats."
 msgstr ""
 "Aktif oturumları, kullanıcıları ve yuvaları yönetmek için kimlik doğrulaması "
 "gereklidir."
 
-#: src/login/org.freedesktop.login1.policy:331
+#: src/login/org.freedesktop.login1.policy:342
 msgid "Lock or unlock active sessions"
 msgstr "Aktif oturumları kilitle ya da kilidini aç"
 
-#: src/login/org.freedesktop.login1.policy:332
+#: src/login/org.freedesktop.login1.policy:343
 msgid "Authentication is required to lock or unlock active sessions."
 msgstr ""
 "Aktif oturumları kilitlemek ve bunların kilidini açmak için kimlik "
 "doğrulaması gereklidir."
 
-#: src/login/org.freedesktop.login1.policy:341
+#: src/login/org.freedesktop.login1.policy:352
 msgid "Set the reboot \"reason\" in the kernel"
 msgstr ""
 
-#: src/login/org.freedesktop.login1.policy:342
+#: src/login/org.freedesktop.login1.policy:353
 #, fuzzy
 #| msgid "Authentication is required to set the system timezone."
 msgid "Authentication is required to set the reboot \"reason\" in the kernel."
 msgstr "Sistem zaman dilimini ayarlamak kimlik doğrulaması gerektiriyor."
 
-#: src/login/org.freedesktop.login1.policy:352
+#: src/login/org.freedesktop.login1.policy:363
 #, fuzzy
 #| msgid "Allow indication to the firmware to boot to setup interface"
 msgid "Indicate to the firmware to boot to setup interface"
 msgstr ""
 "Kurulum arayüzünü önyüklemek için ürün yazılımının belirtilmesine izin ver"
 
-#: src/login/org.freedesktop.login1.policy:353
+#: src/login/org.freedesktop.login1.policy:364
 msgid ""
 "Authentication is required to indicate to the firmware to boot to setup "
 "interface."
@@ -575,11 +588,11 @@ msgstr ""
 "Kurulum arayüzünü önyüklemek için ürün yazılımının belirtilmesi için kimlik "
 "doğrulaması gereklidir."
 
-#: src/login/org.freedesktop.login1.policy:363
+#: src/login/org.freedesktop.login1.policy:374
 msgid "Indicate to the boot loader to boot to the boot loader menu"
 msgstr ""
 
-#: src/login/org.freedesktop.login1.policy:364
+#: src/login/org.freedesktop.login1.policy:375
 #, fuzzy
 #| msgid ""
 #| "Authentication is required to indicate to the firmware to boot to setup "
@@ -591,11 +604,11 @@ msgstr ""
 "Kurulum arayüzünü önyüklemek için ürün yazılımının belirtilmesi için kimlik "
 "doğrulaması gereklidir."
 
-#: src/login/org.freedesktop.login1.policy:374
+#: src/login/org.freedesktop.login1.policy:385
 msgid "Indicate to the boot loader to boot a specific entry"
 msgstr ""
 
-#: src/login/org.freedesktop.login1.policy:375
+#: src/login/org.freedesktop.login1.policy:386
 #, fuzzy
 #| msgid ""
 #| "Authentication is required to indicate to the firmware to boot to setup "
@@ -607,23 +620,22 @@ msgstr ""
 "Kurulum arayüzünü önyüklemek için ürün yazılımının belirtilmesi için kimlik "
 "doğrulaması gereklidir."
 
-#: src/login/org.freedesktop.login1.policy:385
+#: src/login/org.freedesktop.login1.policy:396
 msgid "Set a wall message"
 msgstr "Bir duvar mesajı ayarla"
 
-#: src/login/org.freedesktop.login1.policy:386
+#: src/login/org.freedesktop.login1.policy:397
 msgid "Authentication is required to set a wall message"
 msgstr "Duvar mesajı ayarlamak için kimlik doğrulaması gereklidir"
 
-#: src/login/org.freedesktop.login1.policy:395
+#: src/login/org.freedesktop.login1.policy:406
 msgid "Change Session"
-msgstr ""
+msgstr "Oturumu Değiştir"
 
-#: src/login/org.freedesktop.login1.policy:396
-#, fuzzy
+#: src/login/org.freedesktop.login1.policy:407
 #| msgid "Authentication is required to halt the system."
 msgid "Authentication is required to change the virtual terminal."
-msgstr "Sistemi durdurmak kimlik doğrulaması gerektiriyor."
+msgstr "Sanal uçbirimi değiştirmek kimlik doğrulaması gerektirir."
 
 #: src/machine/org.freedesktop.machine1.policy:22
 msgid "Log into a local container"
@@ -705,7 +717,7 @@ msgstr ""
 
 #: src/network/org.freedesktop.network1.policy:22
 msgid "Set NTP servers"
-msgstr ""
+msgstr "NTP sunucularını ayarla"
 
 #: src/network/org.freedesktop.network1.policy:23
 #, fuzzy
@@ -715,10 +727,9 @@ msgstr "Sistem zamanını ayarlamak kimlik doğrulaması gerektiriyor."
 
 #: src/network/org.freedesktop.network1.policy:33
 #: src/resolve/org.freedesktop.resolve1.policy:44
-#, fuzzy
 #| msgid "Register a DNS-SD service"
 msgid "Set DNS servers"
-msgstr "Bir DNS-SD hizmeti kaydet"
+msgstr "DNS sunucularını ayarla"
 
 #: src/network/org.freedesktop.network1.policy:34
 #: src/resolve/org.freedesktop.resolve1.policy:45
@@ -730,7 +741,7 @@ msgstr "Bir DNS-SD hizmeti kaydetmek için kimlik doğrulaması gereklidir"
 #: src/network/org.freedesktop.network1.policy:44
 #: src/resolve/org.freedesktop.resolve1.policy:55
 msgid "Set domains"
-msgstr ""
+msgstr "Etki alanlarını ayarla"
 
 #: src/network/org.freedesktop.network1.policy:45
 #: src/resolve/org.freedesktop.resolve1.policy:56
@@ -742,7 +753,7 @@ msgstr "'$(unit)' durdurmak için kimlik doğrulaması gereklidir."
 #: src/network/org.freedesktop.network1.policy:55
 #: src/resolve/org.freedesktop.resolve1.policy:66
 msgid "Set default route"
-msgstr ""
+msgstr "Öntanımlı rota belirle"
 
 #: src/network/org.freedesktop.network1.policy:56
 #: src/resolve/org.freedesktop.resolve1.policy:67
@@ -754,7 +765,7 @@ msgstr "Yerel makine adını ayarlamak kimlik doğrulaması gerektiriyor."
 #: src/network/org.freedesktop.network1.policy:66
 #: src/resolve/org.freedesktop.resolve1.policy:77
 msgid "Enable/disable LLMNR"
-msgstr ""
+msgstr "LLMNR etkinleştir/devre dışı bırak"
 
 #: src/network/org.freedesktop.network1.policy:67
 #: src/resolve/org.freedesktop.resolve1.policy:78
@@ -843,7 +854,7 @@ msgstr "Duvar mesajı ayarlamak için kimlik doğrulaması gereklidir"
 
 #: src/network/org.freedesktop.network1.policy:154
 msgid "Renew dynamic addresses"
-msgstr ""
+msgstr "Dinamik adresleri yenile"
 
 #: src/network/org.freedesktop.network1.policy:155
 #, fuzzy
@@ -853,7 +864,7 @@ msgstr "Duvar mesajı ayarlamak için kimlik doğrulaması gereklidir"
 
 #: src/network/org.freedesktop.network1.policy:165
 msgid "Reload network settings"
-msgstr ""
+msgstr "Ağ ayarlarını yeniden yükle"
 
 #: src/network/org.freedesktop.network1.policy:166
 #, fuzzy
@@ -863,7 +874,7 @@ msgstr "systemd durumunu yeniden yüklemek kimlik doğrulaması gerektiriyor."
 
 #: src/network/org.freedesktop.network1.policy:176
 msgid "Reconfigure network interface"
-msgstr ""
+msgstr "Ağ arabirimini yeniden yapılandır"
 
 #: src/network/org.freedesktop.network1.policy:177
 #, fuzzy
@@ -967,23 +978,23 @@ msgid ""
 "shall be enabled."
 msgstr "Ağ zaman eş zamanlamasını denetlemek kimlik doğrulaması gerektiriyor."
 
-#: src/core/dbus-unit.c:362
+#: src/core/dbus-unit.c:359
 msgid "Authentication is required to start '$(unit)'."
 msgstr "'$(unit)' başlatmak için kimlik doğrulaması gereklidir."
 
-#: src/core/dbus-unit.c:363
+#: src/core/dbus-unit.c:360
 msgid "Authentication is required to stop '$(unit)'."
 msgstr "'$(unit)' durdurmak için kimlik doğrulaması gereklidir."
 
-#: src/core/dbus-unit.c:364
+#: src/core/dbus-unit.c:361
 msgid "Authentication is required to reload '$(unit)'."
 msgstr "'$(unit)' yeniden yüklemek için kimlik doğrulaması gereklidir."
 
-#: src/core/dbus-unit.c:365 src/core/dbus-unit.c:366
+#: src/core/dbus-unit.c:362 src/core/dbus-unit.c:363
 msgid "Authentication is required to restart '$(unit)'."
 msgstr "'$(unit)' yeniden başlatmak için kimlik doğrulaması gereklidir."
 
-#: src/core/dbus-unit.c:538
+#: src/core/dbus-unit.c:535
 msgid ""
 "Authentication is required to send a UNIX signal to the processes of "
 "'$(unit)'."
@@ -991,19 +1002,19 @@ msgstr ""
 "'$(unit)' süreçlerine bir UNIX sinyali göndermek için kimlik doğrulaması "
 "gereklidir."
 
-#: src/core/dbus-unit.c:569
+#: src/core/dbus-unit.c:566
 msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
 msgstr ""
 "'$(unit)'in \"failed\" (başarısız) durumunu sıfırlamak için kimlik "
 "doğrulaması gereklidir."
 
-#: src/core/dbus-unit.c:602
+#: src/core/dbus-unit.c:599
 msgid "Authentication is required to set properties on '$(unit)'."
 msgstr ""
 "'$(unit)' üzerindeki özellikleri ayarlamak için kimlik doğrulaması "
 "gereklidir."
 
-#: src/core/dbus-unit.c:711
+#: src/core/dbus-unit.c:708
 #, fuzzy
 #| msgid ""
 #| "Authentication is required to reset the \"failed\" state of '$(unit)'."
@@ -1014,7 +1025,7 @@ msgstr ""
 "'$(unit)'in \"failed\" (başarısız) durumunu sıfırlamak için kimlik "
 "doğrulaması gereklidir."
 
-#: src/core/dbus-unit.c:760
+#: src/core/dbus-unit.c:757
 #, fuzzy
 #| msgid ""
 #| "Authentication is required to send a UNIX signal to the processes of "
index df477897861d0c9726c8a7db276e8e1fd07a644c..8e6f9dce89b74307cb1ec03076136a14a8e66fc9 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 # Ukrainian translation for systemd.
 # Eugene Melnik <jeka7js@gmail.com>, 2014.
 # Daniel Korostil <ted.korostiled@gmail.com>, 2014, 2016, 2018.
index a2c6f06efb75bfdb16c4bce4c5d536c4ed987b52..d4b9d408c3ef7f2a2ed18121b56c080025f84b68 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Simplified Chinese translation for systemd.
 #
index c765b36d55bcaf9e4da05719e8129e8bb3a395fc..e706f70e163110d1b01da68784f07bbdcc313737 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Traditional Chinese translation for systemd.
 # Jeff Huang <s8321414@gmail.com>, 2015, 2016.
index 9e430904f1124625adbd1933dee29912c9dd5399..d26087445c9695ded99f3b620e7985a1a64f4099 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 0b16acf59aa9e8574308859f40fb2f4433bb4895..84abeded2fd84d5e1655cd8f5a0b805adc3c6dd0 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 install_data('90-systemd.preset',
              install_dir : systempresetdir)
index 5ee969090ddae4f1fe35e6f8b8ce31336756f19c..7b407567d5359476113c3afbd18c37f6aa97e9fb 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9e2772388dc3dc8044b1f8ed14a9d6ed2f6de1e6..d2f595d18ee08c2cc8099a1fd1df349caff8f967 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index b4640ab9d423b97f6aff992d9bd952e99b08d63e..7e46abd5592ea6c73935f6dd194252f7748ada59 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 rules = files('''
         60-autosuspend.rules
index 9fc6cb3df544d50dcba42d88bc8f6740ee23adae..391fa67bfc1c4c155112db1fc9747bc9694b28b8 100644 (file)
@@ -1,5 +1,5 @@
 # bootctl(1) completion                               -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 1ed924e63a733c7073bd70de734399c8abc5418e..5a4acd337ff31e19aea5cadcae7705dc46402408 100644 (file)
@@ -1,5 +1,5 @@
 # busctl(1) completion                               -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index d4366df0d0c0490e278ead427df30e210966adb7..20886932e223b4e7693b692c61c9f22bf298207a 100644 (file)
@@ -1,5 +1,5 @@
 # coredumpctl(1) completion                       -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 1a1d5229667bb2d82a2015c8099c7c54b504bcc5..fe909fbb41151343a62714efc2c6c2c610cd81d6 100644 (file)
@@ -1,5 +1,5 @@
 # hostctl(1) completion                               -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 0d829e705a0bd0f7842cfbc42a2dada442baba7b..e3765c315cbf0785af137ae8981c3c0532ec7678 100644 (file)
@@ -1,5 +1,5 @@
 # hostnamectl(1) completion                               -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 757c3d77f436fefdbe0404bcfdc064d3d6cdfe90..84232e83c2bad5db7a563031b4a986ca1be689fd 100644 (file)
@@ -1,5 +1,5 @@
 # journalctl(1) completion                                -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 224ea83eb80ff8c85c075424a47c9eb539ddbd19..35c44ea3a84beeb1b3d7d77f21944811f60fbad1 100644 (file)
@@ -1,5 +1,5 @@
 # kernel-install(8) completion                                   -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index fe53112fd4140327c988ef07d6d5ee802db02c72..fa0f8fdca1c9709b62a1d4ac163052cb64ce4925 100644 (file)
@@ -1,5 +1,5 @@
 # localectl(1) completion                                 -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 69b999c05d5e065115bd1605f9cccda976c6723c..ac85519c1088963b2645b25359d7bf7c5a6d9177 100644 (file)
@@ -1,5 +1,5 @@
 # loginctl(1) completion                                  -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index a89ce812b21bd3e39157f91b4f3af2d5e2c120ce..cd16e47721350060ac4a21617d6c5cd520c0e5d8 100644 (file)
@@ -1,5 +1,5 @@
 # machinectl(1) completion                      -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 1df70147afcb5dd24904e5db954d94ad211acc91..1afa7977e66680ea7b611afea8dd7966933b6d3a 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 bashcompletiondir = get_option('bashcompletiondir')
 if bashcompletiondir == ''
index 02b9c75c4491378bf2c34b614f54cd93f078f9d5..9282ee873773cabcf429d031529b8408087d0a86 100644 (file)
@@ -1,5 +1,5 @@
 # networkctl(1) completion                               -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 0b84d5c83487b5702418279d4c923c4d8ca6c021..fe3d925d783eb9b3bcb37033e3e5f2568037629b 100644 (file)
@@ -1,5 +1,5 @@
 # portablectl(1) completion                             -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 54b241ce90e5f6a7ea66686ca96c089ed5f1390a..dae4330d4c5847a02dc5e1c72ec3367d3879dbf3 100644 (file)
@@ -1,5 +1,5 @@
 # resolvectl(1) completion                                  -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index b5bd727abf06170f468af7102902e9bfd720f301..f6be3827cff6b142c47881599cf6aa039488f235 100644 (file)
@@ -1,5 +1,5 @@
 # systemctl(1) completion                                 -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 0c61f54504c65341959955a2c7c48491acaae152..92f81a60fc718261a1489546bf9381c9c7980ea2 100644 (file)
@@ -1,5 +1,5 @@
 # systemd-analyze(1) completion                      -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 62da65da7adaef2c502a6c5031b93d3026647ad7..9413b6fa70ab00ca72a687eef46b214b13c93e82 100644 (file)
@@ -1,5 +1,5 @@
 # systemd-cat(1) completion                  -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index ae41f8ba5a44299379794f4e7eeabff5409dd4e6..7caaf89ddb903a34f32f2a6b2dddfc990283767d 100644 (file)
@@ -1,5 +1,5 @@
 # systemd-cgls(1) completion                  -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index a5e3401959fba21030f2377e3e1d5bdcca35f236..b186f1bd537ca37018ac113a5789309a98c3c2f7 100644 (file)
@@ -1,5 +1,5 @@
 # systemd-cgtop(1) completion                  -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index fcf27ba30e267fdd65942284d74f1e545d1c3284..baf86b081343d64822ce70dcbada1dc1863f0071 100644 (file)
@@ -1,5 +1,5 @@
 # systemd-delta(1) completion                      -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index bea00fc7aec506e7b53c5fb04d62e79f546408c0..fb35efaadb9648faff181d340649cbbc00c66214 100644 (file)
@@ -1,5 +1,5 @@
 # systemd-detect-virt(1) completion             -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index f25848beba2bd71a4c8a0a428138310498a63ea4..937556154a8593e42f815adacb05528aca861653 100644 (file)
@@ -1,5 +1,5 @@
 # networkctl(1) completion                               -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index a8bd406fb3118a11fd1dafc1b1c94e843324a367..ebd97a9de1b683205050814a8e54c53453ad2276 100644 (file)
@@ -1,5 +1,5 @@
 # systemd-nspawn(1) completion                  -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 189fec093334809df94a2357982188844ba865bc..cae4ac1b3093f4e04c667f7705e296feb5bcf619 100644 (file)
@@ -1,5 +1,5 @@
 # systemd-path(1) completion                               -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 66f0ae04a0a54abd9061df1f0f1039bc808f446e..ec43948278bf229df4b1fe49e197966378702e87 100644 (file)
@@ -1,5 +1,5 @@
 # systemd-resolve(1) completion                             -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 88f4443ad9727f00493404f16935a989241ce5b8..884065187bbdc376f7e26b3b79006551ace05eca 100644 (file)
@@ -1,5 +1,5 @@
 # systemd-run(1) completion                       -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 4605fafc46d00c206a51462dd598cb9a46da695f..3e72ce6655e1b80e8cd4cebbe4b3593243d93a8b 100644 (file)
@@ -1,5 +1,5 @@
 # timedatectl(1) completion                               -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 76126a63297c79cd21649319c3a4c79433d8def5..8b1b962f2d49d21c01586ff78511cb78f66e9218 100644 (file)
@@ -1,5 +1,5 @@
 # udevadm(8) completion                                   -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index fc051bd87d05a908d5ab30b8d8e7f247f4f507cb..9e024da3418328951e5e33625101264d47e8d18a 100644 (file)
@@ -1,5 +1,5 @@
 #compdef bootctl                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 __bootctl() {
     bootctl --no-pager $@ 2>/dev/null
index 0589e993265ac58f886305c038d41c87a7b9307c..8085d5ad114d8ea593f0ab2cfc80e2c4906b2e0f 100644 (file)
@@ -1,5 +1,5 @@
 #compdef busctl                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # busctl(1) completion                               -*- shell-script -*-
 #
index 6b7d14a76617ba0dda0f2f7fda9134baf87fb080..54e935330f5e3046275292bf1016d1e6a76ec32d 100644 (file)
@@ -1,5 +1,5 @@
 #compdef coredumpctl                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[_coredumpctl_commands] )) ||
 _coredumpctl_commands(){
index d1ad85a18fbbe7056b02d1d52db6ed107004d485..d05c46bd43645e8338bdbe99e5047c2eb17eed2d 100644 (file)
@@ -1,5 +1,5 @@
 #compdef hostnamectl                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[_hostnamectl_set-hostname] )) ||
 _hostnamectl_set-hostname() {
index ecc5d0831abd4a599950db51eeada8450c595507..848c4fa1be0a0566096a4479e3d7be61fd6f4f01 100644 (file)
@@ -1,5 +1,5 @@
 #compdef journalctl                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[_journalctl_fields] )) ||
 _journalctl_fields() {
index 4b5dd89d434a9a8699eceb7b335992a4ff213761..b0dd824356dab4393ea44ac18eb367edd8e12ca9 100644 (file)
@@ -1,5 +1,5 @@
 #compdef kernel-install                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[_kernel-install_images] )) ||
 _kernel-install_images(){
index a712473ce248ad1d66617dbdbc6034b853f22e15..1c7ac82b65967731f6a845135ae2fa3c626de307 100644 (file)
@@ -1,5 +1,5 @@
 #compdef localectl                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[_localectl_set-locale] )) ||
 _localectl_set-locale() {
index feb7016770487254727b69486b36083fe5e3c5f9..50c192daad1c63ee752e895f50c134e884d6af3b 100644 (file)
@@ -1,5 +1,5 @@
 #compdef loginctl                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[_loginctl_all_sessions] )) ||
 _loginctl_all_sessions() {
index 5955c765aaac011ce2683cf4b659b75316ebff7b..9a4a32e627c639df6265f219197e7c36643630f5 100644 (file)
@@ -1,5 +1,5 @@
 #compdef machinectl                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[__machinectl_get_machines] )) ||
     __machinectl_get_machines () {
index 13c8009887d667021f14f48f765de71495483efe..165c5411becb8bf20c08a6cad0f873d21a4e968c 100644 (file)
@@ -1,5 +1,5 @@
 #compdef networkctl                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[_networkctl_commands] )) ||
     _networkctl_commands() {
index 3ac069c6b0a73fe9e00945afe7079ed793d3b1c4..8a50fbdbbec46e10a7000363f75320311c74d298 100644 (file)
@@ -1,5 +1,5 @@
 #compdef resolvectl systemd-resolve         -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index a510bf3cf18c46e6fdba2c1131e7fd199953a3c6..8148ed19853a7ff3a1ccd0c493371d5bb55ca220 100644 (file)
@@ -1,5 +1,5 @@
 #autoload
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 _alternative \
     'users-hosts:: _user_at_host' \
index 30b7fd81a31f2bc8b548ad3a8607ca24fff7d3a6..cc0d1e2b4efcca26b5074e919cc0a577e03d753e 100644 (file)
@@ -1,5 +1,5 @@
 #autoload
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[__sd_machines_get_machines] )) ||
     __sd_machines_get_machines () {
index 763b106f3d93272a47b7013a78b7d557b20020f1..267a2e7bd3ac1d47e14d3e2a25b299cb5be1bf47 100644 (file)
@@ -1,5 +1,5 @@
 #autoload
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 local -a _output_opts
 _output_opts=(short short-full short-iso short-iso-precise short-precise short-monotonic short-unix verbose export json json-pretty json-sse json-seq cat with-unit)
index cce44423e969b6047f23f054bb02faf4b968cc15..654f48fca5eb5a4c99df7c0f3cd585b0ed820ca4 100644 (file)
@@ -1,5 +1,5 @@
 #autoload
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 _sd_unit_files() {
     local files expl
index c59beb157c3d834edaa8eef53421f7165b5db9d6..4830aeba5f744eb1202f716aa34cf4f1c5888561 100644 (file)
@@ -1,5 +1,5 @@
 #compdef systemctl                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[_systemctl_commands] )) || _systemctl_commands()
 {
index 3550c15163a3b427430a815f03d58c877df5074c..5a8af1c918a73c8db93b6b83d18ce5481d3e088e 100644 (file)
@@ -1,5 +1,5 @@
 #compdef systemd-cat systemd-ask-password systemd-cgls systemd-cgtop systemd-detect-virt systemd-machine-id-setup systemd-notify systemd-tty-ask-password-agent                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 local curcontext="$curcontext" state lstate line
 case "$service" in
index 75e72439fd85ec8eafa1951ade51c4e38635855e..188d6b7359f6494b45fb5d2dd6e6c6708d9a2e95 100644 (file)
@@ -1,5 +1,5 @@
 #compdef systemd-analyze                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[_systemd-analyze_log-level] )) ||
     _systemd-analyze_log-level() {
index b4361f7860f0065786ee9f80c9401894cf8e2e2f..5cd140d1fc9dd0cd5340a87e95b2f8eb43a467ed 100644 (file)
@@ -1,5 +1,5 @@
 #compdef systemd-delta                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[_systemd-delta_types] )) ||
 _systemd-delta_types() {
index 4536f9bd2e5745c252becdc262e56870c1a1daac..1ff8487bf9ea4888af786b0b4dd3a0ce87cc7587 100644 (file)
@@ -1,5 +1,5 @@
 #compdef systemd-inhibit                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[_systemd-inhibit_commands] )) ||
 _systemd-inhibit_commands(){
index 414d82e2ea8b92038ebed7973ed75ce25b4e0f76..d3cf06016b14720e404de014c01312c925608d1c 100644 (file)
@@ -1,5 +1,5 @@
 #compdef systemd-nspawn                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[_systemd-nspawn_caps] )) ||
 _systemd-nspawn_caps(){
index 22b82d66fd814dcd9ad001df081f2f990e854ffa..d9998e5dfb15ad9942177a277c68e76e841ce2a5 100644 (file)
@@ -1,5 +1,5 @@
 #compdef systemd-run                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # @todo _systemctl has a helper with the same name, so we must redefine
 __systemctl() {
index 8860dc797cfe20da197bb06d9826d7d98b6af2be..8a23360bf082b343be4aa31cec26a38bf457b069 100644 (file)
@@ -1,5 +1,5 @@
 #compdef systemd-tmpfiles                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 _arguments \
     {-h,--help}'[Show help]' \
index e2dabc79a727320396a73d61743f1bee24f82b68..eee086ea9ecdf69cc4faee1c9844f7ef26e8acc8 100644 (file)
@@ -1,5 +1,5 @@
 #compdef timedatectl                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 _timedatectl_set-timezone(){
     local -a _timezones
index ad0b73d4766052e5c90df32687f2619e1341b3bf..ae82d8aa70b296b928206825c87261c23a65e1e8 100644 (file)
@@ -1,5 +1,5 @@
 #compdef udevadm                    -*- shell-script -*-
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 (( $+functions[_udevadm_info] )) ||
 _udevadm_info(){
index ff91cc1134cbd95f87501861285f8435ff93829a..4fff13357f622e27b86e9b21834dac4daf334dfb 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 zshcompletiondir = get_option('zshcompletiondir')
 if zshcompletiondir == ''
index 90ba5d2b68337f317b92b535f4d7edd272aee546..9fabdb9e9f1d690adb4915a69f086cb3eb09867f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 
index bca845ad83b9fa828ff44cc21028bb8063d071aa..1f7a2490e7b79dce7b6807d8f10af6c3c24e52b9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <sys/epoll.h>
index e1365e1805616cc0d82ba52a1b1bb6db9d5402c7..241c188ed6d187a46198ebd2b56843af4fed99d3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdlib.h>
 
index 2ef278eb5c8e251dfb46af08cc2449154bb08434..7b52669d05ea267f0d6cf52e8572d022c3f38837 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "install.h"
index 9c1d63030d18a899c33b85a7c1b7ef8d36235c8a..8d94fbc5d794b744fd0fec5858340edd0cdd07e0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/utsname.h>
 
index c00ae7c80a3f93c0fdc998db577b070e5a7a9228..e8de39f3bc2f76b3adcb68fe14b7198b1a48b895 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 93506482e8b29d512f1edd7b15e0aa0822e10b95..a9c89173bfa9997a66c48e215823e972bb104383 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdlib.h>
 
index 3da2cf7097a46d5f378eaf3b641b11525c4f595d..43bfbcbc8c4eaa35bb8f6b04d3c7ae7f550ec42f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 9a0b1a7bbfe47a7c4db6507b6a14e55a86aa39e4..9920f2a85683a5decec2386923c61694f990586b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2013 Simon Peeters
 ***/
index 58760d609b36650bd45ac964b4dd0538dd288686..9e4d95b03643e22180a1583ba3077f28feb97aa4 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_analyze_sources = files('''
         analyze.c
index dcbb6394c6b9004f530aa5bb9372acc92688131b..12c32159e56e9c0cd937344357171a06f1d965ed 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #include "analyze-verify.h"
 #include "tests.h"
 
index ca6da40bbc96763ce987844a0ab9eb81437e254b..a24ee9af1c9a0b6d1a4db8686cdb464040c56745 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index 9ee2c23683aad0bcc32e6490dfeb419f185a50f3..83b168532a4b8d28052548ef7f1640c2e9d6c1eb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/stat.h>
 #include <sys/types.h>
index 5859af0a81b622e60ccbc580f18c2a1529902751..43a89a0820bf10b76aa8cf22d8da3891b8bb2285 100644 (file)
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: LicenseRef-murmurhash2-public-domain */
 //-----------------------------------------------------------------------------
 // MurmurHash2 was written by Austin Appleby, and is placed in the public
 // domain. The author hereby disclaims copyright to this source code.
index 1aef3afba0648a245fc8bcb986293f5a3d2a2b35..5758b860398dba7c1740ad86b76f709f299452e9 100644 (file)
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: LicenseRef-murmurhash2-public-domain */
 //-----------------------------------------------------------------------------
 // MurmurHash2 was written by Austin Appleby, and is placed in the public
 // domain. The author hereby disclaims copyright to this source code.
index abad221d58a8afa54df906420cf1e3a1428504b7..7e819d6d11ec9a9600c19d717c6dc55472bd75f9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <string.h>
index 8342323b8a80d5ed0017111f356d6b4ec95cda62..688ac63df755e5167e0283b5c38a14a2961341d8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/socket.h>
index 5951e8c3d590c91f325364454d44aa08087889bd..bad15cc204c953ffa5e3ebb2477d1caa25efe27d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <malloc.h>
 #include <stdint.h>
index 34340e4a39df73d6a83e4981c40c4176e2aeb96c..f3e192ddaf74160943fd6ba5f126f8d5db6a0582 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <alloca.h>
index 85837b5ebf118d955013c192786e0f0954de69fc..409632c3f49d6f0e11d678dc4afc95fc6b39f9aa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/utsname.h>
 
index 443e890eabc370af682a51ac2eb5cd44c027dcc7..1db625cf80595fcb1617fa71a3ff89aef49c8fd6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <endian.h>
index 7e5570ab9faec7ddeb0524c62a64ec2014f4464a..99048d20c80c36c888954c6287568f9a9e2f1cba 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <linux/if_arp.h>
index aae56bc88c6e09ae469fb65e6280d837b687d1bc..bc95b4507b4f72ada52a15ad7afe0ad18ae8ea80 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 const char *arphrd_to_name(int id);
index daa95cd102fb4f5d2487064ae81507f5c9d98d7d..443cfa95ab70abe80c4b7bb51cab000bb9c21b1a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <pthread.h>
index 3160613184b9653cc78c041d6c195623ef9ef18a..9ada32c9948fcfe3294dc6b79239220be8ade614 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int asynchronous_job(void* (*func)(void *p), void *arg);
index 6eb224b2c818a2c326ebfafc620adc0118e4deb9..1bf88b1e52bf6565a04e6772543b6b006b47dc1e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <linux/netlink.h>
index c9fc49871d12ec9313e29f13cc2d204b69542737..aa2177113b1abca2499585bd403d57ee7d6ae6b5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 21ff3ba1b13c018ac283476216d308b12585b19b..0f1e30ccd971ce6a2880858cf79a5ce2874df334 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/file.h>
 #include <unistd.h>
index 58a7050f53b2f1e0eb993b7b769e4c97edf5bd10..10048ff3139ed5e1f64921fdf66d98d1e373a041 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index 50a35268ea1bbfd757142e51063b838cdaf2cd9b..2634659aa0ff7b0f02a9dc625b00105de5b5ac29 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index d9cb95af006740439302796fcd27701f8cd8d47b..c8b44f6162718da606465cfc0423b8add709c236 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index e02ad391a96abae4db1433f595b61cc1067bf299..4697639efa047c9248c3171710a731de153f7bee 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "version.h"
index 1613cf7fd79b99952bff2491e29d601bcdfc8d44..cd6c58a3d313a6f774d0c4b485ce25147bf30d2c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdlib.h>
 
index 4a1b097a52b8406c5add186981b66777abb58846..446daba7f267af0f8071414853a998fe307d11ae 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stddef.h>
index b483833947518e968b1b1b23ca5f34396a34fc1c..1e783a6f29ddf82768955fea76b8ab5c3e343c2b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <string.h>
index 4bfb1a355b4999877db59281d1da5a9b29b6bb10..71235d6a285ce25b10a36a21a04d2ef628ea9b88 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index ae269e8a8a1b872aa61867ed6529d0852d5604d0..c1520d927901a3cbc7cd911afd835c44ca5d2843 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index fdf6ef84622b3f26f93f0e0f4149c779e0bc7b36..f5ce2905241d8139c05c1187d98feb7c10035ccc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index d2655673fdf9351e92010a703f01a6885739d300..98329a954dd37dd1e820f6e4d5f414a87322f4b8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <ftw.h>
index eda2b16a1b9c8aee85fc5359976e9d61a1fad591..bdc0d0d086c9a0bded41a204b1a0959d66474a0d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <dirent.h>
index 235cfb9bd752e19df84500bd1cffa7a9cf8d1076..c724e17685a6314af9938ebcb7e07cef236c738c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 29070c848a70ee482b31a0165dbe4169d40e01e8..2fcdb644317deaa68e0364d65435367bc691c50e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/fs.h>
index eb19516c2acc2446243c8356ea9a6f2638f3b25a..f8c997673a6b98b3dd44502464dd934da2575edc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdarg.h>
index 7d7be5c90fc31845c811f83eec91efa785b1fdbb..7774ed705413aff5b8a0b9505e6880f53b09149c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "macro.h"
index be4ca6288a9ec0faae275326fa0fae3f455fcc84..0494c9068d465deaee17a43c847c4788c89b8c0b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index cf2efd8e7bba37073db0ec4a2613a82f0992d7c3..b583dff2c09e966a1ce78956668f927247cc8707 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <fcntl.h>
index 9f1f3c229c7fb90f36cf38105afa25beeacd9530..2e60abb4f19ec490297104dc1aea98983e2dfd2b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #define DEFAULT_TIMEOUT_USEC (90*USEC_PER_SEC)
index 888ef236642e8a4ca696b19f18ad2898a0087fec..7eb9c351b6d4b4d0692ea2be464a15917d0e6dd5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index 0dad8c9c681cd46c4096e750febe336b39251387..9e5c79f67d28fe09fa69b1d116a0ff70a2e63a8b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stddef.h>
index d1d2c0ef46e6bcb2772f0dc470ad7e9e17332840..48aced748a9de2da5b82353f1acccf18588f2610 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/stat.h>
index b1b87679dcc114acbaaa7524f78249611ee2be67..07750c39e0270e628045c41f2406e7a0503cec6f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <dirent.h>
index 08ded96965bc9fe57de02dfcec6d12d0ba2dba02..2dbff0e3589c387d7aefeb62429e7f659cee66e8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "dlfcn-util.h"
 
index df66cdfd38f8a57bbe9424dd2fbe499fb52db424..2c94ed51f34408ee6e908348fbf6631b8d2ca56a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <dlfcn.h>
index 007137cf01277aa5eb4ddbaad04b41e8e7eb869b..5aeddef7e2dfae4ada90b6b4ff8c862df7718f1d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index cb341e452faceb2d042d4718b1dad8d2203ad725..d310dde7d78e7fb2fdcd143a724f7234e4889bfd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #if !ENABLE_EFI
index dc92b13a6f922305fad661d752d8e9d1c41f03c1..99c3e3f4a31f3a7b41bc5876338c0d8a35b729a9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "env-file.h"
index e1ca195ff073d42c0e712fb2df07d745df603750..de475885acec3a854db7a6c8662ea7048cb52cd4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdarg.h>
index 8b26b36cfe5eb0cf35ed1778d29119e4ad25741d..bf191044c033252fb192f9a68607a6c188408ff7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <limits.h>
         DIGITS LETTERS                          \
         "_"
 
-static bool printable_portable_character(char c) {
-        /* POSIX.1-2008 specifies almost all ASCII characters as "portable". (Only DEL is excluded, and
-         * additionally NUL and = are not allowed in variable names). We are stricter, and additionally
-         * reject BEL, BS, HT, CR, LF, VT, FF and SPACE, i.e. all whitespace. */
-
-        return c >= '!' && c <= '~';
-}
-
 static bool env_name_is_valid_n(const char *e, size_t n) {
+        const char *p;
+
         if (!e)
                 return false;
 
         if (n <= 0)
                 return false;
 
+        if (e[0] >= '0' && e[0] <= '9')
+                return false;
+
         /* POSIX says the overall size of the environment block cannot
          * be > ARG_MAX, an individual assignment hence cannot be
          * either. Discounting the equal sign and trailing NUL this
@@ -44,18 +41,15 @@ static bool env_name_is_valid_n(const char *e, size_t n) {
         if (n > (size_t) sysconf(_SC_ARG_MAX) - 2)
                 return false;
 
-        for (const char *p = e; p < e + n; p++)
-                if (!printable_portable_character(*p) || *p == '=')
+        for (p = e; p < e + n; p++)
+                if (!strchr(VALID_BASH_ENV_NAME_CHARS, *p))
                         return false;
 
         return true;
 }
 
 bool env_name_is_valid(const char *e) {
-        if (!e)
-                return false;
-
-        return env_name_is_valid_n(e, strlen(e));
+        return env_name_is_valid_n(e, strlen_ptr(e));
 }
 
 bool env_value_is_valid(const char *e) {
index 92802ed774448ef867ef289c54ecc280cfea368e..a37603dbd8d67ee68639088507e941a165efd464 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 44cc57053966a6cdb0cce16ca9125401a56e5ec8..2aeb38c438dd3783e71a1962bf047d9ed6bc2b63 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <string.h>
index 9c639b4f55f0bad9bf8e992d50aaf8a7e459e2b5..082b833e49192c35622ddbaa415ce4354dc1513a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 0ca650f48f6d957291e9c0694c495d481f00ff52..5609820b882f528a0ab756f1e15a4756391e3ab2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdlib.h>
@@ -50,7 +50,10 @@ static inline int errno_or_else(int fallback) {
 /* Hint #1: ENETUNREACH happens if we try to connect to "non-existing" special IP addresses, such as ::5.
  *
  * Hint #2: The kernel sends e.g., EHOSTUNREACH or ENONET to userspace in some ICMP error cases.  See the
- *          icmp_err_convert[] in net/ipv4/icmp.c in the kernel sources */
+ *          icmp_err_convert[] in net/ipv4/icmp.c in the kernel sources.
+ *
+ * Hint #3: When asynchronous connect() on TCP fails because the host never acknowledges a single packet,
+ *          kernel tells us that with ETIMEDOUT, see tcp(7). */
 static inline bool ERRNO_IS_DISCONNECT(int r) {
         return IN_SET(abs(r),
                       ECONNABORTED,
@@ -66,7 +69,8 @@ static inline bool ERRNO_IS_DISCONNECT(int r) {
                       ENOTCONN,
                       EPIPE,
                       EPROTO,
-                      ESHUTDOWN);
+                      ESHUTDOWN,
+                      ETIMEDOUT);
 }
 
 /* Transient errors we might get on accept() that we should ignore. As per error handling comment in
index 7589d597a2fc9764f7982ed369c466b4a7b3021d..31f3cda472e60668dfd1084d6198d6e4ec42a8bf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdlib.h>
index fa267813b34e286b9a1531d206a7d85343ba853b..15e4df7ca1d64f7658ff143088b59f06001fac67 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index e875696a1a9ea26e066ecf724949460d4b0f8a8c..c8094b6e45ecf6269dce7a290e3fc4ed8adf54c1 100644 (file)
@@ -1,6 +1,7 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
+#include <inttypes.h>
 #include <net/ethernet.h>
 #include <stdio.h>
 #include <sys/types.h>
@@ -9,6 +10,20 @@
 #include "macro.h"
 #include "string-util.h"
 
+char* hw_addr_to_string(const hw_addr_data *addr, char buffer[HW_ADDR_TO_STRING_MAX]) {
+        assert(addr);
+        assert(buffer);
+        assert(addr->length <= HW_ADDR_MAX_SIZE);
+
+        for (size_t i = 0; i < addr->length; i++) {
+                sprintf(&buffer[3*i], "%02"PRIx8, addr->addr.bytes[i]);
+                if (i < addr->length - 1)
+                        buffer[3*i + 2] = ':';
+        }
+
+        return buffer;
+}
+
 char* ether_addr_to_string(const struct ether_addr *addr, char buffer[ETHER_ADDR_TO_STRING_MAX]) {
         assert(addr);
         assert(buffer);
index 4e44b30be98e6fbb7f097e03002baa47d01077e6..942ce55621e16fe56140c42965c252e4051064bf 100644 (file)
@@ -1,11 +1,35 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
+#include <linux/if_infiniband.h>
 #include <net/ethernet.h>
 #include <stdbool.h>
 
 #include "hash-funcs.h"
 
+/* This is MAX_ADDR_LEN as defined in linux/netdevice.h, but net/if_arp.h
+ * defines a macro of the same name with a much lower size. */
+#define HW_ADDR_MAX_SIZE 32
+
+union hw_addr_union {
+        struct ether_addr ether;
+        uint8_t infiniband[INFINIBAND_ALEN];
+        uint8_t bytes[HW_ADDR_MAX_SIZE];
+};
+
+typedef struct hw_addr_data {
+        union hw_addr_union addr;
+        size_t length;
+} hw_addr_data;
+
+#define HW_ADDR_TO_STRING_MAX (3*HW_ADDR_MAX_SIZE)
+char* hw_addr_to_string(const hw_addr_data *addr, char buffer[HW_ADDR_TO_STRING_MAX]);
+
+/* Use only as function argument, never stand-alone! */
+#define HW_ADDR_TO_STR(hw_addr) hw_addr_to_string((hw_addr), (char[HW_ADDR_TO_STRING_MAX]){})
+
+#define HW_ADDR_NULL ((const hw_addr_data){})
+
 #define ETHER_ADDR_FORMAT_STR "%02X%02X%02X%02X%02X%02X"
 #define ETHER_ADDR_FORMAT_VAL(x) (x).ether_addr_octet[0], (x).ether_addr_octet[1], (x).ether_addr_octet[2], (x).ether_addr_octet[3], (x).ether_addr_octet[4], (x).ether_addr_octet[5]
 
index d64dddd641d121fc4be994727b0596e202e47d45..76b3fe12e3b8c4437a6893d29ddbaf84fc9e54be 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdarg.h>
index f028577c40887e91622e32edb0e518fc51b968e3..d1de32e5806d316f3e7cf50564a990089d951e8f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "macro.h"
index e37b6944a8a6fe7c417e68f61ca6a9a5efddfbdc..07a7b3a30639fb6cc057b9ba42c98e1459f4d537 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 93ce95cd036768c3084fd548fe1e457914476059..2162537b80889e2776a9018b93b728565a110b8f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <dirent.h>
index 050c8709f81f563870776378c751c915776110bf..71a2654507f82f95e8b7b86f3a73ad63fdb6f88a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ctype.h>
 #include <errno.h>
@@ -602,7 +602,13 @@ finalize:
         return r;
 }
 
-int read_full_file_full(int dir_fd, const char *filename, ReadFullFileFlags flags, char **contents, size_t *size) {
+int read_full_file_full(
+                int dir_fd,
+                const char *filename,
+                ReadFullFileFlags flags,
+                const char *bind_name,
+                char **contents, size_t *size) {
+
         _cleanup_fclose_ FILE *f = NULL;
         int r;
 
@@ -645,6 +651,20 @@ int read_full_file_full(int dir_fd, const char *filename, ReadFullFileFlags flag
                 if (sk < 0)
                         return -errno;
 
+                if (bind_name) {
+                        /* If the caller specified a socket name to bind to, do so before connecting. This is
+                         * useful to communicate some minor, short meta-information token from the client to
+                         * the server. */
+                        union sockaddr_union bsa;
+
+                        r = sockaddr_un_set_path(&bsa.un, bind_name);
+                        if (r < 0)
+                                return r;
+
+                        if (bind(sk, &bsa.sa, r) < 0)
+                                return r;
+                }
+
                 if (connect(sk, &sa.sa, SOCKADDR_UN_LEN(sa.un)) < 0)
                         return errno == ENOTSOCK ? -ENXIO : -errno; /* propagate original error if this is
                                                                      * not a socket after all */
index 963d7d08fc869913a99fb49a7c5277d7b082dafe..b34ed5e88b646a8f4a78e0e86a4860c7e2623662 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <dirent.h>
@@ -60,9 +60,9 @@ static inline int write_string_file(const char *fn, const char *line, WriteStrin
 int write_string_filef(const char *fn, WriteStringFileFlags flags, const char *format, ...) _printf_(3, 4);
 
 int read_one_line_file(const char *filename, char **line);
-int read_full_file_full(int dir_fd, const char *filename, ReadFullFileFlags flags, char **contents, size_t *size);
+int read_full_file_full(int dir_fd, const char *filename, ReadFullFileFlags flags, const char *bind_name, char **contents, size_t *size);
 static inline int read_full_file(const char *filename, char **contents, size_t *size) {
-        return read_full_file_full(AT_FDCWD, filename, 0, contents, size);
+        return read_full_file_full(AT_FDCWD, filename, 0, NULL, contents, size);
 }
 int read_full_virtual_file(const char *filename, char **ret_contents, size_t *ret_size);
 int read_full_stream_full(FILE *f, const char *filename, ReadFullFileFlags flags, char **contents, size_t *size);
index b4144e03521498f0adda6fe99b6d7aa667993a93..bf23037792f12ef8b7856d37f52f8c67f7319805 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "format-util.h"
 #include "memory-util.h"
index db37c16140c82865fd1e00b622699c8675db0d67..b7e18768e392e034d0a56b056192dbdc040cf800 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 587b3504ee86ad7489663e881b3f8b75fca5b78a..fdd99467c7d697198ec01177835f2bec7ec3203b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stddef.h>
index 241cc6ef62978772cde3616c208731c0a67ca5dd..5dc8853eac82aae3b94603aa0051bd952a88fd82 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <dirent.h>
index a82be979dedd26ba2b489792fd2055767f7e13c3..bf0d2106f8d54218e6f000e675e1661760afc455 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_GCRYPT
 
index 87eb606891b93e72acadfd9280cad01e52dbf4ad..c07b36cdb9f7588aca2812c499a31569179c6c3c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #pragma once
 
index 1e7e301e09875d0e72579d45a03d895e3c29135d..bc0278e57f5d491052e84f73c7bdb602766ba98f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/types.h>
index 3d5f5435085aca376f0362fdad86c8fe8f673d3f..d2f8718d5a800b327546fb7e54e4814b476d1459 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <glob.h>
index c51b1a7a18108fd3e47f8a0dd1395527ce4806e1..36beb957e10014a273115dff5036db83d7b7dcb0 100644 (file)
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /* gunicode.c - Unicode manipulation functions
  *
  *  Copyright (C) 1999, 2000 Tom Tromey
index a16b7b6ff1b0deaa082564372519bda40c3d4d6f..6b7183986fd2fc8a08997c60ce5d0aa08c0669ad 100644 (file)
@@ -1,10 +1,10 @@
-#pragma once
-
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /* gunicode.h - Unicode manipulation functions
  *
  *  Copyright (C) 1999, 2000 Tom Tromey
  *  Copyright © 2000, 2005 Red Hat, Inc.
  */
+#pragma once
 
 #include <stdbool.h>
 #include <stdint.h>
index 83016c0fd616ad74047a24b41abe2c08ffcb0bf8..e033de1ae191a37b87ea2d0bce55764b9a0f539d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <string.h>
 
index fb602009416ea10f3e24a5fa08b2a67b49c3d489..5672df1da4e0005d5832b36f0cb2a18c673183f9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "alloc-util.h"
index 61946cea326fc7fe1d4e951b944e82a34cd79b41..dd1b18c87824d5755c23fee6a9022d639aac96f4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <pthread.h>
index 6933c0b1e62b41e8cfe910b1be55426ee3fb5e66..e99448375efa201e472f4bc91a8b58e64ca99e5c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <limits.h>
index 96f7b9ed0fee8181ee247f625b7a4210b67ea7f9..da60202e57c53cf7cfab94962836c3cb64a9c0af 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ctype.h>
 #include <errno.h>
index dfdff1e9bb0ce0d17993c29a6921859b7dd83b5a..7e2a6892c0a5b66d3606f4ce4a5b2cbc4088684f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 90a3dfc86471d01d93c53d96678151593c796305..09e49ccb7d8f78b33c4472cd265866939ee31f03 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <limits.h>
index cafd6f020bff96eb6b9a1f2bf735774fb67351b5..c1e47a2a53e1a690bef92d9a9437451467778222 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index c102504fdd5b2046044b30144901561936a2cf83..a4f13b620a61d400db2873b0203d3427e8af3656 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <endian.h>
index 45c93a0056fcfcda5f7d7a48659127022696eede..24308b702e26e678843325bce94cb137585fb89a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <netinet/in.h>
index 460649dedaf561c7c66538c720b14ea1c4cdc307..247e37fd809f8f6d52397690a567251e1421e803 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <limits.h>
index 719e19e85d6124e86b9f7f18ff01393297f1fb88..d817714b050741c3c23b26bc618beaba76024a4b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 17d4022dbe74c24a3ea53003bc6babd8fc8579b8..267803ec2ce21f25f25259bafa2a813a5b0666da 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ftw.h>
 
index 9efd2c7052982e3c494a33e2a20ea404a3522134..6714aeb9e047ce630ce8a9c0f38c4f9eeb0853ae 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index dbae418282b7c8ccd5f066d6bcd5d8a8a97c932e..0e3a78388e5e4d9a417a94a0cdda0b7f0c68e0d3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/if_alg.h>
 #include <stdbool.h>
index a3013b9d6191d20fdb8092fc2beae3c91ebc07b0..a343d306e93569a8019b845a0a46f24748432569 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 107028e0680ca49c3f882a0eabd47b1451303a2f..1fc492fb3110e6f3417453964002059fd90417eb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/stat.h>
index d99d824b4af4c3f697e712b9909eeca49aa3063d..b5118d96d32bfa8614ccb52997f1b4a08d366303 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 9da767a5706f11135cb042d8be6fe3f70cf07278..259c311a678ee5ae9597ce41c9c0c31c7e824257 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "cgroup-util.h"
index 77895cbad480d170361e1eee1376b4e308bfa380..d267fcf1d48b0e09f08b00d70c7bd93f545ea378 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index b62c374985770418b06c3cf1125bf9acc4f124ed..256b7187c2e8ed54a64e549b711850bbaef441c3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "macro.h"
index 8e6a12b602fc3f4a363da9fe73df07862b40e14d..4c81cb94401ab1e1a9f5f57a869eecc4d9b79e2f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index aa25e17f154596ce6803efbd6d1e4f0bc6bbb762..2d672e2f95952a9281c1b371922cadbaf645c413 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <libintl.h>
index 1d796c518079446309915c520f78828083b1a265..d4054cf46a8e87728d43c0f36ab3643439144d34 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index ce8bb42ea175c5d345d75f8051c92e273f1a32f2..a2aae16df29ef8a495da6b22fb0d9ecef1c81cff 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdarg.h>
index 9313926d5a7dece21628a43c43a5806beaaa725a..044e8b7650ec606a0ba6af52902e21bcb50b6ce1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "login-util.h"
 #include "string-util.h"
index e1e62e12b7aa67140e2f714620495a448e3bf523..00a124dc9fbdcbc80ffbcf3724383fcc1e368122 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index cffc5ec59c5ea39e68de84eed258f5c1438110fa..278255375617df9b4f56f4e79b29299da555bedb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <assert.h>
index e06bdcb0a88d587ca973920fbc5be6ac7b297e5a..0b8ecea1b1fd396d40759b39479abb71db31e164 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/stat.h>
index 5ebb519931b0cf900ba207765a0a7bb5929c8891..8596c1a3690428a56df90a33249a0b5d9af9e6f0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 5f327ef0d7aaacf3abaa6b7f197e6f5d41e533fd..3338e355f7b6ce7b62ef708377cec05995d622e6 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #include <unistd.h>
 
 #include "memory-util.h"
index 4f596cffb75bc2d9fd28c94df8b5d9020bcbddd3..179edd247bf63bbd0f5046e1227b918fec00b70c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 22df42105b9037c673de65b590b816d9344b6df6..9eedc20c4fe1d96abd59f2b29baa060eef661c49 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdint.h>
 #include <stdlib.h>
index 0eecca0f92a9062d3cb46bab223b7215c7e71644..0fe2f2789cda606064921202deb3a14629482ca0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index d83c1ae496b7a0049a42abe97f6b0249358540c9..1183ea83adf96a9a895abc0962c4eef17d7833e3 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 basic_sources = files('''
         MurmurHash2.c
index b00d537be22df5fd73b031791786c4a0760634af..62e3c292f531ef6dd733d17ee938d49f43e5aef9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/audit.h>
index 4d37618741f741052f66ba29b5bff6260ed96f3e..4cf31cb839a6ce12980534ab7b6256a570d0609d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/capability.h>
index a64f74efdae92ab279b97de6ec6a6095df641257..0dec59114663a71de41b066d80f00dce7531ab0a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #ifndef DRM_IOCTL_SET_MASTER
index 5d1c6352f4ae2450800aca950840224782a4aa27..00937d2af03d91ff58743f76baf8e7487114c501 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <fcntl.h>
index c262a918126bb58ea0309b20b949adae1eef1d47..79c1620e83d08c9e12e126fecb3d5b6d54574f09 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /* linux/fs.h */
index b91ccb6485a88fe28493b13b447bf14d4836eba1..6cf16ffb97b65ff31793627a0e7b7866696993c2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/input.h>
index 7eb709586ce3ce53eb801e5bf7d9aaa01c74b158..5680483bb408fb2f0ab2415975287abd318d62f0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/keyctl.h>
index 53267774190efc11f807d31dc5320a85800f557d..b22ebda9fda26528d0121a6344624dc40cab745f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/loop.h>
index a05b5b5c3c0909871511b57396a94f18644b5f8d..e7466cb6bcf0720a4137d45ce5151650b69d3155 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/magic.h>
index 7ff12f770b9b7716f0850f15f8d14fe45a81ba53..4a109128d00e608d12a36b90728a68cf5cb11c02 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/mman.h>
index a25a1480f0c44b04bdfae862d5806b4426f6d1b2..f9db690d1855f1296ab593acdd4d845be3d59d4c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /* linux/in6.h or netinet/in.h */
index f80cd17f346b072996271bf75373d79608c97bf5..ab851306bac60710747183febc867e59656f3a1a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/prctl.h>
index 17af87a3aefe9b77f88866552d1f0cb2fadcdf74..443b91368558934697d6d2832cd2346d8a81909d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #if USE_SYS_RANDOM_H
index 22ba8abfc6bb4f97d876d149ec3001719dcb4e4b..6e7676527be8d344afbf2ff6aa4005fcb853bc7a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/resource.h>
index baa39132837f36efe856e3dbb260c9f8379d6978..6a889f66d95658b81a68d92cd1acb0ffc16055b5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sched.h>
index c4f33449a3764e26dafd828f6bbca61fdb1f6f5d..17bc1a5a0188f9b622d78239221da79c8ddebe2a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/socket.h>
index 7bdc8a7efa842f117ab7681c8453cde35ff57a02..372fdf90bd374646bac1ded9d6acc444385323d5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/types.h>
index 188a8d44066a24a3b2d3ffb06a290bc3d309e4d9..8c76f93eb2f4af3e7180d6669b02ff5bcac4fb6f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdlib.h>
index 01fec6f2f5d1f7190c1512c3d0da87835efea0d5..d000e8717c9a6f289fbf67d400c87b6cbca14cfa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /* Missing glibc definitions to access certain kernel APIs */
index 6b0404453aae8e2bd6097b7665e0a78d5b3b72d4..dba3043d2264f0e43cb1b42a224fcd0010e51a2f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/timerfd.h>
index bf8a6caa1b467a87d7e30962a8b5056fd86ce28b..f6233090a905c195b104196e1402359d745f8733 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <uchar.h>
index 9eac76dd67c4ec15e2f831a7cf4f5fd9447ebeaa..ba5fe8128858e85ede5776992df4cf384d077e03 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /* This is currently not exported in the public kernel headers, but the libxfs library code part of xfsprogs
index e844a598060d3e6485ecd126e1e9378dee3d5166..9565117b9256c3b008c1415c226cfb8d34902cd7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 #include <sys/stat.h>
index eea8f1c9aa7b44daa33bc931586c11a8ecb35e03..f91f8f7a089a12736fa051a9aa37a503cc59025b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdbool.h>
index fc66a7d36518063854ec3e3e52a4a7b1d7c6b0b0..3c53d22db973db74eb7a6d8c197f22a2426cd070 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index 681da7402457c2508fb85bd35fe9dcb4439ee573..8bed96069f74a9c4187e9a7e9f4805c35a901725 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index ab4ed193945c74ecad9d55559e75744db71647ee..aadb2123d91680003cf9dd687c1628c1ddc16083 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <fcntl.h>
index b34c532604a5fe85b88e6fae3b49f32300d13de6..833a18a20499d012a6c3f7c5b089bb86e6132925 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/ioctl.h>
index 99d9b977edf118614406faa34f23381040a9acf1..7f7d06687307d6f747a31a21eb173ea25c03df3e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index 29cf22676ae6f3e6e2416d6c4b802dbb8ebe7fb0..dfc0d3fb200e64bd4e06d59d1eeed4f09348d385 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <grp.h>
index b12d0202320fad7d8ff52e60f1fe36f2409b9c5a..49fcbb0f03cefa49ff8f393a1f1681471910c1d2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "nulstr-util.h"
 #include "string-util.h"
index 436b271f3c864923e3744d62b4ca5081f0cd0077..ee9b632a647f0664620a83136ec219a1d77f67e7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 83098435b2106d638359ccc0fdd77ff33ed42cc3..58fa8af1b7371c68035fe3eaf0086e8dbb317da6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "fileio.h"
 #include "ordered-set.h"
index c942aafe811020f8a603050e34379fccbfa7371e..baf82020887517d827e3b1e516ac5862c2f333c1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdio.h>
index dca2ef9f92adb49a7dcf1393e6b42003d90069a3..5d4dafe3a5956527fea76269de489be172e809a0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <inttypes.h>
index f22a19c5c6eb1d74124c6bd348212d3434f396d3..81478ed0591177e21d1a170a0955067af38f5de5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index e763fd7993f210a1a6d51cb4aba3de6e207c6a60..96b82170d06d93b5ff2e360ae938dd4e692fbe8a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index ee3d8102e0066ef16f6b40a6d64cfbe4d1aec407..088bb9b57cf817b19084eef022222a73794be586 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 95c9d5863c949016d2e7afa581b2094967cfdd2c..794599a172b5ed788ea75ddaffe29aca621d67c8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <limits.h>
index ced0d2af40b2c9565392083cf4173386d358a105..d613709f0b024b0866f90be32e9577ce5399e974 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <alloca.h>
index 76b27fa0a8e65e52c449e6e9bd009609bc0c5fc9..559e5d124d22c63985e147039faeacf9548c4c69 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 /*
  * Priority Queue
index 1fb57bfa4ca433b3c6010fd0def8ebb6414de4f4..951576c021773cadb6143e0beb9c59b6a050da51 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index ba47ca5812bd9b884375f1f09e343721cd01823f..0b6fb137bdc304e3921aed759b56a4871d6e92f6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdbool.h>
 #include <stddef.h>
index 077d3a99fb91e72fc66aa55eb92a02576358a2d2..45f3a27f27483c1f7fb1a940edb1c07f45f06ff9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 80f13048c1065e033daa42c59be79e453d4c318b..0851613fc9ef03c3c57503d7c83290645f4cefab 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ctype.h>
 #include <errno.h>
index 49bb74ac0ff0c5e026253787628c2d61d8779863..6144f142c47a0f132a8f9ada625c21c9c05fc555 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <errno.h>
index 38f9fa1212b1da8f0440de04320170f773a2a537..ccab71f7d2a8a7d4ec43ed4881db5d7a36c2a98b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 5a44e9eff7996883cdcc4b300b860c122279ac60..8258c9e3ea72d0a9aef4ec25499aae36a07d96a6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index dc3eaba43669f23af7f2a4386055ff4ce2ad1b2b..113485d044b820f37d3288a165582f63fccbac72 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <pthread.h>
index 96ea9ee3643498ad91ffe0f12b11b66412c6ce6e..fbf8ee50644cf91b2b23fec18fa6ff2248eb5f25 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/quota.h>
 
index ff99e342f969e628d57c5e3852a9d71b48b52fdb..a61bdcbae60ebffdd37714bf1dffcf84cbac99c1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 2031262389202af45a7187229d807f2b17ba0a1c..c8c34a203472efe3e826c521567ac0707f2a4f4f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if defined(__i386__) || defined(__x86_64__)
 #include <cpuid.h>
index 7824ffacebb9255ac81783b5866acc6afb6600e0..f661fc093aef703ff522504a85b1e2d08bad8cab 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 2e94eed843c60d6d747413482d90c5ab399fbb9d..90b3feb8dd622aa4ba32e43a65aaeb02c2faacdf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/time.h>
 
index 9d409b04b3bb33fd81f5f28b516b05d5ebd84be2..ee1d17c0e74e5afcc7b240cd5f6936bfdb2e6ac4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index b12dea2aef6ac7e27d214f770f66975f1d95e45d..becf42e70bf84f0c6b8a2e88ca68aa24df839dcb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index 8ecefe9e213ca2a6df672fee8dd85d82ea351bb2..e6bff300a52ca9c355190eee021f7e375707ec86 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/reboot.h>
index 5b4737505ca192eae6c4a1e4e956200c9fe309fb..01c26ce74c13665cc000af500c417835578260b9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stddef.h>
index e6a489feeec0ed08e21d6085dbb89c915c8f0b54..644d9dfce4c09906d3a0749620da82bac453acac 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 char *replace_var(const char *text, char *(*lookup)(const char *variable, void *userdata), void *userdata);
index 2dc13eabc30d3230e557aae42071f9a8c704c9cd..880976312cb63056c77e218d525e062f96b6b92b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index d4fca2b8556d9b00b3a080c02c11e64737dd8ccb..59bc066798feca5cc34df07615d2753526f5f984 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/resource.h>
index ab331cd677ac2207580198a42978f23838a59149..b0d682f764f3fdb2c2efc807db01f659fb09eea2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 0edf01ee1c05408b3e0ec321f9dd0fddf16d5dc9..ec56232b5dcad68885d1481f0813466171b94106 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/stat.h>
index 1791aeecde79a5b69c3d0dfb6d38639481a1719f..4989f4f37c6b68ef698d08a6c1b193c50a1dfb31 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
@@ -133,6 +133,7 @@ static int open_label_db(void) {
 int mac_selinux_init(void) {
 #if HAVE_SELINUX
         int r;
+        bool have_status_page = false;
 
         if (initialized)
                 return 0;
@@ -140,9 +141,15 @@ int mac_selinux_init(void) {
         if (!mac_selinux_use())
                 return 0;
 
-        r = selinux_status_open(/* no netlink fallback */ 0);
-        if (r < 0)
-                return log_enforcing_errno(errno, "Failed to open SELinux status page: %m");
+        r = selinux_status_open(/* netlink fallback */ 1);
+        if (r < 0) {
+                if (!ERRNO_IS_PRIVILEGE(errno))
+                        return log_enforcing_errno(errno, "Failed to open SELinux status page: %m");
+                log_warning_errno(errno, "selinux_status_open() with netlink fallback failed, not checking for policy reloads: %m");
+        } else if (r == 1)
+                log_warning("selinux_status_open() failed to open the status page, using the netlink fallback.");
+        else
+                have_status_page = true;
 
         r = open_label_db();
         if (r < 0) {
@@ -150,13 +157,14 @@ int mac_selinux_init(void) {
                 return r;
         }
 
-        /* save the current policyload sequence number, so `mac_selinux_maybe_reload()` does
-           not trigger on first call without any actual change */
+        /* Save the current policyload sequence number, so mac_selinux_maybe_reload() does not trigger on
+         * first call without any actual change. */
         last_policyload = selinux_status_policyload();
 
-        /* now that the SELinux status page has been successfully opened,
-           retrieve the enforcing status over it (to avoid system calls in `security_getenforce()`) */
-        enforcing_status_func = selinux_status_getenforce;
+        if (have_status_page)
+                /* Now that the SELinux status page has been successfully opened, retrieve the enforcing
+                 * status over it (to avoid system calls in security_getenforce()). */
+                enforcing_status_func = selinux_status_getenforce;
 
         initialized = true;
 #endif
index 43d22b914fd914494c4076eaa86dd0f0f8bc7c5f..1236d6efdfef09da15b62a454a43211712f8fe40 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 7749c18c45748e67eec746733ece98d5e00e5f3f..20abc8f0dcf1866f9345a552134af664bcd723ce 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "extract-word.h"
index a065a45a8c0c8f8a35bc234950fef728690e7c7e..4c2e9ec33ee68ef021d9073c84af68d54383e0ba 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <signal.h>
index 459e19fcaaacadf2bc97671394087b01461f9905..a40b1a87aa061a82d441f317d6879e698eb3a40c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 void sigbus_install(void);
index cb59f6ca0f2639648989e22f2361f545c414f970..63b833b2181043b5a9c110c6cbbbac726bcb62b5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdarg.h>
@@ -49,16 +49,7 @@ static int sigaction_many_ap(const struct sigaction *sa, int sig, va_list ap) {
         int r = 0;
 
         /* negative signal ends the list. 0 signal is skipped. */
-
-        if (sig < 0)
-                return 0;
-
-        if (sig > 0) {
-                if (sigaction(sig, sa, NULL) < 0)
-                        r = -errno;
-        }
-
-        while ((sig = va_arg(ap, int)) >= 0) {
+        for (; sig >= 0; sig = va_arg(ap, int)) {
 
                 if (sig == 0)
                         continue;
index 3909ee341dafacf904d6094cdbf5cd0b7b379ad2..bdd39d429ddaef75eb92043291a12d368bf6e632 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <signal.h>
index 61180819b1bf0f995cddb9ca2ee9f02e1be9bb28..7c61eb145d9ddd3e080cc294d5827a9365ffc616 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: CC0-1.0 */
+
 /*
    SipHash reference C implementation
 
@@ -10,7 +12,7 @@
    worldwide. This software is distributed without any warranty.
 
    You should have received a copy of the CC0 Public Domain Dedication along with
-   this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+   this software. If not, see <https://creativecommons.org/publicdomain/zero/1.0/>.
 
    (Minimal changes made by Lennart Poettering, to make clean for inclusion in systemd)
    (Refactored by Tom Gundersen to split up in several functions and follow systemd
index fe43256882eccf86fe112310c11de5887247f9e1..90a6de00e4f2f531849989e705b6c2f6b207fc19 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: CC0-1.0 */
+
 #pragma once
 
 #include <inttypes.h>
index 7bb0746b6c8c96062f23f0b22cc08d6a0e710760..3362ee3924b04950fb4d1d366bc0ff1237352b57 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2013 Intel Corporation
 
index df2ce370716910741110adab5495b700868ae12a..d0b2352428bdb681fe736ae28cb11281d05c2ccc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index 718a6953e5b57622c8e26ddf9855e6703b8978e7..ea78762e657678821510a9ff496b03f4e16195ed 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <netinet/in.h>
index f2e1148e8743999869cc08cdf8e07e63b7970708..48d0718d5d39199bbd45a5cb39a5834c9773dfae 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <errno.h>
@@ -1240,6 +1240,9 @@ int socket_set_recvpktinfo(int fd, int af, bool b) {
         case AF_NETLINK:
                 return setsockopt_int(fd, SOL_NETLINK, NETLINK_PKTINFO, b);
 
+        case AF_PACKET:
+                return setsockopt_int(fd, SOL_PACKET, PACKET_AUXDATA, b);
+
         default:
                 return -EAFNOSUPPORT;
         }
index c36f90f75f79e049ef8be79d66ee71e9bfbb9ecc..9f7928040dc13577b71c1129bf82a33ea7be5db5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 5cf0d1d49b6c2da05e7c82482dd166c34e8e1229..92d7b8588d20944eabefcb8b474af39b69514b09 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #include "sort-util.h"
 #include "alloc-util.h"
 
index a8dc3bb6edb10d754ee245778f2f45d8586fffd7..1d194a1f04992504e78bf4b355bc56634652dbbf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdlib.h>
index ccf9d50f10d48023708468d69b10ae3f81b36392..d55b3289dee184ae97f9e4002e826706c53f6fc3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #define SPECIAL_DEFAULT_TARGET "default.target"
index 574815bc439db896bd6f10c564b33418844558f7..41c92e69de8eef67101507999b164ab8447b239e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
@@ -408,7 +408,8 @@ bool stat_inode_unmodified(const struct stat *a, const struct stat *b) {
         return a && b &&
                 (a->st_mode & S_IFMT) != 0 && /* We use the check for .st_mode if the structure was ever initialized */
                 ((a->st_mode ^ b->st_mode) & S_IFMT) == 0 &&  /* same inode type */
-                a->st_mtime == b->st_mtime &&
+                a->st_mtim.tv_sec == b->st_mtim.tv_sec &&
+                a->st_mtim.tv_nsec == b->st_mtim.tv_nsec &&
                 (!S_ISREG(a->st_mode) || a->st_size == b->st_size) && /* if regular file, compare file size */
                 a->st_dev == b->st_dev &&
                 a->st_ino == b->st_ino &&
index 26ecd635f160c8e5af341a237648b31032804dc4..a566114f7c9bd5a734881804930da8ca70822720 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <fcntl.h>
index 8fbc07c5876a8b67bcd80a67120462438f799d01..0f961328ee2a312a92350de4d25bae47556046e7 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #pragma once
 
 #include "alloc-util.h"
index c3b9448d4f4feca25dc3aa5e141e9201233400af..6dc1e72312c8dfc3b02193e59e2fffbb5df6a5e8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <printf.h>
index 769b22aba0ca5280095e293afb7c116e00e67d16..aee6647e35a6efe3f4a16a2509b10f5218fd6f02 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdlib.h>
index a36944ad3922db221b44a35dde6bbb39fc2c4549..82758d721bf329730a78c176bbee9a5ef0321e41 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stddef.h>
index 0168cff886dcf262f2915ebd73f2b5a7ebcdca55..116021df82bb76358092a9cea3d630ba1cd320aa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "string-table.h"
 #include "string-util.h"
index 96924778f55c264e1b7a3c4f33333e1d0a7940fd..b6b3611acedb5c1679f11c16e2c71301bcbaa3a9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #pragma once
 
index ab725d0dab42d655b85da5b1b735e5f8ab9d1c07..7ab460faa5a277b2d66f8e85d4b16f5e8dd975c3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdarg.h>
@@ -145,57 +145,32 @@ char *strnappend(const char *s, const char *suffix, size_t b) {
 
 char *strjoin_real(const char *x, ...) {
         va_list ap;
-        size_t l;
+        size_t l = 1;
         char *r, *p;
 
         va_start(ap, x);
+        for (const char *t = x; t; t = va_arg(ap, const char *)) {
+                size_t n;
 
-        if (x) {
-                l = strlen(x);
-
-                for (;;) {
-                        const char *t;
-                        size_t n;
-
-                        t = va_arg(ap, const char *);
-                        if (!t)
-                                break;
-
-                        n = strlen(t);
-                        if (n > ((size_t) -1) - l) {
-                                va_end(ap);
-                                return NULL;
-                        }
-
-                        l += n;
+                n = strlen(t);
+                if (n > SIZE_MAX - l) {
+                        va_end(ap);
+                        return NULL;
                 }
-        } else
-                l = 0;
-
+                l += n;
+        }
         va_end(ap);
 
-        r = new(char, l+1);
+        p = r = new(char, l);
         if (!r)
                 return NULL;
 
-        if (x) {
-                p = stpcpy(r, x);
-
-                va_start(ap, x);
-
-                for (;;) {
-                        const char *t;
-
-                        t = va_arg(ap, const char *);
-                        if (!t)
-                                break;
-
-                        p = stpcpy(p, t);
-                }
+        va_start(ap, x);
+        for (const char *t = x; t; t = va_arg(ap, const char *))
+                p = stpcpy(p, t);
+        va_end(ap);
 
-                va_end(ap);
-        } else
-                r[0] = 0;
+        *p = 0;
 
         return r;
 }
index bad384a69358be64d52e495d026aedd6e833e68d..fdd3ce7363123fa257ecfadfefd0a9fde0c2931d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index c5e6dd5f2182f188578d96c208127e6510cb26cd..492dfe40023a6056cc686debb3ed36d53c014a0f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fnmatch.h>
@@ -123,7 +123,6 @@ size_t strv_length(char * const *l) {
 }
 
 char **strv_new_ap(const char *x, va_list ap) {
-        const char *s;
         _cleanup_strv_free_ char **a = NULL;
         size_t n = 0, i = 0;
         va_list aq;
@@ -133,43 +132,28 @@ char **strv_new_ap(const char *x, va_list ap) {
          * STRV_IFNOTNULL() macro to include possibly NULL strings in
          * the string list. */
 
-        if (x) {
-                n = x == STRV_IGNORE ? 0 : 1;
-
-                va_copy(aq, ap);
-                while ((s = va_arg(aq, const char*))) {
-                        if (s == STRV_IGNORE)
-                                continue;
-
-                        n++;
-                }
+        va_copy(aq, ap);
+        for (const char *s = x; s; s = va_arg(aq, const char*)) {
+                if (s == STRV_IGNORE)
+                        continue;
 
-                va_end(aq);
+                n++;
         }
+        va_end(aq);
 
         a = new(char*, n+1);
         if (!a)
                 return NULL;
 
-        if (x) {
-                if (x != STRV_IGNORE) {
-                        a[i] = strdup(x);
-                        if (!a[i])
-                                return NULL;
-                        i++;
-                }
-
-                while ((s = va_arg(ap, const char*))) {
-
-                        if (s == STRV_IGNORE)
-                                continue;
+        for (const char *s = x; s; s = va_arg(ap, const char*)) {
+                if (s == STRV_IGNORE)
+                        continue;
 
-                        a[i] = strdup(s);
-                        if (!a[i])
-                                return NULL;
+                a[i] = strdup(s);
+                if (!a[i])
+                        return NULL;
 
-                        i++;
-                }
+                i++;
         }
 
         a[i] = NULL;
index a85c289d7399b03427c274462061a5e6df39c664..6b3e8e7f8600f57c8e4e99188c8a5b02a03e8136 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <fnmatch.h>
index ef6d3fa32472b4e3d29e82058102a8a5112b66db..dbbf7d08d21a92ae4c5559d5c83c983a2bcf088b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 /*
  * Concatenates/copies strings. In any case, terminates in all cases
index 9b6684124625e1ea1abb999d9af63276bed3122d..cdef492db101964acbe75ead6168b64a1a88f5e5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stddef.h>
index caeba46db43ec191730db3a8a1a9bd339b34a0a8..4eb9eba97c811fa1a2a9c8f65ed1b27a121a409d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <syslog.h>
 
index 998641fa01dc0f93f2d10f00cfb6078182642322..d7aa97fb7d8eebcade098d73583d9631a80954f4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index ac83688531f2530eb27d271a78b19814caa1d1f1..e00e9e87512f00af8410d5d911e60900cfbe86a3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 42a129c7ace349d87bc5b6d62314f55482ed0a2a..5cb1e138f3ad7d8912f50573120651344a581f9b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdarg.h>
index 7fa3b486237606bf22be69daf7a36d2f879c138a..5318d6378de8ac43023a83feb846c92f15709474 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ctype.h>
 #include <errno.h>
index 6feda5e1559e60f92d137270e14508fbf13b84da..89ee8b4a9627d4d5a637c43d92f8e85969ba900c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index a49f7eee702efa7778534e7fcf590d8459926a1e..49c343773cfc3e530f7dcf9a1a9164c26b78bbe0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/mman.h>
 
index 802c85d6d990d0c6e4ba9b971cbc038c5baac700..45255fc062fc954f128c9fd2bb46793ed20a6699 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdio.h>
index cad745170ebfb0d0eec652bb54dbfd97f215c2d1..bd7c2bdb8c7c1e4b52fc85f4e6042e03a8c5c615 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 00c17f8769046c7a4b45a75e897dbbc7abf2e0d3..4100be08031fb1f3a566b42c44c002af1e1d9a70 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <endian.h>
index 94ec1f3d19846307442a2c453ff653c7b00ce730..145399c9639cc16cfabeea0c8037cde1fa054db4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bus-label.h"
index 1fab6c78ab1601ec96b622dcb09764e54b7cea35..8535fbe06231a02fa889b0fd505d18f55abd18d2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 43d8b3477e17ed4ece831387afdf4aa63ac7cf24..c1529bbeedf509abc7e2207fba550f59e0fefa7d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stddef.h>
index 1cd33396d8e6f3e3595e916f2a12fcdb751aaddc..c25672fad26d1b29b38973f39179870c8221e02b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 0e96a75797a95fdb9412ee7acada798e1ff8d7c0..933a398e7313ff59da6f526357cc9e93c5274725 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 13e2c99e6c22e3e563b5ab448b218ecf83a8892a..20ff415e2e9befc896ebe1f837d66ed066d5db21 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <grp.h>
index f0233397ef2ad344635037c0b8b39f88d34c6a53..59663c0350cccccbc3ec2ec576965cf64572d633 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 /* Parts of this file are based on the GLIB utf8 validation functions. The
  * original license text follows. */
index f315ea0f1ed06eb7c73ac084a033157ce688833d..a6ea942c6240f49ea482d564eb9581c22dd7a129 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 2b3b3918a32fc5c736b702b0469f743be7b764cd..f98ecf38588385a78a5f7226108b62298bcb1152 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 6fc7480fcbd7697b6101832f301a766f78dbd03d..942d773ff11f1e52d5f1716f02428deeb2888e76 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdint.h>
index bb908847f5b1f2b056cfb19654a7db9c649d39f3..1b90f4b0080cdb17bba40636e1000fa27101f133 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if defined(__i386__) || defined(__x86_64__)
 #include <cpuid.h>
index 2f7f7203d2948331be265ee48fca0b2f76862fc4..42d63d513541392f41f1bcaeb7d3261a129b9d18 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index fe0735ed3daba371a5941da665a9a51712b69e78..b9a0dc54c5329bad9fd1638d62983efc7decc768 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index a69e913b7f3d5dc63b3391dadc4f7c97b6a608c2..560e34babda4dc4c20da1ada690dcd8dee5e1d9b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 06aee22dc0f7ac2dc09cec48fed0a0feb54ca10c..43ed2f385bf25220f6e94640e7fd08e1b7a908ea 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index c59d8aed90ca528693ecd2d25630665a278467bc..001c85a238cf49964ef17ba4e4edbac549f88b4d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/stat.h>
index 0824266a809a89688961ae77870c8e9f5d5ce1ec..cd34f88bb9a395c3f934616fa0da46feec7fbf34 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <stdlib.h>
index 038ce295356dda41939a031ed437c13a6ad1580e..92f3cd4ed059fb10bc3b1a66f2a037660d581276 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index bb8c7398f048182fb31b7b229f812c4902cb491a..511b0105f33bdf3c667f32760d0b070540cc4caa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ctype.h>
 #include <errno.h>
index 5189d86d1a90f1ba03955e7d39a2b4e3f24de27f..938e5645f9d8b835cb62e0ce92d597f1c9e134aa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <efi.h>
 #include <efigpt.h>
index 7f6bad1538e22d93d789b963137b3775cd0b01b7..2dd4543d515df6cce1c8217831c811f9b462c871 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <efi.h>
 #include <efilib.h>
index b9ed6c70b323c40f2d877308392735e0df683a55..41df3a406e0e0a17ccaed36fa6a45c69f8493cff 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #define EFI_SHIFT_STATE_VALID           0x80000000
index 46b9aeea9070afff4537ef944875a40677d67f43..5dfd3db265f7f03fbc500bfa96bd60004414200f 100644 (file)
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: LicenseRef-crc32-no-restriction */
 /* This is copied from util-linux, which in turn copied in the version from Gary S. Brown */
 
 /*
index 64150ee948cbfd903d00f84317a4724788f15d84..3af543b84e5241ded57ffaadc905c734e2a8dbf2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LicenseRef-crc32-no-restriction */
 #pragma once
 
 #include <efi.h>
index 49ee81b4d70bdc8fbdffb50853f782ed04ddd6b9..89508f86deacbd34c8d7fa97a4cf4f4e987c82f3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <efi.h>
 #include <efilib.h>
index 41c4cce434d614ac5601ea5254b97a9a08cbd99f..551a9ae63985200d718cac7d4ec0cae028c4af71 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 EFI_STATUS disk_get_part_uuid(EFI_HANDLE *handle, CHAR16 uuid[static 37]);
index 9b5003a85d5fac3b80e82f0e4f6e7e6ef92324cb..f36ecb35b5b37f1e884e216a72329e3eebc3afa9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /*
  * Copyright © 2013 Intel Corporation
  *   Authored by Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
index 809e878d16ce2f951571cb27feada236f8058d0b..116aae28c5f73f05375dfd1b20e81f3fd3c9587c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /*
  * Copyright © 2013 Intel Corporation
  *   Authored by Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
index 00a3551e09a1f9256e5615bc935bc0de945dfb64..4d44671315f858adbd6a45ce425b309defaf16ec 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <efi.h>
 #include <efilib.h>
index ec655ce6479892a7802213a7d1f0ea5d9d486782..b92c27c8b9e6ebcf5e24b33fef3648e021f92391 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #define SETUP_MAGIC             0x53726448      /* "HdrS" */
index b3a1f79dfd141eaf0baa2c32a2fef3277725adec..f07dacb8593fb2e01842cac82bca2879adaf3772 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #ifndef UINT64_C
index 4d87117b00cce9f666474e7278d9792456089a80..ff876a6c5b30e70585c5e402ecf8170b695d6ae0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if ENABLE_TPM
 
index ebb6406ecaac59269a47122ed279a74d459d4a8c..19e148d9225afcc0b1dadbee871fd610c9eba84f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 EFI_STATUS tpm_log_event(UINT32 pcrindex, const EFI_PHYSICAL_ADDRESS buffer, UINTN buffer_size, const CHAR16 *description);
index ed81cefcd5d153878ea0bfcdedb9a55bbd54e5c8..c853f8e95100bfd4e5d958d2c16c5377bf842589 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 efi_headers = files('''
         console.h
index cf301a13422f70376fe4ceec01f6c65923a657ab..1b838af2a4e11c777f60d453fb855a2259341290 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <efi.h>
index 68f50aec410ee5bcf64ce73dff4f55439ed896a5..f99ecd0eda07555f462cadefc15e017d7d52ec0b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <efi.h>
 #include <efilib.h>
index bfbb8d9baf4f9aeddff291fcc4b3636a4320ae76..3e97d43f66d940cd567ba3ed0c1b698bdd4b42c7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 EFI_STATUS pe_memory_locate_sections(CHAR8 *base,
index cc747993b8bbdf4787f9a0d111c74911529ea9e1..eda9260ae0991c6e8105c9b4e9116778fffa2abe 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #include <efi.h>
 #include <efilib.h>
 
index 0f750716fd12c7d9fbb894df5676e97cb233891a..0f443e6a8773f8a2958882bd41380b2ad4b4b1aa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <efi.h>
index 40da636dc712aaa0372dafe8ce595136a27bd200..f23066d0acff34376cd144c74db5a5fbd08a3add 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 /* Stolen from glibc and converted to UEFI style. In glibc it comes with the following copyright blurb: */
 
 /* Functions to compute SHA256 message digest of files or memory blocks.
index ca9f2859374c2d6e1f604b5a1caf07f8d9f635e0..464be59c2510ce33a0cc093476cd93a8e314f8de 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <efi.h>
index 8db27547cca3f24ee88291d95a0fd689b4aae8b3..3dc10089c6c02a74b82cf67e071c49e8bd377929 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /*
  * Port to systemd-boot
  * Copyright © 2017 Max Resch <resch.max@gmail.com>
index 209c9d4cf051c95b95f69892c177ab578d19566d..72ecf2ed97935cd8f704cb51cab464d7c8881771 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /*
  * Port to systemd-boot
  * Copyright © 2017 Max Resch <resch.max@gmail.com>
index ba4a2c5da0a808f504040184368d674752851021..e166fec57af62ae491bd169e431696463f18dc86 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <efi.h>
 #include <efilib.h>
index 8928b069a2012425969b2f60130b4b9959f96b54..0ba45a03707cd289d74be7c4afd37a5d8f164c96 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 EFI_STATUS graphics_splash(UINT8 *content, UINTN len, const EFI_GRAPHICS_OUTPUT_BLT_PIXEL *background);
index 02aab1ec7fc29b8491e62cf6dd15a7949bc18f56..a09f47c71194600d4b0a87b767b78bc1bf816d2a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <efi.h>
 #include <efilib.h>
index b44f051d95d0019ad267ca872add8dffb0f01cfc..2712c2d3f0eb081f231a307f87bfb8828eb62eb2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <efi.h>
 #include <efilib.h>
index b13f22476c6737893a11e1df21b62abe849f58ba..916519cdf83ae82dbf0adbf3e1a102f99fb9e751 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <efi.h>
index 7016c90ddc8a69a1c3bd1a395f52aa1f45572913..7a5d57f8c83705b331213d088f2e2d65953899b5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-bus.h"
 
index b17800e83e619c5b473f97091c2243335fbc0281..1a045bea1d53ad90e4e059d990b009c44dccbf91 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 446e47411295aa85a11ab3d13eab4a40ceee65d8..06a15ddd8061823ae1d8cb7e70fb0173aecc4e73 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 
index e09adb8b5b1f875c71ff1d9c403b035dbfd5c2cb..693b5047f226c3bd4fdc510c85cf062a2a9c5995 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index ace7d6c5ae9c416d48daa743b764a817bdcc2648..eeb4ba80f5f2f734e7bd39274675615f86249033 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdlib.h>
 
index 0efaf3873ede948449b2d4d3bb343eb0d4e69e68..e9e7ed27340ae9fb7b660ecbdccbaea01dc01292 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index 23c1999b692f0ab7aaae28379e313cef0d10f75e..fad814bf20f25c6726ed2a3659cd99e6e9414bb0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "unit.h"
index 6cba841a6c5f70dee5fe961a4caa7673c6677ae8..e856f5c1831e58889aec4260f74eabe91b231535 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #if HAVE_APPARMOR
index 100680a5952bae8aaab1da676d0b3cf6ef5b75d8..f3b73825cef3ea8b788a253c00824ed1d29c3f93 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int mac_apparmor_setup(void);
index fdef43392354ba2aebc3ac2665eb13bcd5c37eb6..097bea39b3eb85fede6ff2a52c5cc4dc0f7825da 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 8c1e471b96b1497aa4897f1a01531aad60a40510..5cdf61e52d419794855b1336d4cec0f8af27c443 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int get_audit_fd(void);
index 9c0dca1b3a78c38fa82340a120e9a23fbb8623f1..a84cddbdbd237d907395b7fbe2edb217f011906c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
@@ -971,6 +971,12 @@ static int automount_dispatch_io(sd_event_source *s, int fd, uint32_t events, vo
         assert(a);
         assert(fd == a->pipe_fd);
 
+        if (events & (EPOLLHUP|EPOLLERR)) {
+                log_unit_error(UNIT(a), "Got hangup/error on autofs pipe from kernel. Likely our automount point has been unmounted by someone or something else?");
+                automount_enter_dead(a, AUTOMOUNT_FAILURE_UNMOUNTED);
+                return 0;
+        }
+
         if (events != EPOLLIN) {
                 log_unit_error(UNIT(a), "Got invalid poll event %"PRIu32" on pipe (fd=%d)", events, fd);
                 goto fail;
@@ -989,7 +995,7 @@ static int automount_dispatch_io(sd_event_source *s, int fd, uint32_t events, vo
                 if (packet.v5_packet.pid > 0) {
                         _cleanup_free_ char *p = NULL;
 
-                        get_process_comm(packet.v5_packet.pid, &p);
+                        (void) get_process_comm(packet.v5_packet.pid, &p);
                         log_unit_info(UNIT(a), "Got automount request for %s, triggered by %"PRIu32" (%s)", a->where, packet.v5_packet.pid, strna(p));
                 } else
                         log_unit_debug(UNIT(a), "Got direct mount request on %s", a->where);
@@ -1070,6 +1076,7 @@ static const char* const automount_result_table[_AUTOMOUNT_RESULT_MAX] = {
         [AUTOMOUNT_FAILURE_RESOURCES] = "resources",
         [AUTOMOUNT_FAILURE_START_LIMIT_HIT] = "start-limit-hit",
         [AUTOMOUNT_FAILURE_MOUNT_START_LIMIT_HIT] = "mount-start-limit-hit",
+        [AUTOMOUNT_FAILURE_UNMOUNTED] = "unmounted",
 };
 
 DEFINE_STRING_TABLE_LOOKUP(automount_result, AutomountResult);
index 21dd1c07744adc8ee29064ae53900bc5b950e754..fe668d97742313aa057cab43f2a437047ab3c371 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Automount Automount;
@@ -8,6 +8,7 @@ typedef struct Automount Automount;
 typedef enum AutomountResult {
         AUTOMOUNT_SUCCESS,
         AUTOMOUNT_FAILURE_RESOURCES,
+        AUTOMOUNT_FAILURE_UNMOUNTED,
         AUTOMOUNT_FAILURE_START_LIMIT_HIT,
         AUTOMOUNT_FAILURE_MOUNT_START_LIMIT_HIT,
         _AUTOMOUNT_RESULT_MAX,
index 34320e88fb2e701381c6dcb3a0e794f2d0a46576..1ad7ade3065d0a469d2b61730ce45b286a68efb5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fnmatch.h>
 #include <linux/bpf_insn.h>
index e2a08016e374e094355d830a39d1eaf0965355a9..19b4d392ccc0012d3ded87a960317e364c235d7f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 5da0106a3305751d3436a0b5c058f699b0d0b72c..31c2dcf37d9fe529508875a2e347d95b56e392ed 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <assert.h>
index f1460d982dd08d8a1aab3335734fc0cdff0cd004..08d77421939aa18159338a46cf0e08b04dd9b1ff 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 1958c1be2b9f24124c047d4463300b9911a15ccc..6b34363d9a1111d3096a0d45231fc1800e345f90 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 
@@ -2422,6 +2422,29 @@ void unit_release_cgroup(Unit *u) {
         }
 }
 
+bool unit_maybe_release_cgroup(Unit *u) {
+        int r;
+
+        assert(u);
+
+        if (!u->cgroup_path)
+                return true;
+
+        /* Don't release the cgroup if there are still processes under it. If we get notified later when all the
+         * processes exit (e.g. the processes were in D-state and exited after the unit was marked as failed)
+         * we need the cgroup paths to continue to be tracked by the manager so they can be looked up and cleaned
+         * up later. */
+        r = cg_is_empty_recursive(SYSTEMD_CGROUP_CONTROLLER, u->cgroup_path);
+        if (r < 0)
+                log_unit_debug_errno(u, r, "Error checking if the cgroup is recursively empty, ignoring: %m");
+        else if (r == 1) {
+                unit_release_cgroup(u);
+                return true;
+        }
+
+        return false;
+}
+
 void unit_prune_cgroup(Unit *u) {
         int r;
         bool is_root_slice;
@@ -2449,7 +2472,8 @@ void unit_prune_cgroup(Unit *u) {
         if (is_root_slice)
                 return;
 
-        unit_release_cgroup(u);
+        if (!unit_maybe_release_cgroup(u)) /* Returns true if the cgroup was released */
+                return;
 
         u->cgroup_realized = false;
         u->cgroup_realized_mask = 0;
index 881b3f3dfe88ac053b80cf791e89b9465fb9bd2a..66f3a63b8210b8a71714273002c3fb79a3ab4666 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
@@ -223,11 +223,15 @@ int unit_set_cgroup_path(Unit *u, const char *path);
 int unit_pick_cgroup_path(Unit *u);
 
 int unit_realize_cgroup(Unit *u);
-void unit_release_cgroup(Unit *u);
 void unit_prune_cgroup(Unit *u);
 int unit_watch_cgroup(Unit *u);
 int unit_watch_cgroup_memory(Unit *u);
 
+void unit_release_cgroup(Unit *u);
+/* Releases the cgroup only if it is recursively empty.
+ * Returns true if the cgroup was released, false otherwise. */
+bool unit_maybe_release_cgroup(Unit *u);
+
 void unit_add_to_cgroup_empty_queue(Unit *u);
 int unit_check_oomd_kill(Unit *u);
 int unit_check_oom(Unit *u);
index 411c8557d976c7078880733bc5a0ddebad305a6e..dd6c11ab4d0df9cf69c2546e6e938a7b02ec0f1b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "core-varlink.h"
 #include "mkdir.h"
index 0b191ae6c44d2c5419bd92cf3115135f6071454c..20507a418746d500b87bf3e5d27d0f343f2ff828 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "manager.h"
index 70b85d8023ff0bf0593b7908693d8be8ee3a3d77..3f74488daddb4f3a233b23e474926d1f967073e4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "automount.h"
 #include "bus-get-properties.h"
index 3e165b0566970c236095c31313ea8c372182848c..cfceaecc043da16c16caf22b3655eb5628735d22 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 584d974f1a2332863a40857a85578b45679f45b5..37c581fb22a2d06febc3984f7fbeaeab5dd9b060 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 
index 5ca68a63bf387cb1b7a5fd25a9c835ea639c9f02..5bf45eb972ed73f13e6eaf348fe3e83f3e3dde08 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 6cf7f58e0299a77f0d180a095a92d108951aab1b..b5e18d80a47632b9b143c7ca46df3a9b1aa3db95 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "dbus-device.h"
 #include "device.h"
index 077a2bf128bc129ca57ff132a4899fcd5afac358..bfb57707d4ed1519d7a385a2f19e5023e154c71e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus-vtable.h"
index 488af98cd325b69f30619547a1410771748508db..abe009c3956a382a3184a38461e3973b7155938b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/mount.h>
 #include <sys/prctl.h>
index cbb2f97cf1dae2f46661d9c14b9bf2ab631cf623..c53834140e5fb82b294c5d8669b35586ff9372fe 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 06443a4be414cd4c9874b318cfeb24c1bc50b843..1526b316cc4e1f3da0b73a0cb6cb88f0f74c41d4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-bus.h"
 
index 96c5b66309a9696aeba1bfd3ac10b36dabada339..6f005811cb2ec0091daef61fbfc3cf3827c0fbc2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index eda3410375a30362a98a83632627a4c0e5b0b791..6333f3bcfef03c23a086bbdd59b740db7f0d8914 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-get-properties.h"
 #include "dbus-kill.h"
index 8192e94fbbee0bf9e94800d4eb1c553c10227480..5a9028795ccede101d3159c90b562461cdc6e966 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 0ac87b56a829f0f1a28cf1b58d92f64ee96b6358..b37ed7c8621dac89a0555dc026461c07c43f1653 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/prctl.h>
index 83854b0f59be8f019ec2e08effe6b299fa67d9ea..f3862fca83c37ee37fe2ea152518d1738b8aa14e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus-vtable.h"
index a4fa44dbc990258a592a61d0c7d00f419c5a4590..73702b1a16a382e30f648f58c22c7e0ad8585f65 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-get-properties.h"
 #include "dbus-cgroup.h"
index f7112a9f023deab51b56710dd69090155cdaf6ce..5a848d3104e12171791a9d52fa287f4c4107fe9a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 76cd9d32603d4f86db9e61e3d0e454e69078d882..14e77d783dd929b25a17560907c4dcc48d2ae34f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bus-get-properties.h"
index ad42b2366270f8ca747ed4a11340318e29c7fb2e..b5018b0116dd0770937b88b871a9f042ac85699c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index d752cd58aa7774e149dc7e0107f926bed79930a3..1bcb4836f63e9790a59c92a8dea5f4c8b33edf97 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bus-common-errors.h"
index 702f55898dd99ba589162027322c4c26a69086ae..8f1bc02e31c25abfaab4299991a75a704e983b04 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 73052fac6d31d87b4b35644da0b798368fa09253..64f9d4ab362502fc5924fcb4ca38d4e8053f743d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 
index 22d2b887b4cb0ea7760639a8d34614b7abd9b421..69311675c9bcb34e9ebc96a08a67aef87d6ba770 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 28a6a4fe5a4c9b15f7e329710ab89f9226aec0ff..de41d651da15f4f11a689dae951d70083d473f5c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "dbus-cgroup.h"
 #include "dbus-slice.h"
index 88cc48c80852ce790a4b11c67a94050cee820766..eb71916abdaf9f78c89e47cd0fb8a19eea8ea1d9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 07d030adb3a6235f433ff6673d9f74085bb8e648..2c9da7412a1f78be780a3678eaa5d6a9ad698a31 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bus-get-properties.h"
@@ -20,6 +20,7 @@
 static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_result, socket_result, SocketResult);
 static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_bind_ipv6_only, socket_address_bind_ipv6_only, SocketAddressBindIPv6Only);
 static BUS_DEFINE_PROPERTY_GET(property_get_fdname, "s", Socket, socket_fdname);
+static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_timestamping, socket_timestamping, SocketTimestamping);
 
 static int property_get_listen(
                 sd_bus *bus,
@@ -106,6 +107,7 @@ const sd_bus_vtable bus_socket_vtable[] = {
         SD_BUS_PROPERTY("PassCredentials", "b", bus_property_get_bool, offsetof(Socket, pass_cred), SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_PROPERTY("PassSecurity", "b", bus_property_get_bool, offsetof(Socket, pass_sec), SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_PROPERTY("PassPacketInfo", "b", bus_property_get_bool, offsetof(Socket, pass_pktinfo), SD_BUS_VTABLE_PROPERTY_CONST),
+        SD_BUS_PROPERTY("Timestamping", "s", property_get_timestamping, offsetof(Socket, timestamping), SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_PROPERTY("RemoveOnStop", "b", bus_property_get_bool, offsetof(Socket, remove_on_stop), SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_PROPERTY("Listen", "a(ss)", property_get_listen, 0, SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_PROPERTY("Symlinks", "as", NULL, offsetof(Socket, symlinks), SD_BUS_VTABLE_PROPERTY_CONST),
@@ -159,6 +161,7 @@ static BUS_DEFINE_SET_TRANSIENT_STRING_WITH_CHECK(fdname, fdname_is_valid);
 static BUS_DEFINE_SET_TRANSIENT_STRING_WITH_CHECK(ifname, ifname_valid);
 static BUS_DEFINE_SET_TRANSIENT_TO_STRING_ALLOC(ip_tos, "i", int32_t, int, "%" PRIi32, ip_tos_to_string_alloc);
 static BUS_DEFINE_SET_TRANSIENT_TO_STRING(socket_protocol, "i", int32_t, int, "%" PRIi32, socket_protocol_to_string);
+static BUS_DEFINE_SET_TRANSIENT_PARSE(socket_timestamping, SocketTimestamping, socket_timestamping_from_string_harder);
 
 static int bus_socket_set_transient_property(
                 Socket *s,
@@ -210,6 +213,9 @@ static int bus_socket_set_transient_property(
         if (streq(name, "PassPacketInfo"))
                 return bus_set_transient_bool(u, name, &s->pass_pktinfo, message, flags, error);
 
+        if (streq(name, "Timestamping"))
+                return bus_set_transient_socket_timestamping(u, name, &s->timestamping, message, flags, error);
+
         if (streq(name, "ReusePort"))
                 return bus_set_transient_bool(u, name, &s->reuse_port, message, flags, error);
 
index 9aa8133d1817f97f0b5ffcb8cece76324149efbc..f9f36a244851fa73e36b27f4f1494ee0eaa7699c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index d132c08f0ee6b9f033169378e231508c37b205cd..0fa8dd10e2c86ed7505b879e6937b0aee2424170 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2010 Maarten Lankhorst
 ***/
index b114fe04c758387bf909704cdc9486e371ff5465..9d651b565420b5686243612cfb02bbc96fd9488c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index ba50113641dc260ad8c4627126f8db4f8bcb4362..e979fb7267ef19033d63575f8e45bc0f98deebc1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "dbus-target.h"
 #include "unit.h"
index ad02a1db74125d8548bcc70e319d58d81defde2b..fedd4a93ea4177a0400010256fcc2e4d5cbd420b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus-vtable.h"
index da35fa867862ea64d5fc65e61fbda42aa3e8800a..8e69c173270c289d298ff213b61cb3eab79737ce 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bus-get-properties.h"
@@ -131,6 +131,7 @@ const sd_bus_vtable bus_timer_vtable[] = {
         SD_BUS_PROPERTY("Result", "s", property_get_result, offsetof(Timer, result), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
         SD_BUS_PROPERTY("AccuracyUSec", "t", bus_property_get_usec, offsetof(Timer, accuracy_usec), SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_PROPERTY("RandomizedDelayUSec", "t", bus_property_get_usec, offsetof(Timer, random_usec), SD_BUS_VTABLE_PROPERTY_CONST),
+        SD_BUS_PROPERTY("FixedRandomDelay", "b", bus_property_get_bool, offsetof(Timer, fixed_random_delay), SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_PROPERTY("Persistent", "b", bus_property_get_bool, offsetof(Timer, persistent), SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_PROPERTY("WakeSystem", "b", bus_property_get_bool, offsetof(Timer, wake_system), SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_PROPERTY("RemainAfterElapse", "b", bus_property_get_bool, offsetof(Timer, remain_after_elapse), SD_BUS_VTABLE_PROPERTY_CONST),
@@ -232,6 +233,9 @@ static int bus_timer_set_transient_property(
         if (streq(name, "RandomizedDelayUSec"))
                 return bus_set_transient_usec(u, name, &t->random_usec, message, flags, error);
 
+        if (streq(name, "FixedRandomDelay"))
+                return bus_set_transient_bool(u, name, &t->fixed_random_delay, message, flags, error);
+
         if (streq(name, "WakeSystem"))
                 return bus_set_transient_bool(u, name, &t->wake_system, message, flags, error);
 
index bb126b22dc49c164a8df066179a19b729a259789..ac436f15aa848d1a24ef4446c4a994d39479d64e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index d38c0f0582cf1e028eb90deee142cbbb710ba4a4..427152a757b77fe35a8dea41c031324493478687 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-bus.h"
 
index f21f23602563aa96e0506786a8d33c9ab7e48d0b..1da3cfeb96b41d264b1dcb3412f441219b5b827f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index f534001a9c2c252eb641785104fe6c2f8357e561..d6223db305c15537dc42a99d6393f306d6f6d4df 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-util.h"
 #include "dbus-util.h"
index 7781a425befe5c0f271925d23f22b1fc09027d6a..4e7c68e8439062a836b2c0a7513ab0fee4a37577 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 774ee5632f748f5be645978ccbc0affba42af16a..3e435c98ca2ec64bd9f98a1cf9bc9e24f730f2b5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/epoll.h>
index 812f56ea2a58ccdfb3e12f766a9532071147f9f3..369d9f56a289fe422e4115f0dde93dbb53ac41a1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 134c6ee5bbb3c1f68aeeba7a4c2b7d2206d646a4..9a1d88270d1de9aa41fd40d1aebeb5a13ed5e853 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/epoll.h>
index 3062be782d635fb0df4508765e571962e1608535..dfe8a13aff93b8a8afee292d71cc63b209df3f6a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "unit.h"
index 8388d53dd12067501a7956296640c5f3d1f8e615..7da87fd818bb4ce0c79202e0e29e4c4d5b0da32c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/file.h>
 #include <sys/stat.h>
index 0a55630ab9b35734d1775e2ed82ae4fe6c9d2682..847ef475ca555d300a8a00a70a240d3ebdf430e6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct DynamicUser DynamicUser;
index b6609e63e548d532c8d1cb6f7433e0371607d7f2..2bc74fab98a5236a54d63e6d4e24cac6ae58cf97 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <unistd.h>
index c1de8671d80e9a25aaa73d32e08b3169f466040a..7d20fff57da317d4d950cffa2f0927c352fe0340 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int efi_take_random_seed(void);
index 1565a799270c01c2d988dfb648d4fb024a1c486e..9e8c79e67a6b4702bb5430040a25352640576274 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/reboot.h>
 
index 706c38a7d746ea36dbf0c4d0dd21c01dda4b2ce0..95d49a816620197c9d40923dc4e9ce18bb9a95c0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef enum EmergencyAction {
index 98e54acf77efa03ef08b71354cb4c5dfe7828c09..c992b8d5d3c93c6b079788964060b03b99272fdd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
@@ -73,6 +73,7 @@
 #include "parse-util.h"
 #include "path-util.h"
 #include "process-util.h"
+#include "random-util.h"
 #include "rlimit-util.h"
 #include "rm-rf.h"
 #if HAVE_SECCOMP
@@ -2509,6 +2510,7 @@ static int write_credential(
 static int acquire_credentials(
                 const ExecContext *context,
                 const ExecParameters *params,
+                const char *unit,
                 const char *p,
                 uid_t uid,
                 bool ownership_ok) {
@@ -2546,7 +2548,7 @@ static int acquire_credentials(
         STRV_FOREACH_PAIR(id, fn, context->load_credentials) {
                 ReadFullFileFlags flags = READ_FULL_FILE_SECURE;
                 _cleanup_(erase_and_freep) char *data = NULL;
-                _cleanup_free_ char *j = NULL;
+                _cleanup_free_ char *j = NULL, *bindname = NULL;
                 const char *source;
                 size_t size, add;
 
@@ -2554,6 +2556,12 @@ static int acquire_credentials(
                         /* If this is an absolute path, read the data directly from it, and support AF_UNIX sockets */
                         source = *fn;
                         flags |= READ_FULL_FILE_CONNECT_SOCKET;
+
+                        /* Pass some minimal info about the unit and the credential name we are looking to acquire
+                         * via the source socket address in case we read off an AF_UNIX socket. */
+                        if (asprintf(&bindname, "@%" PRIx64"/unit/%s/%s", random_u64(), unit, *id) < 0)
+                                return -ENOMEM;
+
                 } else if (params->received_credentials) {
                         /* If this is a relative path, take it relative to the credentials we received
                          * ourselves. We don't support the AF_UNIX stuff in this mode, since we are operating
@@ -2566,8 +2574,9 @@ static int acquire_credentials(
                 } else
                         source = NULL;
 
+
                 if (source)
-                        r = read_full_file_full(AT_FDCWD, source, flags, &data, &size);
+                        r = read_full_file_full(AT_FDCWD, source, flags, bindname, &data, &size);
                 else
                         r = -ENOENT;
                 if (r == -ENOENT &&
@@ -2613,6 +2622,7 @@ static int acquire_credentials(
 static int setup_credentials_internal(
                 const ExecContext *context,
                 const ExecParameters *params,
+                const char *unit,
                 const char *final,        /* This is where the credential store shall eventually end up at */
                 const char *workspace,    /* This is where we can prepare it before moving it to the final place */
                 bool reuse_workspace,     /* Whether to reuse any existing workspace mount if it already is a mount */
@@ -2724,7 +2734,7 @@ static int setup_credentials_internal(
         assert(!must_mount || workspace_mounted > 0);
         where = workspace_mounted ? workspace : final;
 
-        r = acquire_credentials(context, params, where, uid, workspace_mounted);
+        r = acquire_credentials(context, params, unit, where, uid, workspace_mounted);
         if (r < 0)
                 return r;
 
@@ -2824,6 +2834,7 @@ static int setup_credentials(
                 r = setup_credentials_internal(
                                 context,
                                 params,
+                                unit,
                                 p,       /* final mount point */
                                 u,       /* temporary workspace to overmount */
                                 true,    /* reuse the workspace if it is already a mount */
@@ -2861,6 +2872,7 @@ static int setup_credentials(
                 r = setup_credentials_internal(
                                 context,
                                 params,
+                                unit,
                                 p,           /* final mount point */
                                 "/dev/shm",  /* temporary workspace to overmount */
                                 false,       /* do not reuse /dev/shm if it is already a mount, under no circumstances */
index 12ea849e1cd5762f8a51cca72ac35d18d9300c85..33d7e1693d64c89d6ac900547cfb0a809a773d31 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct ExecStatus ExecStatus;
index 78ff5909020bd45b00cd73f65a8598db51658e3e..917395173545bb6e09d4a5f04dc4136b88df9ac8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index 9688601a76e972fb03198a0ae60e87b319504aa6..1cc816b3f539b791416a79336b1f4b49626caf6f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "path-lookup.h"
index 6d047db8388c8e94b3947f75e8c1a4fac35e6ba1..867ea199057ad631df164842209dfde7ddf7cab5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index dc7b9a626260a523ee4b2146d6e1dae3a3a0555a..7fd0a027475024f02b454795e4db852d8b7d3317 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int hostname_setup(void);
index 17072b09af342ceb017f12453ce6e46c1a9c1a16..7f517a09099065b67525a0d005150123d7e17910 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2012 Roberto Sassu - Politecnico di Torino, Italy
                                    TORSEC group — http://security.polito.it
index cf478795a173221aa578670b47db51a374a24acc..f964c7b1fb8e881778e6f86dcd9f2b078f847b94 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index db87b12a78c478c438569e59d30c0751462840e6..a11251e94e64dba85ce0bc4ebfb5d688c0a5f87e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 #include <stdlib.h>
index 8d3ab731f167093410590405fe3e5ad5ee54d602..71b5459e2a27a001f6501f9bee64d772aa4eedaf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index 063f3f7892b4bdd44215c5213d743bffce035e26..f3c1a0283167532758525c8d20a094d7db2df7fe 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 03ad640618e7bf047f9139a2d9df59fa4134dd76..1b3ddc7b4b7cc26e8785936d78558ea5700eda29 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index a9f468e29efaee3ff2a0e2cc3ee86b0c3485fa56..e858ae9607e2372a37573d9579336e986e6d4a99 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "kill.h"
 #include "signal-util.h"
index 1deb0aff9b6ed41fb07ba87ee37517ea4152b18d..012e433b61a14878a0a59cd56f49750201c65732 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct KillContext KillContext;
index 0272fdb0da5def7c35c003f357dad2748072d6e3..6f60f09c4e7d51c4d2b0e48f644019438baa6a38 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2010 ProFUSION embedded systems
 ***/
@@ -214,7 +214,7 @@ static int killall(int sig, Set *pids, bool send_sighup) {
                 if (sig == SIGKILL) {
                         _cleanup_free_ char *s = NULL;
 
-                        get_process_comm(pid, &s);
+                        (void) get_process_comm(pid, &s);
                         log_notice("Sending SIGKILL to PID "PID_FMT" (%s).", pid, strna(s));
                 }
 
index 08ae28d073f4d16317136ed499c7ea1bd0a37fde..d8ef96f7d1c186eb718ba24db94922d0b8024723 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "time-util.h"
index 128674327362e405f9d10db96d3d0b8bf3d2d4d7..8a7f82812a3bc646af2e7aeb4ddf2fbf2ff3cf80 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ftw.h>
 #include <unistd.h>
index 801c7bf699bd83b414db05e0f1e636a26272a11d..1c842d3617dcc36cd73f8dfe8c2919c39e0c5112 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int kmod_setup(void);
index fb3f68561b38bf629ce793ceacdf14a596bf5c1c..d1c85e23bfaf1a0cc4bdd33be5bd842886dd4f7a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "conf-parser.h"
 #include "fs-util.h"
index 5e2ec0d80abc2e966e38cf2923a14af96ca53415..f0b87d3e9fb2e16f0590a1168983f7d6a251caac 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "dropin.h"
index b5ccf62ae09124bc4dbc41888dddc6d8a5447d18..946862c398a06b51fcd398be7e668683e93c3542 100644 (file)
@@ -419,6 +419,7 @@ Socket.Broadcast,                        config_parse_bool,
 Socket.PassCredentials,                  config_parse_bool,                           0,                                  offsetof(Socket, pass_cred)
 Socket.PassSecurity,                     config_parse_bool,                           0,                                  offsetof(Socket, pass_sec)
 Socket.PassPacketInfo,                   config_parse_bool,                           0,                                  offsetof(Socket, pass_pktinfo)
+Socket.Timestamping,                     config_parse_socket_timestamping,            0,                                  offsetof(Socket, timestamping)
 Socket.TCPCongestion,                    config_parse_string,                         0,                                  offsetof(Socket, tcp_congestion)
 Socket.ReusePort,                        config_parse_bool,                           0,                                  offsetof(Socket, reuse_port)
 Socket.MessageQueueMaxMessages,          config_parse_long,                           0,                                  offsetof(Socket, mq_maxmsg)
@@ -480,6 +481,7 @@ Timer.OnTimezoneChange,                  config_parse_bool,
 Timer.Persistent,                        config_parse_bool,                           0,                                  offsetof(Timer, persistent)
 Timer.WakeSystem,                        config_parse_bool,                           0,                                  offsetof(Timer, wake_system)
 Timer.RemainAfterElapse,                 config_parse_bool,                           0,                                  offsetof(Timer, remain_after_elapse)
+Timer.FixedRandomDelay,                  config_parse_bool,                           0,                                  offsetof(Timer, fixed_random_delay)
 Timer.AccuracySec,                       config_parse_sec,                            0,                                  offsetof(Timer, accuracy_usec)
 Timer.RandomizedDelaySec,                config_parse_sec,                            0,                                  offsetof(Timer, random_usec)
 Timer.Unit,                              config_parse_trigger_unit,                   0,                                  0
index 60c9a5f03a94fed093a1f1521c2eb45add4b9ff5..ffc58dde9cd92aa8be1d5b5220fa6c8f0f0ef385 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2012 Holger Hans Peter Freyther
 ***/
@@ -140,6 +140,7 @@ DEFINE_CONFIG_PARSE_PTR(config_parse_cpu_shares, cg_cpu_shares_parse, uint64_t,
 DEFINE_CONFIG_PARSE_PTR(config_parse_exec_mount_flags, mount_propagation_flags_from_string, unsigned long, "Failed to parse mount flag");
 DEFINE_CONFIG_PARSE_ENUM_WITH_DEFAULT(config_parse_numa_policy, mpol, int, -1, "Invalid NUMA policy type");
 DEFINE_CONFIG_PARSE_ENUM(config_parse_status_unit_format, status_unit_format, StatusUnitFormat, "Failed to parse status unit format");
+DEFINE_CONFIG_PARSE_ENUM_FULL(config_parse_socket_timestamping, socket_timestamping_from_string_harder, SocketTimestamping, "Failed to parse timestamping precision");
 
 int config_parse_unit_deps(
                 const char *unit,
@@ -5645,9 +5646,7 @@ void unit_dump_config_items(FILE *f) {
         NULSTR_FOREACH(i, load_fragment_gperf_nulstr) {
                 const char *rvalue = "OTHER", *lvalue;
                 const ConfigPerfItem *p;
-                size_t prefix_len;
                 const char *dot;
-                unsigned j;
 
                 assert_se(p = load_fragment_gperf_lookup(i, strlen(i)));
 
@@ -5656,7 +5655,7 @@ void unit_dump_config_items(FILE *f) {
                     p->ltype == DISABLED_LEGACY)
                         continue;
 
-                for (j = 0; j < ELEMENTSOF(table); j++)
+                for (size_t j = 0; j < ELEMENTSOF(table); j++)
                         if (p->parse == table[j].callback) {
                                 rvalue = table[j].rvalue;
                                 break;
@@ -5664,15 +5663,17 @@ void unit_dump_config_items(FILE *f) {
 
                 dot = strchr(i, '.');
                 lvalue = dot ? dot + 1 : i;
-                prefix_len = dot-i;
 
-                if (dot)
+                if (dot) {
+                        size_t prefix_len = dot - i;
+
                         if (!prev || !strneq(prev, i, prefix_len+1)) {
                                 if (prev)
                                         fputc('\n', f);
 
                                 fprintf(f, "[%.*s]\n", (int) prefix_len, i);
                         }
+                }
 
                 fprintf(f, "%s=%s\n", lvalue, rvalue);
                 prev = i;
index fa4c1fb1a01855fea20d2e09e8339a14802db748..6b2175cd2afe45d010430b2bed643cbef368e215 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
@@ -136,6 +136,7 @@ CONFIG_PARSER_PROTOTYPE(config_parse_crash_chvt);
 CONFIG_PARSER_PROTOTYPE(config_parse_timeout_abort);
 CONFIG_PARSER_PROTOTYPE(config_parse_swap_priority);
 CONFIG_PARSER_PROTOTYPE(config_parse_mount_images);
+CONFIG_PARSER_PROTOTYPE(config_parse_socket_timestamping);
 
 /* gperf prototypes */
 const struct ConfigPerfItem* load_fragment_gperf_lookup(const char *key, GPERF_LEN_TYPE length);
index 33728b0ff28c1d62a2ab96bf56998406ba7b6bbd..64761ddb118127c80a6a5e80e467264fb1499d6e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdlib.h>
index 01fadd06c73575af18165194784ce23716ce42aa..d554ad30606cc0a20c5a1a08cc622fb8dc710ace 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int locale_setup(char ***environment);
index 27d5a11d7843cbfe101d107505605fc07bfbf1c0..76022ce423a90a0fedc456da863f43c2525daac5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 #include <stdlib.h>
index c0eea100ede8c4283131e6b9c5f3f3678eab127e..a7ee2dadb031c5b88a8ebcb4702a486e4bc98f5d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int loopback_setup(void);
index c55e0b53212389ac30ffb6b321b1108a74317c5a..6d15f9cd09cf7647e0195e73122b14533b745453 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sched.h>
index e207ccf9c11a578de9a836021eef0c274bd7c685..cce58192e526a1654929c25b43b3844ecaf85353 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 8832c4a6f40726dfe9e4bd0e5d46187ca3b9d5c4..6988500f4c990170bf63044847e2945beb2f8ba7 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 
index 728e1578b1ae52bf521a98e2994a45ee063c6e63..c08f541bc130000110793e23dcb9c74da1b6b1d5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index bf3a3c64f09c609cb653a659b872b81364f0d079..1f1450b97c171b8dc31e1aca13d5cce0d6aef116 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
@@ -2938,7 +2938,7 @@ int manager_loop(Manager *m) {
 
                 watchdog_usec = manager_get_watchdog(m, WATCHDOG_RUNTIME);
                 if (timestamp_is_set(watchdog_usec))
-                        watchdog_ping();
+                        (void) watchdog_ping();
 
                 if (!ratelimit_below(&rl)) {
                         /* Yay, something is going seriously wrong, pause a little */
index 073cc74a85398e95926fe3ef4c1a4d57aa0e0f9b..d22c801da8d818502921e502e3d112515540b4c8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 72a00f1955b1be24f70c52251db2393045d7ad30..552590393d0301e00b522f6db53b44d7819085e6 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 libcore_shared_sources = '''
         killall.c
index f745df7c95d2185a251464e7b3134d26fb669585..915b1016b8623618b6f1eba41a49519d8724c689 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <ftw.h>
index bccd094961152c996d38acbc7111399723eadcbc..29bd62f6bf12f6aee02d6e5bee35b1845821dc25 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 07c038b3453a01bb5cb08a83a97e295bf38cf441..41dc7e9967464ffbed12c11777f6d0b0c9f60730 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <signal.h>
index a1bc2d71a64db0ac07bb288d3ab1bdefdfedd992..ad0e0160838a65e49bffdd24838960a863cf59aa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Mount Mount;
index 05bd4da154455ff5b2fb02a1a08479c6fffd33d6..0d30f17b9a05e1800c2401d6d7d7eddbc3f72002 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <linux/loop.h>
index 908e57c42c777df8597d3a50d515f0b338cc3bf4..da0861c4061678652e3698a25437acb06a71be3a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index 9a5912c10f3e2caccca84b83bad045bce34271b1..8b32379835d604f1e8b1c5ff4201f19231e05c77 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This file is part of systemd.
 
index 001408d34ae3ec13180632e68868bf70396695cc..a6d40d7e8f177e3ec77bac45ba9cb84cd125bc38 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This file is part of systemd.
 
index 8bd7302d6ca013b908e793ac4217e84001b2daec..082125f52e4ef6a92db87e981ff9fe6bca7ad18c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 4f4e7100cffe0af5a197f6870bac49c3ad5b283f..ca3a91df27973f34b9eea631c8cc5d6f2a62f993 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/epoll.h>
index 4043650fe0497d76b89d93615c55b342b8385f01..fb33b12ab1ddc155c9b8fe33a68fd361d86d9445 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Path Path;
index 540c83ba451b6ab75dc162753f410123276c02e4..a4db272f93f9b41d495558fe0ea53775e9289234 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <unistd.h>
@@ -487,6 +487,11 @@ static void scope_notify_cgroup_empty_event(Unit *u) {
 
         if (IN_SET(s->state, SCOPE_RUNNING, SCOPE_ABANDONED, SCOPE_STOP_SIGTERM, SCOPE_STOP_SIGKILL))
                 scope_enter_dead(s, SCOPE_SUCCESS);
+
+        /* If the cgroup empty notification comes when the unit is not active, we must have failed to clean
+         * up the cgroup earlier and should do it now. */
+        if (IN_SET(s->state, SCOPE_DEAD, SCOPE_FAILED))
+                unit_prune_cgroup(u);
 }
 
 static void scope_sigchld_event(Unit *u, pid_t pid, int code, int status) {
index ae2bb80e55679e4f9bca22378f920d90c520c73d..5f791b7d1916310459cb4c3c0310922761da6e9b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Scope Scope;
index b81714faa6ed3294aa4ae02ccb174639d3979ef5..18f6fb59bc0a0a75b17799032dcc887940937c99 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "selinux-access.h"
 
index 58f737de0971be154e489707bf7eec16a9728fb2..c6bfb3254436c35dd7a546cad3abb5c28f4ff2e6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 8c67352ddb478ab5d9d750511b8549a84688b921..1ac05b81e8e9a19aa032f40db15e98a35d59e683 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index ad0d4f65dc67ca560392fbdaf54844692e000a89..cdff51d747bbdb1346d552f12c75e038c5b19d4c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 9d834d4069dbe04c719f511eb7ce91a0c92fcddf..d7bdeb7ccaf8b460ad83154c79b56a7b989dff3d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/stat.h>
@@ -3330,6 +3330,13 @@ static void service_notify_cgroup_empty_event(Unit *u) {
 
                 break;
 
+        /* If the cgroup empty notification comes when the unit is not active, we must have failed to clean
+         * up the cgroup earlier and should do it now. */
+        case SERVICE_DEAD:
+        case SERVICE_FAILED:
+                unit_prune_cgroup(u);
+                break;
+
         default:
                 ;
         }
index 4423f893bb743394379b25fc0d0047372cb660d3..11c3d3f3709e2971e4ce3afafa05a4ca9062e959 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Service Service;
index 9d7358a9c12d741d7283be51a88be4124a9716e9..a74423cb85d5455923477640883eae288857afd9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/stat.h>
index 178f624d6ce0f3ddd4abf1d7cfc8e5cf14da4c3d..c37ccd90871983811595ed354bfa26b8f047d601 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 36e5d6a40fdd38d553a50b8f1101c3d86266f636..ee5c25932f432ce481d0a19a01fd8ad1ead154d9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 4678c085c39c2147d9475bc6aa83bd1d1e6e818d..e2f92746556c8da3cb8c5af8f45801cd9fd3a10a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "unit.h"
index 4427397f27153f31ff8a63f2cde7951db1a10200..1fe592af7052479b6541a8dc91254b27bca7bb94 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2013 Intel Corporation
   Authors:
index b65daafcd8a50d326f2597b59279550ffda4ddca..d29370d1e993555a51462f5ab0d9a88084f3a1fe 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index f71fa34300b8a3b5a86e44755d2be29fdc46120a..7f8ac4eae98073311facef5fbccbf233a6d040de 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <errno.h>
@@ -629,6 +629,11 @@ static void socket_dump(Unit *u, FILE *f, const char *prefix) {
                 prefix, socket_fdname(s),
                 prefix, yes_no(s->selinux_context_from_net));
 
+        if (s->timestamping != SOCKET_TIMESTAMPING_OFF)
+                fprintf(f,
+                        "%sTimestamping: %s\n",
+                        prefix, socket_timestamping_to_string(s->timestamping));
+
         if (s->control_pid > 0)
                 fprintf(f,
                         "%sControl PID: "PID_FMT"\n",
@@ -1051,6 +1056,14 @@ static void socket_apply_socket_options(Socket *s, SocketPort *p, int fd) {
                         log_unit_warning_errno(UNIT(s), r, "Failed to enable packet info socket option: %m");
         }
 
+        if (s->timestamping != SOCKET_TIMESTAMPING_OFF) {
+                r = setsockopt_int(fd, SOL_SOCKET,
+                                   s->timestamping == SOCKET_TIMESTAMPING_NS ? SO_TIMESTAMPNS : SO_TIMESTAMP,
+                                   true);
+                if (r < 0)
+                        log_unit_warning_errno(UNIT(s), r, "Failed to enable timestamping socket option, ignoring: %m");
+        }
+
         if (s->priority >= 0) {
                 r = setsockopt_int(fd, SOL_SOCKET, SO_PRIORITY, s->priority);
                 if (r < 0)
@@ -1697,6 +1710,8 @@ static int socket_open_fds(Socket *_s) {
                         _cleanup_free_ char *ep = NULL;
 
                         ep = path_make_absolute("ep0", p->path);
+                        if (!ep)
+                                return -ENOMEM;
 
                         p->fd = usbffs_address_create(ep);
                         if (p->fd < 0)
@@ -3409,6 +3424,39 @@ static const char* const socket_result_table[_SOCKET_RESULT_MAX] = {
 
 DEFINE_STRING_TABLE_LOOKUP(socket_result, SocketResult);
 
+static const char* const socket_timestamping_table[_SOCKET_TIMESTAMPING_MAX] = {
+        [SOCKET_TIMESTAMPING_OFF] = "off",
+        [SOCKET_TIMESTAMPING_US] = "us",
+        [SOCKET_TIMESTAMPING_NS] = "ns",
+};
+
+DEFINE_STRING_TABLE_LOOKUP(socket_timestamping, SocketTimestamping);
+
+SocketTimestamping socket_timestamping_from_string_harder(const char *p) {
+        SocketTimestamping t;
+        int r;
+
+        if (!p)
+                return _SOCKET_TIMESTAMPING_INVALID;
+
+        t = socket_timestamping_from_string(p);
+        if (t >= 0)
+                return t;
+
+        /* Let's alternatively support the various other aliases parse_time() accepts for ns and µs here,
+         * too. */
+        if (streq(p, "nsec"))
+                return SOCKET_TIMESTAMPING_NS;
+        if (STR_IN_SET(p, "usec", "µs"))
+                return SOCKET_TIMESTAMPING_US;
+
+        r = parse_boolean(p);
+        if (r < 0)
+                return _SOCKET_TIMESTAMPING_INVALID;
+
+        return r ? SOCKET_TIMESTAMPING_NS : SOCKET_TIMESTAMPING_OFF; /* If boolean yes, default to ns accuracy */
+}
+
 const UnitVTable socket_vtable = {
         .object_size = sizeof(Socket),
         .exec_context_offset = offsetof(Socket, exec_context),
index cf475e26389fe079e700a9a4c6061c6c5920ac6e..ebe85c2aa4ad4fdbbeb801dc1846862100f46904 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Socket Socket;
@@ -58,6 +58,14 @@ typedef struct SocketPort {
         LIST_FIELDS(struct SocketPort, port);
 } SocketPort;
 
+typedef enum SocketTimestamping {
+        SOCKET_TIMESTAMPING_OFF,
+        SOCKET_TIMESTAMPING_US,  /* SO_TIMESTAMP */
+        SOCKET_TIMESTAMPING_NS,  /* SO_TIMESTAMPNS */
+        _SOCKET_TIMESTAMPING_MAX,
+        _SOCKET_TIMESTAMPING_INVALID = -1,
+} SocketTimestamping;
+
 struct Socket {
         Unit meta;
 
@@ -123,6 +131,7 @@ struct Socket {
         bool pass_cred;
         bool pass_sec;
         bool pass_pktinfo;
+        SocketTimestamping timestamping;
 
         /* Only for INET6 sockets: issue IPV6_V6ONLY sockopt */
         SocketAddressBindIPv6Only bind_ipv6_only;
@@ -182,4 +191,8 @@ SocketResult socket_result_from_string(const char *s) _pure_;
 const char* socket_port_type_to_string(SocketPort *p) _pure_;
 SocketType socket_port_type_from_string(const char *p) _pure_;
 
+const char* socket_timestamping_to_string(SocketTimestamping p) _const_;
+SocketTimestamping socket_timestamping_from_string(const char *p) _pure_;
+SocketTimestamping socket_timestamping_from_string_harder(const char *p) _pure_;
+
 DEFINE_CAST(SOCKET, Socket);
index 2d3d488a7bee4bd8123208fd96e423fb1f2c2a65..76e491ad94fb23935b25c00ffa3c25efec358000 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/epoll.h>
index cb24cec7aafce8277562668eb7df627d8bec3aa0..6ce9bfd9b43094c3e81cb14f19ce1540ed800813 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index c0554649dea2598706bab2ba51b4838ea7affe88..f2c045511d00e2706adf0d1b59e48c4b3660fd76 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 3f85773b240b24a6e31e5a0e20532191668f61e7..a422056803da68786c83a8534f67ad1ae4e35bbf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "dbus-target.h"
 #include "dbus-unit.h"
index 28f78888dc53eeaf5c513d5f80022a3183e6b6bf..bb909d664f278f91b77380f205f0260f68626c51 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "unit.h"
index 94388f0727ffbe4ebd201e2e462b43ed3edbd0b7..651f18b5a857b5e9e817541568e3dcc316cb4280 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/stat.h>
 #include <sys/types.h>
@@ -169,6 +169,36 @@ static int timer_setup_persistent(Timer *t) {
         return 0;
 }
 
+static uint64_t timer_get_fixed_delay_hash(Timer *t) {
+        static const uint8_t hash_key[] = {
+                0x51, 0x0a, 0xdb, 0x76, 0x29, 0x51, 0x42, 0xc2,
+                0x80, 0x35, 0xea, 0xe6, 0x8e, 0x3a, 0x37, 0xbd
+        };
+
+        struct siphash state;
+        sd_id128_t machine_id;
+        uid_t uid;
+        int r;
+
+        assert(t);
+
+        uid = getuid();
+        r = sd_id128_get_machine(&machine_id);
+        if (r < 0) {
+                log_unit_debug_errno(UNIT(t), r,
+                                     "Failed to get machine ID for the fixed delay calculation, proceeding with 0: %m");
+                machine_id = SD_ID128_NULL;
+        }
+
+        siphash24_init(&state, hash_key);
+        siphash24_compress(&machine_id, sizeof(sd_id128_t), &state);
+        siphash24_compress_boolean(MANAGER_IS_SYSTEM(UNIT(t)->manager), &state);
+        siphash24_compress(&uid, sizeof(uid_t), &state);
+        siphash24_compress_string(UNIT(t)->id, &state);
+
+        return siphash24_finalize(&state);
+}
+
 static int timer_load(Unit *u) {
         Timer *t = TIMER(u);
         int r;
@@ -215,6 +245,7 @@ static void timer_dump(Unit *u, FILE *f, const char *prefix) {
                 "%sWakeSystem: %s\n"
                 "%sAccuracy: %s\n"
                 "%sRemainAfterElapse: %s\n"
+                "%sFixedRandomDelay: %s\n"
                 "%sOnClockChange: %s\n"
                 "%sOnTimeZoneChange: %s\n",
                 prefix, timer_state_to_string(t->state),
@@ -224,6 +255,7 @@ static void timer_dump(Unit *u, FILE *f, const char *prefix) {
                 prefix, yes_no(t->wake_system),
                 prefix, format_timespan(buf, sizeof(buf), t->accuracy_usec, 1),
                 prefix, yes_no(t->remain_after_elapse),
+                prefix, yes_no(t->fixed_random_delay),
                 prefix, yes_no(t->on_clock_change),
                 prefix, yes_no(t->on_timezone_change));
 
@@ -332,7 +364,7 @@ static void add_random(Timer *t, usec_t *v) {
         if (*v == USEC_INFINITY)
                 return;
 
-        add = random_u64() % t->random_usec;
+        add = (t->fixed_random_delay ? timer_get_fixed_delay_hash(t) : random_u64()) % t->random_usec;
 
         if (*v + add < *v) /* overflow */
                 *v = (usec_t) -2; /* Highest possible value, that is not USEC_INFINITY */
index ab66a201adc23c6b48028bbea4ebfb09e22c4d26..14fa317064eb6bfaec760525fe995bc5997cc552 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Timer Timer;
@@ -59,6 +59,7 @@ struct Timer {
         bool remain_after_elapse;
         bool on_clock_change;
         bool on_timezone_change;
+        bool fixed_random_delay;
 
         char *stamp_path;
 };
index f4cdbfe6f5d823573b36842af31704c341827d2b..ae77bae65edcd6214be64d0442927bdef54d0f25 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <unistd.h>
index ba42f58e073736dbb97cd2e50bb805528326ccce..c431271eb2a3e45c7e51857451dc2ffad0875293 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Transaction Transaction;
index 10b1889b5780015010318667627cbff4b9d7cf7f..2d25db3696d54008af5f2677b1b62526d094787d 100644 (file)
@@ -1,5 +1,5 @@
 #  -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #  Copyright © 2018 Neal Gompa
index 4fee5dc6dc3e83362397d5eaf1e474102dd70578..27f09b3491b480a4f59887eaca98b96e77c03ba6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "cgroup-util.h"
index cb75448ae5c83a87b758ea513b09ce3153b46207..de5183c113af161de35b2775a6f16342e6a89c92 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "unit.h"
index e87b951d9fa323dabb9928bd15611aa892bf0a1e..45a417a090690f09d5f78d9b74ed660d9f0e3e66 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdlib.h>
index 991a05bafe218ef5d94c3540ef73450101ab06fb..02b2b24206f393bbcd476b958c301a487c7e856c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 35885dfb47c4dfa2b35476c37b41045f858c6a0d..30c67ffe7c9a95a52b126db7dd9bea0597e2d9c7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/statvfs.h>
 #include <sys/stat.h>
index 0db116736cafd42530b785bc36ba1b8503f0e2d7..8ad5bafc15a65ab7f9fee13097752f4d7d23fe85 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 104a051688e57d285eec6243f4233d55c9653720..0a1cb9103a99f556697ae27dd18f839e7fee070b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index f252c8175861f0eea9929a4f51320f17e50cd308..91356ad3c999971bd7dde426a579de8af702c2e2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <getopt.h>
index 7fa5942697c57b3ee0103df1679610c2cb5eac73..663c6c7a07bf341e124ed68975dc9fca4cb353d8 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_coredump_sources = files('''
         coredump.c
index 4e0d3e76987e5a376509d7147bfaa1a1f20aebea..a29ab1211c2feae5a5f4e6f59301639a0abf8df6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <dwarf.h>
 #include <elfutils/libdwfl.h>
index 2462c763f911608346ae75427c5ea9dc9fe084e2..b93574840424e5161366382d4da2a6a90c6f64ad 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 void coredump_make_stack_trace(int fd, const char *executable, char **ret);
index 75fb442873fe9fb3f9874123287c4f1d40bcf057..ac212ea23b885085d79094b6bcb8ba2717edd4ea 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdlib.h>
 
index 13e9f3aedd01416133c75523e8c031865b76c93c..68c73499ce88cf07bf5a88b29b38c64d496bbaa8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
@@ -455,16 +455,10 @@ static int create_disk(
                 }
         }
 
-        const char *target;
-        if (in_initrd())
-                target = "initrd-cryptsetup.target";
-        else if (netdev)
-                target = "remote-cryptsetup.target";
-        else
-                target = "cryptsetup.target";
-
         if (!nofail)
-                fprintf(f, "Before=%s\n", target);
+                fprintf(f,
+                        "Before=%s\n",
+                        netdev ? "remote-cryptsetup.target" : "cryptsetup.target");
 
         if (password && !keydev) {
                 r = print_dependencies(f, password);
@@ -527,7 +521,8 @@ static int create_disk(
                 return log_error_errno(r, "Failed to write unit file %s: %m", n);
 
         if (!noauto) {
-                r = generator_add_symlink(arg_dest, target,
+                r = generator_add_symlink(arg_dest,
+                                          netdev ? "remote-cryptsetup.target" : "cryptsetup.target",
                                           nofail ? "wants" : "requires", n);
                 if (r < 0)
                         return r;
index ebf4cb1b6b02d1b5afab075b961f279b2fece4a7..f849123563db3d5fea9eea4fd64f25c038e6ec7a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index 7bb78227dcfd4e26c2789e6e330ed8ec1176c379..308f5ebd68dfab3e8b5e03dc1fa4485b8bc057aa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index bbc0122002248734362f229888c55c9d02e7eb48..50db46f8d1b79149bffed74c257b37c22ca074d1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <unistd.h>
index af2487e75bdfc5d8c38dc0297af42f015d70363d..266c8e1b3e62b402de62f59283da5548a1327d3f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index fb08b4a1a0bbdecb2aceee630dadaac4b4952ec9..6ccb152d101da20b5854f8ab297c7ce2dde6816b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <mntent.h>
index 4e41eca3521b037b7c5f15cecccf870916e05ddc..c6e4d79e3a39ac31e5de14326dface02b9bd62ed 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index a88eed098db097074c539bc546eb8bd232a4a9a7..4295abdc30b3b4a3020c960acc15f23730f1ddf1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index 4f38de8e29fb8315bcae96c45222e9c7402441d6..14d649c6ed4f3a9306516d7a2f82652de53c7c2c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index 237395a4444c2f93faa45840e48e4211e3018ebd..dc7e9dc626dc4cb39634a3dc0831aa3f74b77a6e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <getopt.h>
index 4a14c23f11499dceb7555459033da17eb30172b3..1c51cf6b2cf7eb06d4a03e9e59e6459ec8ca3d09 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-path.h"
 
index 3f3dc0a89475d365eb23affb7adba90bb29b6bfd..05d03ad762bf31b3c8bcd0a8d0c2f822d71c4182 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <stdio.h>
index 3109f9cdfcc214ca764c48146469e19683ae8177..742b43f9fca7743a174042efa9819b7d5a7a0b22 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <getopt.h>
index 472ba6d54985e08e64363dbe80384e215182d08c..04752fe9dc6fe86bcbc4789868d8ca5a00c799e2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Holger Hans Peter Freyther
 ***/
index 6c560d547b20cb784da94a20ad2cc1b84049b06e..15f5892228733edf753660fceb512893b86338b8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index 46a3d23dc4ad9f48e8a3967f2d8b667f8b825e93..93bac9adf4957fcb9695ce5838acf8c165cea7a1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 3d1ac7e68a03ed56bb00d8e1a7644b0fef84e16a..af3dbf4d57b0f8b4c9828730ef21f76ffcde0fab 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bus-dump.h"
index 8f031503e9534b1837f64bc3e31e423d8d1af1fe..80801723fdda42cd552dd6b6b4374138c256ff89 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "calendarspec.h"
index ecf25b18d7f9b214f8ba16f6b7dc5bcdc36845f7..f0134557301eaef598fa08831eb01336100fbf5f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "catalog.h"
 #include "fd-util.h"
index 9c5dfc92c05d7e87a04362ddf55c29364c271c97..f94fd0673e4f4300d6360be464ba654be276032e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 71bb99a381cc9e608eb829637b799af188bea2ca..c854d921c00eb09ceabf809170cf76ad18662bd2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/stat.h>
index 6d887eaf1f8d1c07baa95b7312621053699af791..e5e70dd606ef9b1bf2df455125bb3927579b0222 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index 9bf95b9c7655e0c4517b2758dce671aa16d46de4..b9a0aa1216a63bd945bc0f9eaeaf25001499935b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "fuzz.h"
 #include "memory-util.h"
index d945dfc02c5a7c01e73ecdb9b19a09d7e5deb386..e0dac260b00ed6f61b6cd07873fbb66991c48933 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index 2130a4a81170aea83cb1aab1e3436e2e8d7b23f2..0a81e74424f16a5753d950bd7064566a99300a26 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "fd-util.h"
index 3ab4eb07fafd93e6d7f7aa1405e3cdee8e717a07..9adbd43748d851cc05cae19dfa2fb479fb0f1578 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "fuzz.h"
 
index 3f3ce7e8eed96f144675c1f8bf4fe39108955674..6e8e18048ecf649255338bdccb20de642dba3f20 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "fuzz.h"
 #include "fuzz-journald.h"
index f7426c84002a81338f0b035bdcd4bede289cae09..1b423d5cba275bea35b6b452aa9a53c291d6e04c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "fuzz.h"
 #include "fuzz-journald.h"
index 8e3e850fbb96fd35b93ff82c5205aa727bfc9486..fcfc5dfaba4a0259130264925bf94538a45504a2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "fd-util.h"
 #include "fs-util.h"
index f4de5fd8ebfae1384de8bf118fc58122439bd6b5..6531c4f6686f406c310a25c30e8b6dd75de53a60 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "fuzz.h"
 #include "fuzz-journald.h"
index 0991b287c944e6c1b89d4d2f5a6bfbc93d1d855e..038b335cb32bcdf25028273b0c961d00132e2b21 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/sockios.h>
 #include <sys/ioctl.h>
index 100f0ce691b429a0b536e407c20fa37b69a8c705..72ec610fbfc29bf9d033740b493f87816775c515 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "fuzz.h"
 #include "fuzz-journald.h"
index 950e885cae3d8e679add48490732efea6029bce7..e2f73ffa7e564ea4f1f9c750d2d0f6a810062c3a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "fuzz-journald.h"
index 77e3b0c064c4f6ec03814bb7aa1317596df1bf33..4abb1005ca3c5349a933637a521c9032bd9c11e7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "journald-server.h"
index c01e2a570c50a6189d2b1f2c9cb2c34d11be6ac0..f9a0e818c4b29214c34c0f3a41f33fd0c5edb7c8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "fileio.h"
index 7f252309cd51d66474f39eb199911ed1d270efc4..5747135b32f7a7ec077b9392d58323f13b261e22 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <unistd.h>
index d5c998498971a88c16fa35a2a3545ad1a6f8d22f..2df2993cbfbee03e6d8ad03bea523be41799a0de 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "log.h"
index d8d256d12710e6b837942fb82866d128bacab940..d74cd2fffc7f50fffc1adf576a76e64ae52170e8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <netinet/icmp6.h>
index 004230eafe2a7c52ade002eb20bc7b54f9157e44..cfebf65c003efefa131ff326dc661ab47a9f1ca0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "fd-util.h"
index aa0a8225b47d7b8722b080554decbe2890743fff..bd98ed26e8f8de8ee35adf63ae67f45e42c689ef 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "fd-util.h"
index 22b2496fcb2bec00af3d6c19e6421e8d796e0292..bf2a66336cadf05cbbed0512bc3ed683c8264936 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "fd-util.h"
index 9d7c0fa3e12a63ab84003bda021c25255c79ba3a..2a48c14961f64565d4f72d42936a817dc11b5546 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "device-internal.h"
 #include "device-private.h"
diff --git a/src/fuzz/fuzz-udev-rule-parse-value.c b/src/fuzz/fuzz-udev-rule-parse-value.c
new file mode 100644 (file)
index 0000000..404d0cd
--- /dev/null
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include <string.h>
+
+#include "alloc-util.h"
+#include "fuzz.h"
+#include "udev-util.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+        _cleanup_free_ char *str = NULL;
+        int r;
+        char *value = UINT_TO_PTR(0x12345678U);
+        char *endpos = UINT_TO_PTR(0x87654321U);
+
+        assert_se(str = malloc(size + 1));
+        memcpy(str, data, size);
+        str[size] = '\0';
+
+        r = udev_rule_parse_value(str, &value, &endpos);
+
+        if (r < 0) {
+                /* not modified on failure */
+                assert_se(value == UINT_TO_PTR(0x12345678U));
+                assert_se(endpos == UINT_TO_PTR(0x87654321U));
+        } else {
+                assert_se(endpos <= str + size);
+                assert_se(endpos > str + 1);
+        }
+
+        return 0;
+}
index 7530d80befe171ea10cabdfdb68c6d7d1bc8873d..e1140bc68ef4c3c126abf1b31ab3d815d48909a7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index c0661433a31588a843ae437bb9fa2f9ce4520e88..e67f6e9199d4011e2dc963c0d2390a18fbdccb70 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "conf-parser.h"
 #include "fd-util.h"
index 31c13e2bea6e60e2aeec0ff52807cedc9d9701e2..f26050cf0ed14ad9bd2dea21ee7673cb63f8540b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index f8a1b5b28b23b9a85c6901c08f5a8493daff4a4f..23077e48dce2e876e55c0f7981aa7cf6b5e363a4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "fd-util.h"
index 1e56526259b20ff3fa48c019406c5e0352b0555f..579b0eed730d625c01c86f38509c85687c3c83b4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stddef.h>
index 01f119fcd0b374586ba98979b3a87aec77065c77..a5fac5980e83bf475e224426bed9994d946b4f66 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 fuzzers += [
         [['src/fuzz/fuzz-bus-message.c'],
@@ -152,4 +152,8 @@ fuzzers += [
           'src/xdg-autostart-generator/xdg-autostart-service.c'],
          [],
          []],
+
+        [['src/fuzz/fuzz-udev-rule-parse-value.c'],
+         [libshared],
+         []],
 ]
index 04dcacfd59a476b324fb0f8089e47b5c9c74f495..2f26214ec306b1a2425f365d6edc392c86da03a4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 0d18c91c629fd10f34a0dd965cc5d2853cf9afd0..f9d0ca54214749a2ce6f94ad6c43d04158d16c77 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdlib.h>
 #include <unistd.h>
index 95af8efa7e2e96ff5ca3fc105fe25dcc847dd78a..04a28c90537bd73ddab22084abbc672fd9a75264 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index 17e7cd1a009b96eb0c9242131f0bd58e1d5932af..d8f91f4e663f36a230aaac729e190148e1618217 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index 8e28e3ab76af00ddd397f8d5aec0fe699f932603..cd971b7cda4298cd506dd23498a347ae95eabe67 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "dns-domain.h"
 #include "home-util.h"
index 73602e4f8ec0462ded7226dd208d0d8558da4cbf..fba1c7d8f1d4efb73c79201787f13bdcc770ec7d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 0019f59f0f676ce6a5bac70ec0bcd2837a4d82b1..5557b70e67485331dc48854fcdc8ff316bd5e0ad 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_LIBFIDO2
 #include <fido.h>
index 0d9faefa8164bb6ba513852c3126b1522352f853..d0349f54050c33fa46e874436d799c88ff803271 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "json.h"
index 592a6413e1d319e737b08df6d2393bbcf8851efe..4b7f8336aa0b28481f81b37ecbe402462c43f811 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "errno-util.h"
 #include "format-table.h"
index 0403c73ea1afd3583a73242bb3bafb0d2eafa6ae..5c30feeed4881c0d262e1e56d7126d415a95f0fe 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "json.h"
index c63d3415f4bb3878e393a6297ef9fe2740772f1f..4a6649d25c69a20dfd3d452de394fd6ee83582d9 100644 (file)
@@ -1,17 +1,12 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
-#if HAVE_QRENCODE
-#include <qrencode.h>
-#include "qrcode-util.h"
-#endif
-
-#include "dlfcn-util.h"
 #include "errno-util.h"
 #include "homectl-recovery-key.h"
 #include "libcrypt-util.h"
 #include "locale-util.h"
 #include "memory-util.h"
 #include "modhex.h"
+#include "qrcode-util.h"
 #include "random-util.h"
 #include "strv.h"
 #include "terminal-util.h"
@@ -140,48 +135,6 @@ static int add_secret(JsonVariant **v, const char *password) {
         return 0;
 }
 
-static int print_qr_code(const char *secret) {
-#if HAVE_QRENCODE
-        QRcode* (*sym_QRcode_encodeString)(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive);
-        void (*sym_QRcode_free)(QRcode *qrcode);
-        _cleanup_(dlclosep) void *dl = NULL;
-        QRcode* qr;
-        int r;
-
-        /* If this is not an UTF-8 system or ANSI colors aren't supported/disabled don't print any QR
-         * codes */
-        if (!is_locale_utf8() || !colors_enabled())
-                return -EOPNOTSUPP;
-
-        dl = dlopen("libqrencode.so.4", RTLD_LAZY);
-        if (!dl)
-                return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
-                                       "QRCODE support is not installed: %s", dlerror());
-
-        r = dlsym_many_and_warn(
-                        dl,
-                        LOG_DEBUG,
-                        &sym_QRcode_encodeString, "QRcode_encodeString",
-                        &sym_QRcode_free, "QRcode_free",
-                        NULL);
-        if (r < 0)
-                return r;
-
-        qr = sym_QRcode_encodeString(secret, 0, QR_ECLEVEL_L, QR_MODE_8, 0);
-        if (!qr)
-                return -ENOMEM;
-
-        fprintf(stderr, "\nYou may optionally scan the recovery key off screen:\n\n");
-
-        write_qrcode(stderr, qr);
-
-        fputc('\n', stderr);
-
-        sym_QRcode_free(qr);
-#endif
-        return 0;
-}
-
 int identity_add_recovery_key(JsonVariant **v) {
         _cleanup_(erase_and_freep) char *password = NULL, *hashed = NULL;
         int r;
@@ -240,7 +193,7 @@ int identity_add_recovery_key(JsonVariant **v) {
               "whenever authentication is requested.\n", stderr);
         fflush(stderr);
 
-        print_qr_code(password);
+        (void) print_qrcode(stderr, "You may optionally scan the recovery key off screen", password);
 
         return 0;
 }
index 489d35fa5be2ef452f65daf2c16979263c566922..ab195f94db1f5870b3289f73b9eebd33fd739859 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "json.h"
index 486aec066d65fab2550c2f5444a328218fee624b..470e05b24ea772b839f29e70616667dafd17df89 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 
index a5627d0a1f9b218512870b8d795092dc8b1f0bfc..d70fda5f4403e5d13b99db230cb8217b9ac811fb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "homed-bus.h"
 #include "strv.h"
index 20f13b43ade3839fabfb5633d88183baa02845f5..977679b10ad3f85297c98e6c943c207f3ad94445 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index c6c2e1787fd65bd40b9a9dc8b35ccf82d7e0b597..4f46b0c886e7e94bead2c2b2cff9c0b5341b38c5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "conf-parser.h"
 #include "def.h"
index 00eb3fdb684c0d92542a33e43527713b33d4fc04..1defaa998b6b93e4675d9cfba9814ef6c327c3be 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index 08f77b4f5131631b67fe8d02816cb18a0700f713..5643a9a6e43981b7f14c53b5775f1c45c48b27dd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/capability.h>
 
index 8ac7ff9995478d3f825e266d4fadcdf58e26d750..552217805560cb47bda8b193af37993379f1e509 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 6d0f0fbd0e52b53d41365129851a3040c803ef00..7f4532e0cc7bf46ecf70869f816c2711521c26bb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_LINUX_MEMFD_H
 #include <linux/memfd.h>
index 97879940df201a8937cbe40e8d22d5ff7421f06c..4c24ee72a79798847b89641d6c9c7dcf98af2e5e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Home Home;
index a599c582976c72e3b79011f24ffff5edd9c2c893..d3ac98f901ce355f77b08cbc131371257bc3177e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/capability.h>
 
index 93bef9df8eb905332cc7c6b29e62d5bf6dd7ffe4..7db29fa88fd1dcc07bdf91cd8b177e5f40758f89 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "bus-util.h"
index 049003241606efdfa250cd219e1faf2aecec69db..365ea4d234682a947b14cd2dc1bac71cd9c330ba 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <grp.h>
 #include <linux/fs.h>
@@ -159,7 +159,7 @@ static int on_home_inotify(sd_event_source *s, const struct inotify_event *event
                 (void) bus_manager_emit_auto_login_changed(m);
         }
 
-        if ((event->mask & (IN_DELETE|IN_MOVED_FROM|IN_DELETE)) != 0) {
+        if ((event->mask & (IN_DELETE | IN_CLOSE_WRITE | IN_MOVED_FROM)) != 0) {
                 Home *h;
 
                 if (FLAGS_SET(event->mask, IN_DELETE))
index c86bf4300b35a9d72290558a1fa5ceb1ede3d5dd..851b302f59346b7cb7ace7f5f1a09f8140207902 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <openssl/evp.h>
index 156a25ec816138908ce57bea6fc7825034eb758e..3847fc5d6878aff350860dfebacf7eb92e17337d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "fd-util.h"
 #include "homed-operation.h"
index 0771dc6be0e51e48cba01f2c065c482fa4f09381..6721363b2a171bd7d162a435c7d52b71c13c56f9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sd-bus.h>
index dfc615a0973836ff7d7e28db0a6dad34b19e5ba7..c42908349a54d61a592165ada596046d6a981fc1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "group-record.h"
 #include "homed-varlink.h"
index 4454d2344221fff16234ad5337f930309d4b321f..2e404f02fadab29cbfba91d1d28a0d92024499af 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "homed-manager.h"
index eb5a4a2ea50b2e486a9c7e11f1b54e84463fe800..e4d64bdfda15d0fab6c68fcd397323ed085cd644 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/stat.h>
 #include <sys/types.h>
index cfceaed74274fdd2dd98ccc41d5d5103a5b03371..2736095f939789839c40a16b336c9237b483ab46 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "dirent-util.h"
 #include "fd-util.h"
index ee799e2a4b8ed9ed2dc7bb3c62c5f5011b3e14df..da2e50a795a30dff063350ba8d571f08a11aafb4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "homework.h"
index bffeac0a5ef32f624277f6716bf87f5f936313df..2d800033ee65a12fc299c9e1c9819df480a79b15 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/mount.h>
 
index 717837f348f6078ff54901d5aeff03191321db49..27d640f380398e2a8599497e51b87c9105005fac 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "homework.h"
index 36fe059ab3c64b96f5e3a5b5dc9d883447b5aaa5..2f717a59380d6b707c63b3a4477184c8f58b5565 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fido.h>
 
index d3b142a923d573ac69a8e18d9f8bd06fc26d317f..a1dcba2d86c3d29431ecd3b4cf60b11c51fa723e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "user-record.h"
index da9bb64b712cb7b5e5a35e4094cfecdb83a69b07..d0676f8ae6dffdb8d825ca5b432636b2bd4522aa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/fs.h>
 #include <openssl/evp.h>
index e5cf7baaaa456585ea50b0268fa1e8d3021a3734..50b03993e03d0c75f4cc0fc1d68123578b2201d0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "homework.h"
index 947a559c2671d8f8a79fbfe848be4e513e61e6ee..b0b2d8029fb3517c5f61d51dde6eb76496a1ca1f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <libfdisk.h>
 #include <linux/loop.h>
index af0ad4b5043c9421e9cdc0fac4b4aeab31079dc0..c43bdfcba3f31c039ead6cc385d7eb20f63669a7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "cryptsetup-util.h"
index 853181b80d81ae8789ace2b569b92f76cd39ebd0..5e737687d1193150611c1e4a0665d89cad425ae9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sched.h>
 #include <sys/mount.h>
index cf7c8cfcab4bd848ed98d6c71d4115cd479c76e1..2a4591c1f42c0e4e0ec8bff1a4be168bd1ea6cc8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 3a03fb7200d1b6cc2bcc266d049181f546469837..15402b1002c05ff88885cbbb2abae49c690afe40 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "hexdecoct.h"
 #include "homework-pkcs11.h"
index 469ba7152f14b7386be0e0b24b9892e9e2894fa2..c8674e0bc7f5ca8864b2ab1c86aaaf33f5301afe 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #if HAVE_P11KIT
index ba3917b9cee8d7221c4a590f44554c1b0d4d0c1a..7001870dfb85ac9d1b9b1b9202b804336e988665 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #include <sys/quota.h>
 
 #include "blockdev-util.h"
index e6cc16df5035de193e892fcc320e32f487658eea..a21c9ba8b15a20a3a090813446f0b28b57e1b862 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "user-record.h"
index 4b924b2a7c0117afe93d0a195e76850fa40558f3..b61f650662d3994137a6f2cb2055cd0c687ecf5c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stddef.h>
 #include <sys/mount.h>
index c9b0d3b4325dcd9627822c5340ad75be63c60e9e..fb53fd49b0376d9fc77718caea8c59739d7a44f2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/fs.h>
index 69bacacf8083f0d680930ed69d590d2acae00480..7847449c4346eae2847c30c6eee2b7390785b179 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_homework_sources = files('''
         home-util.c
index 82a5b20d3f5817c5f07727cfdf0c8beb81a2e865..ae5f895722eeb652569bd05a818bbb12b16131b6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index e0067ae44b152662c3359b54c90a7f9482984ab4..7776ed0ee1aec04ffb7eb3dfed96e0321c227749 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /* 256 bit keys = 32 bytes */
index d615501054d741192919f18cb0a596959640c02d..1975d5f1a2bf8cf8ab04e0e5bd6ac45f55a8925b 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
         "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
 
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <busconfig>
 
index 43a373d633390af1869cc9dcf656ee759a8086ef..10ad7c283a958abf05b4fe34253f8ca46b9d9976 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
         "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
 
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <policyconfig>
 
index cff19b38617df18152061c13513df5d06280ab81..fb03914592dd1d1917420246bf1750b482223978 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 [D-BUS Service]
 Name=org.freedesktop.home1
index 4d7c99733e6b8822f30b6c0403fb3d7b680cf4ce..a5279453f31a8545b3372691477b9ad4ce58e746 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <security/pam_ext.h>
 #include <security/pam_modules.h>
index daec0499e114848ce50be75415deb8527f3b109b..293c06fe2c17675b9ebe5909b781394402394e7c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 {
 global:
index 4eebeeaaeab9f725b82a1d0f7e36c790a6710a2a..1bd9061a7b0551a082f898937bcffcecbeb86e82 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "modhex.h"
 #include "alloc-util.h"
index 08d7dc01695bbda398c9ce917ceb3948a9519533..23c3357836cf16241cbf7ebc3dcc556652f8ae66 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-common-errors.h"
 #include "errno-util.h"
index a37d369181078da161983fa382b4e0222185840c..b3b2690f7e3f1c879b01cafb9b34cfe1e7df1740 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 91f86399976d2887d2a65c2f3172ede071a80d7a..8cd3a462513fea312afb7c9ea895a25c3d0a8d22 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #include <openssl/pem.h>
 
 #include "fd-util.h"
index f045c8837bced31330029eac21dfca2019a469f0..87c6813e92825bc2baac1d4b34c8c8df6b26d0fe 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <openssl/evp.h>
index 3ed64128b2edc7a48b147b7f617430d28aeb5ad4..6bcbb56aac377de1973f06d32defeed2c0372b81 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/xattr.h>
 
index f8bae707bcf36fb28b3a70ccbae3f03ba44f5b99..302e7a5dff0c66e5664402a2611202341e81a00e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index c38600b9c3f2c8e72afc23292861dc00229922a5..0d39e9176f351b08778abf824f5fa59e94cf4f0b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <locale.h>
index 44c2b9a631986b5dcadefeb5a09a94ffd7c5e55c..a1794bdab1e36a9715dfec29b3b16063b1fc7c42 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/utsname.h>
index db66ba5531dcfd0da2cdced3c85eec6180939eab..718a7bd4f1e0b0bfa0f2a4ea0239be7a2466c3f2 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 if conf.get('ENABLE_HOSTNAMED') == 1
         install_data('org.freedesktop.hostname1.conf',
index e2658c6c9596d9f2026ef5e154a467f37d0c493a..2f34102e98fb29dca8f9211455d887a238200525 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This file is part of systemd.
 
index 5969a82b29917547b337e7cddc2a0b5fc8d8c863..7d28c395cff18e076679957eed1d98701d13f767 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   systemd is free software; you can redistribute it and/or modify it
   under the terms of the GNU Lesser General Public License as published by
index 98c7bcbd84983fbb51fff34289dbd9cfa9ae3a66..1d6b9c8fe763e7ca497ce3172f698b019b6f6b5f 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  systemd is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU Lesser General Public License as published by
index eb038a8b55ea8d833b4b5b6dd6cbee78d927f9fd..1246d6896959463834564f94d94190c13a59829d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 
index 236043bf8a4c06c7aec0f2bc1405cc0977fb8f47..086f398108112f3241fb6dd9b66521d54007a5cc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <stdio.h>
index a1b3147f658bb8ec93ea341b50150d28dc4d93cc..bb81f97b0934af8d347f0208cea829f6613d33ae 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 
index fa80b233422c080b273cca422a695ce937984448..f4a882d2342fd87277c89414d056e63290573090 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <curl/curl.h>
index a0ac6bc7f485a47298a49f80c9588ce8c1461602..3e0348f4c160f074cc9328e4ee70378863438228 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/sendfile.h>
 
index 196b8ef28f19ed0df203f7edcf7874a436f54ae9..27009e4e350f0aff6c83e9d4d0fcf78a7aa50e9c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-event.h"
index 5f89880ed60e2a65a9cfdfb309538d5e512939a4..b8b650f01e1d88605fb5c4bb1df45451494d3e1c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-daemon.h"
 
index 6abb7d383abe0efc7cb8e9b464d70c06b1df71dd..3b55d12c1f9dc40a57e19441d470651ed2d3591b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-event.h"
index 77d24b8635c0f3e14e00ec13a7b5c82d5c7a8fe8..83990df64c69fb08688472193ddebcf17fc6595b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <locale.h>
index ebd747289288e4a87933d7a67894cc1d9acb23e1..250270511da6c2611e13aa365915eb8cd633e7ea 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sched.h>
 #include <sys/prctl.h>
index 94d224f4129889b557cfd9f8463a403748b680a8..b27a980839040bf68ca86770366f6873b67bbc3e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index 3fbd0677906c5b572b8303eb7181706614d8a9ea..b89ffb1b2ac925000609f03210c6d6356deb567e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "import-compress.h"
 #include "string-table.h"
index 859bd0e1a47fddf05b5f7622310e721a4ffd883d..e40f4dba0a78959bad1782be4afb9070bbd7db9a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #if HAVE_BZIP2
index f631f857fc9ccbe932f7e8695a41b77172dcea60..3b43ea112d9d5587ccb549dd349db72bbd71054b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <locale.h>
index 7e9f3441f4da67ed8dea23c240cdccda08382db8..9f5c13ba1634a84121803b3d0beaf17b931c2956 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/fs.h>
 
index de4c3ea337a3a754369dad970e3c8204540b0308..4612a9ffef162e7cde69690a9417a00cae1e2e7a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-event.h"
index 5d2bf22fb25d7d5d27ee561aaf1edfa5506f9fb4..9f68d45eacb615584633808f0a53b4e076979b3b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/fs.h>
 
index 347f522614ebdd9b63ae30c1344f425f73054b5e..afbe98ad055d1f41d3d561439211db827c7f80c5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-event.h"
index 64ec066a8f326e74921b4103d186075b53189bc3..eade0f0ec881f73a44a6539893ee0f02a025c1e6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <locale.h>
index 17944b8dd3aca7782c2ecea917a3d81bfd078840..63f80e0e38bdbba8f94742e84cc4955914086e14 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/prctl.h>
 #include <sys/wait.h>
index 1c15fd883fec6761499a6280cbb67c9db6e57c9a..2207b8620ed2239818d6c00289f9a8a56734ab18 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_importd_sources = files('''
         importd.c
index 2fdb2ba77c5fd0197abb2b0d894823751c68315b..4838e79a15ccc39175f9a11cba87db668cbb6c2a 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This file is part of systemd.
 
index beea5fea676a0c9f2ef9ae409a0a04d6dbc22f86..9736816e332913a1e5665e6ea7feea827947ccd4 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This file is part of systemd.
 
index 34d26d07325084a6d9e8ed1ee0901f750f424ee9..4fe921f26e45a8480252f555bb7efd2256012b48 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index fdc70447e1286854b6d9d1473f52afc747d09e42..33be609aec57310dd08bd63302d20db9d611962a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/prctl.h>
 
index 65f239da2ea164616bb04b15bf036c924f4be8f2..025bcee2bd70168fa0b28058ba6ea874c560d453 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 456179454869a724362fc5c450ef2f93c116d70d..eea00380a4918c0468133f669c8f0f9517bdb53c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/stat.h>
index c907e74060982a6d554d08d3c89b123f4e9b9f08..719196caec9fde7a56cf7b5613330cf2ff9a9e34 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <gcrypt.h>
index c32b77f14b84e6497a0b355e70b1f1f5be4f8243..7956ef0395bdd61aa21cff148cdd3cc38019bc6e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <curl/curl.h>
 #include <linux/fs.h>
index 4ccd65b7e67ebdf30127271d6291d4cf3f9a67f8..e1d450d9dfd83d1efc87ca8632492361ec56f637 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-event.h"
index ede28bee1b1d0c88a856bb75b881062af3f0f218..72e5b8be2701a2ce318496a04b89518e2534e1ea 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <curl/curl.h>
 #include <sys/prctl.h>
index 76f920eea966fe596c94306c47b55c2f0f975981..78d982cf5a055465af3491b50279e6d8557efa8f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-event.h"
index 9b27ec26306e7fbd19cf99580cc8d61f8158e855..9aff377b93fad217efe13de40e78645eb37f0346 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <locale.h>
index e927b60fcee858fcd929d62055336128c87a4349..5a7232d3edcbb1e5596167583e48069b546a1594 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <zlib.h>
 
index 7393d9837ad2f911a72d25863f58fe2a0be8fd3a..f17c159ee4465f2381dfb627afc233d54832bfd7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int qcow2_detect(int fd);
index 1703cfd16752ecbaade6a8d54d632c7edd6098e2..77fed01dd375b87e725d53f961684a8444547ade 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/stat.h>
index 050424e66cc5c483654860fe481e82725b5bf410..e0b78334f5d3cdbb1331020d7c12d266ba897f0a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ctype.h>
 #include <errno.h>
index c4d45020803d6a425d21d4d106d7a32128985714..0723f7d8bbd896173af1d0901c7c93a9101f8d8f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <getopt.h>
@@ -896,7 +896,7 @@ static int parse_argv(int argc, char *argv[]) {
                         if (arg_key_pem)
                                 return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
                                                        "Key file specified twice");
-                        r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_CONNECT_SOCKET, &arg_key_pem, NULL);
+                        r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_CONNECT_SOCKET, NULL, &arg_key_pem, NULL);
                         if (r < 0)
                                 return log_error_errno(r, "Failed to read key file: %m");
                         assert(arg_key_pem);
@@ -906,7 +906,7 @@ static int parse_argv(int argc, char *argv[]) {
                         if (arg_cert_pem)
                                 return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
                                                        "Certificate file specified twice");
-                        r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_CONNECT_SOCKET, &arg_cert_pem, NULL);
+                        r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_CONNECT_SOCKET, NULL, &arg_cert_pem, NULL);
                         if (r < 0)
                                 return log_error_errno(r, "Failed to read certificate file: %m");
                         assert(arg_cert_pem);
@@ -917,7 +917,7 @@ static int parse_argv(int argc, char *argv[]) {
                         if (arg_trust_pem)
                                 return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
                                                        "CA certificate file specified twice");
-                        r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_CONNECT_SOCKET, &arg_trust_pem, NULL);
+                        r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_CONNECT_SOCKET, NULL, &arg_trust_pem, NULL);
                         if (r < 0)
                                 return log_error_errno(r, "Failed to read CA certificate file: %m");
                         assert(arg_trust_pem);
index 0e028a9e4a7a51ca0c4c13e8a51b9c07d7926494..d2aa1815c2220d467e03a0b7ed82c014bb8ab12b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <unistd.h>
@@ -1077,12 +1077,12 @@ static int parse_argv(int argc, char *argv[]) {
 static int load_certificates(char **key, char **cert, char **trust) {
         int r;
 
-        r = read_full_file_full(AT_FDCWD, arg_key ?: PRIV_KEY_FILE, READ_FULL_FILE_CONNECT_SOCKET, key, NULL);
+        r = read_full_file_full(AT_FDCWD, arg_key ?: PRIV_KEY_FILE, READ_FULL_FILE_CONNECT_SOCKET, NULL, key, NULL);
         if (r < 0)
                 return log_error_errno(r, "Failed to read key from file '%s': %m",
                                        arg_key ?: PRIV_KEY_FILE);
 
-        r = read_full_file_full(AT_FDCWD, arg_cert ?: CERT_FILE, READ_FULL_FILE_CONNECT_SOCKET, cert, NULL);
+        r = read_full_file_full(AT_FDCWD, arg_cert ?: CERT_FILE, READ_FULL_FILE_CONNECT_SOCKET, NULL, cert, NULL);
         if (r < 0)
                 return log_error_errno(r, "Failed to read certificate from file '%s': %m",
                                        arg_cert ?: CERT_FILE);
@@ -1090,7 +1090,7 @@ static int load_certificates(char **key, char **cert, char **trust) {
         if (arg_trust_all)
                 log_info("Certificate checking disabled.");
         else {
-                r = read_full_file_full(AT_FDCWD, arg_trust ?: TRUST_FILE, READ_FULL_FILE_CONNECT_SOCKET, trust, NULL);
+                r = read_full_file_full(AT_FDCWD, arg_trust ?: TRUST_FILE, READ_FULL_FILE_CONNECT_SOCKET, NULL, trust, NULL);
                 if (r < 0)
                         return log_error_errno(r, "Failed to read CA certificate file '%s': %m",
                                                arg_trust ?: TRUST_FILE);
index dc047b2d49955a56266f1e142a76fb99a717d456..7bc349c304299e852fc3a0814c5a0709753dab28 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "fd-util.h"
index d6c77360a605adc5663c10e225aee6238a669d9c..a5b51ad4d14563e686b33963404cd0ba7a3288fe 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-event.h"
index ab5e03ab5aece4981ece02867f354c4be9e947fe..764a3ec70bf6506a3ec417173380b2249ee0755d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "journal-remote.h"
index d42256e673fd46876a3ffb0a3bfe2608493e80c4..46b55219d7b521f8ca1ffd5545598fb7c5ab3cfa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "journal-file.h"
index b241d3355d6048118ac71556e13fc0beccf3f75c..0cee84445270112ca8763ed101093916283917e6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 4c25d43abf955a6d352fda60aca0d3836dcb6f01..247ffa9765cb0b5ae80b14f7138c187b4414742a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-event.h"
index da37b3416ff4ce1b4bee2daf122cfc8b9e5f3819..3296c2268eac2bc163e34d8ca52b433adf2f6318 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <curl/curl.h>
 #include <stdbool.h>
index 13ca90f957f6c4eb3812a423aaf1866a6a5a27e9..bf362d0919d10b87c61f08e15a5faa74a47b9551 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <curl/curl.h>
 #include <fcntl.h>
index 4994cd8391dd5d147b842d93d4b1cd056aba56f3..9ff5a7ba5805dd2c29ab133d17743b473667fa80 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #pragma once
 
 #include <inttypes.h>
index 87b8ba6495f826ddcb730a50cb3b3f1f3fb8a025..66cbcc69df8f44fd97c890bb0c8171d8c57e1a77 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_journal_upload_sources = files('''
         journal-upload.h
index 027f2c8ff5802c41655d94a3aaa397c66aead8c3..d3fb0b8b191361a6b40316862b0de3de63f63403 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stddef.h>
 #include <stdio.h>
index 4ca9a5c4f16976775cdc0dccc804c8fd7b5d91a3..7f90a09c7770253070b343d768c0d40ffe1ff939 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <microhttpd.h>
index 7b3dc1e9ab0eed9ddf0512c6132a096497f8b01a..122cdf5d3f6bf9523811bfeba15e7b754522cd49 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "audit-type.h"
 #include "missing_audit.h"
index 39d917894e0f396be695d352f24f651929a5eecd..f2c489856c386f6fa142ea043c190bfd817cba89 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdio.h>
index 2faaa2e28488d77149b78942125ee0f8a6f3a4ad..bccf615189c1f9ba22eed2d02fe941c00755d73c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index b0416da0c65d8f30709c926fcf48688c85bec508..0f6ad8a29e83113fec27dc3c52c159ff627052f7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 092a014651a5c64e1a5c817edf899b4bf67c4e85..df27869fb3281031a560253339b38cdc141a785c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index a1bd4a379ede1661d79082fd3aa934279d20c7f8..aaf186ba69f4a64baf37db144b2eb1f773e0859b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <inttypes.h>
 #include <stdlib.h>
index ab44ff06ede87fee8a568d27610813e17d94d44f..db7f3999ed7b06a5faf50eecf175cdc3a9fd8a71 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <unistd.h>
index 0ef3df89df264a1040d770c293ac951c94df1c8d..7ea72495ef2ed325e4eb20ed90d039508a248544 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  *
  * fsprg v0.1  -  (seekable) forward-secure pseudorandom generator
  * Copyright © 2012 B. Poettering
index 33412675b8c4928a61c8d79c42fb5a562128b9c1..dfe2d7922205b494268ff61bac30bbbba6afe5d2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /*
index da275c2512f6abc415caed1147b22969d16755b2..a5ff987d6ed604244cac240324885a17fff3bb44 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/mman.h>
index 2ef0133040d7ec778abff27a717ef6502dfb85fd..e895722865d6e4734cf0398f1876525b2ffa8dd1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index e9ddbb9dabbe8f364c14b31d8ce21076f393ce14..bd924bda8a1c5a92b7c5ca4aef6afe44380d38d5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-id128.h"
index feff3bd9f03669033185088766b1a9ad2f3ef0d6..1dbe81849c2dd662f77e76e62878cd0eeb0d0784 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index f80bf5d26b1371c5fbf989f70cfa9769ed0a3914..3bdf551287ba91eb360c7a5886ef19bf67a45ff8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index d87b0a11e5899dc55d49500554ba001ab06ea555..c2d29aae78ad7458a07de3e85bda9ed5d5c21417 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
diff --git a/src/journal/journal-qrcode.c b/src/journal/journal-qrcode.c
deleted file mode 100644 (file)
index e8a7655..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
-
-#include <errno.h>
-#include <qrencode.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "alloc-util.h"
-#include "dlfcn-util.h"
-#include "fd-util.h"
-#include "fileio.h"
-#include "journal-qrcode.h"
-#include "locale-util.h"
-#include "macro.h"
-#include "qrcode-util.h"
-#include "terminal-util.h"
-
-int print_qr_code(
-                FILE *output,
-                const char *prefix_text,
-                const void *seed,
-                size_t seed_size,
-                uint64_t start,
-                uint64_t interval,
-                const char *hn,
-                sd_id128_t machine) {
-
-        QRcode* (*sym_QRcode_encodeString)(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive);
-        void (*sym_QRcode_free)(QRcode *qrcode);
-        _cleanup_(dlclosep) void *dl = NULL;
-        _cleanup_free_ char *url = NULL;
-        _cleanup_fclose_ FILE *f = NULL;
-        size_t url_size = 0;
-        QRcode* qr;
-        int r;
-
-        assert(seed);
-        assert(seed_size > 0);
-
-        /* If this is not an UTF-8 system or ANSI colors aren't supported/disabled don't print any QR
-         * codes */
-        if (!is_locale_utf8() || !colors_enabled())
-                return -EOPNOTSUPP;
-
-        dl = dlopen("libqrencode.so.4", RTLD_LAZY);
-        if (!dl)
-                return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
-                                       "QRCODE support is not installed: %s", dlerror());
-
-        r = dlsym_many_and_warn(
-                        dl,
-                        LOG_DEBUG,
-                        &sym_QRcode_encodeString, "QRcode_encodeString",
-                        &sym_QRcode_free, "QRcode_free",
-                        NULL);
-        if (r < 0)
-                return r;
-
-        f = open_memstream_unlocked(&url, &url_size);
-        if (!f)
-                return -ENOMEM;
-
-        fputs("fss://", f);
-
-        for (size_t i = 0; i < seed_size; i++) {
-                if (i > 0 && i % 3 == 0)
-                        fputc('-', f);
-                fprintf(f, "%02x", ((uint8_t*) seed)[i]);
-        }
-
-        fprintf(f, "/%"PRIx64"-%"PRIx64"?machine=" SD_ID128_FORMAT_STR,
-                start,
-                interval,
-                SD_ID128_FORMAT_VAL(machine));
-
-        if (hn)
-                fprintf(f, ";hostname=%s", hn);
-
-        r = fflush_and_check(f);
-        if (r < 0)
-                return r;
-
-        f = safe_fclose(f);
-
-        qr = sym_QRcode_encodeString(url, 0, QR_ECLEVEL_L, QR_MODE_8, 1);
-        if (!qr)
-                return -ENOMEM;
-
-        if (prefix_text)
-                fputs(prefix_text, output);
-
-        write_qrcode(output, qr);
-
-        sym_QRcode_free(qr);
-        return 0;
-}
diff --git a/src/journal/journal-qrcode.h b/src/journal/journal-qrcode.h
deleted file mode 100644 (file)
index 24ae9d3..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
-#pragma once
-
-#include <inttypes.h>
-#include <stdio.h>
-
-#include "sd-id128.h"
-
-int print_qr_code(FILE *f, const char *prefix_text, const void *seed, size_t seed_size, uint64_t start, uint64_t interval, const char *hn, sd_id128_t machine);
index 64882eb4ee4fc67fa8c2c1969223726bd7e1c6ab..fd3fd7ef9c944060cb565f7454e832181ccd4282 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 87d65896c61e7001f6af1fb177b47645c14fa882..c1736641462d6bcf451db992878ad346a73a82fc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/stat.h>
index 0b336ac0136e009c29e46feed5e8344e1e8dec15..d87c847da602040b1390d27d6e20560f27e1834b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index eddb8054bf7dbc84d6b679c22b1cb13bd80b2422..6ea2f4c898a9b67ee3c6cdf57913a3ddee666516 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <stddef.h>
index f0ea31abc145e3e2c118c0a7f6c96acb39264c8a..579033069b56c6cf17814a2598d953109e1e547f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "journal-file.h"
index e43e9d1afac95000f1d7f590bb0f4b2edf2c120b..74412ef17a9b86fcd6ebc7bd59bd2e136a0a75b3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
@@ -43,7 +43,6 @@
 #include "io-util.h"
 #include "journal-def.h"
 #include "journal-internal.h"
-#include "journal-qrcode.h"
 #include "journal-util.h"
 #include "journal-vacuum.h"
 #include "journal-verify.h"
@@ -60,6 +59,7 @@
 #include "path-util.h"
 #include "pcre2-dlopen.h"
 #include "pretty-print.h"
+#include "qrcode-util.h"
 #include "random-util.h"
 #include "rlimit-util.h"
 #include "set.h"
@@ -1779,6 +1779,55 @@ static int add_syslog_identifier(sd_journal *j) {
         return 0;
 }
 
+#if HAVE_GCRYPT
+static int format_journal_url(
+                const void *seed,
+                size_t seed_size,
+                uint64_t start,
+                uint64_t interval,
+                const char *hn,
+                sd_id128_t machine,
+                bool full,
+                char **ret_url) {
+        _cleanup_free_ char *url = NULL;
+        _cleanup_fclose_ FILE *f = NULL;
+        size_t url_size = 0;
+        int r;
+
+        assert(seed);
+        assert(seed_size > 0);
+
+        f = open_memstream_unlocked(&url, &url_size);
+        if (!f)
+                return -ENOMEM;
+
+        if (full)
+                fputs("fss://", f);
+
+        for (size_t i = 0; i < seed_size; i++) {
+                if (i > 0 && i % 3 == 0)
+                        fputc('-', f);
+                fprintf(f, "%02x", ((uint8_t*) seed)[i]);
+        }
+
+        fprintf(f, "/%"PRIx64"-%"PRIx64, start, interval);
+
+        if (full) {
+                fprintf(f, "?machine=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(machine));
+                if (hn)
+                        fprintf(f, ";hostname=%s", hn);
+        }
+
+        r = fflush_and_check(f);
+        if (r < 0)
+                return r;
+
+        f = safe_fclose(f);
+        *ret_url = TAKE_PTR(url);
+        return 0;
+}
+#endif
+
 static int setup_keys(void) {
 #if HAVE_GCRYPT
         size_t mpk_size, seed_size, state_size;
@@ -1893,7 +1942,11 @@ static int setup_keys(void) {
 
         k = mfree(k);
 
-        _cleanup_free_ char *hn = NULL;
+        _cleanup_free_ char *hn = NULL, *key = NULL;
+
+        r = format_journal_url(seed, seed_size, n, arg_interval, hn, machine, false, &key);
+        if (r < 0)
+                return r;
 
         if (on_tty()) {
                 hn = gethostname_malloc();
@@ -1925,21 +1978,19 @@ static int setup_keys(void) {
                 fflush(stderr);
         }
 
-        for (size_t i = 0; i < seed_size; i++) {
-                if (i > 0 && i % 3 == 0)
-                        putchar('-');
-                printf("%02x", ((uint8_t*) seed)[i]);
-        }
-        printf("/%llx-%llx\n", (unsigned long long) n, (unsigned long long) arg_interval);
+        puts(key);
 
         if (on_tty()) {
                 fprintf(stderr, "%s", ansi_normal());
 #if HAVE_QRENCODE
-                (void) print_qr_code(stderr,
-                                     "\nTo transfer the verification key to your phone scan the QR code below:\n",
-                                     seed, seed_size,
-                                     n, arg_interval,
-                                     hn, machine);
+                _cleanup_free_ char *url = NULL;
+                r = format_journal_url(seed, seed_size, n, arg_interval, hn, machine, true, &url);
+                if (r < 0)
+                        return r;
+
+                (void) print_qrcode(stderr,
+                                    "To transfer the verification key to your phone scan the QR code below",
+                                    url);
 #endif
         }
 
@@ -2621,8 +2672,8 @@ int main(int argc, char *argv[]) {
                                 if (r >= 0) {
                                         if (previous_boot_id_valid &&
                                             !sd_id128_equal(boot_id, previous_boot_id))
-                                                printf("%s-- Reboot --%s\n",
-                                                       ansi_highlight(), ansi_normal());
+                                                printf("%s-- Boot "SD_ID128_FORMAT_STR" --%s\n",
+                                                       ansi_highlight(), SD_ID128_FORMAT_VAL(boot_id), ansi_normal());
 
                                         previous_boot_id = boot_id;
                                         previous_boot_id_valid = true;
index a5a78b7746948cdc23c108ea6f63e40371c4d34a..744f750ca34ed9bf70fb83afc2e11185f93688c3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "audit-type.h"
index df41f8143553dac28451daa509df393a0bbf9603..79f3da90c1e93e76f24c67e9b4d2ffba5b25bf34 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "journald-server.h"
index 80e29585978f527cb91b1061e712bffbcf1b1d59..2035e2d9b6962cd9a3fb8d71347b7928cb31bf97 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/socket.h>
@@ -66,7 +66,7 @@ void server_forward_console(
         /* Second: identifier and PID */
         if (ucred) {
                 if (!identifier) {
-                        get_process_comm(ucred->pid, &ident_buf);
+                        (void) get_process_comm(ucred->pid, &ident_buf);
                         identifier = ident_buf;
                 }
 
index 3def00ad5d5adad7bb747190b149b23869fb323d..0a26f9c876c38b5c03b5c027578ba064eeb05b47 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "journald-server.h"
index bac67036b0c94b7177f29e89f41df9dbc8d3c210..8736495a4bdfb1eee441826413643e9a35756960 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_SELINUX
 #include <selinux/selinux.h>
index 91f0302be4837e87b47ac70060048d38d322a0e6..9bf74b23471b9d83fa21da7d761659105d8e8afd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 6e7c806fd8218bde2f51a36f395dd607579504c4..e7255b0355b702821f7608038a379effb5217dd4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/epoll.h>
@@ -58,7 +58,7 @@ void server_forward_kmsg(
         /* Second: identifier and PID */
         if (ucred) {
                 if (!identifier) {
-                        get_process_comm(ucred->pid, &ident_buf);
+                        (void) get_process_comm(ucred->pid, &ident_buf);
                         identifier = ident_buf;
                 }
 
index 2326bc8c933de27537999852ee68474388f8c91e..bd288c57a2de725a031ef4fb27924644444a4230 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "journald-server.h"
index f2b867da3d3cd5e1993157fe1217df3f8a2f4db9..1c5849ed5535e6d636634f1387048e3a5edb2f6d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stddef.h>
 #include <sys/epoll.h>
@@ -483,13 +483,11 @@ int server_open_native_socket(Server *s, const char *native_socket) {
         if (r < 0)
                 return log_error_errno(r, "SO_PASSCRED failed: %m");
 
-#if HAVE_SELINUX
         if (mac_selinux_use()) {
                 r = setsockopt_int(s->native_fd, SOL_SOCKET, SO_PASSSEC, true);
                 if (r < 0)
                         log_warning_errno(r, "SO_PASSSEC failed: %m");
         }
-#endif
 
         r = setsockopt_int(s->native_fd, SOL_SOCKET, SO_TIMESTAMP, true);
         if (r < 0)
index 8d06636262ef933210b9f1e8298fd908565e74be..7bbaaed181886debbc69643dceed6b8b10d9b5c7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "journald-server.h"
index fa21e7da29c8c226fef3beea79d9fdac107e63fc..f464b6e0d828f4c630a0796df1d13f839cddfc59 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 0fff8767acc62be3c9c8c9634c0b19fb4d5cd7a3..8def60f052bc353d10518125fd1aa32f6e6919a3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "time-util.h"
index ab6aadcb7813fe39d39f415abd2ba2d7b8b75fa8..10ebc3e22e8d26f52055c76e6832547b619db4a8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_SELINUX
 #include <selinux/selinux.h>
index b01ade5aeee4b93cb4f8289436f7620aa5542e19..5fb145e254b5593524f483160954c6a527eb0da2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index b1c35a1af292b92cdd08ed81192f73027109e464..3241ef2bf7765e833be88cdd4a1dd0090436416b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stddef.h>
 #include <unistd.h>
index 7ab0016618489cb53f19bad94dc9014d39b9414e..0a033b4dceb41a3d1d87c2b2128d09cdf74ceda3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct StdoutStream StdoutStream;
index 46013c38784d2f1c88b7278bac8f70839f702114..925bd502d3a3d7a414abb5cddb451849593b3f0f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stddef.h>
 #include <sys/epoll.h>
@@ -70,9 +70,8 @@ static void forward_syslog_iovec(
                 msghdr.msg_controllen = cmsg->cmsg_len;
         }
 
-        /* Forward the syslog message we received via /dev/log to
-         * /run/systemd/syslog. Unfortunately we currently can't set
-         * the SO_TIMESTAMP auxiliary data, and hence we don't. */
+        /* Forward the syslog message we received via /dev/log to /run/systemd/syslog. Unfortunately we
+         * currently can't set the SO_TIMESTAMP auxiliary data, and hence we don't. */
 
         if (sendmsg(s->syslog_fd, &msghdr, MSG_NOSIGNAL) >= 0)
                 return;
@@ -153,7 +152,7 @@ void server_forward_syslog(Server *s, int priority, const char *identifier, cons
         /* Third: identifier and PID */
         if (ucred) {
                 if (!identifier) {
-                        get_process_comm(ucred->pid, &ident_buf);
+                        (void) get_process_comm(ucred->pid, &ident_buf);
                         identifier = ident_buf;
                 }
 
@@ -484,13 +483,11 @@ int server_open_syslog_socket(Server *s, const char *syslog_socket) {
         if (r < 0)
                 return log_error_errno(r, "SO_PASSCRED failed: %m");
 
-#if HAVE_SELINUX
         if (mac_selinux_use()) {
                 r = setsockopt_int(s->syslog_fd, SOL_SOCKET, SO_PASSSEC, true);
                 if (r < 0)
                         log_warning_errno(r, "SO_PASSSEC failed: %m");
         }
-#endif
 
         r = setsockopt_int(s->syslog_fd, SOL_SOCKET, SO_TIMESTAMP, true);
         if (r < 0)
index 5ad601001ca3e8f27ea7dd3946932708b2c26de3..3bc3ffddb88af482d679ddfab3f0cc2b952ae76e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "journald-server.h"
index 370c9b32e2da88ffb3cc6314b63ced0757991e9d..21ec5a785bf4b5f937eec613871ec054899f08d3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "format-util.h"
@@ -27,7 +27,7 @@ void server_forward_wall(
 
         if (ucred) {
                 if (!identifier) {
-                        get_process_comm(ucred->pid, &ident_buf);
+                        (void) get_process_comm(ucred->pid, &ident_buf);
                         identifier = ident_buf;
                 }
 
index 026649eb7c9202a30402507dbc561b25f1ccea07..3f98c35bde1583671acd8c505294683f2f8c6925 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/socket.h>
index 9a7cb3e1fc457aa89da9e41ac8466b54fe51b484..ef7cebce34c6de38b527f439a9cd2a042e4160ee 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index 74c80b724df30494b6c694515e7ca8f715de6d25..39967f21cdcecf3e2645921c7ad802a976143fc9 100644 (file)
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: LicenseRef-lookup3-public-domain */
 /* Slightly modified by Lennart Poettering, to avoid name clashes, and
  * unexport a few functions. */
 
index 0a01269e433980b1c89f933e5f06521d70e2728f..04e493e95eacb6d26e0e256f1aef214052d9065b 100644 (file)
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: LicenseRef-lookup3-public-domain */
 #pragma once
 
 #include <inttypes.h>
index 3a590bdc6c50777a4033359d2a05f3a793b543c0..520e33c0b82ab557603fe6450877aa70c7a166ca 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 journal_client_sources = files('''
         audit-type.c
@@ -107,11 +107,6 @@ journalctl_sources = files('''
         pcre2-dlopen.h
 '''.split())
 
-if conf.get('HAVE_QRENCODE') == 1
-        journalctl_sources += files('journal-qrcode.c',
-                                    'journal-qrcode.h')
-endif
-
 install_data('journald.conf',
              install_dir : pkgsysconfdir)
 
index f627630c9c59cddea6573fcb6f2eee9311dc11c5..9882016436e803e67d1a4925ece39f0ab66ed046 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdlib.h>
index bf70d32027cadf8a38caecaab6eac0f40b5dded2..28d5ab1a5677e265cbb70f070d3d05eb405c5621 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 1e1108c657ca1467e6afa922bab1389920649c08..fbe81f99eb44a098464e8f6831d5b943305f2f66 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "dlfcn-util.h"
index e7cb0a5907b784a4fabd4bae59a9970a2f54882a..130633414474024bac686edb37f61532cddf97c5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #if HAVE_PCRE2
index 731fc51212da55f068af41f009300172ec8e6b91..cb1ab88ca57d1ba38cb3731756dd843a50a54074 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
@@ -883,6 +883,7 @@ static int real_journal_next_skip(sd_journal *j, direction_t direction, uint64_t
 
         assert_return(j, -EINVAL);
         assert_return(!journal_pid_changed(j), -ECHILD);
+        assert_return(skip <= INT_MAX, -ERANGE);
 
         if (skip == 0) {
                 /* If this is not a discrete skip, then at least
index a8315d0633e87af830b764a8d3ac04393318ab91..5adbf0d5b6256a859f3ed40d3717f21544a0d436 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 #include <linux/audit.h>
index 0f1447af280dac3be5cd0657528a6073eb1de9ae..982fec0d8db41ecb6bdd61be98c83b127ec443c0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 35823a8da5e43e715e9956cba9dc5a3a82a271d0..001976076eddad9e552b93f56d6599e1ab817bb4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "compress.h"
index 96a441a5a6021599d025159bec127ca7f87bb9e0..ccd46050166c2e9085dc1d44220a633ede0c12e2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/stat.h>
 
index 1482490411eed1ad0fe1405f4e4a474d46e6b51e..4f29e1b310fbf073967b8ab43ed159924adab276 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdbool.h>
 
index 8e839920b9b2245f8e3611ca3808300693ea0d3f..03fe8e2b300a686d245ebae747e4f997c0e00e61 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index 5fedd3ed20464ad70e23261f85c7123c12346dc8..dad277dd662118607e612a3eb0d2a9e446f13304 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <unistd.h>
index d10e61080d23051b1a7c8409ab089bfb513d234a..80aff75bb969e4bffef0b0a97ae787c167ff6684 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-journal.h"
 
index c0bda68811c2fe4bf885ab12af99e5b82158d604..8c78c3bbf03030c48ceb6fb55f9a8a1b22edee63 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <unistd.h>
index b17527916cff62f623cd6580135ae5dbddcc010d..ded67563d7af4c386c7e8ee55bc5d452ffc70a58 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index 4265735f0f167b7c616e4037ed1141bd61721854..75bd8e7b856bd373e5007a9cbba0acd50b222c46 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdlib.h>
index 924d727d97ce92b90bf5e2642b3d204f4658d451..a121859e08feb3d56db359e5e279675aa8fa31b4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <unistd.h>
index 45be7e5bc4457c17f498502e5e820897c980d9b9..33f412956b23f7b43b2193893765ed828ba4d713 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "journald-syslog.h"
index 2893a7c00fe9c63c8b66b79fcaceff3cb87bcd0d..d208e4650c209a8ec70ca29566f357f30a52e0b3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <stdio.h>
index 5850bb8eaa347b4a459df798f6214c5b4fe9294b..f8f08b5afc8b09c8915e2c451fdeefd746840564 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <unistd.h>
index 8f755efdde27f5f98e48f6ffd7af86ec1d3c4561..d1d28768f5b6e454d5c3aab517a7bb5bad693b03 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <stdlib.h>
index 0ae07fcf325be7aff64f28948c11b89b418f3729..e7457e9d06cbde5f3ec48a440ebb88d59a5287fc 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # This file is part of systemd.
 #
index 9ae342dfba87b3d5c1798e5d7edc29ed82693499..851e8275902d438a03ea046c9ee570ff7fb67c44 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 want_kernel_install = get_option('kernel-install')
 
index 4fbf2bbc961ceb46c468023115d1adf2cb37b76f..327fb2ff3e9ea6106bb35b316263c63d07aeb428 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Axis Communications AB. All rights reserved.
 ***/
index 9a4427e831ac7430c9d309a1978a259666150511..2dac8cfbaa459e622de0fc59af625dd3cb345637 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index 2c48d095f4236453735a602a2d79fdf5e0729630..a6f37522d1ee96f01f2282ecb25c4af0a05f4c70 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 extern const struct hash_ops dhcp_option_hash_ops;
index e7dbec1511cd5f831f65e393218141e2325be398..ea9c77aa9da43046e2ddd46b9bd5ed2f94063c90 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/if_infiniband.h>
 #include <net/if_arp.h>
index 76abd6583e3a3905ed2cd3349a6040f56e96d5b2..e9f2ea7e95ebe2e00b1cce2a66fea5ad0ba90c60 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-id128.h"
index 7e8149487a8d03cd71ae7072a669655711f752f9..40e6b1f26f7a3c7e4d38f352f23dc9f23647e804 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
@@ -29,10 +29,10 @@ typedef struct DHCPServerData {
 
 extern const struct hash_ops dhcp_option_hash_ops;
 
-int dhcp_network_bind_raw_socket(int ifindex, union sockaddr_union *link,
-                                 uint32_t xid, const uint8_t *mac_addr,
-                                 size_t mac_addr_len, uint16_t arp_type,
-                                 uint16_t port);
+int dhcp_network_bind_raw_socket(int ifindex, union sockaddr_union *link, uint32_t xid,
+                                 const uint8_t *mac_addr, size_t mac_addr_len,
+                                 const uint8_t *bcast_addr, size_t bcast_addr_len,
+                                 uint16_t arp_type, uint16_t port);
 int dhcp_network_bind_udp_socket(int ifindex, be32_t address, uint16_t port, int ip_service_type);
 int dhcp_network_send_raw_socket(int s, const union sockaddr_union *link,
                                  const void *packet, size_t len);
index 66222eaddbbe1c0564029a6ac36194b5644df788..49392d1beac483de7a9c7efffdb1a6160680dddf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index f48e7c34909291117744fbb79a8c6966a531b960..6c82d5508ec242ea6b66a170c1b2bc5096dad52f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2013 Intel Corporation. All rights reserved.
 ***/
@@ -19,9 +19,9 @@
 #include "unaligned.h"
 
 static int _bind_raw_socket(int ifindex, union sockaddr_union *link,
-                            uint32_t xid, const uint8_t *mac_addr,
-                            size_t mac_addr_len,
+                            uint32_t xid,
                             const uint8_t *bcast_addr,
+                            size_t bcast_addr_len,
                             const struct ether_addr *eth_mac,
                             uint16_t arp_type, uint8_t dhcp_hlen,
                             uint16_t port) {
@@ -104,9 +104,9 @@ static int _bind_raw_socket(int ifindex, union sockaddr_union *link,
                 .sll_protocol = htobe16(ETH_P_IP),
                 .sll_ifindex = ifindex,
                 .sll_hatype = htobe16(arp_type),
-                .sll_halen = mac_addr_len,
+                .sll_halen = bcast_addr_len,
         };
-        memcpy(link->ll.sll_addr, bcast_addr, mac_addr_len);
+        memcpy(link->ll.sll_addr, bcast_addr, bcast_addr_len);
 
         r = bind(s, &link->sa, SOCKADDR_LL_LEN(link->ll));
         if (r < 0)
@@ -115,34 +115,44 @@ static int _bind_raw_socket(int ifindex, union sockaddr_union *link,
         return TAKE_FD(s);
 }
 
-int dhcp_network_bind_raw_socket(int ifindex, union sockaddr_union *link,
-                                 uint32_t xid, const uint8_t *mac_addr,
-                                 size_t mac_addr_len, uint16_t arp_type,
-                                 uint16_t port) {
+int dhcp_network_bind_raw_socket(int ifindex, union sockaddr_union *link, uint32_t xid,
+                                 const uint8_t *mac_addr, size_t mac_addr_len,
+                                 const uint8_t *bcast_addr, size_t bcast_addr_len,
+                                 uint16_t arp_type, uint16_t port) {
         static const uint8_t eth_bcast[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
         /* Default broadcast address for IPoIB */
         static const uint8_t ib_bcast[] = {
                 0x00, 0xff, 0xff, 0xff, 0xff, 0x12, 0x40, 0x1b,
                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                 0xff, 0xff, 0xff, 0xff
-          };
+        };
         struct ether_addr eth_mac = { { 0, 0, 0, 0, 0, 0 } };
-        const uint8_t *bcast_addr = NULL;
+        const uint8_t *default_bcast_addr;
+        size_t expected_bcast_addr_len;
         uint8_t dhcp_hlen = 0;
 
         if (arp_type == ARPHRD_ETHER) {
                 assert_return(mac_addr_len == ETH_ALEN, -EINVAL);
                 memcpy(&eth_mac, mac_addr, ETH_ALEN);
-                bcast_addr = eth_bcast;
                 dhcp_hlen = ETH_ALEN;
+
+                default_bcast_addr = eth_bcast;
+                expected_bcast_addr_len = ETH_ALEN;
         } else if (arp_type == ARPHRD_INFINIBAND) {
-                assert_return(mac_addr_len == INFINIBAND_ALEN, -EINVAL);
-                bcast_addr = ib_bcast;
+                default_bcast_addr = ib_bcast;
+                expected_bcast_addr_len = INFINIBAND_ALEN;
         } else
                 return -EINVAL;
 
-        return _bind_raw_socket(ifindex, link, xid, mac_addr, mac_addr_len,
-                                bcast_addr, &eth_mac, arp_type, dhcp_hlen, port);
+        if (bcast_addr && bcast_addr_len > 0)
+                assert_return(bcast_addr_len == expected_bcast_addr_len, -EINVAL);
+        else {
+                bcast_addr = default_bcast_addr;
+                bcast_addr_len = expected_bcast_addr_len;
+        }
+
+        return _bind_raw_socket(ifindex, link, xid, bcast_addr, bcast_addr_len,
+                                &eth_mac, arp_type, dhcp_hlen, port);
 }
 
 int dhcp_network_bind_udp_socket(int ifindex, be32_t address, uint16_t port, int ip_service_type) {
index 6fe8a3779d8078037f8bae0b9c69cd7598903f52..70753c68d847a160ef334eb9a0b6f2a427a8c3eb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2013 Intel Corporation. All rights reserved.
 ***/
index fe7d51703badb3669c65637a1176dafe7abf442a..cace916f4413b6beca58589ac0b3b1e642d7fa3a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2013 Intel Corporation. All rights reserved.
 ***/
index f03663248a67cc16bc72ad29a2916ad236c7561a..11f4201ab2a56719d2ec3dabfa09bb22621619c8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index 64c18ed570750ac96f5fb55e211296c3b25384fa..b57737ee25c56ea113bac2020644b6411a02d199 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index 9ce6dcd02c3b5611febadfaba091208cd6557f60..24d8a314a48d4ade47f2de95656b5ded99394674 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index df6c95e0b360c0dac6e3ef86ade805c0e4624c76..e9e2362d6f1c5a0c875408cd85b6a81e064a443a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index e2efa8bbe347b12da0400688f1ec64ed284e3244..4f7bd53de4ed86ebe59fba1f850caaf2b216b9da 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Intel Corporation. All rights reserved.
 ***/
index 030173a58a6a3695e3c5fa9023c847180e3ba6de..e2bf4f7e36fec44ca419190e1096ab670efed914 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014-2015 Intel Corporation. All rights reserved.
 ***/
index f7a27028608b56577d5ff087f4d62d4006ae02fb..c700363803bcd5471dcdc1060d530c698f8d543f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index d9690293f13e16786ea0331d9e0309d15799a154..4af012534ab324c8371261aae67a95b6de48a935 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Intel Corporation. All rights reserved.
 ***/
index ac68ded1fe9653d6b8485a4b990c612a3d86bb95..50d21b5b593355ed213c67e4cf75456f7dcbece4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index 9598438dbaee12e11a87fa08421c241c8fc8b27f..f23695f974df5b5153aa2f82ca2e133eb9a5b09a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-event.h"
index 02645b2bcd79dc291406d8258de2ecab1500ddb8..546ae1c980fa167f4f35d4d4f15b6bb1f31cfff8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "escape.h"
index 74175edf545cc9aa4530c845e1ac795e64cbd0d0..a5718c8c31e48516dc98505b4e27665ad94db860 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index de7e2bf847204f95254be733922bb3fa16ae5e16..9616cb6250bba70d9f51f8d30b974fd6191178e5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/filter.h>
 #include <netinet/if_ether.h>
index e4ed2898a5c684f76c4c30733f1683fce72d9517..bc69b324c2c329c7601846400c871c99a79ccf6c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-event.h"
index 7fa0c67956213bfc9604e98ae4d897818ab15875..604cfd999bc42f21d62928cf764215eea9d597dc 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 sources = files('''
         sd-dhcp-client.c
index c66dc3d44316640950aad0049611ce1e4b6952d5..65f9371b20c1761e1d6eb9982d32a27775c50c63 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index a2a93663386dddade410375fdcc8f06d28e92089..3cb71dbdac9a3c07d0d5a900aba7e04acdf56e47 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Intel Corporation. All rights reserved.
 ***/
index 2e2c1afd122e6bec9b054de8d85940867ac527ee..cb3a56452be69f7ad3a2b45225ed19ad6b3ff377 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index 459d13ad7dfe299d825d0e57e1d81755f12877a1..e4a07419e41d2f6fe96d5525a51c605b5ab5110b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <linux/if.h>
index e4c11235b62f2f4f85ae189cb20f52f988fc80bb..5dae5ab306afefe50bd4bcfbe2454343efd1ed4b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/nl80211.h>
index fb6617bedd3dc6f453770477970816df83f06999..3dbeffe0c65a5a3e147f7bcee04a0786b49af33b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index 53c43508749a7e472644799e3f4b1c5c079e01ef..3ce45b2b0db7e363534ccfbb8de3364a591bce95 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2013 Intel Corporation. All rights reserved.
 ***/
 #include "sd-dhcp-client.h"
 
 #include "alloc-util.h"
-#include "async.h"
 #include "dhcp-identifier.h"
 #include "dhcp-internal.h"
 #include "dhcp-lease-internal.h"
 #include "dhcp-protocol.h"
 #include "dns-domain.h"
 #include "event-util.h"
+#include "fd-util.h"
 #include "hostname-util.h"
 #include "io-util.h"
 #include "memory-util.h"
@@ -82,6 +82,8 @@ struct sd_dhcp_client {
         be32_t last_addr;
         uint8_t mac_addr[MAX_MAC_ADDR_LEN];
         size_t mac_addr_len;
+        uint8_t bcast_addr[MAX_MAC_ADDR_LEN];
+        size_t bcast_addr_len;
         uint16_t arp_type;
         sd_dhcp_client_id client_id;
         size_t client_id_len;
@@ -277,6 +279,7 @@ int sd_dhcp_client_set_ifindex(sd_dhcp_client *client, int ifindex) {
 int sd_dhcp_client_set_mac(
                 sd_dhcp_client *client,
                 const uint8_t *addr,
+                const uint8_t *bcast_addr,
                 size_t addr_len,
                 uint16_t arp_type) {
 
@@ -297,7 +300,9 @@ int sd_dhcp_client_set_mac(
                 return -EINVAL;
 
         if (client->mac_addr_len == addr_len &&
-            memcmp(&client->mac_addr, addr, addr_len) == 0)
+            memcmp(&client->mac_addr, addr, addr_len) == 0 &&
+            (client->bcast_addr_len > 0) == !!bcast_addr &&
+            (!bcast_addr || memcmp(&client->bcast_addr, bcast_addr, addr_len) == 0))
                 return 0;
 
         if (!IN_SET(client->state, DHCP_STATE_INIT, DHCP_STATE_STOPPED)) {
@@ -309,6 +314,12 @@ int sd_dhcp_client_set_mac(
         memcpy(&client->mac_addr, addr, addr_len);
         client->mac_addr_len = addr_len;
         client->arp_type = arp_type;
+        client->bcast_addr_len = 0;
+
+        if (bcast_addr) {
+                memcpy(&client->bcast_addr, bcast_addr, addr_len);
+                client->bcast_addr_len = addr_len;
+        }
 
         if (need_restart && client->state != DHCP_STATE_STOPPED) {
                 r = sd_dhcp_client_start(client);
@@ -681,7 +692,7 @@ static int client_initialize(sd_dhcp_client *client) {
 
         client->receive_message = sd_event_source_unref(client->receive_message);
 
-        client->fd = asynchronous_close(client->fd);
+        client->fd = safe_close(client->fd);
 
         (void) event_source_disable(client->timeout_resend);
         (void) event_source_disable(client->timeout_t1);
@@ -1381,9 +1392,10 @@ static int client_start_delayed(sd_dhcp_client *client) {
 
         client->xid = random_u32();
 
-        r = dhcp_network_bind_raw_socket(client->ifindex, &client->link,
-                                         client->xid, client->mac_addr,
-                                         client->mac_addr_len, client->arp_type, client->port);
+        r = dhcp_network_bind_raw_socket(client->ifindex, &client->link, client->xid,
+                                         client->mac_addr, client->mac_addr_len,
+                                         client->bcast_addr, client->bcast_addr_len,
+                                         client->arp_type, client->port);
         if (r < 0) {
                 client_stop(client, r);
                 return r;
@@ -1426,15 +1438,15 @@ static int client_timeout_t2(sd_event_source *s, uint64_t usec, void *userdata)
         assert(client);
 
         client->receive_message = sd_event_source_unref(client->receive_message);
-        client->fd = asynchronous_close(client->fd);
+        client->fd = safe_close(client->fd);
 
         client->state = DHCP_STATE_REBINDING;
         client->attempt = 0;
 
-        r = dhcp_network_bind_raw_socket(client->ifindex, &client->link,
-                                         client->xid, client->mac_addr,
-                                         client->mac_addr_len, client->arp_type,
-                                         client->port);
+        r = dhcp_network_bind_raw_socket(client->ifindex, &client->link, client->xid,
+                                         client->mac_addr, client->mac_addr_len,
+                                         client->bcast_addr, client->bcast_addr_len,
+                                         client->arp_type, client->port);
         if (r < 0) {
                 client_stop(client, r);
                 return 0;
@@ -1783,7 +1795,7 @@ static int client_handle_message(sd_dhcp_client *client, DHCPMessage *message, i
                         (void) event_source_disable(client->timeout_resend);
                         client->receive_message =
                                 sd_event_source_unref(client->receive_message);
-                        client->fd = asynchronous_close(client->fd);
+                        client->fd = safe_close(client->fd);
 
                         if (IN_SET(client->state, DHCP_STATE_REQUESTING,
                                    DHCP_STATE_REBOOTING))
index 5f89d00452e640a8625e80c0be13af420fb9d41a..8a138ff4b624fa69bcfd688f29f4d568d3209d5a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2013 Intel Corporation. All rights reserved.
 ***/
index cab77070170779ab7188cdd225ad1444e3eab5f2..dfced720c23cf9a712fe7a4cd52a6dfd4cdfd685 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2013 Intel Corporation. All rights reserved.
 ***/
index 6d27c4685eddd030cc03357ab0d2c41ab3e07d6d..566dd5b2c49b3c082d36683444e8d81082f0217f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014-2015 Intel Corporation. All rights reserved.
 ***/
index 9aad22124dce6cc9ddb51e36fe040d07e5ed73d3..d6f0708c942a81220485288113bd692195d06091 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014-2015 Intel Corporation. All rights reserved.
 ***/
index ff333914e903e8c6db864721d1345face59aeb7a..2e1e46c1c5081bbdd8092a7062391d4272a97c16 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Axis Communications AB. All rights reserved.
 ***/
index 293a4644a23b8fbbddf15a410d729a63aa76108f..09f2bda7f088cb216394db1fc720099b3aaffe1d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Axis Communications AB. All rights reserved.
 ***/
index e536f90d19478ba14db4091ea09bebbd7ab430d0..8b666522cb08e6d5786e9a97fb442c0ea800a63f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <linux/sockios.h>
index 92e772d352fc2a64b95620ed9b62d16f73d81d5a..db7ada60a899e57ba1a957daca4cbcc6c48f78fe 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Intel Corporation. All rights reserved.
 ***/
index 9656d7c969ce9ca44d0369cdaba2d705900ddd36..8beb845d79ee1e1a42cd049474e9389204cf5cd5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2017 Intel Corporation. All rights reserved.
 ***/
@@ -466,14 +466,14 @@ _public_ int sd_radv_set_hop_limit(sd_radv *ra, uint8_t hop_limit) {
         return 0;
 }
 
-_public_ int sd_radv_set_router_lifetime(sd_radv *ra, uint32_t router_lifetime) {
+_public_ int sd_radv_set_router_lifetime(sd_radv *ra, uint16_t router_lifetime) {
         assert_return(ra, -EINVAL);
 
         if (ra->state != SD_RADV_STATE_IDLE)
                 return -EBUSY;
 
-        /* RFC 4191, Section 2.2, "...If the Router Lifetime is zero, the
-           preference value MUST be set to (00) by the sender..." */
+        /* RFC 4191, Section 2.2, "...If the Router Lifetime is zero, the preference value MUST be set
+         * to (00) by the sender..." */
         if (router_lifetime == 0 &&
             (ra->flags & (0x3 << 3)) != (SD_NDISC_PREFERENCE_MEDIUM << 3))
                 return -ETIME;
@@ -506,17 +506,20 @@ _public_ int sd_radv_set_other_information(sd_radv *ra, int other) {
 }
 
 _public_ int sd_radv_set_preference(sd_radv *ra, unsigned preference) {
-        int r = 0;
-
         assert_return(ra, -EINVAL);
         assert_return(IN_SET(preference,
                              SD_NDISC_PREFERENCE_LOW,
                              SD_NDISC_PREFERENCE_MEDIUM,
                              SD_NDISC_PREFERENCE_HIGH), -EINVAL);
 
+        /* RFC 4191, Section 2.2, "...If the Router Lifetime is zero, the preference value MUST be set
+         * to (00) by the sender..." */
+        if (ra->lifetime == 0 && preference != SD_NDISC_PREFERENCE_MEDIUM)
+                return -EINVAL;
+
         ra->flags = (ra->flags & ~(0x3 << 3)) | (preference << 3);
 
-        return r;
+        return 0;
 }
 
 _public_ int sd_radv_add_prefix(sd_radv *ra, sd_radv_prefix *p, int dynamic) {
index 27a1a2140024c6acf5c0c7ec65ae7d93ca96ce24..f4aab85ed40b47d87044a92801a5ed7be1b90bd0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdlib.h>
index 4d748ea66d0750eddd655b603c59a1b816b0bbda..d39d1f57a07ef1d53195b7fa00a01cba64e44f31 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2013 Intel Corporation. All rights reserved.
 ***/
@@ -23,6 +23,7 @@
 #include "util.h"
 
 static uint8_t mac_addr[] = {'A', 'B', 'C', '1', '2', '3'};
+static uint8_t bcast_addr[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
 
 typedef int (*test_callback_recv_t)(size_t size, DHCPMessage *dhcp);
 
@@ -247,6 +248,7 @@ int dhcp_network_bind_raw_socket(
                 union sockaddr_union *link,
                 uint32_t id,
                 const uint8_t *addr, size_t addr_len,
+                const uint8_t *bcaddr, size_t bcaddr_len,
                 uint16_t arp_type, uint16_t port) {
 
         if (socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC | SOCK_NONBLOCK, 0, test_fd) < 0)
@@ -296,7 +298,7 @@ static void test_discover_message(sd_event *e) {
         assert_se(r >= 0);
 
         assert_se(sd_dhcp_client_set_ifindex(client, 42) >= 0);
-        assert_se(sd_dhcp_client_set_mac(client, mac_addr, ETH_ALEN, ARPHRD_ETHER) >= 0);
+        assert_se(sd_dhcp_client_set_mac(client, mac_addr, bcast_addr, ETH_ALEN, ARPHRD_ETHER) >= 0);
 
         assert_se(sd_dhcp_client_set_request_option(client, 248) >= 0);
 
@@ -513,7 +515,7 @@ static void test_addr_acq(sd_event *e) {
         assert_se(r >= 0);
 
         assert_se(sd_dhcp_client_set_ifindex(client, 42) >= 0);
-        assert_se(sd_dhcp_client_set_mac(client, mac_addr, ETH_ALEN, ARPHRD_ETHER) >= 0);
+        assert_se(sd_dhcp_client_set_mac(client, mac_addr, bcast_addr, ETH_ALEN, ARPHRD_ETHER) >= 0);
 
         assert_se(sd_dhcp_client_set_callback(client, test_addr_acq_acquired, e) >= 0);
 
index 086f8b5fd96c946817f1c99ec6d5f56d1b4ef9ce..1eebe3a10f95cf9249be62dd8e1b77913463bb70 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <net/if_arp.h>
index 16a4f16bfa4a6b961824d40c81a6b289c2551698..e91b440fe90952d9cbd301d0405cf0a60a8ba8f5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2013 Intel Corporation. All rights reserved.
 ***/
index e198814ba0732a931ca7f054aa8959e9ac284ce3..e6a43dcd5eec44d62bade6ccff2515e78cf521c5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Intel Corporation. All rights reserved.
 ***/
index fd827ff40144e37cadef649df6fd22cddc03eeb4..a253acbd8355409b762e62404de2371669a9bb43 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <net/if.h>
index 310b658e188a0eb203041ac7f8c6d97e017feed5..b213f41889e96e0e9ae1e55e63a6a0036df9b376 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Axis Communications AB. All rights reserved.
 ***/
index a2ac65095f2c6d7b065c75015a4b4c78eeb65c77..c52d422fce2c2c6810a420d9932a65150e1addf5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <errno.h>
index 942a128cae2d6f0aabc3206c0acf6b14689697b3..927e21b3cdf69d923aa0eed58167b0a556f3b070 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2017 Intel Corporation. All rights reserved.
 ***/
index 2c4ffb94dd8f278093aa8a0c0392a72a3ce58e12..1b2bba889d849f243a3aa0c0e238dd9120ca2190 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Intel Corporation. All rights reserved.
 ***/
index 534cc7856401db6fb750ff3b332511c90fc70747..9f13226889961a96659498ac9c460ff11a2628b9 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #include <errno.h>
 
 #include "dhcp-lease-internal.h"
index 034bd24dc4b0f56c9093cf71f507b82d16bbf333..1baf91f05bb67e749efeb7acfabd7da4ff7d88b0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "mempool.h"
 
index a010dea2e92f7d7e7961ceb91eb9b1b0302ed37a..74f33b70e668a7b97eef8bcc52e5f23ea7aa5051 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 6e7f2eee53b209e5c1b58fd9d0695337cfa64deb..f83b364c9650bd373de85ccf3388f9f403c1447c 100644 (file)
@@ -1,5 +1,5 @@
 /***
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   systemd is free software; you can redistribute it and/or modify it
   under the terms of the GNU Lesser General Public License as published by
index aa1ed9b7dd96dc45fe78440844f6a3d8ed4649a6..50716f7b944afec66bc3c730c3219a6370a00365 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 id128_sources = files('''
         sd-id128/id128-util.c
index dc9a2fdc3a56f3f6c37682a31f47f817d24bc98c..ef1fa3711b9025463016a029506cf75cb1428e30 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 965f6dd134502218c58583008667ffc037420286..7e5be17d534ba9920b50f415430335ce9f43288f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "bus-error.h"
index e85a9eda2bbf883a9beba0fd477ebb058fca052e..f09d5e7fd132a27f76549d1b659cf17a223b1fd2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <unistd.h>
index f6ef68803218d556d8cac25ce8519a68ef1d5761..cb503a597055d7270f620466784a17bc439bad52 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index b7ca79bb583f5b999c2fba00a45936574ca6ea93..a63937e1ce418634ba7e39aab6a0f5b1aeec7ba9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_VALGRIND_MEMCHECK_H
 #include <valgrind/memcheck.h>
index eb1ae75c147e784bf5d74879ed54d01c63c9491b..8182b9cd632dd04bcf11091ef51b83968ff90c8e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index a5672a831ff8401bc75d3b73282e1fb66d655a0e..4bf228b43617abc9a4ed41a4110d20f8ff18f676 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 #include <sys/types.h>
index 88d679f64cb0145dbc907d4d1df5ae2b10ab96a2..3896d94111c73863719abfce814c98788d55c9e6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/capability.h>
 #include <stdlib.h>
index 508ef9d35214a136dd010d95382fbcfc445f2fe0..7806d9e3628f916dc3494b991d8c15b7e53df6fe 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 94107c297f4c042d93c0faf3371452e552041d70..3ff87be67cf777d43572b5a354298e3f1151c844 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/time.h>
 
index f138791c04b3ef7f71c41f5b31dbc6fc8373f4bc..aeb4616e9a776d897c19f3e16f822a8790c35633 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 83de996b252a7a4d5167c299ba2d0789b8c8aaf8..8da2024a5028ffcfa8776cfb5f66799ad545c1fa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdarg.h>
@@ -581,7 +581,7 @@ const char *bus_error_message(const sd_bus_error *e, int error) {
                         return e->message;
         }
 
-        return strerror_safe(abs(error));
+        return strerror_safe(error);
 }
 
 static bool map_ok(const sd_bus_error_map *map) {
index a6523e57a2767a6e6b6770cab3bbd683422382d0..557284faf8258ca9d21cdb9a93bae878c0922f5d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index ba503b321317c730d98b05040ae626957de283eb..850540a7852923f598a5d77e02859ae89971187b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <string.h>
index 644b5f4b20d6f13d58f0c9c49401b848f0d93e2c..213fa97083eb0f69b5b6de5aaaba6219abc20356 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "macro.h"
index 5c3e955c20c83abce597b0582575792f15b832e0..3f03ad7c4115d8ffa8511bd55b905b543f2ae6c0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bus-internal.h"
index ef2c3dbc4fde6f034fc841bb0f308fb4843df5ee..233a2283150f5589d399d9bffcae63d040c0ac36 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <pthread.h>
index 734abcf3fdedac8b15304f62102fd828adee7ad0..866fca7acb822855e2a2d166b09289bc92961ad9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-internal.h"
 #include "bus-introspect.h"
index 19d39923e5d7922c8a1cd0bfaf75e641df192ece..34f32a4cf9f0da1efa928f0f78a0d545f0f4dea9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdio.h>
index b74cfa6ab85ea769738a06f68ad79b4e961113ed..6bba446932c7b298621189c048796024164969d3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_VALGRIND_MEMCHECK_H
 #include <valgrind/memcheck.h>
index fbbc43f6fae5858a01b40a4d865da1f29c617b14..be8e0ceb9b692035e78bdcb07a64198293d1da6b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 20a4b46773b47d7f75860f001cda39d28fd86395..d7da4bf009fcc387c2b9767d3c9de4f81631946a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bus-internal.h"
index a6f67ce089740fdae8615c0b4a2b1c11e8bcb642..e44e40644eb96713df32e39b267d2a1f1f46ba95 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index f966dda2294563ff5aca14e94a25454ab272ccc6..86ff5bdfa27b441b86828b81cc59d0f5eb1e8ee2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
@@ -3189,6 +3189,8 @@ static int container_next_item(sd_bus_message *m, struct bus_container *c, size_
                 int sz;
 
                 sz = bus_gvariant_get_size(c->signature);
+                if (sz == 0)
+                        return -EBADMSG;
                 if (sz < 0) {
                         int alignment;
 
index 5d869213ab80f0a0d70c9f73ae83b0901628cd57..3561737e2f73c2b1cf379ea0ff4a922a4eaac72a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <byteswap.h>
index 33284d7301e8ba62f2b5bd44491651f7733a9128..275c4318a1e61a372b79181da01abf6de27c028c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bus-internal.h"
index f650196a5439949f2bdc3a6dfdfa038ea91f8c4e..20fccfa1d865b5a1166cc8200a9165dd56161db6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "bus-internal.h"
index 7e1cd3c31e33d288d268596529e62af81f41ee7d..c41ab58faa800114c7df47f9fd195814992aa903 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <endian.h>
index b420ba3688d096ac60e1f5e4f8d3a2513cc0bfcf..bd0842fdbc5fcb9830884e3197e20b1c33ccec4e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <util.h>
 
index b87bec83295506f74f7813382f7b83118dcbef54..314fcc27c57f881c3eb77b9df3dc7319c6feea8c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index f90a7f05ccf7fb0d9a94af914b3e62d0ba23c977..a0009a7a87d7ccdbabfded3f96da9054549007a1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-bus.h"
 
index 48eb0453dcb1611854acd61be75671e120772ee7..8116195d4dd83be94527b91e035fa6205b3fa83a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 1a040157f40a8fcd61b1b682c6a655fe3284ea9c..4881fd0d321a9b21c8f6d2d53d42162936f03bfa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <endian.h>
 #include <poll.h>
index f8d24556c9703f33e82a01bd81ee418a69ff43d2..52bc404625477367d969b9095e703be3136d38d2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 13fd52ffd5ed0ad714126166cce5985307ede492..5f8716e2aa6381e92424896f2aa7e83dad22091a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-bus.h"
 
index 209b989d27846c636bd90db03d7ea9dea1f306a9..8dae1f3902446c5659c967183910938ddc17fbaa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 void bus_track_dispatch(sd_bus_track *track);
index 585f8424b3f85c9ae4cfcdb785284b7bf25b6029..6a0f53d1d1bfa7ea13b414490049b3ded4b61e19 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 0ecd8513fd252c12d182e73f1cbede75bf672d3f..490108a2c645fd9de59b174c72eeba29731836ef 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 2337a4b3de74e6b465ffdc10f9c1fb8b61f83ab3..b8d4dc8d959f631aedee917e3d13c2ddcd29512f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <endian.h>
 #include <netdb.h>
index 70a6df10f96e2f34fd0050defbe39c0f2e56e7a7..b92558fea9d43ad5dbfac4e5fe85f3e007ea6642 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #include "sd-bus.h"
 
 #include "bus-internal.h"
index 8de0a859ee9400c26594bd0686c81ce5f3a2137f..8c6711797a44b0eedca6cf2dc0c8f8681849d5ed 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/wait.h>
 #include <unistd.h>
index 1497dc696f2f82a40b9809dad39aff48e5dbc644..c3c31c65e6367b312d1a023bd2abeba0fcddba41 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <pthread.h>
index 86a2407507ed514a67e7f4c6ad75bb49850ae68e..ece0a12babc0ff816f3f5e648b7c07e3336949ea 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index 7f7bc491d2586faf050141d7f386d284060a38e3..6551e692f85969a0c162105f6ccdb886f4d298e7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-bus.h"
 
index 14e3c9c40d8f6ccfbcbb7f8b7a58899de10870d6..2e3803c9b23dcfa0dc3f95b5156a562a6aa1446f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-bus.h"
 
index d248bd4da133ab599b8edda02d3abe8cb1bbb9ed..b0033f1d133ff0fc8af10c58386cc0fa4303efea 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_GLIB
 #include <glib.h>
index cbc31589241c14b1517c6ae0b9017987e65d0025..fb247c4d14ba7651d6aa5f5d67a7f2253ebb59d2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-introspect.h"
 #include "log.h"
index 107eea390e0bcccab0fd61bd454d6d988c24f920..9feeaf48fd3cbf641ae75d0a745621cac30628d2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <math.h>
 #include <stdlib.h>
index 47014c403b51dc88c61df185b52eea0d2ae5f7ae..aa6ddd336a9e6e132292af9c640fdf0ab3c4619f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-match.h"
 #include "bus-message.h"
index 41cf8c167006793b462ba93ace85fad500ff1e44..9116211886f039de54eb32f963e45fa0b947124b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <pthread.h>
 #include <stdlib.h>
index 17598f3d63358f6be3e5d19ecd87ff10138c4f71..7c2fa72e84e97ccbf70f450c62b6984610bcc96a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #include "sd-bus.h"
 
 #include "main-func.h"
index 1302fdbb5a077dc4e4d912836db476e2325b8239..5cb100b2f0b84d2bec774daf39e243d9464e4a86 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <pthread.h>
 #include <stdlib.h>
index 84648dbc2aef92d774055c780b86fe50574af9e5..ea7efe68e49a03cab33dd2f131f1dc653a748614 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-internal.h"
 #include "bus-signature.h"
index 5adcf948ddb6c8f537f9cd7677a602eb1d3c466b..64aa88bb4f7663b58c8cda2383cc821ec03b7c91 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/socket.h>
index b6350027dd3ede31d867e049b627353d717ac385..fe122381e767fde6819ca9e9cd59f93abf3ea02a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdbool.h>
 #include <stddef.h>
index 7ded9386b75023f80e77277c35e0f0b8e5cb5ad9..fdc8772f84180ba179a48ac8712a071852fb222b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <pthread.h>
 
index bc89893814b050209ede42845b8b4164429c2ace..7269a499459f8cfc6f8e0a9b26ebacc5995334a4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 /* This is meant to be included in other files, hence no headers */
 
index bdcbb106ce4f3c3ab97a15d79ae22ea49c38bb6e..6336a0cce47eb3e71ce103e3959282bfe25eed35 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <limits.h>
index cf2b261482469201a894370d1c5e200488b799af..9c6437dbed3b90963171fe577b6cf2ecf60207c4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-device.h"
index 2d1ce7988873366d697dac7bf834b18ed25131bc..b9d4db323a4e05473aeb64ee4cc919f1493b9006 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <unistd.h>
index 9c6b8a345f60ff401237bbea8fb42d8e8739d1e6..3f81cef79622a94036667817dd879ee7569e195f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-device.h"
index 2659cc3c46e3e06292a6bf6af4e1d9cc48522398..2ca3a313b6e875cef1c0731a6d6aaf65166f8a0c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-device.h"
index 43646e1880902a6ddd2a9cda52cd6a5656057a03..fd5900704dfce37e3cd9690d618c3e5926275b4b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <linux/filter.h>
index dc16d555a1c44d6d70ee53321de29804b87735ff..c5bf9b3323b546fa59a66599d9be605e5e339c9a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ctype.h>
 #include <net/if.h>
index 1f1c4ca1071719d5c7553e0516cad82184c6ed0d..db81934f32070e106791e986b75dbe6bc25ed36b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 032d1dc8b837cd58b75d5fb85dea67f0c2527a03..122620953a3aee9ddeb4fbb081807989ba902d36 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #define FOREACH_DEVICE_PROPERTY(device, key, value)                \
index 634c9a24f864928dc404043e51d08d6ffeab939e..bfa0781773713ca370d5a42ccbdfb211be1241e2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ctype.h>
 #include <net/if.h>
index aa1edaaf3c1eaa4a96b71cde89fd76e2eb2fa931..fddd1c152c91b2229f578340d95fefa8ffcee8d3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdbool.h>
 #include <unistd.h>
index 9f1c02373f46bcd5468a51eb85a0e1d84168e541..6f3015515b5fffb3d45c07ef570fdbc34f6432aa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <pthread.h>
 #include <stdbool.h>
index ca9662b851e4d5696f6cb5bf9752d35869a0f4c0..9f48d2bf1e8512aaa1cf6e41bd8d8d850ef98ccc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "device-enumerator-private.h"
 #include "device-private.h"
index 2fc0f591850520743079a11c1f78e9dc8963185c..a493152d4a6ddb8e56f61db77e1f3bba4003b674 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <pthread.h>
 #include <stdbool.h>
index a8a30d825ebee317f6dcefa42948cd81003bcac5..62d07187a275e284e62250a7e917dbaeab3cb231 100644 (file)
@@ -1,5 +1,5 @@
 #pragma once
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/epoll.h>
 #include <sys/timerfd.h>
index 43e73d55e12e196dbe02b26021f09d5890ec67a5..132796fc6c2b885859472bb14ae6bdba49bbebdf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 00180955f92549250c0531e5aedb2b0f4db77a65..c8f97bc8d61ff2b19c2fac81f19638057d80d368 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 5e770c83b7af85ec104b49db9941e645c7df47ad..bbb2b6bfd74cca0b6e5d5b6f58714943da95a4c8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/epoll.h>
 #include <sys/timerfd.h>
@@ -701,6 +701,33 @@ static void event_gc_signal_data(sd_event *e, const int64_t *priority, int sig)
                 event_unmask_signal_data(e, d, sig);
 }
 
+static void event_source_pp_prioq_reshuffle(sd_event_source *s) {
+        assert(s);
+
+        /* Reshuffles the pending + prepare prioqs. Called whenever the dispatch order changes, i.e. when
+         * they are enabled/disabled or marked pending and such. */
+
+        if (s->pending)
+                prioq_reshuffle(s->event->pending, s, &s->pending_index);
+
+        if (s->prepare)
+                prioq_reshuffle(s->event->prepare, s, &s->prepare_index);
+}
+
+static void event_source_time_prioq_reshuffle(sd_event_source *s) {
+        struct clock_data *d;
+
+        assert(s);
+        assert(EVENT_SOURCE_IS_TIME(s->type));
+
+        /* Called whenever the event source's timer ordering properties changed, i.e. time, accuracy,
+         * pending, enable state. Makes sure the two prioq's are ordered properly again. */
+        assert_se(d = event_get_clock_data(s->event, s->type));
+        prioq_reshuffle(d->earliest, s, &s->time.earliest_index);
+        prioq_reshuffle(d->latest, s, &s->time.latest_index);
+        d->needs_rearm = true;
+}
+
 static void source_disconnect(sd_event_source *s) {
         sd_event *event;
 
@@ -907,16 +934,8 @@ static int source_set_pending(sd_event_source *s, bool b) {
         } else
                 assert_se(prioq_remove(s->event->pending, s, &s->pending_index));
 
-        if (EVENT_SOURCE_IS_TIME(s->type)) {
-                struct clock_data *d;
-
-                d = event_get_clock_data(s->event, s->type);
-                assert(d);
-
-                prioq_reshuffle(d->earliest, s, &s->time.earliest_index);
-                prioq_reshuffle(d->latest, s, &s->time.latest_index);
-                d->needs_rearm = true;
-        }
+        if (EVENT_SOURCE_IS_TIME(s->type))
+                event_source_time_prioq_reshuffle(s);
 
         if (s->type == SOURCE_SIGNAL && !b) {
                 struct signal_data *d;
@@ -2207,11 +2226,7 @@ _public_ int sd_event_source_set_priority(sd_event_source *s, int64_t priority)
         } else
                 s->priority = priority;
 
-        if (s->pending)
-                prioq_reshuffle(s->event->pending, s, &s->pending_index);
-
-        if (s->prepare)
-                prioq_reshuffle(s->event->prepare, s, &s->prepare_index);
+        event_source_pp_prioq_reshuffle(s);
 
         if (s->type == SOURCE_EXIT)
                 prioq_reshuffle(s->event->exit, s, &s->exit.prioq_index);
@@ -2237,189 +2252,182 @@ _public_ int sd_event_source_get_enabled(sd_event_source *s, int *m) {
         return s->enabled != SD_EVENT_OFF;
 }
 
-_public_ int sd_event_source_set_enabled(sd_event_source *s, int m) {
+static int event_source_disable(sd_event_source *s) {
         int r;
 
-        assert_return(s, -EINVAL);
-        assert_return(IN_SET(m, SD_EVENT_OFF, SD_EVENT_ON, SD_EVENT_ONESHOT), -EINVAL);
-        assert_return(!event_pid_changed(s->event), -ECHILD);
-
-        /* If we are dead anyway, we are fine with turning off
-         * sources, but everything else needs to fail. */
-        if (s->event->state == SD_EVENT_FINISHED)
-                return m == SD_EVENT_OFF ? 0 : -ESTALE;
-
-        if (s->enabled == m)
-                return 0;
+        assert(s);
+        assert(s->enabled != SD_EVENT_OFF);
 
-        if (m == SD_EVENT_OFF) {
+        /* Unset the pending flag when this event source is disabled */
+        if (!IN_SET(s->type, SOURCE_DEFER, SOURCE_EXIT)) {
+                r = source_set_pending(s, false);
+                if (r < 0)
+                        return r;
+        }
 
-                /* Unset the pending flag when this event source is disabled */
-                if (!IN_SET(s->type, SOURCE_DEFER, SOURCE_EXIT)) {
-                        r = source_set_pending(s, false);
-                        if (r < 0)
-                                return r;
-                }
+        s->enabled = SD_EVENT_OFF;
 
-                switch (s->type) {
+        switch (s->type) {
 
-                case SOURCE_IO:
-                        source_io_unregister(s);
-                        s->enabled = m;
-                        break;
+        case SOURCE_IO:
+                source_io_unregister(s);
+                break;
 
-                case SOURCE_TIME_REALTIME:
-                case SOURCE_TIME_BOOTTIME:
-                case SOURCE_TIME_MONOTONIC:
-                case SOURCE_TIME_REALTIME_ALARM:
-                case SOURCE_TIME_BOOTTIME_ALARM: {
-                        struct clock_data *d;
+        case SOURCE_TIME_REALTIME:
+        case SOURCE_TIME_BOOTTIME:
+        case SOURCE_TIME_MONOTONIC:
+        case SOURCE_TIME_REALTIME_ALARM:
+        case SOURCE_TIME_BOOTTIME_ALARM:
+                event_source_time_prioq_reshuffle(s);
+                break;
 
-                        s->enabled = m;
-                        d = event_get_clock_data(s->event, s->type);
-                        assert(d);
+        case SOURCE_SIGNAL:
+                event_gc_signal_data(s->event, &s->priority, s->signal.sig);
+                break;
 
-                        prioq_reshuffle(d->earliest, s, &s->time.earliest_index);
-                        prioq_reshuffle(d->latest, s, &s->time.latest_index);
-                        d->needs_rearm = true;
-                        break;
-                }
+        case SOURCE_CHILD:
+                assert(s->event->n_enabled_child_sources > 0);
+                s->event->n_enabled_child_sources--;
 
-                case SOURCE_SIGNAL:
-                        s->enabled = m;
+                if (EVENT_SOURCE_WATCH_PIDFD(s))
+                        source_child_pidfd_unregister(s);
+                else
+                        event_gc_signal_data(s->event, &s->priority, SIGCHLD);
+                break;
 
-                        event_gc_signal_data(s->event, &s->priority, s->signal.sig);
-                        break;
+        case SOURCE_EXIT:
+                prioq_reshuffle(s->event->exit, s, &s->exit.prioq_index);
+                break;
 
-                case SOURCE_CHILD:
-                        s->enabled = m;
+        case SOURCE_DEFER:
+        case SOURCE_POST:
+        case SOURCE_INOTIFY:
+                break;
 
-                        assert(s->event->n_enabled_child_sources > 0);
-                        s->event->n_enabled_child_sources--;
+        default:
+                assert_not_reached("Wut? I shouldn't exist.");
+        }
 
-                        if (EVENT_SOURCE_WATCH_PIDFD(s))
-                                source_child_pidfd_unregister(s);
-                        else
-                                event_gc_signal_data(s->event, &s->priority, SIGCHLD);
+        return 0;
+}
 
-                        break;
+static int event_source_enable(sd_event_source *s, int m) {
+        int r;
 
-                case SOURCE_EXIT:
-                        s->enabled = m;
-                        prioq_reshuffle(s->event->exit, s, &s->exit.prioq_index);
-                        break;
+        assert(s);
+        assert(IN_SET(m, SD_EVENT_ON, SD_EVENT_ONESHOT));
+        assert(s->enabled == SD_EVENT_OFF);
 
-                case SOURCE_DEFER:
-                case SOURCE_POST:
-                case SOURCE_INOTIFY:
-                        s->enabled = m;
-                        break;
+        /* Unset the pending flag when this event source is enabled */
+        if (!IN_SET(s->type, SOURCE_DEFER, SOURCE_EXIT)) {
+                r = source_set_pending(s, false);
+                if (r < 0)
+                        return r;
+        }
 
-                default:
-                        assert_not_reached("Wut? I shouldn't exist.");
-                }
+        s->enabled = m;
 
-        } else {
+        switch (s->type) {
 
-                /* Unset the pending flag when this event source is enabled */
-                if (s->enabled == SD_EVENT_OFF && !IN_SET(s->type, SOURCE_DEFER, SOURCE_EXIT)) {
-                        r = source_set_pending(s, false);
-                        if (r < 0)
-                                return r;
+        case SOURCE_IO:
+                r = source_io_register(s, m, s->io.events);
+                if (r < 0) {
+                        s->enabled = SD_EVENT_OFF;
+                        return r;
                 }
 
-                switch (s->type) {
-
-                case SOURCE_IO:
-                        r = source_io_register(s, m, s->io.events);
-                        if (r < 0)
-                                return r;
+                break;
 
-                        s->enabled = m;
-                        break;
+        case SOURCE_TIME_REALTIME:
+        case SOURCE_TIME_BOOTTIME:
+        case SOURCE_TIME_MONOTONIC:
+        case SOURCE_TIME_REALTIME_ALARM:
+        case SOURCE_TIME_BOOTTIME_ALARM:
+                event_source_time_prioq_reshuffle(s);
+                break;
 
-                case SOURCE_TIME_REALTIME:
-                case SOURCE_TIME_BOOTTIME:
-                case SOURCE_TIME_MONOTONIC:
-                case SOURCE_TIME_REALTIME_ALARM:
-                case SOURCE_TIME_BOOTTIME_ALARM: {
-                        struct clock_data *d;
+        case SOURCE_SIGNAL:
+                r = event_make_signal_data(s->event, s->signal.sig, NULL);
+                if (r < 0) {
+                        s->enabled = SD_EVENT_OFF;
+                        event_gc_signal_data(s->event, &s->priority, s->signal.sig);
+                        return r;
+                }
 
-                        s->enabled = m;
-                        d = event_get_clock_data(s->event, s->type);
-                        assert(d);
+                break;
 
-                        prioq_reshuffle(d->earliest, s, &s->time.earliest_index);
-                        prioq_reshuffle(d->latest, s, &s->time.latest_index);
-                        d->needs_rearm = true;
-                        break;
-                }
+        case SOURCE_CHILD:
+                s->event->n_enabled_child_sources++;
 
-                case SOURCE_SIGNAL:
+                if (EVENT_SOURCE_WATCH_PIDFD(s)) {
+                        /* yes, we have pidfd */
 
-                        s->enabled = m;
+                        r = source_child_pidfd_register(s, s->enabled);
+                        if (r < 0) {
+                                s->enabled = SD_EVENT_OFF;
+                                s->event->n_enabled_child_sources--;
+                                return r;
+                        }
+                } else {
+                        /* no pidfd, or something other to watch for than WEXITED */
 
-                        r = event_make_signal_data(s->event, s->signal.sig, NULL);
+                        r = event_make_signal_data(s->event, SIGCHLD, NULL);
                         if (r < 0) {
                                 s->enabled = SD_EVENT_OFF;
-                                event_gc_signal_data(s->event, &s->priority, s->signal.sig);
+                                s->event->n_enabled_child_sources--;
+                                event_gc_signal_data(s->event, &s->priority, SIGCHLD);
                                 return r;
                         }
+                }
 
-                        break;
+                break;
 
-                case SOURCE_CHILD:
+        case SOURCE_EXIT:
+                prioq_reshuffle(s->event->exit, s, &s->exit.prioq_index);
+                break;
 
-                        if (s->enabled == SD_EVENT_OFF)
-                                s->event->n_enabled_child_sources++;
+        case SOURCE_DEFER:
+        case SOURCE_POST:
+        case SOURCE_INOTIFY:
+                break;
 
-                        s->enabled = m;
+        default:
+                assert_not_reached("Wut? I shouldn't exist.");
+        }
 
-                        if (EVENT_SOURCE_WATCH_PIDFD(s)) {
-                                /* yes, we have pidfd */
+        return 0;
+}
 
-                                r = source_child_pidfd_register(s, s->enabled);
-                                if (r < 0) {
-                                        s->enabled = SD_EVENT_OFF;
-                                        s->event->n_enabled_child_sources--;
-                                        return r;
-                                }
-                        } else {
-                                /* no pidfd, or something other to watch for than WEXITED */
+_public_ int sd_event_source_set_enabled(sd_event_source *s, int m) {
+        int r;
 
-                                r = event_make_signal_data(s->event, SIGCHLD, NULL);
-                                if (r < 0) {
-                                        s->enabled = SD_EVENT_OFF;
-                                        s->event->n_enabled_child_sources--;
-                                        event_gc_signal_data(s->event, &s->priority, SIGCHLD);
-                                        return r;
-                                }
-                        }
+        assert_return(s, -EINVAL);
+        assert_return(IN_SET(m, SD_EVENT_OFF, SD_EVENT_ON, SD_EVENT_ONESHOT), -EINVAL);
+        assert_return(!event_pid_changed(s->event), -ECHILD);
 
-                        break;
+        /* If we are dead anyway, we are fine with turning off sources, but everything else needs to fail. */
+        if (s->event->state == SD_EVENT_FINISHED)
+                return m == SD_EVENT_OFF ? 0 : -ESTALE;
 
-                case SOURCE_EXIT:
-                        s->enabled = m;
-                        prioq_reshuffle(s->event->exit, s, &s->exit.prioq_index);
-                        break;
+        if (s->enabled == m) /* No change? */
+                return 0;
 
-                case SOURCE_DEFER:
-                case SOURCE_POST:
-                case SOURCE_INOTIFY:
+        if (m == SD_EVENT_OFF)
+                r = event_source_disable(s);
+        else {
+                if (s->enabled != SD_EVENT_OFF) {
+                        /* Switching from "on" to "oneshot" or back? If that's the case, we can take a shortcut, the
+                         * event source is already enabled after all. */
                         s->enabled = m;
-                        break;
-
-                default:
-                        assert_not_reached("Wut? I shouldn't exist.");
+                        return 0;
                 }
-        }
-
-        if (s->pending)
-                prioq_reshuffle(s->event->pending, s, &s->pending_index);
 
-        if (s->prepare)
-                prioq_reshuffle(s->event->prepare, s, &s->prepare_index);
+                r = event_source_enable(s, m);
+        }
+        if (r < 0)
+                return r;
 
+        event_source_pp_prioq_reshuffle(s);
         return 0;
 }
 
@@ -2434,7 +2442,6 @@ _public_ int sd_event_source_get_time(sd_event_source *s, uint64_t *usec) {
 }
 
 _public_ int sd_event_source_set_time(sd_event_source *s, uint64_t usec) {
-        struct clock_data *d;
         int r;
 
         assert_return(s, -EINVAL);
@@ -2448,13 +2455,7 @@ _public_ int sd_event_source_set_time(sd_event_source *s, uint64_t usec) {
 
         s->time.next = usec;
 
-        d = event_get_clock_data(s->event, s->type);
-        assert(d);
-
-        prioq_reshuffle(d->earliest, s, &s->time.earliest_index);
-        prioq_reshuffle(d->latest, s, &s->time.latest_index);
-        d->needs_rearm = true;
-
+        event_source_time_prioq_reshuffle(s);
         return 0;
 }
 
@@ -2486,7 +2487,6 @@ _public_ int sd_event_source_get_time_accuracy(sd_event_source *s, uint64_t *use
 }
 
 _public_ int sd_event_source_set_time_accuracy(sd_event_source *s, uint64_t usec) {
-        struct clock_data *d;
         int r;
 
         assert_return(s, -EINVAL);
@@ -2504,12 +2504,7 @@ _public_ int sd_event_source_set_time_accuracy(sd_event_source *s, uint64_t usec
 
         s->time.accuracy = usec;
 
-        d = event_get_clock_data(s->event, s->type);
-        assert(d);
-
-        prioq_reshuffle(d->latest, s, &s->time.latest_index);
-        d->needs_rearm = true;
-
+        event_source_time_prioq_reshuffle(s);
         return 0;
 }
 
@@ -2888,9 +2883,7 @@ static int process_timer(
                 if (r < 0)
                         return r;
 
-                prioq_reshuffle(d->earliest, s, &s->time.earliest_index);
-                prioq_reshuffle(d->latest, s, &s->time.latest_index);
-                d->needs_rearm = true;
+                event_source_time_prioq_reshuffle(s);
         }
 
         return 0;
index b623972365677fca509bf6c42a46fcc7d7f1530c..1c4d0e25abc5445b3dbfeca31d8d197daf6d7966 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/wait.h>
 
index d82b8c1279c2698d8d97a78c91513b0b3f7ed1af..5c20688cd4b016c4ee7346717563a5c66d3219f6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdint.h>
index 2266b67adbd7009ff71b85eabc793bdf74aaf09c..4c94ba9c88da8293fa2aba1333c5d916dd12afd5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ctype.h>
 #include <stdio.h>
index 425b4b3e1332775fca915dde69e8b0215fd80d3b..5afde7472342e947083c8fc7955f5669aabcdcd1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 0e326f3d223842465788c8d5d6f1fdf96f78b01b..cb3c77ce961ed70788a2c34359f4eae4f274c5cf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2008 Alan Jenkins <alan.christopher.jenkins@googlemail.com>
 ***/
index ebbfb2d32ebae6bd400de1a6979f36e70c642e2f..a3f6da6381ca980606d84017a41bd165463a638e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 1453c00f2f1ce709462e932793f0364a5e53e0d5..6b09bcd96a44ebccfea1b39d73feed169343b96c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 9b38ef0c563206f79b00dc397e9c1c55926d8adb..d5de935c77f066b3ec3c8480bb958d869048bfac 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 939b2a5df42ce70161290f70b3b725b4637390a5..1fc379512f0194a0ce88fda6adb923d4c0a8f9ca 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <poll.h>
@@ -355,7 +355,7 @@ _public_ int sd_uid_is_on_seat(uid_t uid, int require_active, const char *seat)
         char t[DECIMAL_STR_MAX(uid_t)];
         xsprintf(t, UID_FMT, uid);
 
-        return string_contains_word(content, ",", t);
+        return string_contains_word(content, NULL, t);
 }
 
 static int uid_get_array(uid_t uid, const char *variable, char ***array) {
index 0494fc77ba18af5dd5c741d6bc758910196ffdee..5b2ff93e1c1716b08bf42b34598d2743c9742938 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <poll.h>
 
@@ -68,7 +68,7 @@ static void test_login(void) {
 
         r = sd_pid_get_cgroup(0, &cgroup);
         log_info("sd_pid_get_cgroup(0, …) → %s / \"%s\"", e(r), strnull(cgroup));
-        assert_se(r == 0);
+        assert_se(IN_SET(r, 0, -ENOMEDIUM));
 
         r = sd_uid_get_display(u2, &display_session);
         log_info("sd_uid_get_display("UID_FMT", …) → %s / \"%s\"", u2, e(r), strnull(display_session));
index b4971da323db89ca61c6183650a78daaa1d65bbd..f295fa9e83f2d93bacd8ee72528c52ce66444654 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/genetlink.h>
 
index e9ae5591f21e0e519f38e2671a23112568ada452..72001e88d21102b5fc6171a03dd7af312a24ae85 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-netlink.h"
index b14ce435eefb10e74ce2c19073e8c6a2b5b9c282..1240f0d66d94b10d3e1259703f2452fab5247660 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/netlink.h>
index da4f5ba6888f79595f3bddd81064026d25ec6ba2..bd56536062eddf9d5bdc51352d7ad480dd4e314c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <stdbool.h>
@@ -495,6 +495,25 @@ int sd_netlink_message_append_ether_addr(sd_netlink_message *m, unsigned short t
         return 0;
 }
 
+int netlink_message_append_hw_addr(sd_netlink_message *m, unsigned short type, const hw_addr_data *data) {
+        int r;
+
+        assert_return(m, -EINVAL);
+        assert_return(!m->sealed, -EPERM);
+        assert_return(data, -EINVAL);
+        assert_return(data->length > 0, -EINVAL);
+
+        r = message_attribute_has_type(m, NULL, type, NETLINK_TYPE_ETHER_ADDR);
+        if (r < 0)
+                return r;
+
+        r = add_rtattr(m, type, data->addr.bytes, data->length);
+        if (r < 0)
+                return r;
+
+        return 0;
+}
+
 int sd_netlink_message_append_cache_info(sd_netlink_message *m, unsigned short type, const struct ifa_cacheinfo *info) {
         int r;
 
@@ -864,6 +883,30 @@ int sd_netlink_message_read_ether_addr(sd_netlink_message *m, unsigned short typ
         return 0;
 }
 
+int netlink_message_read_hw_addr(sd_netlink_message *m, unsigned short type, hw_addr_data *data) {
+        int r;
+        void *attr_data;
+
+        assert_return(m, -EINVAL);
+
+        r = message_attribute_has_type(m, NULL, type, NETLINK_TYPE_ETHER_ADDR);
+        if (r < 0)
+                return r;
+
+        r = netlink_message_read_internal(m, type, &attr_data, NULL);
+        if (r < 0)
+                return r;
+        else if ((size_t) r > sizeof(union hw_addr_union))
+                return -EIO;
+
+        if (data) {
+                memcpy(data->addr.bytes, attr_data, r);
+                data->length = r;
+        }
+
+        return 0;
+}
+
 int sd_netlink_message_read_cache_info(sd_netlink_message *m, unsigned short type, struct ifa_cacheinfo *info) {
         int r;
         void *attr_data;
index 94a80a80670e5d2444bd48a9bb960aac7a5cd04a..fa951bf941846e036d49b9e9bc293b6baeb21b8b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 2641ec6b4ac70c9ea9cf91f8148d0096f44bf318..79de817262260c00510d6f8cd2e3db824be451a2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-netlink.h"
index bcd82fe164699868d2cf62253999b7bed9996820..228e38df909267b8d3919d3f86609db39aff5f47 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <stdbool.h>
index 5f5a1558a101d4d0041dfbdd2e796bb42fbec9be..6fb6c147d95fbdd57a1dc7a6233694df77d13e9e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <stdint.h>
index 959845ccaccc749e1c7a119c2c9ae805c45cc7ce..b14e66fbb11e34f638da2d379dfc6130d422a337 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "macro.h"
index f89340058078d270152ce40135b2f212cc3290ab..09e2158c9e880f8860d5e80a3fa61567aa2346ae 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-netlink.h"
 
index 2768d5fdc4db6302a7e34ebeb9f37aa60bcec588..d28d07a9f5edc331394482d318a09c98457d2879 100644 (file)
@@ -1,10 +1,11 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/rtnetlink.h>
 
 #include "sd-netlink.h"
 
+#include "ether-addr-util.h"
 #include "in-addr-util.h"
 #include "ordered-set.h"
 #include "socket-util.h"
@@ -100,9 +101,11 @@ int rtnl_log_create_error(int r);
                                      userdata, description);            \
         })
 
+int netlink_message_append_hw_addr(sd_netlink_message *m, unsigned short type, const hw_addr_data *data);
 int netlink_message_append_in_addr_union(sd_netlink_message *m, unsigned short type, int family, const union in_addr_union *data);
 int netlink_message_append_sockaddr_union(sd_netlink_message *m, unsigned short type, const union sockaddr_union *data);
 
+int netlink_message_read_hw_addr(sd_netlink_message *m, unsigned short type, hw_addr_data *data);
 int netlink_message_read_in_addr_union(sd_netlink_message *m, unsigned short type, int family, union in_addr_union *data);
 
 void rtattr_append_attribute_internal(struct rtattr *rta, unsigned short type, const void *data, size_t data_length);
index 268150044c0bae03c4986f8315e7ce632dc0930d..4cabbabba6760cf9901d3edc6cf226a6a78c4cd9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <linux/if_addrlabel.h>
index 6f283e31ff74828134578396141cae4ffb3fffab..7801101807b210e0f8d3ae0f04174fd049ff433f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <poll.h>
 
index be7a4f7835deca4df58c7d3068f3c066f33ea79f..41787c5a3ecd2d1791d580b42d310a9ee6235fc9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 #include <netinet/ether.h>
index 0addabe10a2496338e2f9a4182604cb96b0b8a3a..7753431fc0523e5b9cc5c3d3892627232f1d1a2c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "fd-util.h"
index 425d192f6402a6dc6bdea3d1f98be73427718a71..8cfd894b5a620292e99e09dbb678a5b618243cde 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-network.h"
index 832ec1703e9be0a5821dcbaeb88c4837cc25052b..b9b1099399ff99a9930549e1a1de04b14518a840 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <poll.h>
index 26d2341c2bb64abc09068345a29be2d7ba10b75e..61ed7cb2da8256caf20b5909ebf53cca4a214577 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-path.h"
 
index a0feb36f7c66c6166fa96b9bf37765ab75c9d286..7a339f7a35ad5a0663af1d09948610df58288777 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-resolve.h"
index 1dc32038131bf2fc88ca75f52ca3d7b48d32b7ba..2cfa22d280b98693977ef29632608141046ab70c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <poll.h>
index 627b86b3cb00c2200f2b631038f9180f134b8fce..b973dfd90d24b9e2d9b0d45a2e56ac1cb31a9b45 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <errno.h>
index 78323cf7cbafa04a8e1f02b8edd89f8a221f1cc9..82fa125aded2158310cda6ae51cc1ef078380584 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-utf8.h"
 
index cd6c2a5bc57157fd14ecd93f740e1da5f22733c2..437d431c90fc3fab792fdf9376564dae3cdb3f14 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "libudev.h"
index 704a09d01cd59b7f67e122926c4b9e871b3c063d..34543a8b2ed658f848b9721d332ef6b5afa9113f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ctype.h>
 #include <dirent.h>
index a8b3f53572413e967e230076c0ce22233adb27d8..33bd360188f7d0b14a35aa6f91da5b75d38065f4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <dirent.h>
 #include <errno.h>
index 5299e0a16f57a61382c96bcdb8231f909f6d51e8..8e9ea97a2d13d5a5bec283d6e89be534e57f5e41 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index a15b385343916bc700bcaf35c900fa26259dada5..c23735e3591d4d28183f42413fc3606beee49c19 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "libudev.h"
index 3b22976c9ff4344976e5de8bae6111b9fda28a2b..3b2a2cdee4b3337db0ec543f14fa09d90b073388 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "hashmap.h"
index 5bec7418b89df50143207a0246e594017cc8a44d..a93adbd7a2e977cf49484c8981363ff70ba2cac5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <poll.h>
index 4e055bbc37a0e9e47c17ab3e20ceee332f97f579..01b237fde42d1b7e7c46aa9c923536a151fb3f8c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2009 Alan Jenkins <alan-jenkins@tuffmail.co.uk>
 ***/
index 4a471fb90d139bedb02f382e7196c980ee542ec7..bbb287976433adbb47ae2005168a87ff8f14add9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ctype.h>
 #include <errno.h>
index 32b626ebc93a8e9c0a55f1209540bd88ce579f69..15e6214b0d6d515c19404cff7e20879847ec8f0c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "libudev.h"
index aa187b2b4cdfdcd86489d9b5641b81160031cc72..73574874ca7af835e0322193e3adf9ab7ce7f7cb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ctype.h>
 #include <stdarg.h>
index c9d0bf233e506a27919754183ed678b4215011c5..55036de867db9d91528c92021521fa96f86f89f7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #ifndef _LIBUDEV_H_
 #define _LIBUDEV_H_
index 40b340362e4bf52e4fd1a5da677223d9b2a38489..b657b7d0683965c8cad419834d9d0cc793bc5b47 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index bad8313904398f09b8a537250cf534737f6847fc..6aa6768f2d204921850ebdbe875673703e7bf14a 100644 (file)
@@ -1,5 +1,5 @@
 /***
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   systemd is free software; you can redistribute it and/or modify it
   under the terms of the GNU Lesser General Public License as published by
index 88189748d3992594f073610c3f14bf0628d01077..3bd00ff4ccc30d18282f4aa92cb99b2b52901436 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 libudev_sources = files('''
         libudev.c
index 8e0cb747754de7c1f30dca8f2c221e933795233e..cb8153f4fe2388c0cbe5c73a6adf695284b47fb9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/stat.h>
index 6eced8424077a56a010039a7c698a2166dd3f56b..49976472ef6ffa7ded2083099ef3d8272cc84574 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 4895c292e4ab1a8e7288cfdeb84620f9cba4f910..7d2e88766083e71783771be50dea05bf349ac77d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ftw.h>
 #include <getopt.h>
index 715ce5cac7e07c5bbcedc5552ab1eee3269561b7..736dacdee988b8d95f580736fc02c04944b1dade 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/stat.h>
index 314b0a3d3799de5c2bdf97790962a0999f5e9f5b..6e3500d099b7ead41cb50246cd1786253a021c62 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_localed_sources = files('''
         localed.c
index d74cbc11ab87fdd3c608b302a542652dc02646fd..a0905573e1f87748935900c10e45484f0b4e6883 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This file is part of systemd.
 
index f9241749e61ddcb1051ea9a99567d25d255a0bf4..f12ca0970a469a95e9bc3f9b9948ddeca9020e16 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This file is part of systemd.
 
index b15d39540c65ae98fb303f05106616ff8d50b862..2d812cbe39797b8ae9ddea853665466f7c963496 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index f96f5b07ec7faf8414793006e688e4c5acfa6bc4..bded12239949fc7fa1ece113cf365a0272b8a529 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "keymap-util.h"
index d69e65b3d52154d4b2280c9e436c295f94066698..3fb954a4f070d8441c1545d8727be10063b5709b 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 4bb144a93c4bb17479e6bc8d376a9cdad0da73a8..45e4adfa0f5b24a015f93362fe300d592c066213 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 60dd6add60da1cb0bbb863d430d9333db7ca5f3a..3ccd52415f6597f1f89468579b8b274cbab5836f 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 4db8d4dd4cad8b8c998166893097be6ff694bc08..e56cd6160380697548dbeaa31730c71ae48b24bf 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 399f70fbc76aacf7b1a176f47d3746d48f47a6d0..e18dbc51326cb9c913c74bda6354eec6a97f80fe 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <getopt.h>
index b7f400dc5e2c225f5cd30cf42e2f0b26d1126d79..695d18bba5bc460e20b7ef71d7b7cea9faab1b2b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
@@ -485,7 +485,7 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li
 
                 printf("\t  Leader: %"PRIu32, i.leader);
 
-                get_process_comm(i.leader, &t);
+                (void) get_process_comm(i.leader, &t);
                 if (t)
                         printf(" (%s)", t);
 
index 0cb3b0bec3b5e42029dcde505acf5c18850af9d4..ed615e23f8175bc3ca08966a5bff458a09769f76 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 00e286d76de8d9f509fe0fdf306c88cdf5aab6c3..c88f3c0cf3725cc0e9037a634daa1c037850dee8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 1aeacfaf2bc5d82f35d9fd533ab9510dffea923e..1a017c84145d3a5d615d5828aebf97621e5d8d11 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index a45aab7854722435279befd0f9208f5adb9c2cc2..73aa20bbb489f9b8d2fa1ec818901173948d2847 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index 450ec320443a4cf63bc3b28a01e6b7ec3713a4df..a6a16033965855cabffe5c362c8b447d6f75be96 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-util.h"
 #include "device-util.h"
index b22ee37ba774d7504e7c7960cddb50381ff3e3be..f1c77757a88f59e18baa7c0834522433b4f7643f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 096cf70c9aee87a454f4d6153caf64074fbfd7e7..f9e6e43b81940f66d4b81a8988f892445b6a34fa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index d009851cf44b6eb6cd18e8c9c4eafa6c59f01038..041d66521ce51c813992d4e6be069a5de8b9ee3e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Button Button;
index 370604f936d80cdaa7a208e2dac58525617355b4..3595d7a77322a3df5d1ea8984ec2bd3098a4cad9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/ioctl.h>
index 0f83ed99bc5016a74a2a5b6d0e5d379ec129e08a..b95af1a9fd6508df32bc135aa2fe8d3ecc4b1b68 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/stat.h>
index 3e0f3805efea64ef2b2b9cd3f28650d2c72d2a1e..6b5d3abcd6d1fa43fec633086556902b5af4a52a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 9a62217290534aba883da27ae13b1e8ff2d8c75b..982a7721945749eb7ed0a070c846c8cf8951a050 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <string.h>
 
index cc6e52367537895c31e45577a8098cbe154c0fe8..0d89613d77070c47cbefd99a0ce9a6986e5cb34d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Device Device;
index f52d5babd7493a97d1bc23014f9422c663e7a63c..57198ce65293f0cc0852172e15af52810207ed67 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index e5d4426191087a4798902982ceab8d3b9c188e9f..124bdb662f30d625e4ff50fffbe6ee1464a03755 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Inhibitor Inhibitor;
index a9451322847ae3e683a2536d28b41f5f97d00da7..a60ed2d3c2d3e586f8ac3bc3b7164d9757820110 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 6169cfe1edf734bf3e73f96902677741f4dabcda..258db91d40d4064584c374d8b262a12bd70920b3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 157fc9423cbd804b13a798d4a8d155439c7ee577..10cc7d960bde2b9c93ca2631652b95ca0e5ae2f7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index f4b57ce8d2272180b978607d9ccf41cf8ef0a151..ddc45f48703df1fb9d56b2e65dd87e2ab05c7845 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Seat Seat;
index ccc5ac8df248a4033d6b4a28c93e26a35349627a..b5d240be6a5585e27bd023b794554f498c2f954e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 97f7c413cbff8c2c00e4ab5928768e268762d71c..751ca86c0dbcfe74e93bef6e68e604b1714e7079 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 1a266605be6350c6b35fcd568928f5b9dc2bc720..f2adb969d4e4119fd9a9e9d12c948f81b4b26932 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <string.h>
index 6c20403d12b5d4373d9af4a4d702ff582e8a456d..4da3fe6533838cec8b648f4cac4f66623cee5e87 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef enum DeviceType DeviceType;
index d1527380ec3b0b9de883bb3ed684d00dbf4cd7b4..34fcde92aae10b1fdb66e5d1c17376ce5cf1882a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index b87c7316721353360db6a7df0c3b4198e8726d8f..1b59bdbe74ef8264de4fd7438a3808c44f1ec780 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Session Session;
index 307462f749b27355f2d431d4428525263f86efea..414d431217dff9c42e9423ef12f30cfe418f8320 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index b3f990c5af720e608f689f28834a4387b6ae7ae3..d2f24ced636779941d7353ddd37991b2fee1ccb1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 9cb4dce641fbb6ea52f78e080fbac55e19b30cc1..9b3ec07906ed94d60a2494e92c18918040d26720 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <unistd.h>
index f8f172cb0f6d5ab4421a614b59a8dd3743890501..2c5f993faaab07b2d487ee1844ae769b5142c89e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct User User;
index d2a5890277dff631e5357d3232456eec835df38d..dfbbb641f3ba61d310173b153f66a4e93d0a6850 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <unistd.h>
index 82163343d3b4ce6cc5c794f64ab641f19b437a3e..3ddc7a074af521a6b71f6f9ed564fb9f827b6fe1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 82d319a9a26203d2e20712cf9a1d622ba5ca6917..49d1f5f957cf476fde4c74f1c2ee4ef02f6b9487 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 0a7d3d5440589e6e8f19931febacf88c857a1c80..fd3202cd989fa9ff7f7821c04427facd192c90e9 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_logind_sources = files('''
         logind.c
index df46e417c8fc7baa59a02b878de4bacb4c1a5fd3..ac14942ba9722cfa50b31cdb906b6abfded62ab5 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This file is part of systemd.
 
index 1d269c1070d78a4684aa95cbf76d643d205990dc..80ebb39f3028c06e01df7c5f3a9422457b7b203c 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This file is part of systemd.
 
index 68f1ed0f4879bc15f21bc9dc9399b895c6a8685a..6d443cf69f6c5c7ee362998d6777c5713f000ee4 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 16f42895854df7fa5ec58c3bf5eb4728e1e680e0..8e7a94db55ea87a981b56fe9c62ed5c8a624f319 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <endian.h>
 #include <errno.h>
index 030a00ecb7ce85bb6b8028d6976475da3c03c26a..130cf6a97109d0571b52bfa5173d83f14accf6a4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 {
 global:
index 9b7fc203967c297c5cb88f9fea0ffe03e50233e7..5a19dbfeff951d4ee5992da9208f730a0b037491 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index c05b977532a0d946943d0aebed08bff0cb10c292..32ccbf3de4b3ff5168f0bea278c0a97b38c3d7cd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index 7f9013bf9324943b387b78d3b10423c964833e6d..dbe79c7074d16eaaa52e10ed90e7d807208e8277 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 #include <fcntl.h>
index 02ff57ab10f29dc6d4683430966b3aa2def0e5bd..d3de9c495815db01bbd33ad60d0adc4a60eb10a0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "login-util.h"
 #include "macro.h"
index 02b871968e82390cb7c3e678738c34c983b02568..9d16685082c3a4c352e4263de52d20fb4fa25fda 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "logind-action.h"
 #include "logind-session.h"
index 84d8f1e8fde486a1930c93c81e1548ed0c1d372f..9b5bdcc3ffd34902a3ce49be55216f727bc50622 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdint.h>
 #include <sys/mount.h>
index 2bcd99109eb1a8014dbf4ca8fb96a910fde1146a..c35da05ffc430b022ec5267e21146b07014ce158 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index 740684ce339361219e22b8fbc97140c88dec28eb..c157aaf33cbc183f29480ec003bf9a3a7f326844 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/file.h>
 #include <sys/mount.h>
index d785c10817dfaf590fd0fd444625062655b8fe8b..4b00203bff2f526e8c98752c2d6ebd28a6a7440a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "bus-object.h"
index 931e6d7232591cec40bd04e2c5e651724b848429..bb67beb665b10bc166dd181d7c275ea87f4f6602 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/mount.h>
index 7080092bcf78cdfc731a079e5487b87bc942037f..1c114f47c31aca4350d2aeef229669ed66e528d4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index ace84edbb4ecd6a5c3996b18e5c21137b1895702..537b0cd77939ad466cb079370e6f12bcfc75e50f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <unistd.h>
index 634c5fc648854aeddeeace7bb8ca987f486fb2e7..2f627157a3ad48cbe1273a14c31716b9d076eb6e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Machine Machine;
index 4869797b1e22c71a69c457cc6f316f66bd05f112..4a3279d2640810f3ab3b1c48b109da0b907b3300 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <errno.h>
index 2ff155d47c42f845459efb683eac7e28a2dbfc8b..1416fbf82335b62c386fd623b09645d0137c0e81 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "machined.h"
 #include "nscd-flush.h"
index 6d4a705c47efd23bb17daa9138e45d220de764e0..494813e334813da904392174bd51419e5ebdbc89 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <unistd.h>
index de8cdeb87da2ced379cd055f164132b1669ce8de..2d6c1991a4ece5e654736d82dbd1ba2cc69867ee 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "format-util.h"
 #include "machined-varlink.h"
index 42e1c3f4a535d0613500cf051807dcee7d313576..f26bbe588c319882070a909595caa7576517be14 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "machined.h"
index 2828ed61b0353e393c5bc6c8a617f3f6b8960c25..c3c08d181d600bb6e30a58ce4ec7e436ffd66b96 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <string.h>
index c83017acb897034f51595534c44acda30c4f8d93..6e4182bbd65d667b89e0e66c99078bbae50f9be5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 291630ece988b445daa600cb8e728a63985a744f..ebbd46d4f25e1b7a2135f18e2bf243edeab3752f 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_machined_sources = files('''
         machined.c
index 42c51f36548e910685354dd7d473794bd31d94ac..34565e3e69532f93be43a89a9e9d5bb9641b2ffb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/wait.h>
 
index 0e3302856fae0ff75dd5950e6c5eb8e5755024fc..fd4828878d74a81e0b2615cb300b2dc1c6bda5f8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index 039c3d4513271ebc9628ea779399e35fa485fce0..ddf5ec05c6d92dcc862f78223141bc2a40c55b0f 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This file is part of systemd.
 
index d07bcae6eb216ab0622b2f4b171afd8549c8c6a4..64b73c1f2465923994510d6e617ec2de09ad9cea 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 04db7d82591468c97ea5de9af2ac889b065808bb..0e51755087b7752a4b70525d1a6ca9cdbbdd4dba 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "machine.h"
 #include "test-tables.h"
index 337a460318d0cb8a706d0e7bb6889e8d30f1634f..2f0cef5ff93c6207467e77ca1393e5833b928135 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index 9e570339992fe834496eb45a114026e9c23b7cf1..673f85519816dbec555e33090e693767f4c856d3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 
index 78c8d0c2b53db34361e18d97d879a177307c5253..ddabe1c27b1adfd77c3292d38c4ba47557097997 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "fd-util.h"
 #include "fs-util.h"
index 732b5b21f4527b39683077027127f979b7f8434a..1292ebacd1776506c59b21a5a74ffb9b33ba6912 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "fd-util.h"
 #include "fs-util.h"
index 61a741e5d25fce8f209604f2ed31b9fef6068ca4..f9cace70f75a9174f62876432f337b72f83705ea 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 
index 465b3eddc2f6b644413c2bfc2ad0b491e37707f1..2fa21a067a4d3d7a142676a7c0e6e1025eca4943 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "ether-addr-util.h"
 #include "fd-util.h"
index 3d75b132def6cf44656154b1ab682f7fb3c4d058..86bcaec1193451c8d6d6ca2a50807daa41caff39 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <net/ethernet.h>
index efcbdefda0f170375be95693390c3675aaefc2dc..e658d893335b700a450b2e46fda2898fe1fe0cd5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "macro.h"
 #include "network-generator.h"
index c2a197162f2c9931debb3267a9e7310f650ea466..cd1a8971998dfe802b4b7d91234b9a119c1231a6 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 sources = files('''
         netdev/bareudp.c
index 03c3ce53119b3a2adc29d5c717cf443e49d25239..22c0e49d94ced74cd57a88d6f38ed28c1d1dfc87 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 
 #include "bareudp.h"
index 105475038d24ebd665a19bba4d69c881f924d6c9..ea80bbf800ff4724a72f7abcae78f6d8417b5588 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 #pragma once
 
index 3007d6913afc9a32ce3a2aa82bd60af66f7215e8..8c777b3a06ec8cd28f0af40c5219d5322ec28eb7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bond.h"
index 64b2dd04a2bc56e27e381e29022a08c0564ef673..11d3e9ba26debf9a7b2bae3394ba5557cb579d1f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <netinet/in.h>
index 45d97ac15eeb55b53b48e5f097b3a915ad758a03..1f59cd8b42d2c0c7ad7b48082ee8ba63cd86b488 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 
index ed4f484c946457966dc010fc862e1543bfb18e84..d6abda99e8406067cb728181b3300a09a18c1701 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <netinet/in.h>
index e06dc02f3aa37bc9b1b913dd87221f41cf4905d5..754ee989520224978ba8f92a377945852d116d61 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "dummy.h"
 
index f935414772becd16497544c21b66f102f82bd7ed..eafdf4b5bf1d70afe85e10ef35b83355a555cc87 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "netdev.h"
index 832cf57deabb741f9a0725379085691409816562..6863257a58948099a218f778b50c9df73bceab34 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/fou.h>
 #include <net/if.h>
index caa3b7600e270629bc2c77e3cd9a79bced78e260..a6f10dfca469990625cdd22c06ca189a014c5ee9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <netinet/in.h>
index b4f865a538a22a2e3b83e92e35bb2c44512e8dec..edf92ec93c4862bfe82d15ecd237cb69f5048ec4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 
index 2ac3c1e8352f0076d36b6fd037dfcbfc627a7f54..b62eb7b76d8619818733fc45e5a54522c145f68c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Geneve Geneve;
index 7736a162f997f7cd89ecd302fc74f8a7f8190272..16ff49d7f0e7080f104471e08717203ed42d7b0f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 
 #include "ifb.h"
index 761d215894bf593e5449881be1ba7eb3931cd374..badfb4ad1076ad29922d48cdb75b8a99b4d1fa9f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 
 #pragma once
index bd14f625deaa0a95842f75abd203c2a32dcd1d81..92a8f583e3b11381fd623f06615990d33b6a0391 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 
index 8e658184ffce2c7fc3e7a06fadac38de32032687..633b0bd94fca3a8dee0678a2cd832c73a1ed3722 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <netinet/in.h>
index 949f124ccd66fdeb46a0a73677fb57f97d44605b..eeea19764e188d17e3059ce079fd75790e5e3643 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <linux/l2tp.h>
index d314b9870344d278e1510841885d7ef5a1b3c919..048318d6dff14b0f3c4283820d629dfb5518ff53 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <netinet/in.h>
index 9f0e6f25c1e51739fc889fd33394b102d48a33b7..82e71c3920a8b3333887ef7a520a5fd53e3d62b9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <linux/if_ether.h>
@@ -989,7 +989,7 @@ static int macsec_read_key_file(NetDev *netdev, SecurityAssociation *sa) {
         r = read_full_file_full(
                         AT_FDCWD, sa->key_file,
                         READ_FULL_FILE_SECURE | READ_FULL_FILE_UNHEX | READ_FULL_FILE_WARN_WORLD_READABLE | READ_FULL_FILE_CONNECT_SOCKET,
-                        (char **) &key, &key_len);
+                        NULL, (char **) &key, &key_len);
         if (r < 0)
                 return log_netdev_error_errno(netdev, r,
                                               "Failed to read key from '%s', ignoring: %m",
index 26ad2b7cca9771c848de07267e0c9ca936660c8f..4d88e49514657f9573e37158552d7a533031802e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <netinet/in.h>
index 8f38217789e982f94e170a94bda61f449b3e3d0d..9bdcf627b40fa5ed38809e496e9e7a13f04b2436 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 
index 7bc6eef12df2b3a4e14bdf0a15eb1bf5ab33b61e..cb7eece67f5bd74a2fe60a44789f19904a26e7fa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct MacVlan MacVlan;
index 7bbc5ad3c2adb6009823ad84d4ce2fd397d1d0e7..ba9039006b01660080a9419e958921bb02fd047d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 #include <netinet/in.h>
index 0ab9a8e3f3fc9d25fe7726aba1ce99fa806075c9..468fae591c805640a6b6165ef4afb6f6898ad6cc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-netlink.h"
index bfd2a16035c33539a1b2cd1de3f2ff86285a5a6b..b2814284a4a9d20f49b52776a636f5f6ad6bdc6b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "netdevsim.h"
 
index 4622f4a0c56f3311ffd9355370ac704da7ccdaf0..27adc594ad07fd62e5bda3788b3ea15c0f237ee8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct NetDevSim NetDevSim;
index 30e49a55abce9e6458ac1be52a23af0074c726dc..a8faed5b24580cffbc6421e7dc99b729e3114cce 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "nlmon.h"
 
index b5f65f6140d88215857f76efd4e4efe81a4b12b7..edfc504bca64022533697759e86e306bbd0a1735 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct NLMon NLMon;
index 852aa423b61fbe4283a2b2617b436b538aae11ad..66e8868284829fcdb6ae0f39ac814c173d5bb477 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <linux/fou.h>
index 6480d93e65d017dc304249abd56ad075085a06b6..d58ded757d76010e9fb56426d2017fb4e112d29e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "in-addr-util.h"
index aef72e7bbb47824f62875db96bece909198fbad4..d9d654495e0de99d361fd21b3a00345e68b9ee96 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 8a80b633da72421a7cfe8abf8efc475acaaeae7e..4d1e643f4313f6ee4def870943b831bde02ca9fc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct TunTap TunTap;
index 9a0f87b1e187033de68ae5af2342a67b7f4f5627..3621d4c5d86257874f480e13ea21417fedfeeae6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "vcan.h"
 
index d8af07e3cec6d6a0872912cfe17caa09986897da..843984fbee324269a5e7be662361906eb29a2422 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct VCan VCan;
index 8c7c1d053fe94dbf727c39b4ade6ac43a538419a..840a3277b13f1a5d8ec1e978c14707b15e84a993 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <net/if.h>
index 6a0728b1c47fbb402ab15360e84a309ef60fac2f..643f737a885373cb5b6b24ba7f835e9d3ecb8623 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Veth Veth;
index a4c7192c7d2e3fb0184c1644ee120cf7d4932815..e7f03f06f0fa5c3c5271d4d7169f338d828c6a36 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <net/if.h>
index 7f6cb14787d75dc756114700189f327fa3c71ad0..9dff924cd05db8e9cf80c46610071baf36681d37 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct VLan VLan;
index a8ed3fadcbebece67f8f73f102205d22dbf785df..ae71ae916cfa3c197deac2b75db00817f7939a37 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 
index a0bff913bd513f41eb983dd0d0cdc4ccc7b3b6dc..87977e230ca1707c981dc02c048d1252d1906c6b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct Vrf Vrf;
index 9614af1068c0947a0f90a2453584eec7ff900585..e4e32ff3909a0bf0359c8f08b917b19f86dc1f82 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/can/vxcan.h>
 
index 4531a673707d810255ef8a1d1765601af9e6de0a..47be3f017dea83ea794c5ac891fa08d3e8d13526 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct VxCan VxCan;
index d941b7d63342672b1da19c961d3fedd51b59fe40..6748f67f8f5aea2e90b02f766774ffe79195a7f8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 
index d836215c466c06bca9589fce8f03038779d71a89..371653cade2c33b1732a66d5fa6970f97f7bac23 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct VxLan VxLan;
index f1de5d41de827d9cc66ce525fa20015f10699ae5..416e9b92d187a4380398deab533dcf5f9ff7b173 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2015-2017 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
 ***/
@@ -871,7 +871,7 @@ static int wireguard_read_key_file(const char *filename, uint8_t dest[static WG_
         r = read_full_file_full(
                         AT_FDCWD, filename,
                         READ_FULL_FILE_SECURE | READ_FULL_FILE_UNBASE64 | READ_FULL_FILE_WARN_WORLD_READABLE | READ_FULL_FILE_CONNECT_SOCKET,
-                        &key, &key_len);
+                        NULL, &key, &key_len);
         if (r < 0)
                 return r;
 
index 61113113e4bc98a682ec6bd3e013f271410eb574..b9b5ae9871d6a9cf1c4681a073c7a2913fd3a21f 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #pragma once
 
 typedef struct Wireguard Wireguard;
index ff8ff35689706f641fe3a9a41b3e4b8d236d2d8c..a407c54da4b9fdd3f434246ff1407eaee0aed8d9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "missing_network.h"
 #include "xfrm.h"
index 889d3619b162f4c5c55ffdbbc321dcb865933b23..f56c4f272ac1db5a03beca0050692f2780636388 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "netdev.h"
index 86e53e6da426647b94f4dea6e226a376f20face5..63a90bc13d243a605939d4ec8371656a2b3af1db 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <getopt.h>
@@ -135,7 +135,7 @@ typedef struct LinkInfo {
         sd_device *sd_device;
         int ifindex;
         unsigned short iftype;
-        struct ether_addr mac_address;
+        hw_addr_data hw_address;
         struct ether_addr permanent_mac_address;
         uint32_t master;
         uint32_t mtu;
@@ -416,13 +416,14 @@ static int decode_link(sd_netlink_message *m, LinkInfo *info, char **patterns, b
         info->alternative_names = TAKE_PTR(altnames);
 
         info->has_mac_address =
-                sd_netlink_message_read_ether_addr(m, IFLA_ADDRESS, &info->mac_address) >= 0 &&
-                memcmp(&info->mac_address, &ETHER_ADDR_NULL, sizeof(struct ether_addr)) != 0;
+                netlink_message_read_hw_addr(m, IFLA_ADDRESS, &info->hw_address) >= 0 &&
+                memcmp(&info->hw_address, &HW_ADDR_NULL, sizeof(hw_addr_data)) != 0;
 
         info->has_permanent_mac_address =
                 ethtool_get_permanent_macaddr(NULL, info->name, &info->permanent_mac_address) >= 0 &&
                 memcmp(&info->permanent_mac_address, &ETHER_ADDR_NULL, sizeof(struct ether_addr)) != 0 &&
-                memcmp(&info->permanent_mac_address, &info->mac_address, sizeof(struct ether_addr)) != 0;
+                (info->hw_address.length != sizeof(struct ether_addr) ||
+                 memcmp(&info->permanent_mac_address, info->hw_address.addr.bytes, sizeof(struct ether_addr)) != 0);
 
         (void) sd_netlink_message_read_u32(m, IFLA_MTU, &info->mtu);
         (void) sd_netlink_message_read_u32(m, IFLA_MIN_MTU, &info->min_mtu);
@@ -1526,9 +1527,9 @@ static int link_status_one(
 
         if (info->has_mac_address) {
                 _cleanup_free_ char *description = NULL;
-                char ea[ETHER_ADDR_TO_STRING_MAX];
 
-                (void) ieee_oui(hwdb, &info->mac_address, &description);
+                if (info->hw_address.length == ETH_ALEN)
+                        (void) ieee_oui(hwdb, &info->hw_address.addr.ether, &description);
 
                 r = table_add_many(table,
                                    TABLE_EMPTY,
@@ -1536,7 +1537,7 @@ static int link_status_one(
                 if (r < 0)
                         return table_log_add_error(r);
                 r = table_add_cell_stringf(table, NULL, "%s%s%s%s",
-                                           ether_addr_to_string(&info->mac_address, ea),
+                                           HW_ADDR_TO_STR(&info->hw_address),
                                            description ? " (" : "",
                                            strempty(description),
                                            description ? ")" : "");
index 66b192256e98373735b99150786c995a8fe3b53c..f933a1da945176353f0204c7661f7f7ac8d5b0c4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 #include <linux/if_addrlabel.h>
index b92828c72e25084d14cf95cb7e2da98cdcdda7c7..11fdd9abfe2ffab4aee57555ff4cd74d3acd0cbf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index c732b6c56e44d4817e3a3914cb666b73ad2a9e21..7e27db66115dfb09affbf874df55a4a3863421b8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "networkd-address-pool.h"
index c53fe7407febbd3438444b985f2d840a1fc57aae..93bdec82e3fced798a33ee085b1b673dcbd2ea3d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "in-addr-util.h"
index 9130fae77830f32bc60a763cc6034d7d60b1c16c..bc09e3c40369e96d6c5fef07e8f1f2b9815cbdf5 100644 (file)
@@ -1,6 +1,7 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
+#include <net/if_arp.h>
 
 #include "alloc-util.h"
 #include "firewall-util.h"
@@ -21,16 +22,24 @@ int generate_ipv6_eui_64_address(const Link *link, struct in6_addr *ret) {
         assert(link);
         assert(ret);
 
+        if (link->iftype == ARPHRD_INFINIBAND) {
+                /* see RFC4391 section 8 */
+                memcpy(&ret->s6_addr[8], &link->hw_addr.addr.infiniband[12], 8);
+                ret->s6_addr[8] ^= 1 << 1;
+
+                return 0;
+        }
+
         /* see RFC4291 section 2.5.1 */
-        ret->s6_addr[8]  = link->mac.ether_addr_octet[0];
+        ret->s6_addr[8]  = link->hw_addr.addr.ether.ether_addr_octet[0];
         ret->s6_addr[8] ^= 1 << 1;
-        ret->s6_addr[9]  = link->mac.ether_addr_octet[1];
-        ret->s6_addr[10] = link->mac.ether_addr_octet[2];
+        ret->s6_addr[9]  = link->hw_addr.addr.ether.ether_addr_octet[1];
+        ret->s6_addr[10] = link->hw_addr.addr.ether.ether_addr_octet[2];
         ret->s6_addr[11] = 0xff;
         ret->s6_addr[12] = 0xfe;
-        ret->s6_addr[13] = link->mac.ether_addr_octet[3];
-        ret->s6_addr[14] = link->mac.ether_addr_octet[4];
-        ret->s6_addr[15] = link->mac.ether_addr_octet[5];
+        ret->s6_addr[13] = link->hw_addr.addr.ether.ether_addr_octet[3];
+        ret->s6_addr[14] = link->hw_addr.addr.ether.ether_addr_octet[4];
+        ret->s6_addr[15] = link->hw_addr.addr.ether.ether_addr_octet[5];
 
         return 0;
 }
@@ -1373,7 +1382,7 @@ static int ipv4_dad_configure(Address *address) {
         if (r < 0)
                 return r;
 
-        r = sd_ipv4acd_set_mac(address->acd, &address->link->mac);
+        r = sd_ipv4acd_set_mac(address->acd, &address->link->hw_addr.addr.ether);
         if (r < 0)
                 return r;
 
@@ -1403,7 +1412,7 @@ static int ipv4_dad_update_mac_one(Address *address) {
         if (r < 0)
                 return r;
 
-        r = sd_ipv4acd_set_mac(address->acd, &address->link->mac);
+        r = sd_ipv4acd_set_mac(address->acd, &address->link->hw_addr.addr.ether);
         if (r < 0)
                 return r;
 
index 0104747d9a5da713594bd29897f3053216c7dfdd..56e81da82232c9b784f76c7e16bc9ce7595e77c2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 23ca4f9fac84af2dd8f15182fb51f4d9f616f5ee..e53c73c30c0a7870c903820f0e65fe19173b0587 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2016 BISDN GmbH. All rights reserved.
 ***/
index d13ea30151eae6ec72f6ba352f86f8eeae722d43..938b7901f19a73603bb157dbcb2f1e421cd1712f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index e5504f77381c9d4405466bbd8217ae29e9eea27e..7e31d2fc822418ed4ce0c4b6bc1d429305e97e12 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 #include <linux/can/netlink.h>
index 30e99b189d3def7491bf873991c6b0ce1d076de9..7a2705bf9a09fc0374c133b3b8fcde20b819c388 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index 233ef9f4f640c8cac3b96c78238e72f18f4f59fd..bf51624ec489984b3dd8a8428a2fd328d9c7a46a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Vinay Kulkarni <kulkarniv@vmware.com>
  ***/
index 88a2c64031c22fcc5a497c3e380d2699695a4074..b485e9e5418c695a8ba70bbad14b0f7cac388fbf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index a41bd348dc4bfb04f1c24d6f1f3307e7b6c3b676..253756126554628789e8b9cfbb8eba5a94d962bb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <linux/if_arp.h>
index fc84450e5eb5e8a2266f200fc6ac34164c3861d4..78c149ebccb5209ca41ffb37f984150b8d2aea7e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index 3de8c16d897221fe8d4e2f2ab70c50a2c15c4a92..32f4baed78c6ff2c97750802fe51ff22ac8e4bf0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-dhcp-server.h"
 
index 49164ff0bb596c03c67141e32d3b9be603855353..7191478200229560baca13fa75f9a5ebd80cde4c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 0155ab2de2a5128cef79276b6e5d0c26ab51e7e6..cf279c640dc75cef0f045149de749236d39ffd18 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <linux/if_arp.h>
index 2250a30af415794464a1e68fc924d7a0baa624ad..4bd5120ea0b2c0d8ac1ef9ce3825b2941cf3d7d5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index bb8c34f7cc5959c048e21a3a6b61c73cb54453ec..02d33841b69277ad51503a779fb8c80b7cc827bc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <netinet/ip.h>
@@ -650,7 +650,7 @@ static int dhcp4_configure_dad(Link *link) {
         if (r < 0)
                 return r;
 
-        r = sd_ipv4acd_set_mac(link->dhcp_acd, &link->mac);
+        r = sd_ipv4acd_set_mac(link->dhcp_acd, &link->hw_addr.addr.ether);
         if (r < 0)
                 return r;
 
@@ -672,7 +672,7 @@ static int dhcp4_dad_update_mac(Link *link) {
         if (r < 0)
                 return r;
 
-        r = sd_ipv4acd_set_mac(link->dhcp_acd, &link->mac);
+        r = sd_ipv4acd_set_mac(link->dhcp_acd, &link->hw_addr.addr.ether);
         if (r < 0)
                 return r;
 
@@ -1271,14 +1271,24 @@ static int dhcp4_set_client_identifier(Link *link) {
                         return log_link_error_errno(link, r, "DHCP4 CLIENT: Failed to set DUID: %m");
                 break;
         }
-        case DHCP_CLIENT_ID_MAC:
+        case DHCP_CLIENT_ID_MAC: {
+                const uint8_t *hw_addr = link->hw_addr.addr.bytes;
+                size_t hw_addr_len = link->hw_addr.length;
+
+                if (link->iftype == ARPHRD_INFINIBAND && hw_addr_len == INFINIBAND_ALEN) {
+                        /* set_client_id expects only last 8 bytes of an IB address */
+                        hw_addr += INFINIBAND_ALEN - 8;
+                        hw_addr_len -= INFINIBAND_ALEN - 8;
+                }
+
                 r = sd_dhcp_client_set_client_id(link->dhcp_client,
-                                                 ARPHRD_ETHER,
-                                                 (const uint8_t *) &link->mac,
-                                                 sizeof(link->mac));
+                                                 link->iftype,
+                                                 hw_addr,
+                                                 hw_addr_len);
                 if (r < 0)
                         return log_link_error_errno(link, r, "DHCP4 CLIENT: Failed to set client ID: %m");
                 break;
+        }
         default:
                 assert_not_reached("Unknown client identifier type.");
         }
@@ -1325,8 +1335,9 @@ int dhcp4_configure(Link *link) {
                 return log_link_error_errno(link, r, "DHCP4 CLIENT: Failed to initialize DHCP4 client: %m");
 
         r = sd_dhcp_client_set_mac(link->dhcp_client,
-                                   (const uint8_t *) &link->mac,
-                                   sizeof (link->mac), ARPHRD_ETHER);
+                                   link->hw_addr.addr.bytes,
+                                   link->bcast_addr.length > 0 ? link->bcast_addr.addr.bytes : NULL,
+                                   link->hw_addr.length, link->iftype);
         if (r < 0)
                 return log_link_error_errno(link, r, "DHCP4 CLIENT: Failed to set MAC address: %m");
 
@@ -1484,7 +1495,9 @@ int dhcp4_update_mac(Link *link) {
         if (!link->dhcp_client)
                 return 0;
 
-        r = sd_dhcp_client_set_mac(link->dhcp_client, (const uint8_t *) &link->mac, sizeof (link->mac), ARPHRD_ETHER);
+        r = sd_dhcp_client_set_mac(link->dhcp_client, link->hw_addr.addr.bytes,
+                                   link->bcast_addr.length > 0 ? link->bcast_addr.addr.bytes : NULL,
+                                   link->hw_addr.length, link->iftype);
         if (r < 0)
                 return r;
 
index 8aa6ac9453eacd271e9cf6ed836651c2208ad88d..daab5b1d7d14d91c7abc67e4207c0c1b6ae453e6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index d9cc4ccf41326ef4517dd261947c480c8ecd94a6..d4d4182ee554905713804eb01788b8b433d41bbb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Intel Corporation. All rights reserved.
 ***/
@@ -1357,7 +1357,7 @@ static int dhcp6_set_identifier(Link *link, sd_dhcp6_client *client) {
         assert(link->network);
         assert(client);
 
-        r = sd_dhcp6_client_set_mac(client, (const uint8_t *) &link->mac, sizeof (link->mac), ARPHRD_ETHER);
+        r = sd_dhcp6_client_set_mac(client, link->hw_addr.addr.bytes, link->hw_addr.length, link->iftype);
         if (r < 0)
                 return r;
 
index 4956c90915a14657233450cb68a62199ed173f76..65b35fd1e822dc06e0a4a88965b52024818f4c4d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-dhcp6-client.h"
index 2e35f7d1bf525a097699efaeb025c046f95428b0..283dece04f8128609d548c35b6dac14ed21be6d6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Intel Corporation. All rights reserved.
 ***/
index 935406e022bd1282f71e4ff4ac7bbf4a09e41c69..48f4e40b379b15ccf24b52f1d9a9bd40e037a5ec 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index 3be395e1ada6989ef9de339afc85073240660256..295abe866ef0d8326077c51de0d40c2974fe880b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <linux/if.h>
@@ -181,7 +181,7 @@ int ipv4ll_configure(Link *link) {
                         return r;
         }
 
-        r = sd_ipv4ll_set_mac(link->ipv4ll, &link->mac);
+        r = sd_ipv4ll_set_mac(link->ipv4ll, &link->hw_addr.addr.ether);
         if (r < 0)
                 return r;
 
@@ -211,7 +211,7 @@ int ipv4ll_update_mac(Link *link) {
         if (r < 0)
                 return r;
 
-        r = sd_ipv4ll_set_mac(link->ipv4ll, &link->mac);
+        r = sd_ipv4ll_set_mac(link->ipv4ll, &link->hw_addr.addr.ether);
         if (r < 0)
                 return r;
 
index 4833e304b6c480eafcd48492dbe8f248dd729350..fae48cd921bdc124e10339b18d9250617772def2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index fb8464ff2fa7cdeeb3769700f73396fb98d46d10..0b57c6c4db969670ee3c833bb08c32354489aa6b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <linux/if.h>
@@ -84,7 +84,7 @@ static int ipv6_proxy_ndp_set(Link *link) {
 
         r = sysctl_write_ip_property_boolean(AF_INET6, link->ifname, "proxy_ndp", v);
         if (r < 0)
-                return log_link_warning_errno(link, r, "Cannot configure proxy NDP for the interface: %m");
+                return log_link_warning_errno(link, r, "Cannot configure proxy NDP for the interface, ignoring: %m");
 
         return v;
 }
@@ -100,7 +100,7 @@ int link_set_ipv6_proxy_ndp_addresses(Link *link) {
         /* enable or disable proxy_ndp itself depending on whether ipv6_proxy_ndp_addresses are set or not */
         r = ipv6_proxy_ndp_set(link);
         if (r <= 0)
-                return r;
+                return 0;
 
         SET_FOREACH(address, link->network->ipv6_proxy_ndp_addresses) {
                 r = ipv6_proxy_ndp_address_configure(link, address);
index e58b17ec942585fe0dc96fd3fd0bcad33f39c509..27313efa0c8d48a80c4850f2ab26d75da877d334 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index 072dfac93d6a8c57efc90657692a42983758c7e5..9f4c719e31d384d93ab20e4716018907eefd7d83 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 #include <netinet/in.h>
index 94474f22fffbf1bd9a9cdac3bd1b942a003507b3..45594dfac99911428496131f78673741a7f32af3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index faf74bd8393c67a6734ae3f8e67e7dda474bf52c..ced18de42583faa47f59e3ee28c6578b5b0b54c7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <linux/if.h>
@@ -421,9 +421,13 @@ static int link_new(Manager *manager, sd_netlink_message *message, Link **ret) {
         if (r < 0)
                 log_link_debug_errno(link, r, "New device has no master, continuing without");
 
-        r = sd_netlink_message_read_ether_addr(message, IFLA_ADDRESS, &link->mac);
+        r = netlink_message_read_hw_addr(message, IFLA_ADDRESS, &link->hw_addr);
         if (r < 0)
-                log_link_debug_errno(link, r, "MAC address not found for new device, continuing without");
+                log_link_debug_errno(link, r, "Hardware address not found for new device, continuing without");
+
+        r = netlink_message_read_hw_addr(message, IFLA_BROADCAST, &link->bcast_addr);
+        if (r < 0)
+                log_link_debug_errno(link, r, "Broadcast address not found for new device, continuing without");
 
         r = ethtool_get_permanent_macaddr(&manager->ethtool_fd, link->ifname, &link->permanent_mac);
         if (r < 0)
@@ -2167,7 +2171,7 @@ static int link_reconfigure_internal(Link *link, sd_netlink_message *m, bool for
 
         r = network_get(link->manager, link->iftype, link->sd_device,
                         link->ifname, link->alternative_names, link->driver,
-                        &link->mac, &link->permanent_mac,
+                        &link->hw_addr.addr.ether, &link->permanent_mac,
                         link->wlan_iftype, link->ssid, &link->bssid, &network);
         if (r == -ENOENT) {
                 link_enter_unmanaged(link);
@@ -2302,7 +2306,7 @@ static int link_initialized_and_synced(Link *link) {
 
                 r = network_get(link->manager, link->iftype, link->sd_device,
                                 link->ifname, link->alternative_names, link->driver,
-                                &link->mac, &link->permanent_mac,
+                                &link->hw_addr.addr.ether, &link->permanent_mac,
                                 link->wlan_iftype, link->ssid, &link->bssid, &network);
                 if (r == -ENOENT) {
                         link_enter_unmanaged(link);
@@ -2697,7 +2701,7 @@ static int link_admin_state_up(Link *link) {
 
 int link_update(Link *link, sd_netlink_message *m) {
         _cleanup_strv_free_ char **s = NULL;
-        struct ether_addr mac;
+        hw_addr_data hw_addr;
         const char *ifname;
         uint32_t mtu;
         bool had_carrier, carrier_gained, carrier_lost, link_was_admin_up;
@@ -2756,19 +2760,13 @@ int link_update(Link *link, sd_netlink_message *m) {
 
         /* The kernel may broadcast NEWLINK messages without the MAC address
            set, simply ignore them. */
-        r = sd_netlink_message_read_ether_addr(m, IFLA_ADDRESS, &mac);
-        if (r >= 0 && memcmp(link->mac.ether_addr_octet, mac.ether_addr_octet, ETH_ALEN) != 0) {
+        r = netlink_message_read_hw_addr(m, IFLA_ADDRESS, &hw_addr);
+        if (r >= 0 && (link->hw_addr.length != hw_addr.length ||
+                       memcmp(link->hw_addr.addr.bytes, hw_addr.addr.bytes, hw_addr.length) != 0)) {
 
-                memcpy(link->mac.ether_addr_octet, mac.ether_addr_octet, ETH_ALEN);
+                memcpy(link->hw_addr.addr.bytes, hw_addr.addr.bytes, hw_addr.length);
 
-                log_link_debug(link, "Gained new MAC address: "
-                               "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",
-                               mac.ether_addr_octet[0],
-                               mac.ether_addr_octet[1],
-                               mac.ether_addr_octet[2],
-                               mac.ether_addr_octet[3],
-                               mac.ether_addr_octet[4],
-                               mac.ether_addr_octet[5]);
+                log_link_debug(link, "Gained new hardware address: %s", HW_ADDR_TO_STR(&hw_addr));
 
                 r = ipv4ll_update_mac(link);
                 if (r < 0)
@@ -2782,12 +2780,12 @@ int link_update(Link *link, sd_netlink_message *m) {
                 if (r < 0)
                         return log_link_warning_errno(link, r, "Could not update MAC address in DHCPv6 client: %m");
 
-                r = dhcp6_update_mac(link);
+                r = radv_update_mac(link);
                 if (r < 0)
                         return log_link_warning_errno(link, r, "Could not update MAC address for Router Advertisement: %m");
 
                 if (link->ndisc) {
-                        r = sd_ndisc_set_mac(link->ndisc, &link->mac);
+                        r = sd_ndisc_set_mac(link->ndisc, &link->hw_addr.addr.ether);
                         if (r < 0)
                                 return log_link_warning_errno(link, r, "Could not update MAC for NDisc: %m");
                 }
index a7ae2645f95817461eaf74e71e581369c48bb779..cd541920cb85f6b6c89659ce7f12bc7bfb53184e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <endian.h>
@@ -16,6 +16,7 @@
 #include "sd-radv.h"
 #include "sd-netlink.h"
 
+#include "ether-addr-util.h"
 #include "log-link.h"
 #include "network-util.h"
 #include "networkd-util.h"
@@ -52,7 +53,8 @@ typedef struct Link {
         char *kind;
         unsigned short iftype;
         char *state_file;
-        struct ether_addr mac;
+        hw_addr_data hw_addr;
+        hw_addr_data bcast_addr;
         struct ether_addr permanent_mac;
         struct in6_addr ipv6ll_address;
         uint32_t mtu;
index 65a8a314d602adf6412fdf74bc7b5d9492a8f52e..c22852ff5042abd03c79e74a9155df8316e530dd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 #include <net/if_arp.h>
@@ -93,7 +93,7 @@ int link_lldp_rx_configure(Link *link) {
         if (r < 0)
                 return r;
 
-        r = sd_lldp_set_filter_address(link->lldp, &link->mac);
+        r = sd_lldp_set_filter_address(link->lldp, &link->hw_addr.addr.ether);
         if (r < 0)
                 return r;
 
index 8e1a6a0b62101bff6f4632e8a999f4bdaf6bc685..78c522893b4125663d9ad00716dce3a45d39db79 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index c8e56a5fece64efcf06a73531711a8f6978c67c3..b03d948bd89565496c77aaac6ba736340754fabd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <endian.h>
 #include <inttypes.h>
@@ -313,7 +313,7 @@ static int link_send_lldp(Link *link) {
                 SD_LLDP_SYSTEM_CAPABILITIES_STATION;
 
         r = lldp_make_packet(link->network->lldp_emit,
-                             &link->mac,
+                             &link->hw_addr.addr.ether,
                              sd_id128_to_string(machine_id, machine_id_string),
                              link->ifname,
                              (uint16_t) ttl,
index 1409984ac02fda3f0bcf80897694f3089a727ccf..aae30cba0f97e2e38d00127aa30ab4cb32c4a01c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 8dbcdff8268942212a139d24e4c192551733b6af..a0ac8b51fbf50ffa13fe2add0d7b922a3e823d8a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 #include <netinet/in.h>
index e19d7069270605f3af54fd6a84386eb6784145b1..08ddfbdb73b5368b95afd31e8bbb991df72c386b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index b5aba1f1dc2f33c4d96fc5994d65e86daffbea31..e8b6615afa31a5e34934baad1e4413fd8f0c87ab 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <sys/socket.h>
@@ -38,6 +38,7 @@
 #include "ordered-set.h"
 #include "path-lookup.h"
 #include "path-util.h"
+#include "selinux-util.h"
 #include "set.h"
 #include "signal-util.h"
 #include "stat-util.h"
@@ -971,7 +972,7 @@ static int manager_enumerate_internal(
 
         r = sd_netlink_call(m->rtnl, req, 0, &reply);
         if (r < 0) {
-                if (r == -EOPNOTSUPP && name) {
+                if (name && (r == -EOPNOTSUPP || (r == -EINVAL && mac_selinux_enforcing()))) {
                         log_debug_errno(r, "%s are not supported by the kernel. Ignoring.", name);
                         return 0;
                 }
index ac7de58c649a8ee34dc27d932426903aceaa1256..b67116be59ba0e3c2cd0dca861a3fe5afbe416d8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index bca3e620dd4528597cfbc2a770f355ec04a3b99d..0300dced621b84b87f448f987f4523983a1c333d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 
index 563a9e6d994a8cbb94e2f95c946c578501eabeac..ea8841275e3ce2c2c5ee29d52a332744f60e0a41 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 6fde8fe239259b4650d4939edbab70cfcd65f5f2..f4bea080701a152b854e6f3cce39d619cd703d93 100644 (file)
@@ -1,10 +1,11 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Intel Corporation. All rights reserved.
 ***/
 
 #include <arpa/inet.h>
 #include <netinet/icmp6.h>
+#include <net/if_arp.h>
 #include <linux/if.h>
 
 #include "sd-ndisc.h"
@@ -593,7 +594,11 @@ static int make_stableprivate_address(Link *link, const struct in6_addr *prefix,
         l = MAX(DIV_ROUND_UP(prefix_len, 8), 8);
         siphash24_compress(prefix, l, &state);
         siphash24_compress_string(link->ifname, &state);
-        siphash24_compress(&link->mac, sizeof(struct ether_addr), &state);
+        /* Only last 8 bytes of IB MAC are stable */
+        if (link->iftype == ARPHRD_INFINIBAND)
+                siphash24_compress(&link->hw_addr.addr.infiniband[12], 8, &state);
+        else
+                siphash24_compress(link->hw_addr.addr.bytes, link->hw_addr.length, &state);
         siphash24_compress(&dad_counter, sizeof(uint8_t), &state);
 
         rid = htole64(siphash24_finalize(&state));
@@ -1257,7 +1262,7 @@ int ndisc_configure(Link *link) {
                         return r;
         }
 
-        r = sd_ndisc_set_mac(link->ndisc, &link->mac);
+        r = sd_ndisc_set_mac(link->ndisc, &link->hw_addr.addr.ether);
         if (r < 0)
                 return r;
 
index 4e9a704995f84a92212e204b28d57ccfda44f9df..1562411224895d0b72f82e1a5b8a614745290a2a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index b553f1707ecfb45e8ce05843f4952fc8ea2df54e..c805d52cf3e8256ee0f994a900e843ad33156c8b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "hashmap.h"
index bb403ef2da2e00c6613c92de91e40227daf5c6fc..8ad790be2db5a9cb946a582b6ff2305d5d5057c5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 70fddd56a53155d524137a3b55e8caf73f08ecad..0e5f1488d8acecb364aa881fb3af23390541ba66 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "ether-addr-util.h"
index 650e145d42f2017cc434183a5cb29a3b6a1b2c17..cca1e0af33f8bf3ee67b94735a13a38bd09df5aa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 426dd0a8f0bfc6dc206ee3e5b76a6c962328e0d0..00bd73560ccbd661c775d924edff9df944270036 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 #include <netinet/in.h>
@@ -379,6 +379,7 @@ int network_load_one(Manager *manager, OrderedHashmap **networks, const char *fi
                 .dhcp_server_emit_router = true,
                 .dhcp_server_emit_timezone = true,
 
+                .router_lifetime_usec = 30 * USEC_PER_MINUTE,
                 .router_emit_dns = true,
                 .router_emit_domains = true,
 
index 92c7a4636fed62371c0632b5612be32152b67312..fd0fe056b24937ac2d2ffeaf3b3d9b8b251147ba 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/nl80211.h>
index 6edeaabf88afa0f2e76f92bbc6dea938432d7d8f..4a09b4c91268739d87b26383ef0d0a3b1dae4399 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc.
  */
 
index 3cdb068efd73f9605785b86f4ee785db15de92e1..75714e7ef5ff92310b2f3b62511197f433188e0a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc.
  */
 
index eb10f21cbd456602720043e8a934f8610e91dfdc..a8e1b2b4898c023be491da8349db9c70e90e6d44 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2017 Intel Corporation. All rights reserved.
 ***/
@@ -641,6 +641,7 @@ static bool link_radv_enabled(Link *link) {
 }
 
 int radv_configure(Link *link) {
+        uint16_t router_lifetime;
         RoutePrefix *q;
         Prefix *p;
         int r;
@@ -659,7 +660,7 @@ int radv_configure(Link *link) {
         if (r < 0)
                 return r;
 
-        r = sd_radv_set_mac(link->radv, &link->mac);
+        r = sd_radv_set_mac(link->radv, &link->hw_addr.addr.ether);
         if (r < 0)
                 return r;
 
@@ -675,16 +676,20 @@ int radv_configure(Link *link) {
         if (r < 0)
                 return r;
 
-        /* a value of 0xffffffff represents infinity, 0x0 means this host is
-           not a router */
-        r = sd_radv_set_router_lifetime(link->radv,
-                                        DIV_ROUND_UP(link->network->router_lifetime_usec, USEC_PER_SEC));
+        /* a value of UINT16_MAX represents infinity, 0x0 means this host is not a router */
+        if (link->network->router_lifetime_usec == USEC_INFINITY)
+                router_lifetime = UINT16_MAX;
+        else if (link->network->router_lifetime_usec > (UINT16_MAX - 1) * USEC_PER_SEC)
+                router_lifetime = UINT16_MAX - 1;
+        else
+                router_lifetime = DIV_ROUND_UP(link->network->router_lifetime_usec, USEC_PER_SEC);
+
+        r = sd_radv_set_router_lifetime(link->radv, router_lifetime);
         if (r < 0)
                 return r;
 
-        if (link->network->router_lifetime_usec > 0) {
-                r = sd_radv_set_preference(link->radv,
-                                           link->network->router_preference);
+        if (router_lifetime > 0) {
+                r = sd_radv_set_preference(link->radv, link->network->router_preference);
                 if (r < 0)
                         return r;
         }
@@ -727,7 +732,7 @@ int radv_update_mac(Link *link) {
         if (r < 0)
                 return r;
 
-        r = sd_radv_set_mac(link->radv, &link->mac);
+        r = sd_radv_set_mac(link->radv, &link->hw_addr.addr.ether);
         if (r < 0)
                 return r;
 
index 75c606d15e2afdebe7a4a05ef9ceef5fd8736c57..4dfbefef95f4ae4878f00f24d50b33bd76ea35c5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index dd05e11067be05ec5a8db6f02b52b9265b9f2795..10f30c1a7ebfb2ef15cf319c74bfff90bfad0c11 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/icmpv6.h>
 #include <linux/ipv6_route.h>
@@ -581,6 +581,110 @@ static int route_add(Manager *manager, Link *link, const Route *in, const Multip
         return 0;
 }
 
+static int route_set_netlink_message(const Route *route, sd_netlink_message *req, Link *link) {
+        unsigned flags;
+        int r;
+
+        assert(route);
+        assert(req);
+
+        /* link may be NULL */
+
+        if (in_addr_is_null(route->gw_family, &route->gw) == 0) {
+                if (route->gw_family == route->family) {
+                        r = netlink_message_append_in_addr_union(req, RTA_GATEWAY, route->gw_family, &route->gw);
+                        if (r < 0)
+                                return log_link_error_errno(link, r, "Could not append RTA_GATEWAY attribute: %m");
+                } else {
+                        RouteVia rtvia = {
+                                .family = route->gw_family,
+                                .address = route->gw,
+                        };
+
+                        r = sd_netlink_message_append_data(req, RTA_VIA, &rtvia, sizeof(rtvia));
+                        if (r < 0)
+                                return log_link_error_errno(link, r, "Could not append RTA_VIA attribute: %m");
+                }
+        }
+
+        if (route->dst_prefixlen > 0) {
+                r = netlink_message_append_in_addr_union(req, RTA_DST, route->family, &route->dst);
+                if (r < 0)
+                        return log_link_error_errno(link, r, "Could not append RTA_DST attribute: %m");
+
+                r = sd_rtnl_message_route_set_dst_prefixlen(req, route->dst_prefixlen);
+                if (r < 0)
+                        return log_link_error_errno(link, r, "Could not set destination prefix length: %m");
+        }
+
+        if (route->src_prefixlen > 0) {
+                r = netlink_message_append_in_addr_union(req, RTA_SRC, route->family, &route->src);
+                if (r < 0)
+                        return log_link_error_errno(link, r, "Could not append RTA_SRC attribute: %m");
+
+                r = sd_rtnl_message_route_set_src_prefixlen(req, route->src_prefixlen);
+                if (r < 0)
+                        return log_link_error_errno(link, r, "Could not set source prefix length: %m");
+        }
+
+        if (in_addr_is_null(route->family, &route->prefsrc) == 0) {
+                r = netlink_message_append_in_addr_union(req, RTA_PREFSRC, route->family, &route->prefsrc);
+                if (r < 0)
+                        return log_link_error_errno(link, r, "Could not append RTA_PREFSRC attribute: %m");
+        }
+
+        r = sd_rtnl_message_route_set_scope(req, route->scope);
+        if (r < 0)
+                return log_link_error_errno(link, r, "Could not set scope: %m");
+
+        flags = route->flags;
+        if (route->gateway_onlink >= 0)
+                SET_FLAG(flags, RTNH_F_ONLINK, route->gateway_onlink);
+
+        r = sd_rtnl_message_route_set_flags(req, flags);
+        if (r < 0)
+                return log_link_error_errno(link, r, "Could not set flags: %m");
+
+        if (route->table != RT_TABLE_MAIN) {
+                if (route->table < 256) {
+                        r = sd_rtnl_message_route_set_table(req, route->table);
+                        if (r < 0)
+                                return log_link_error_errno(link, r, "Could not set route table: %m");
+                } else {
+                        r = sd_rtnl_message_route_set_table(req, RT_TABLE_UNSPEC);
+                        if (r < 0)
+                                return log_link_error_errno(link, r, "Could not set route table: %m");
+
+                        /* Table attribute to allow more than 256. */
+                        r = sd_netlink_message_append_data(req, RTA_TABLE, &route->table, sizeof(route->table));
+                        if (r < 0)
+                                return log_link_error_errno(link, r, "Could not append RTA_TABLE attribute: %m");
+                }
+        }
+
+        r = sd_rtnl_message_route_set_type(req, route->type);
+        if (r < 0)
+                return log_link_error_errno(link, r, "Could not set route type: %m");
+
+        if (!IN_SET(route->type, RTN_UNREACHABLE, RTN_PROHIBIT, RTN_BLACKHOLE, RTN_THROW)) {
+                assert(link); /* Those routes must be attached to a specific link */
+
+                r = sd_netlink_message_append_u32(req, RTA_OIF, link->ifindex);
+                if (r < 0)
+                        return log_link_error_errno(link, r, "Could not append RTA_OIF attribute: %m");
+        }
+
+        r = sd_netlink_message_append_u8(req, RTA_PREF, route->pref);
+        if (r < 0)
+                return log_link_error_errno(link, r, "Could not append RTA_PREF attribute: %m");
+
+        r = sd_netlink_message_append_u32(req, RTA_PRIORITY, route->priority);
+        if (r < 0)
+                return log_link_error_errno(link, r, "Could not append RTA_PRIORITY attribute: %m");
+
+        return 0;
+}
+
 static int route_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link) {
         int r;
 
@@ -642,66 +746,11 @@ int route_remove(
                                strna(route_type_to_string(route->type)));
         }
 
-        if (in_addr_is_null(route->gw_family, &route->gw) == 0) {
-                if (route->gw_family == route->family) {
-                        r = netlink_message_append_in_addr_union(req, RTA_GATEWAY, route->gw_family, &route->gw);
-                        if (r < 0)
-                                return log_link_error_errno(link, r, "Could not append RTA_GATEWAY attribute: %m");
-                } else {
-                        RouteVia rtvia = {
-                                .family = route->gw_family,
-                                .address = route->gw,
-                        };
-
-                        r = sd_netlink_message_append_data(req, RTA_VIA, &rtvia, sizeof(rtvia));
-                        if (r < 0)
-                                return log_link_error_errno(link, r, "Could not append RTA_VIA attribute: %m");
-                }
-        }
-
-        if (route->dst_prefixlen) {
-                r = netlink_message_append_in_addr_union(req, RTA_DST, route->family, &route->dst);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append RTA_DST attribute: %m");
-
-                r = sd_rtnl_message_route_set_dst_prefixlen(req, route->dst_prefixlen);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not set destination prefix length: %m");
-        }
-
-        if (route->src_prefixlen) {
-                r = netlink_message_append_in_addr_union(req, RTA_SRC, route->family, &route->src);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append RTA_SRC attribute: %m");
-
-                r = sd_rtnl_message_route_set_src_prefixlen(req, route->src_prefixlen);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not set source prefix length: %m");
-        }
-
-        if (in_addr_is_null(route->family, &route->prefsrc) == 0) {
-                r = netlink_message_append_in_addr_union(req, RTA_PREFSRC, route->family, &route->prefsrc);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append RTA_PREFSRC attribute: %m");
-        }
-
-        r = sd_rtnl_message_route_set_scope(req, route->scope);
+        r = route_set_netlink_message(route, req, link);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not set scope: %m");
-
-        r = sd_netlink_message_append_u32(req, RTA_PRIORITY, route->priority);
-        if (r < 0)
-                return log_link_error_errno(link, r, "Could not append RTA_PRIORITY attribute: %m");
-
-        if (!IN_SET(route->type, RTN_UNREACHABLE, RTN_PROHIBIT, RTN_BLACKHOLE, RTN_THROW)) {
-                assert(link); /* Those routes must be attached to a specific link */
-
-                r = sd_netlink_message_append_u32(req, RTA_OIF, link->ifindex);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append RTA_OIF attribute: %m");
-        }
+                return r;
 
-        r = netlink_call_async(link->manager->rtnl, NULL, req,
+        r = netlink_call_async(manager->rtnl, NULL, req,
                                callback ?: route_remove_handler,
                                link_netlink_destroy_callback, link);
         if (r < 0)
@@ -712,7 +761,7 @@ int route_remove(
         return 0;
 }
 
-static bool link_is_static_route_configured(const Link *link, const Route *route) {
+static bool link_has_route(const Link *link, const Route *route) {
         Route *net_route;
 
         assert(link);
@@ -728,11 +777,78 @@ static bool link_is_static_route_configured(const Link *link, const Route *route
         return false;
 }
 
+static bool links_have_route(Manager *manager, const Route *route, const Link *except) {
+        Link *link;
+
+        assert(manager);
+
+        HASHMAP_FOREACH(link, manager->links) {
+                if (link == except)
+                        continue;
+
+                if (link_has_route(link, route))
+                        return true;
+        }
+
+        return false;
+}
+
+static int manager_drop_foreign_routes(Manager *manager) {
+        Route *route;
+        int k, r = 0;
+
+        assert(manager);
+
+        SET_FOREACH(route, manager->routes_foreign) {
+                /* do not touch routes managed by the kernel */
+                if (route->protocol == RTPROT_KERNEL)
+                        continue;
+
+                if (links_have_route(manager, route, NULL))
+                        /* The route will be configured later. */
+                        continue;
+
+                /* The existing links do not have the route. Let's drop this now. It may by
+                 * re-configured later. */
+                k = route_remove(route, manager, NULL, NULL);
+                if (k < 0 && r >= 0)
+                        r = k;
+        }
+
+        return r;
+}
+
+static int manager_drop_routes(Manager *manager, Link *except) {
+        Route *route;
+        int k, r = 0;
+
+        assert(manager);
+
+        SET_FOREACH(route, manager->routes) {
+                /* do not touch routes managed by the kernel */
+                if (route->protocol == RTPROT_KERNEL)
+                        continue;
+
+                if (links_have_route(manager, route, except))
+                        /* The route will be configured later. */
+                        continue;
+
+                /* The existing links do not have the route. Let's drop this now. It may by
+                 * re-configured later. */
+                k = route_remove(route, manager, NULL, NULL);
+                if (k < 0 && r >= 0)
+                        r = k;
+        }
+
+        return r;
+}
+
 int link_drop_foreign_routes(Link *link) {
         Route *route;
         int k, r = 0;
 
         assert(link);
+        assert(link->manager);
 
         SET_FOREACH(route, link->routes_foreign) {
                 /* do not touch routes managed by the kernel */
@@ -756,7 +872,7 @@ int link_drop_foreign_routes(Link *link) {
                     FLAGS_SET(link->network->keep_configuration, KEEP_CONFIGURATION_DHCP))
                         continue;
 
-                if (link_is_static_route_configured(link, route))
+                if (link_has_route(link, route))
                         k = route_add(NULL, link, route, NULL, NULL);
                 else
                         k = route_remove(route, NULL, link, NULL);
@@ -764,6 +880,10 @@ int link_drop_foreign_routes(Link *link) {
                         r = k;
         }
 
+        k = manager_drop_foreign_routes(link->manager);
+        if (k < 0 && r >= 0)
+                r = k;
+
         return r;
 }
 
@@ -783,6 +903,10 @@ int link_drop_routes(Link *link) {
                         r = k;
         }
 
+        k = manager_drop_routes(link->manager, link);
+        if (k < 0 && r >= 0)
+                r = k;
+
         return r;
 }
 
@@ -930,7 +1054,6 @@ int route_configure(
                 Route **ret) {
 
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *req = NULL;
-        unsigned flags;
         int r;
 
         assert(link);
@@ -974,85 +1097,9 @@ int route_configure(
         if (r < 0)
                 return log_link_error_errno(link, r, "Could not create RTM_NEWROUTE message: %m");
 
-        if (in_addr_is_null(route->gw_family, &route->gw) == 0) {
-                if (route->gw_family == route->family) {
-                        r = netlink_message_append_in_addr_union(req, RTA_GATEWAY, route->gw_family, &route->gw);
-                        if (r < 0)
-                                return log_link_error_errno(link, r, "Could not append RTA_GATEWAY attribute: %m");
-                } else {
-                        RouteVia rtvia = {
-                                .family = route->gw_family,
-                                .address = route->gw,
-                        };
-
-                        r = sd_netlink_message_append_data(req, RTA_VIA, &rtvia, sizeof(rtvia));
-                        if (r < 0)
-                                return log_link_error_errno(link, r, "Could not append RTA_VIA attribute: %m");
-                }
-        }
-
-        if (route->dst_prefixlen > 0) {
-                r = netlink_message_append_in_addr_union(req, RTA_DST, route->family, &route->dst);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append RTA_DST attribute: %m");
-
-                r = sd_rtnl_message_route_set_dst_prefixlen(req, route->dst_prefixlen);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not set destination prefix length: %m");
-        }
-
-        if (route->src_prefixlen > 0) {
-                r = netlink_message_append_in_addr_union(req, RTA_SRC, route->family, &route->src);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append RTA_SRC attribute: %m");
-
-                r = sd_rtnl_message_route_set_src_prefixlen(req, route->src_prefixlen);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not set source prefix length: %m");
-        }
-
-        if (in_addr_is_null(route->family, &route->prefsrc) == 0) {
-                r = netlink_message_append_in_addr_union(req, RTA_PREFSRC, route->family, &route->prefsrc);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append RTA_PREFSRC attribute: %m");
-        }
-
-        r = sd_rtnl_message_route_set_scope(req, route->scope);
-        if (r < 0)
-                return log_link_error_errno(link, r, "Could not set scope: %m");
-
-        flags = route->flags;
-        if (route->gateway_onlink >= 0)
-                SET_FLAG(flags, RTNH_F_ONLINK, route->gateway_onlink);
-
-        r = sd_rtnl_message_route_set_flags(req, flags);
-        if (r < 0)
-                return log_link_error_errno(link, r, "Could not set flags: %m");
-
-        if (route->table != RT_TABLE_MAIN) {
-                if (route->table < 256) {
-                        r = sd_rtnl_message_route_set_table(req, route->table);
-                        if (r < 0)
-                                return log_link_error_errno(link, r, "Could not set route table: %m");
-                } else {
-                        r = sd_rtnl_message_route_set_table(req, RT_TABLE_UNSPEC);
-                        if (r < 0)
-                                return log_link_error_errno(link, r, "Could not set route table: %m");
-
-                        /* Table attribute to allow more than 256. */
-                        r = sd_netlink_message_append_data(req, RTA_TABLE, &route->table, sizeof(route->table));
-                        if (r < 0)
-                                return log_link_error_errno(link, r, "Could not append RTA_TABLE attribute: %m");
-                }
-        }
-
-        r = sd_netlink_message_append_u32(req, RTA_PRIORITY, route->priority);
+        r = route_set_netlink_message(route, req, link);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not append RTA_PRIORITY attribute: %m");
-
-        r = sd_netlink_message_append_u8(req, RTA_PREF, route->pref);
-        if (r < 0)
-                return log_link_error_errno(link, r, "Could not append RTA_PREF attribute: %m");
+                return r;
 
         if (route->lifetime != USEC_INFINITY && kernel_route_expiration_supported()) {
                 r = sd_netlink_message_append_u32(req, RTA_EXPIRES,
@@ -1061,16 +1108,6 @@ int route_configure(
                         return log_link_error_errno(link, r, "Could not append RTA_EXPIRES attribute: %m");
         }
 
-        r = sd_rtnl_message_route_set_type(req, route->type);
-        if (r < 0)
-                return log_link_error_errno(link, r, "Could not set route type: %m");
-
-        if (!IN_SET(route->type, RTN_UNREACHABLE, RTN_PROHIBIT, RTN_BLACKHOLE, RTN_THROW)) {
-                r = sd_netlink_message_append_u32(req, RTA_OIF, link->ifindex);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append RTA_OIF attribute: %m");
-        }
-
         if (route->ttl_propagate >= 0) {
                 r = sd_netlink_message_append_u8(req, RTA_TTL_PROPAGATE, route->ttl_propagate);
                 if (r < 0)
index e896719e13b794526b6cad099aab5a82069607d8..f59369392f56753c0a4a3c8dfcd674b8c5c773ed 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index de60bd9555cdf9b2ea5af810904cc4eaa081146f..a31fb31fa4804b5c3333ce110c2480f6b32c08ca 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 #include <linux/fib_rules.h>
index bc1193a111171a8c2e7478209eb1b7fadcbe9cf0..baf086f25e9ddfddffd0506f9695688714044471 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index ecf034634422db6451d2094d4de1d36e37353d1d..e7f0682c3eaa622e2c974d84023bfdd86946af31 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index f5727784a904e624816c7b92d35244c76ea41006..4dd024b62a31b709293caed11ad40e3ed1750148 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /* Default interval is 10sec. The speed meter periodically make networkd
index 61382a89937cc199409110d1c17be39e9b1ff662..68f43b5ce63228f895cc23e16b6e43b67e235766 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 
 #include "alloc-util.h"
index 8a48545d64b8019c78ad89930ad6814476f07325..dae5ff0306486c078ad5c741744c3c521eb78017 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 #pragma once
 
index de4ed95981effd735f2d609ec3217d5c0f85785e..518fe8e1316611319f4a7666c8cea16f3a03a64c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <linux/if.h>
@@ -194,7 +194,7 @@ int link_set_sysctl(Link *link) {
 
         r = link_set_ipv6_privacy_extensions(link);
         if (r < 0)
-                log_link_warning_errno(link, r, "Cannot configure IPv6 privacy extension for interface, ignorign: %m");
+                log_link_warning_errno(link, r, "Cannot configure IPv6 privacy extension for interface, ignoring: %m");
 
         r = link_set_ipv6_accept_ra(link);
         if (r < 0)
index 552b55226ac4af39e628767333d8d574dac27df4..3568900a1fccb8bd9ad7ebcaff811372dc85a584 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index bae4ee5cbacf1ac2174eeb44d9880054c34d3883..8ddcbb2fce29d20d658aa38924e6c44983a5529b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "condition.h"
 #include "conf-parser.h"
index ce169fa731b4b0d50973d6589847df137fc3d69e..6100a0031ce13a5707b921d288ede334ac7e8bf4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-dhcp-lease.h"
index 53b65286b37b42f767ea1d9207817237cbdc14ce..0f2def7a16b635601f32c2f0f092889ca986caab 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/ethernet.h>
 #include <linux/nl80211.h>
index 57aa1533704125a1d07eb0cb17d599e826004362..ab868eba27e16d22b41a43d53fe95ded433d8a82 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index f78ff9db547024b9071960d4d1a6a4bd39e812f8..b448d9b011788246183a9f8d437b634d7df08a47 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <sys/stat.h>
index 50b0ef081422e31b7a683dbb720952b093197959..9e27f728bc48917e39cb473e761402a2ac97871d 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This file is part of systemd.
 
index 641a1a5cc133aacc6faf76a0616fda1496d1f3a8..ddbf3eb4ee7abc74f4e7b4834c2cdd61ce9ed85c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 1da1ec40c3542216d72a02143910cf7e101c39ea..76fb718f9c41fd7ae209b9312a1887610269c0bc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index 36de5110ddd9884b19f378f8b7834db791825dc2..1da28b7d203929e4ec6ee4bff0e557a615a41594 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 #pragma once
 
index cba6faf37696d3a66332f8b65a9baf9a1a39f1d5..807c247b5747e38359dd0efb048a15e1d1303903 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index 4023a7dee578b3b398e1b7521b5cffd1b0085146..4fe52831a08d848dfac4623837dec3324481169c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 #pragma once
 
index 9810a120d1fb202873daef578323699eb3e5d16b..86b7f433112b8c60d7cb8d107f858d79350b57f7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index ff2b658acc97d5ab7d74a786ffe5da81a8fdfad7..c96cc4db0070190156f669b3c6d19c4a6a92507c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 #pragma once
 
index ece1f369d56adbfadeb840c59b5e13c827b3072e..8214a575bf7b96d12644c9da1fd9d54bf62fd172 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/pkt_sched.h>
 
index c35d5976d8fd7e5ae5d2546ffc8fa3807f1fce78..b6dd42811c22a4d1dfe22f1587267c5bfb4957bb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/pkt_sched.h>
index e955223a89954b34967b2f66834bbeb54541c0f6..8b1fa6ee405a40dbdb12c76d6db7dbf62abbe00e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index e4c976b942cf0583861245f95b7b20255411b7fd..b9bbd0994ca7265d4457553d319a20ccf06db952 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 #pragma once
 
index 17a2915143208301ca9204b85f89dd93a99059fc..958f65a28b3ed7fcdae0c1c03ae7b580872cc394 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index 1a80963df6b27ff30423c659498b0fc9788f2c9f..2553c59886e00007bd33dce6025317cf7bee587c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 #pragma once
 
index 3065ac0150a78272dee39054557402a642ed0f37..c7d7623b47b7fc7a1757a52615355c0b303d827a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index 8de9593c44fa6012fd91e68574555b148fd1e923..51fb626a7a4decd773b7de6d087106f67437269b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 #pragma once
 
index d3218203b952afc08f540aa4dd864c234a200326..d48aea86fbca05885f54cb242b6bb74c58f24bc4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index 5a8ed6d651223e446fedaa080a570c816204cac5..77469c4103d065ac39a196b0d117fea568655e88 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 #pragma once
 
index 7c9e01aba7bfa60c9b222bad1eb495aa47e370a6..46a9eadf8764de9eca0365c3d8d7ab0f36c623ef 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index 4fb2b37c116dfa3b528c52168661dc3ab898c56d..c084ff12ececdadad435e32f6476dd25ab291c4a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 #pragma once
 
index 324a975aa8d5d71f0f1394b9cb7013654bdcf58a..69c02f481033dbd7a2260cb3380c30f7b99bb3ad 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index a555998eeec6c911b8f0b3abe4afe67b51ff76e0..04caaa8aa4085ac62ab4d44482a6a256cd9a04fb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 #pragma once
 
index 65481a76bcff555d63dc1e57be9fd829db00fa70..0969587c40a718d047bce2536a58d7628a130809 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/pkt_sched.h>
 
index b385872e0a696fe29eea215893c3e60e24d4e66d..55644dbdd2a60d41321e74c5d3a14439b2e5c550 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index a94a9a369e966f1f2b8a49d54fc8a6279e6f3406..454e556d2e11f9edf8ca7b623b886cfcefcdd3f6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index 6319c7252174b3724a172bc93ee149ab532c023e..d58d5ac765a16663d77e192f7c747e5c61267318 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 #pragma once
 
index eccbaa2cf5dd0a59a674f628b66eb76c2ecefeb9..695a38171d00d1f0cee49c3b13473b157527d2fc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index 7c764742ada8afebd42b90127c7e8c079d389721..40a114e7d1620fb8ac01ce310c474dcd0b82db15 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 #pragma once
 
index 619a2f4b9850ec2dc1b19dc74e00db4719209a0d..2add12816aefadac1b495d216290f32d9a9dfb54 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index a92460faf9b7e9f945f830847e554c5f0297fa1e..f9a9954861dd01c36b14f8385ce33d7f6bcf0692 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 #pragma once
 
index 2104067f3b728debd4bd0bcd00a7654c0d58c024..320f2c1c5251a3e3f77c215d2feb05926f251aa0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index 10bab3e642d7e55a8fee3f66554a7f168e5630d4..0f013a9863da6f32427efbfbf1103df92a2a29c0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 #pragma once
 
index 3692a50ed88f7f40365f5f45f5b20a8d53f2b5fa..674fdf6ac7d71adfa7eb408cb7efce16ab5f3be8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index 3cc87d7373438137b0eba2c1058c9f3ef0d4e568..628df358e8999b427d6e10794a0aad8dca706a01 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2020 VMware, Inc. */
 #pragma once
 
index d671281c46a0c95b7eddc65892c7b3ec8b4d3377..387be83a99698d896c5f1e9dfa638280edb5fb39 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index 19c8decf131ae4dcb25334e6df06cd143752460b..1626775d63d8cce83837ac0a5b97276178fcd69f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 #pragma once
 
index cb3c3bcc15c34a9c402753a3d74f95911bd0f67d..2d84c5a833b95d8817df107905c609df4bf88eb6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index a785be25e0e60b287ef11458c8da9407cc6f5eca..6b4b017c7c84a592e25e158b0035db40871ce645 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 #pragma once
 
index 8a5afeab2d03c66a8dda71f8fadd2164daf9ea2c..3e10b50c96b1cf2fab3a2a6accc7c3a21d13622d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 
 #include "alloc-util.h"
index 6287b35a76571e1311172bfb2601afbcca225fd2..83bad8e3b769320d70285ca45a1a117e6f837757 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 #pragma once
 
index 974bb8c8220d53cdcc0c7c5395276a47946f8aed..c32b040919926395efc92b0b0c31e8dbdb518946 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "macro.h"
 #include "qdisc.h"
index 916ad3300aafffa944d7208f444ff3bae4ffaee3..7fbd744142c21e5d7b8bb6bbd9e1b51bbb36f789 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "networkd-link.h"
index 9a39713b320c782dbb5504d0b1e104912713b5fe..21b26b01a0d5adb78da685bfc3e57ecceebca8b1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 
 #include <linux/pkt_sched.h>
index dc6886ac3febe61b81cf943b3df855f99ff821d8..f02a6a734a099200f401aa88859c1d78154812f6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  * Copyright © 2019 VMware, Inc. */
 #pragma once
 
index f727d1434174e6b4f6e810460452fd3e40d29e57..0da2fc357e2a7c7328bbaa54370cea9b8b1a2b48 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "macro.h"
 #include "netlink-util.h"
index 5b091aaf0f388e0ed75c9d987a3c346833f27d61..8d0085ea5467ed56ce05f1c05cd0b8dd17470878 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index 25b9396397752b4c35eb40fd1e0e9126933874a7..475cac7527b2c2626ef9c89641bc1a272b68dbdd 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #include "bond.h"
 #include "dhcp6-internal.h"
 #include "dhcp6-protocol.h"
index f6168fc3fa47484fd38ff78a1aad212838b7e07c..bb67c74e9b71217f95071eebb5ecaddc155e650e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <sys/param.h>
index 030e50688a4e9ecd0a94f6340dd0a970a8b3687c..0fe81886bda1d5ea642773a09d216b7b116c3010 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "ether-addr-util.h"
 #include "hexdecoct.h"
index 40341d607380a43554ed69433f85c4cd9a7b66fd..8d87cdf9c9e34288826460c182c8b605cc4ab082 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "fd-util.h"
 #include "fileio.h"
index 69b0057707a52c9e68dc80ab51b862816891cc25..529fc9f22a27fc4f4fefc8bc6b74b81c5c549bd3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-network.h"
 
index 73d9f9cc3ec8d2213da93774f8dbe2e2928cb38c..3aa835729383cd27b5b54c6d23d13d9fd23b0412 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-netlink.h"
index e84eed46ac8d0ba93c2eaf4e8e2b1384b5c91ac1..79994bd49c3cbf90f3fcb363fa18ad013b3dc33d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/ether.h>
 #include <linux/if.h>
index 7398783df713893778270d9db7c1d65cdac321d5..f5e83532ae502839b2409b5bca8e6cd9ea09a2ea 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-event.h"
index cfd9093f1a3e954b609736ab85adf9994855214f..c2bdcd49076d00ec8646d38ac0fd476894fd0949 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <sys/stat.h>
index 69d473401da661b1f48185abdc63976f90c8edc7..6a506db3a4499dd4336ccc9d9da232488b153ef5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index ae3d72faca0d803800a6ccc78dfa1f2b8f0cbb8f..539ed56c369187aafe4e8079c69395dec0f9a011 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 libnspawn_core_sources = files('''
         nspawn-cgroup.c
index f7b34ccc5828852379e538e5c27e51a7ffd08a62..cb01b25bc6705b972710e11eae63abefcb8c6533 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/mount.h>
 
index 035e8fbd0f53e2125a0f35e45fd12b366fc67683..3f5ba622d8c6d0d54bfe87b1ca502a904726f401 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 41a38d37eadb03d05acb67e2174e3f7bbedb6c99..0900d8c211ee587ba099ad494f461da8f87f4f79 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "macro.h"
index b3c90bb17a2d40377b9f43688569f8504e04d28e..de0661b204f0ec3cdfb51615d3ff8f5ed36ef00a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index ac3a1a02c4857e488544a1189aa79331f03970a3..32a20aabd589e417f83563c2e4d608837fb21f71 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index 69f36691fb72b4df119291261cd80a57e9269a8a..d8a37a339988247ce3f59c8369734750a0a792a2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-netlink.h"
 
index 7ed7bee03f21fae7ba83062408102c37a63ee4db..cc834a4197bb426462ff61b10a260b7db7851284 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 065099cf399f08fdb2015a638993794239c2a492..2ea1bed36112166c5e2f224aa87794084218faac 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/mount.h>
 #include <linux/magic.h>
index 8f9d094fae027f228569c3a98719ce3d7bf75763..e8b75fba609d62419944eef2c68b2ec813a2b319 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index a9aff9a67ffb6dde9502cebf0b4fed47573b6a18..d6b7d8e1d899550ee9de766678eea254a8bb93f7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 #include <linux/if.h>
index 4999b172c4c1acb110fcb4269c8499bd6e7aadfe..5c2d9834180a504ca5cebba16844052de5a93b4f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <net/if.h>
index 9445dc5b0e6e7351540f7d66de9c7e5bea8e8641..ca708be7556b66b90b8256876f2c68a39090ea30 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/oom.h>
 #if HAVE_SECCOMP
index d23a2f3daec3abe71a092f9de45ae326df3cc153..ee72c917321cd3a2f0099a56a1b7771847aab9b9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "nspawn-settings.h"
index 112c3562acea99883c8d15cff7d8dd1bfaf5d0a2..785332e09103633d42bc8c2aff5aab5ed6b6d892 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/statvfs.h>
index b7c6ce2b730d2d87a80397174c9a96085b7f1dce..5c7349bc733c4db31380b75246cb2f8c4a8310f4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #pragma once
 
index 50867f38435dbbfd3eb6556d6f95cad81ae926ba..2e6c12b3b7e64c08af6bdb11f1c1f9be5ac0b1e0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-bus.h"
 
index 07cca7fadce4c21ba1e5a4a6e4a57ae747c2431f..59fdd1bd61f938ec094df9043b3c74ffa2a53170 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index 1ab50553a95ffdacf65469b6c9fbd7284f8df2c2..1da719124c7bec31382e06b8a648941e49961f2b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <linux/netlink.h>
@@ -186,7 +186,7 @@ int setup_seccomp(uint64_t cap_list_retain, char **syscall_allow_list, char **sy
         int r;
 
         if (!is_seccomp_available()) {
-                log_debug("SECCOMP features not detected in the kernel, disabling SECCOMP filterering");
+                log_debug("SECCOMP features not detected in the kernel or disabled at runtime, disabling SECCOMP filtering");
                 return 0;
         }
 
index 6a48e6459b9dc2deced741a38f2208dd1d01063e..2690fba686580abff5e21c8eb65a552ec7198203 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index bd8062d3ec5cee68b0d755c1680b6f63bf17bfb0..92bb5120abe82e2056e98d52548264f949fd51f3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "cap-list.h"
index b8fa145f77bba447af1faade37e5565cde8904be..4a83e552026a1e455aeb58b3b88bb2c3b8023e5c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sched.h>
index 62b949f58cd2250ae16c4a4fe002fe94a3ad93e6..c224fd0b2f089c907c0f73e66eb1eac32e606032 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/types.h>
index c82d50bdf131ebe805a8a2ad699a0781c7597b30..192471143f1738351614f5a1ec44249d89563e59 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int change_uid_gid_raw(uid_t uid, gid_t gid, const gid_t *supplementary_gids, size_t n_supplementary_gids, bool chown_stdio);
index 60d7439fb17b02bbb0c30008a17c4f04a2cde5cd..3cbe4ef5a6c1a3717ed21836dde57f241a51f777 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/ioctl.h>
 #include <sys/reboot.h>
index 8982d5034e3e90a2214e5d6a0bb7106a525584fe..e0810fee12e274092998464a83466b21ae191c6f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-id128.h"
index 5db08cb5b3a65c8fd4cb950fe73ceece1ef61bef..0842731c186676344ef6256ade669c8f7841da71 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_BLKID
 #endif
@@ -1589,7 +1589,7 @@ static int parse_argv(int argc, char *argv[]) {
                                         return log_oom();
                         }
 
-                        r = read_full_file_full(AT_FDCWD, j ?: p, flags, &data, &size);
+                        r = read_full_file_full(AT_FDCWD, j ?: p, flags, NULL, &data, &size);
                         if (r < 0)
                                 return log_error_errno(r, "Failed to read credential '%s': %m", j ?: p);
 
index 2c5f2ef6db384a6a40370804f9590e56084930fe..3baf5d301fabb892364df926eafe3f2ff6a3c063 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "nspawn-settings.h"
 #include "test-tables.h"
index a6829629b49c8c59ee95c62d8b3e2f0ee9ad0d7e..f8f44b0b0b14d206d89f419f2457d2f47d1ac509 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdlib.h>
 
index 9aa6debc164e945be224444f8238248e0a79c1e7..ffabc60c7094e37e7d1b08899dac9953ee2e4f33 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <net/if.h>
index fc7aa99574b5781fc460e4367145f15bbdc742bd..21ab637eca753fdfbf8bb1a0449a899c8a031dee 100644 (file)
@@ -1,5 +1,5 @@
 /***
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   systemd is free software; you can redistribute it and/or modify it
   under the terms of the GNU Lesser General Public License as published by
index 5db0dcef7687358331cc6eb1d70693522a171354..53f049211686c79c03638094f477981630178e9b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netdb.h>
 #include <nss.h>
index ade64474a2d6af5f687ca889f8101b619c143bec..258244e765413e8ed182931770af4cdeb891c8a1 100644 (file)
@@ -1,5 +1,5 @@
 /***
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   systemd is free software; you can redistribute it and/or modify it
   under the terms of the GNU Lesser General Public License as published by
index a8e6ce97a1b38f538c2a903a73d70ee5544be608..566b3194840a1eafcc6ea4ad3f94b53fd1bafcaa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <netdb.h>
index e690a0092f1a2f9f57c7e0a9842723bc8e423b82..ecc958ed6ac18ae93000df8f5c367450040d061c 100644 (file)
@@ -1,5 +1,5 @@
 /***
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   systemd is free software; you can redistribute it and/or modify it
   under the terms of the GNU Lesser General Public License as published by
index 06ac335b291a9deb9be1bf46e244fb8d3a63cfe2..758f3816e0d32c6a204f53035bbb8c8480476f80 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <nss.h>
 #include <pthread.h>
index ffa75c12c4b298a7aa6b7aa31f90f2f223ee147b..e97b801575528ef76552de40ccf5d3693207ced4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index f86d7643d1a412dc316c1f5633187c4b8c55a760..7caf21714482d565c8f9efbd7acddcd2f58cb31c 100644 (file)
@@ -1,5 +1,5 @@
 /***
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   systemd is free software; you can redistribute it and/or modify it
   under the terms of the GNU Lesser General Public License as published by
index 2ac299d9a76eb5cc5278c00a62164cdcbee4b06d..22af0fde60176e50f524bb7c2128c21db0bae373 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "env-util.h"
 #include "fd-util.h"
index 02add24b6b814564627e4ab842121818a0cad600..cb0dcb9302413d84c3ab1d3d44411179533bc5e1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <nss.h>
index 78c92deff3c982ac08e307a248fc1ac7784300a0..a250d2a62a441cea38e32439bd093790c3ca20d8 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_oomd_sources = files('''
         oomd-manager-bus.c
index 01e43d3560f3f6702f79d8ace66656f60318a8ca..dd393fcac989d02fff4dc9adc322568ce7fde8cf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <unistd.h>
index 0f39a60d9ec3f356ad7628cde7ee65ab720cb41c..4ea2a338fc85882f3d1dc4b634a4ab60cb3bc924 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/capability.h>
 
index 6dd576d5af507f7f7df796c25b2df270af12465d..7935b357a4dd20d324f2b0b74dff1f2fdcdd43a8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "bus-object.h"
index 6b75fc326d48554d1c35b174d1a826e910d2fb3c..fec96519e01ea21ce530054865294bc496616121 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-log-control-api.h"
 #include "bus-util.h"
index b5c249799b457d923e2788aaca7baf1e0c14002c..3f3eb5aa4b64be26990149aed96505767da041dc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index 6cd4ba4f93138dada7df5d23f7a8c41d1c73fdbd..cec656f6faf418e830b50a6c300aa40f961bf01f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/xattr.h>
 #include <unistd.h>
index cfd717a0181bc9676043ae34b9175d5c5f82ff2f..87ecda80fbce2f64ffabc322ef50608c6a6517c0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 2c0031aeace184763b468172435d48975ba6c600..8cf776ec0f5ff8c6a357996108677931869cf6cf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 
@@ -117,6 +117,8 @@ static int parse_argv(int argc, char *argv[]) {
 static int run(int argc, char *argv[]) {
         _cleanup_(notify_on_cleanup) const char *notify_msg = NULL;
         _cleanup_(manager_freep) Manager *m = NULL;
+        _cleanup_free_ char *swap = NULL;
+        unsigned long long s = 0;
         int r;
 
         log_setup_service();
@@ -131,8 +133,17 @@ static int run(int argc, char *argv[]) {
 
         /* Do some basic requirement checks for running systemd-oomd. It's not exhaustive as some of the other
          * requirements do not have a reliable means to check for in code. */
-        if (access("/proc/swaps", F_OK) < 0)
-                return log_error_errno(errno, "Swap not enabled: %m");
+
+        /* SwapTotal is always available in /proc/meminfo and defaults to 0, even on swap-disabled kernels. */
+        r = get_proc_field("/proc/meminfo", "SwapTotal", WHITESPACE, &swap);
+        if (r < 0)
+                return log_error_errno(r, "Failed to get SwapTotal from /proc/meminfo: %m");
+
+        r = safe_atollu(swap, &s);
+        if (r < 0)
+                return log_error_errno(r, "Failed to parse SwapTotal from /proc/meminfo: %s: %m", swap);
+        if (s == 0)
+                return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Requires swap to operate");
 
         if (!is_pressure_supported())
                 return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Pressure Stall Information (PSI) is not supported");
index 48b526f0aa841279492a52023caec44398a6421b..cc1143aa15fcd65f97b888d54e232851bae9f5f2 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
         "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
 
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <busconfig>
 
index 78150716edeb7adbb4895a8654ea18021928877b..4fd5138d314f64882f08f1983ea05512cbcbe9cc 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 38cae9e034200da358c6d6c2dd9f91fb406e75b4..68c498e2d1781b6a5269d2ee1c15b0d87afe0f44 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
@@ -57,7 +57,7 @@ static void test_oomd_cgroup_kill(void) {
 
         /* If we don't have permissions to set xattrs we're likely in a userns or missing capabilities */
         r = cg_set_xattr(SYSTEMD_CGROUP_CONTROLLER, cgroup, "user.oomd_test", "test", 4, 0);
-        if (IN_SET(r, -EPERM, -ENOTSUP))
+        if (ERRNO_IS_PRIVILEGE(r) || ERRNO_IS_NOT_SUPPORTED(r))
                 return (void) log_tests_skipped("Cannot set user xattrs");
 
         /* Do this twice to also check the increment behavior on the xattrs */
index 3f34ad3f7c934f3dae48e29e19f2ce47f8fbd15d..9406ae8373f62f2085ee0815d0d4fcca24884717 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 30dcef20757d709347cc67694dc97b53e790a969..fd924d2231cdf3c6fcca628b910132dd3c32a219 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/file.h>
index 3a75d5712d5f03868c185b34f11c2dcc6498bed4..d2729daba4e89a16b75642bd1b4542c8edf1c439 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_repart_sources = files('''
         repart.c
index 4cf6a5fe3a69e447557b028c7f2fcf57c48d9fda..40e0d6895c5c30efbd4bdc820dceb5ba7b08ca74 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_VALGRIND_MEMCHECK_H
 #include <valgrind/memcheck.h>
@@ -3630,7 +3630,7 @@ static int parse_argv(int argc, char *argv[]) {
                         _cleanup_(erase_and_freep) char *k = NULL;
                         size_t n = 0;
 
-                        r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_SECURE|READ_FULL_FILE_CONNECT_SOCKET, &k, &n);
+                        r = read_full_file_full(AT_FDCWD, optarg, READ_FULL_FILE_SECURE|READ_FULL_FILE_CONNECT_SOCKET, NULL, &k, &n);
                         if (r < 0)
                                 return log_error_errno(r, "Failed to read key file '%s': %m", optarg);
 
index 33018999bf4e83c3adc768f85f888e14d32909c2..5f1bb14e45ea75fcd5b39f2c4f9a5a1e896bb581 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index dc57163460f3b01163866244d0379d10f63f2adb..8f866f57e47a3d7c540ef22c7233b04570a25bba 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_portabled_sources = files('''
         portable.c
index 31d41af12ad608b1e8ce38403faba6c40735786b..1343e1d544426c46d4713509f0fe05fb8de75cca 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
         "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
 
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <busconfig>
 
index 50bb44c4a4a41396d8443ac60514bafa33e0b1f5..17e22b01552fc9fe88bfb11986d26735261e3160 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
         "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
 
-<!-- SPDX-License-Identifier: LGPL-2.1+ -->
+<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
 
 <policyconfig>
 
index eff37b0183faecd1373ba414c7cdefa519d98ec4..873746e2d89148ec55cfdd3b50efaec0068194fb 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 [D-BUS Service]
 Name=org.freedesktop.portable1
index 55ea6759e912d08ffbc47c7e996fb1bbe7cdcc28..ed7eac029119286166520c18218187ac38ca34e7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/loop.h>
 
index ad81b584a5765bd7be3939006d084428a5b45c51..fd9605ed84ed3782a9c1e7547f5cfc3fa6080b10 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 7a4f60163e15795e544df7924eb7fb06f2210163..457170e6843c405031ee6dbaea03473c332c06a3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index 0169dcb463f1bba99687d04ed9a3ef0a57c0c16f..cf50d58c71dff5da8e53b9b805456ace19920d05 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "btrfs-util.h"
index 5810517ca3c3d0b8828e759680c9c1f8309fe4d8..e8e4c3a60085867408f649b13a5218a36fdd60fb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index b9914f594079b744e3b3110807a029e3223e56ba..eb0786e4bb017df80d1cf471a77fc3209b61579e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/stat.h>
index 825dea268210562eea94653dcf889f885d21dbe7..aa2a3ade7706723c1f4edb6f6e0460026ed73ab0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index e498ba318e099c2e9f8ac7d7d5296831857b5bae..b025c2054907bf3e53400ac16640c4d5907e0177 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "portable.h"
 #include "portabled-image.h"
index 26ce2f6b5958f199f74ba2cc6e193be94bd3ea28..eeefffee64e3180d214bdd8d45e1b0db9cfcaa2b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "hashmap.h"
index 305c96ca6f1327d3a49fd1ebee4b71de2dd021c6..848b784908f0693680d57607e6d2bfdfdaeab1d3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "fd-util.h"
index 701f399bbb03ca463ea5aec7b90543f34b116bc8..f64740e9b82486022a5251ec6c813df259d5191b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index 265f7a7440d3910f3d3d151918ec988533094e67..f008f84e53cc371cf27d503348907d9e0b65f89f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/stat.h>
 #include <sys/types.h>
index 00461edfca4c4a048fb9f3406ee842d52d09ea2f..03a99969162bf5d7ebcff0c8489fbc1e69ccec88 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index adbac24b5495612a4be76a50bd7cbf5cd32f4f1c..3b3a37c7779ca2b2795d0ca40133912ef007516d 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_pstore_sources = files('''
         pstore.c
index 9b888a2baacdfb89451e4679fd5318cd1b808092..05046b57ea954c780822695dc7fbe895100a0e48 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 /* Copyright © 2019 Oracle and/or its affiliates. */
 
index 4e83fc83d54427738c726f7a7a91d9866d923044..d617b0bf3d6f2459549a4d7cde3e356610e5a966 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdbool.h>
index 63ad977514d8eabdeb1dcaa4bcb41766506c439d..8f8766cdd7046391fcfc4ae9d628c7cdb7f328e0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 75bb875b7978ca7158ae25063b3440f417426a94..ad8dfabb546f76e60201a458f6dbef775ab97a06 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index 7386f705291c5b17660e2d04e07a7983baa75af3..19f5bd0d1197a7771b9f1a365ea1123ea89349bf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <mntent.h>
index 3a0eb5c4b805f35a268a131693dff9a08fd882f7..a73334e2b8808b363edc731bd0a15f9d671f4bd6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stddef.h>
index c96f60a064cdecb7ef8538485eee9957d3079a61..1f7334723e97212715b37742ec792c3303cc181f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/socket.h>
 #include <errno.h>
index 8721536b5de47d12245414957c20f5005319eea4..4370db9cff699b632f36a490f36f320107078825 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "macro.h"
index a145117efd129d366aff4672c4e84f1839cb585e..eb6fabea9589a2b6af4f187eb7082a3c425154ef 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 basic_dns_sources = files('''
         resolved-dns-dnssec.c
index fd27327f48a933e370b87c6edaa851fdacde222c..08615ec6a408a9bb836ecadb727cb5cec480b392 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This file is part of systemd.
 
index 2c25a6129c939f9273f8b652a13bb216018ea31f..32a04f3b811ce66309c647bc7cc2e96dcf077054 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 8cd14711dff7b5aa23b15d57d16bc14c7472e3e1..5bc936faa709673564325a36ec4ec570b664086e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <net/if.h>
index 872add1d56ccafaf97fee9b2618a3547a77a26f4..33a53181399292949ada95e6e9eabcb4bc20e521 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int resolvconf_parse_argv(int argc, char *argv[]);
index a2c5dcb41842a501e5f78abc0e875c53b58a7bf4..48926f6885677d780a3bfb80a0dda9b93c157646 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <locale.h>
index 6b3a1f844515f49739b2ccda31d041e87e1e8755..830c81d6923f143e90ef61a105e0dc3bb36c58db 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <in-addr-util.h>
index 724c3d4a6a10dbe25d7da09a613bfb94024ebc6e..8912650d4058cd97a7d7884d4f60f07ae34eb133 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bus-common-errors.h"
index 28caa64a6b5abae77bfba6d6da1a2f2423f11497..8628d8ba6fdfe08ba92415933de41645715562d2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "bus-object.h"
index 0b7c5c8fc9f7314405ea0fe2cbe62e3c8afbec31..476060ad25981cb4c1250dc85bc3094642e29c0b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "conf-parser.h"
index 09ae8d7a5b3adccd71f4e5e20eca5d12a8bc21be..07ce2591a9ca2fdb110602f8e9bddcac474cb60e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index 63c24a023f6da2eb56eb7fa64660645fa4faff15..21eb6994e62302755ae39ab9330d178aff1655e4 100644 (file)
@@ -1,24 +1,34 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
 
 #include "time-util.h"
 
-#define SD_RESOLVED_DNS           (UINT64_C(1) << 0)
-#define SD_RESOLVED_LLMNR_IPV4    (UINT64_C(1) << 1)
-#define SD_RESOLVED_LLMNR_IPV6    (UINT64_C(1) << 2)
-#define SD_RESOLVED_MDNS_IPV4     (UINT64_C(1) << 3)
-#define SD_RESOLVED_MDNS_IPV6     (UINT64_C(1) << 4)
-#define SD_RESOLVED_NO_CNAME      (UINT64_C(1) << 5)
-#define SD_RESOLVED_NO_TXT        (UINT64_C(1) << 6)
-#define SD_RESOLVED_NO_ADDRESS    (UINT64_C(1) << 7)
-#define SD_RESOLVED_NO_SEARCH     (UINT64_C(1) << 8)
-#define SD_RESOLVED_AUTHENTICATED (UINT64_C(1) << 9)
-
-#define SD_RESOLVED_LLMNR         (SD_RESOLVED_LLMNR_IPV4|SD_RESOLVED_LLMNR_IPV6)
-#define SD_RESOLVED_MDNS          (SD_RESOLVED_MDNS_IPV4|SD_RESOLVED_MDNS_IPV6)
-
-#define SD_RESOLVED_PROTOCOLS_ALL (SD_RESOLVED_MDNS|SD_RESOLVED_LLMNR|SD_RESOLVED_DNS)
+/* Input + Output: The various protocols we can use */
+#define SD_RESOLVED_DNS             (UINT64_C(1) << 0)
+#define SD_RESOLVED_LLMNR_IPV4      (UINT64_C(1) << 1)
+#define SD_RESOLVED_LLMNR_IPV6      (UINT64_C(1) << 2)
+#define SD_RESOLVED_MDNS_IPV4       (UINT64_C(1) << 3)
+#define SD_RESOLVED_MDNS_IPV6       (UINT64_C(1) << 4)
+
+/* Input: Don't follow CNAMEs/DNAMEs */
+#define SD_RESOLVED_NO_CNAME        (UINT64_C(1) << 5)
+
+/* Input: When doing service (SRV) resolving, don't resolve associated mDNS-style TXT records */
+#define SD_RESOLVED_NO_TXT          (UINT64_C(1) << 6)
+
+/* Input: When doing service (SRV) resolving, don't resolve A/AAA RR for included hostname */
+#define SD_RESOLVED_NO_ADDRESS      (UINT64_C(1) << 7)
+
+/* Input: Don't apply search domain logic to request */
+#define SD_RESOLVED_NO_SEARCH       (UINT64_C(1) << 8)
+
+/* Output: Result is authenticated */
+#define SD_RESOLVED_AUTHENTICATED   (UINT64_C(1) << 9)
+
+#define SD_RESOLVED_LLMNR           (SD_RESOLVED_LLMNR_IPV4|SD_RESOLVED_LLMNR_IPV6)
+#define SD_RESOLVED_MDNS            (SD_RESOLVED_MDNS_IPV4|SD_RESOLVED_MDNS_IPV6)
+#define SD_RESOLVED_PROTOCOLS_ALL   (SD_RESOLVED_MDNS|SD_RESOLVED_LLMNR|SD_RESOLVED_DNS)
 
 #define SD_RESOLVED_QUERY_TIMEOUT_USEC (120 * USEC_PER_SEC)
index d6fba7ead0e79b0268067aab086dd52e6cd208d5..5b762a82e819624f256c7c7062087b2a296cf039 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
@@ -11,6 +11,9 @@
 DnsAnswer *dns_answer_new(size_t n) {
         DnsAnswer *a;
 
+        if (n > UINT16_MAX) /* We can only place 64K RRs in an answer at max */
+                n = UINT16_MAX;
+
         a = malloc0(offsetof(DnsAnswer, items) + sizeof(DnsAnswerItem) * n);
         if (!a)
                 return NULL;
@@ -318,6 +321,11 @@ int dns_answer_merge(DnsAnswer *a, DnsAnswer *b, DnsAnswer **ret) {
 
         assert(ret);
 
+        if (a == b) {
+                *ret = dns_answer_ref(a);
+                return 0;
+        }
+
         if (dns_answer_size(a) <= 0) {
                 *ret = dns_answer_ref(b);
                 return 0;
@@ -624,12 +632,16 @@ int dns_answer_reserve(DnsAnswer **a, size_t n_free) {
                         return -EBUSY;
 
                 ns = (*a)->n_rrs + n_free;
+                if (ns > UINT16_MAX) /* Maximum number of RRs we can stick into a DNS packet section */
+                        ns = UINT16_MAX;
 
                 if ((*a)->n_allocated >= ns)
                         return 0;
 
                 /* Allocate more than we need */
                 ns *= 2;
+                if (ns > UINT16_MAX)
+                        ns = UINT16_MAX;
 
                 n = realloc(*a, offsetof(DnsAnswer, items) + sizeof(DnsAnswerItem) * ns);
                 if (!n)
@@ -702,17 +714,21 @@ void dns_answer_dump(DnsAnswer *answer, FILE *f) {
 
                 fputs(t, f);
 
-                if (ifindex != 0 || flags & (DNS_ANSWER_AUTHENTICATED|DNS_ANSWER_CACHEABLE|DNS_ANSWER_SHARED_OWNER))
+                if (ifindex != 0 || flags != 0)
                         fputs("\t;", f);
 
                 if (ifindex != 0)
-                        printf(" ifindex=%i", ifindex);
+                        fprintf(f, " ifindex=%i", ifindex);
                 if (flags & DNS_ANSWER_AUTHENTICATED)
                         fputs(" authenticated", f);
                 if (flags & DNS_ANSWER_CACHEABLE)
                         fputs(" cacheable", f);
                 if (flags & DNS_ANSWER_SHARED_OWNER)
                         fputs(" shared-owner", f);
+                if (flags & DNS_ANSWER_CACHE_FLUSH)
+                        fputs(" cache-flush", f);
+                if (flags & DNS_ANSWER_GOODBYE)
+                        fputs(" goodbye", f);
 
                 fputc('\n', f);
         }
index 47fc80e2b0258e3167853384643631f97f10fa32..fd94c516de9a7b1012617190416842d7b3c7f261 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct DnsAnswer DnsAnswer;
index 683f11375159998ac7924b549dfa08c54fa712ed..2407887f906967be70f774bc237bfb61bb4b0630 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 
@@ -436,20 +436,22 @@ static int dns_cache_put_positive(
 
         dns_cache_make_space(c, 1);
 
-        i = new0(DnsCacheItem, 1);
+        i = new(DnsCacheItem, 1);
         if (!i)
                 return -ENOMEM;
 
-        i->type = DNS_CACHE_POSITIVE;
-        i->key = dns_resource_key_ref(rr->key);
-        i->rr = dns_resource_record_ref(rr);
-        i->until = calculate_until(rr, (uint32_t) -1, timestamp, false);
-        i->authenticated = authenticated;
-        i->shared_owner = shared_owner;
-        i->ifindex = ifindex;
-        i->owner_family = owner_family;
-        i->owner_address = *owner_address;
-        i->prioq_idx = PRIOQ_IDX_NULL;
+        *i = (DnsCacheItem) {
+                .type = DNS_CACHE_POSITIVE,
+                .key = dns_resource_key_ref(rr->key),
+                .rr = dns_resource_record_ref(rr),
+                .until = calculate_until(rr, (uint32_t) -1, timestamp, false),
+                .authenticated = authenticated,
+                .shared_owner = shared_owner,
+                .ifindex = ifindex,
+                .owner_family = owner_family,
+                .owner_address = *owner_address,
+                .prioq_idx = PRIOQ_IDX_NULL,
+        };
 
         r = dns_cache_link_item(c, i);
         if (r < 0)
@@ -521,21 +523,24 @@ static int dns_cache_put_negative(
 
         dns_cache_make_space(c, 1);
 
-        i = new0(DnsCacheItem, 1);
+        i = new(DnsCacheItem, 1);
         if (!i)
                 return -ENOMEM;
 
-        i->type =
-                rcode == DNS_RCODE_SUCCESS ? DNS_CACHE_NODATA :
-                rcode == DNS_RCODE_NXDOMAIN ? DNS_CACHE_NXDOMAIN : DNS_CACHE_RCODE;
+        *i = (DnsCacheItem) {
+                .type =
+                        rcode == DNS_RCODE_SUCCESS ? DNS_CACHE_NODATA :
+                        rcode == DNS_RCODE_NXDOMAIN ? DNS_CACHE_NXDOMAIN : DNS_CACHE_RCODE,
+                .authenticated = authenticated,
+                .owner_family = owner_family,
+                .owner_address = *owner_address,
+                .prioq_idx = PRIOQ_IDX_NULL,
+                .rcode = rcode,
+        };
+
         i->until =
                 i->type == DNS_CACHE_RCODE ? timestamp + CACHE_TTL_STRANGE_RCODE_USEC :
                 calculate_until(soa, nsec_ttl, timestamp, true);
-        i->authenticated = authenticated;
-        i->owner_family = owner_family;
-        i->owner_address = *owner_address;
-        i->prioq_idx = PRIOQ_IDX_NULL;
-        i->rcode = rcode;
 
         if (i->type == DNS_CACHE_NXDOMAIN) {
                 /* NXDOMAIN entries should apply equally to all types, so we use ANY as
index afd7d45db6617442be2ac2fb406e51c480052b33..4ab213dc9cd5317d610f0924f41f187d274de42c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "hashmap.h"
index 5a4f5c58b6b354e399022e84b6a7f4d3a560333b..97bbbe4282b3b8856f9317a3ab5ea49d40abcd29 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "dns-domain.h"
@@ -1813,6 +1813,8 @@ int dnssec_nsec_test(DnsAnswer *answer, DnsResourceKey *key, DnssecNsecResult *r
 
                 /* The following checks only make sense for NSEC RRs that are not expanded from a wildcard */
                 r = dns_resource_record_is_synthetic(rr);
+                if (r == -ENODATA) /* No signing RR known. */
+                        continue;
                 if (r < 0)
                         return r;
                 if (r > 0)
index 1f70861cd064e712431da459e0a40e462b790a81..9c3c0dcfc961970788340f6805db1112e8bc6840 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef enum DnssecResult DnssecResult;
index 62240399925709b174aad3780c9e9bcdb4127ef2..b4eb5efae7cbace38175047f43add96fc629869b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_GCRYPT
 #include <gcrypt.h>
@@ -75,12 +75,16 @@ int dns_packet_new(
         if (!p)
                 return -ENOMEM;
 
-        p->size = p->rindex = DNS_PACKET_HEADER_SIZE;
-        p->allocated = a;
-        p->max_size = max_size;
-        p->protocol = protocol;
-        p->opt_start = p->opt_size = (size_t) -1;
-        p->n_ref = 1;
+        *p = (DnsPacket) {
+                .n_ref = 1,
+                .protocol = protocol,
+                .size = DNS_PACKET_HEADER_SIZE,
+                .rindex = DNS_PACKET_HEADER_SIZE,
+                .allocated = a,
+                .max_size = max_size,
+                .opt_start = (size_t) -1,
+                .opt_size = (size_t) -1,
+        };
 
         *ret = p;
 
index 964aff38c4629df38426f9a642ea3e8af6abdc7a..7d6ee2bc4c11fb1a007cb4efe2d430ed7e73f7f9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <netinet/ip.h>
index 1eff893b21de6126bf824ac50f95b5772640fe88..f4bca54e19750f97ef1b0ec4fbc419447c757483 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "dns-domain.h"
@@ -21,12 +21,14 @@ static int dns_query_candidate_new(DnsQueryCandidate **ret, DnsQuery *q, DnsScop
         assert(q);
         assert(s);
 
-        c = new0(DnsQueryCandidate, 1);
+        c = new(DnsQueryCandidate, 1);
         if (!c)
                 return -ENOMEM;
 
-        c->query = q;
-        c->scope = s;
+        *c = (DnsQueryCandidate) {
+                .query = q,
+                .scope = s,
+        };
 
         LIST_PREPEND(candidates_by_query, q->candidates, c);
         LIST_PREPEND(candidates_by_scope, s->query_candidates, c);
@@ -413,17 +415,19 @@ int dns_query_new(
         if (m->n_dns_queries >= QUERIES_MAX)
                 return -EBUSY;
 
-        q = new0(DnsQuery, 1);
+        q = new(DnsQuery, 1);
         if (!q)
                 return -ENOMEM;
 
-        q->question_utf8 = dns_question_ref(question_utf8);
-        q->question_idna = dns_question_ref(question_idna);
-        q->ifindex = ifindex;
-        q->flags = flags;
-        q->answer_dnssec_result = _DNSSEC_RESULT_INVALID;
-        q->answer_protocol = _DNS_PROTOCOL_INVALID;
-        q->answer_family = AF_UNSPEC;
+        *q = (DnsQuery) {
+                .question_utf8 = dns_question_ref(question_utf8),
+                .question_idna = dns_question_ref(question_idna),
+                .ifindex = ifindex,
+                .flags = flags,
+                .answer_dnssec_result = _DNSSEC_RESULT_INVALID,
+                .answer_protocol = _DNS_PROTOCOL_INVALID,
+                .answer_family = AF_UNSPEC,
+        };
 
         /* First dump UTF8  question */
         DNS_QUESTION_FOREACH(key, question_utf8)
index 36a9b7be8f836bb5a21c760c7fd9e9cd620086aa..8056aa372748d1e82120902f4d9614c34e982e9a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 62833efa0e1f787b7b1083dfd479aac90caa3c54..047170899db0167d5725b043eaaa1ff947453908 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "dns-domain.h"
@@ -8,7 +8,8 @@
 DnsQuestion *dns_question_new(size_t n) {
         DnsQuestion *q;
 
-        assert(n > 0);
+        if (n > UINT16_MAX) /* We can only place 64K key in an question section at max */
+                n = UINT16_MAX;
 
         q = malloc0(offsetof(DnsQuestion, keys) + sizeof(DnsResourceKey*) * n);
         if (!q)
index 0803f49b8bb1c8f5eb713d782384bfe0eff61e52..a6444b0baf9cd629dd556920f497f9a2c5279c9e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct DnsQuestion DnsQuestion;
index 63ed9ebf10cdabf4de72daabb6f210ed602637b7..219f66451ae33bf2483b66947be6cc83c5e89e90 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <math.h>
 
@@ -97,14 +97,16 @@ DnsResourceKey* dns_resource_key_new_consume(uint16_t class, uint16_t type, char
 
         assert(name);
 
-        k = new0(DnsResourceKey, 1);
+        k = new(DnsResourceKey, 1);
         if (!k)
                 return NULL;
 
-        k->n_ref = 1;
-        k->class = class;
-        k->type = type;
-        k->_name = name;
+        *k = (DnsResourceKey) {
+                .n_ref = 1,
+                .class = class,
+                .type = type,
+                ._name = name,
+        };
 
         return k;
 }
@@ -372,14 +374,17 @@ bool dns_resource_key_reduce(DnsResourceKey **a, DnsResourceKey **b) {
 DnsResourceRecord* dns_resource_record_new(DnsResourceKey *key) {
         DnsResourceRecord *rr;
 
-        rr = new0(DnsResourceRecord, 1);
+        rr = new(DnsResourceRecord, 1);
         if (!rr)
                 return NULL;
 
-        rr->n_ref = 1;
-        rr->key = dns_resource_key_ref(key);
-        rr->expiry = USEC_INFINITY;
-        rr->n_skip_labels_signer = rr->n_skip_labels_source = (unsigned) -1;
+        *rr = (DnsResourceRecord) {
+                .n_ref = 1,
+                .key = dns_resource_key_ref(key),
+                .expiry = USEC_INFINITY,
+                .n_skip_labels_signer = (unsigned) -1,
+                .n_skip_labels_source = (unsigned) -1,
+        };
 
         return rr;
 }
@@ -1645,7 +1650,7 @@ DnsResourceRecord *dns_resource_record_copy(DnsResourceRecord *rr) {
                         return NULL;
                 copy->nsec3.salt_size = rr->nsec3.salt_size;
                 copy->nsec3.next_hashed_name = memdup(rr->nsec3.next_hashed_name, rr->nsec3.next_hashed_name_size);
-                if (!copy->nsec3.next_hashed_name_size)
+                if (!copy->nsec3.next_hashed_name)
                         return NULL;
                 copy->nsec3.next_hashed_name_size = rr->nsec3.next_hashed_name_size;
                 copy->nsec3.types = bitmap_copy(rr->nsec3.types);
index 6c824f7962e1e71b43650e85557f285405b14bdd..59b3a70179c5c787cbf4de1febc5eed7d4eab390 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <netinet/in.h>
index 2ad4544002d5dc1eb47cc6cdea83c1803b115bd1..3e2fc16f108bd41526b2947afdcc7258c579d8c9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/tcp.h>
 
@@ -589,6 +589,7 @@ DnsScopeMatch dns_scope_good_domain(
 
                 if ((dns_name_is_single_label(domain) && /* only resolve single label names via LLMNR */
                      !is_gateway_hostname(domain) && /* don't resolve "gateway" with LLMNR, let nss-myhostname handle this */
+                     dns_name_equal(domain, "local") == 0 && /* don't resolve "local" with LLMNR, it's the top-level domain of mDNS after all, see above */
                      manager_is_own_hostname(s->manager, domain) <= 0))  /* never resolve the local hostname via LLMNR */
                         return DNS_SCOPE_YES_BASE + 1; /* Return +1, as we consider ourselves authoritative
                                                         * for single-label names, i.e. one label. This is
@@ -1156,12 +1157,16 @@ bool dns_scope_name_wants_search_domain(DnsScope *s, const char *name) {
 bool dns_scope_network_good(DnsScope *s) {
         /* Checks whether the network is in good state for lookups on this scope. For mDNS/LLMNR/Classic DNS scopes
          * bound to links this is easy, as they don't even exist if the link isn't in a suitable state. For the global
-         * DNS scope we check whether there are any links that are up and have an address. */
+         * DNS scope we check whether there are any links that are up and have an address.
+         *
+         * Note that Linux routing is complex and even systems that superficially have no IPv4 address might
+         * be able to route IPv4 (and similar for IPv6), hence let's make a check here independent of address
+         * family. */
 
         if (s->link)
                 return true;
 
-        return manager_routable(s->manager, AF_UNSPEC);
+        return manager_routable(s->manager);
 }
 
 int dns_scope_ifindex(DnsScope *s) {
index 8b1a958551c2f47b161797d601628d96b54be51d..de05c0838f4d6c79d156ef3ac245de8657e5b862 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "list.h"
index 425a46334948c7531cc37877c69f06c52fe7135a..a01f3dced98a3b2a08c035ff6570af94dc3dad99 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "dns-domain.h"
@@ -33,14 +33,16 @@ int dns_search_domain_new(
                         return -E2BIG;
         }
 
-        d = new0(DnsSearchDomain, 1);
+        d = new(DnsSearchDomain, 1);
         if (!d)
                 return -ENOMEM;
 
-        d->n_ref = 1;
-        d->manager = m;
-        d->type = type;
-        d->name = TAKE_PTR(normalized);
+        *d = (DnsSearchDomain) {
+                .n_ref = 1,
+                .manager = m,
+                .type = type,
+                .name = TAKE_PTR(normalized),
+        };
 
         switch (type) {
 
index df0b2f14049928e072de232462ba295fe74a2879..ea91a4e2a471803ad466e62082c9cd2da7a074f7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "list.h"
index d9ac44f9b5b58f4687197df08560698d72d7f899..8112374062ef238b6a5a64e5a96b0fe0f0463b20 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-messages.h"
 
index 464e8dc2515d51ad733e1db6493a9dd561eec2f8..20afee74ac34131b5b35ec18a5863778fe207649 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "in-addr-util.h"
index e6f72f00b43a28553b107f5ba52bd696481cbe48..1aab0899347bf41bfc47a5369fa1377276d0d1f9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/tcp.h>
 #include <unistd.h>
index de193931c18d509769656569eb20e75eed1bd56c..dba06447cf96151ea4f97a31991eeed154ce9fc2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-event.h"
index 445fa86dd1fca6e060438f7ba6f4e82eccfedab3..086d3d9d186a6252a4664bf9c587b21047a6e02f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if_arp.h>
 
@@ -15,6 +15,9 @@
  * IP and UDP header sizes */
 #define ADVERTISE_DATAGRAM_SIZE_MAX (65536U-14U-20U-8U)
 
+/* On the extra stubs, use a more conservative choice */
+#define ADVERTISE_EXTRA_DATAGRAM_SIZE_MAX DNS_PACKET_UNICAST_SIZE_LARGE_MAX
+
 static int manager_dns_stub_fd_extra(Manager *m, DnsStubListenerExtra *l, int type);
 
 static void dns_stub_listener_extra_hash_func(const DnsStubListenerExtra *a, struct siphash *state) {
@@ -155,14 +158,15 @@ static int dns_stub_finish_reply_packet(
                 bool tc,        /* set the Truncated bit? */
                 bool add_opt,   /* add an OPT RR to this packet? */
                 bool edns0_do,  /* set the EDNS0 DNSSEC OK bit? */
-                bool ad) {      /* set the DNSSEC authenticated data bit? */
+                bool ad,        /* set the DNSSEC authenticated data bit? */
+                uint16_t max_udp_size) { /* The maximum UDP datagram size to advertise to clients */
 
         int r;
 
         assert(p);
 
         if (add_opt) {
-                r = dns_packet_append_opt(p, ADVERTISE_DATAGRAM_SIZE_MAX, edns0_do, /* include_rfc6975 = */ false, rcode, NULL);
+                r = dns_packet_append_opt(p, max_udp_size, edns0_do, /* include_rfc6975 = */ false, rcode, NULL);
                 if (r == -EMSGSIZE) /* Hit the size limit? then indicate truncation */
                         tc = true;
                 else if (r < 0)
@@ -245,7 +249,15 @@ static int dns_stub_send_failure(
         if (r < 0)
                 return log_debug_errno(r, "Failed to make failure packet: %m");
 
-        r = dns_stub_finish_reply_packet(reply, DNS_PACKET_ID(p), rcode, false, !!p->opt, DNS_PACKET_DO(p), authenticated);
+        r = dns_stub_finish_reply_packet(
+                        reply,
+                        DNS_PACKET_ID(p),
+                        rcode,
+                        /* truncated = */ false,
+                        !!p->opt,
+                        DNS_PACKET_DO(p),
+                        authenticated,
+                        l ? ADVERTISE_EXTRA_DATAGRAM_SIZE_MAX : ADVERTISE_DATAGRAM_SIZE_MAX);
         if (r < 0)
                 return log_debug_errno(r, "Failed to build failure packet: %m");
 
@@ -290,7 +302,8 @@ static void dns_stub_query_complete(DnsQuery *q) {
                                 truncated,
                                 !!q->request_dns_packet->opt,
                                 DNS_PACKET_DO(q->request_dns_packet),
-                                dns_query_fully_authenticated(q));
+                                dns_query_fully_authenticated(q),
+                                q->stub_listener_extra ? ADVERTISE_EXTRA_DATAGRAM_SIZE_MAX : ADVERTISE_DATAGRAM_SIZE_MAX);
                 if (r < 0) {
                         log_debug_errno(r, "Failed to finish reply packet: %m");
                         break;
index 6686de5e58ca6a094b78b106c111ee266d7a980c..072f2130e57d65d8070fc7d1ffae111f4302d08f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "hash-funcs.h"
index f65116c3b45462f93109267c6386aa1422c97ca0..67f0dda246d4a71eff57ed04ab10c66ac74a826c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "hostname-util.h"
index 0d9d17bac7fe387ee8803788551c0db771e5a8ce..fb624589d75f5afe689edadf681603fc0f558427 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "resolved-dns-answer.h"
index 36f57eae629e27a02188000d02a2cdcca0148ce1..2da957e78ce9ec70c712701d46e799e2bdecf58d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-messages.h"
 
@@ -194,19 +194,20 @@ int dns_transaction_new(DnsTransaction **ret, DnsScope *s, DnsResourceKey *key)
         if (r < 0)
                 return r;
 
-        t = new0(DnsTransaction, 1);
+        t = new(DnsTransaction, 1);
         if (!t)
                 return -ENOMEM;
 
-        t->dns_udp_fd = -1;
-        t->answer_source = _DNS_TRANSACTION_SOURCE_INVALID;
-        t->answer_dnssec_result = _DNSSEC_RESULT_INVALID;
-        t->answer_nsec_ttl = (uint32_t) -1;
-        t->key = dns_resource_key_ref(key);
-        t->current_feature_level = _DNS_SERVER_FEATURE_LEVEL_INVALID;
-        t->clamp_feature_level = _DNS_SERVER_FEATURE_LEVEL_INVALID;
-
-        t->id = pick_new_id(s->manager);
+        *t = (DnsTransaction) {
+                .dns_udp_fd = -1,
+                .answer_source = _DNS_TRANSACTION_SOURCE_INVALID,
+                .answer_dnssec_result = _DNSSEC_RESULT_INVALID,
+                .answer_nsec_ttl = (uint32_t) -1,
+                .key = dns_resource_key_ref(key),
+                .current_feature_level = _DNS_SERVER_FEATURE_LEVEL_INVALID,
+                .clamp_feature_level = _DNS_SERVER_FEATURE_LEVEL_INVALID,
+                .id = pick_new_id(s->manager),
+        };
 
         r = hashmap_put(s->manager->dns_transactions, UINT_TO_PTR(t->id), t);
         if (r < 0) {
@@ -1112,58 +1113,52 @@ void dns_transaction_process_reply(DnsTransaction *t, DnsPacket *p) {
         if (r > 0) /* Transaction got restarted... */
                 return;
 
-        if (IN_SET(t->scope->protocol, DNS_PROTOCOL_DNS, DNS_PROTOCOL_LLMNR, DNS_PROTOCOL_MDNS)) {
-
-                /* When dealing with protocols other than mDNS only consider responses with
-                 * equivalent query section to the request. For mDNS this check doesn't make
-                 * sense, because the section 6 of RFC6762 states that "Multicast DNS responses MUST NOT
-                 * contain any questions in the Question Section". */
-                if (t->scope->protocol != DNS_PROTOCOL_MDNS) {
-                        r = dns_packet_is_reply_for(p, t->key);
-                        if (r < 0)
-                                goto fail;
-                        if (r == 0) {
-                                dns_transaction_complete(t, DNS_TRANSACTION_INVALID_REPLY);
-                                return;
-                        }
+        /* When dealing with protocols other than mDNS only consider responses with equivalent query section
+         * to the request. For mDNS this check doesn't make sense, because the section 6 of RFC6762 states
+         * that "Multicast DNS responses MUST NOT contain any questions in the Question Section". */
+        if (t->scope->protocol != DNS_PROTOCOL_MDNS) {
+                r = dns_packet_is_reply_for(p, t->key);
+                if (r < 0)
+                        goto fail;
+                if (r == 0) {
+                        dns_transaction_complete(t, DNS_TRANSACTION_INVALID_REPLY);
+                        return;
                 }
+        }
 
-                /* Install the answer as answer to the transaction */
-                dns_answer_unref(t->answer);
-                t->answer = dns_answer_ref(p->answer);
-                t->answer_rcode = DNS_PACKET_RCODE(p);
-                t->answer_dnssec_result = _DNSSEC_RESULT_INVALID;
-                t->answer_authenticated = false;
+        /* Install the answer as answer to the transaction */
+        dns_answer_unref(t->answer);
+        t->answer = dns_answer_ref(p->answer);
+        t->answer_rcode = DNS_PACKET_RCODE(p);
+        t->answer_dnssec_result = _DNSSEC_RESULT_INVALID;
+        t->answer_authenticated = false;
 
-                r = dns_transaction_fix_rcode(t);
-                if (r < 0)
-                        goto fail;
+        r = dns_transaction_fix_rcode(t);
+        if (r < 0)
+                goto fail;
 
-                /* Block GC while starting requests for additional DNSSEC RRs */
-                t->block_gc++;
-                r = dns_transaction_request_dnssec_keys(t);
-                t->block_gc--;
+        /* Block GC while starting requests for additional DNSSEC RRs */
+        t->block_gc++;
+        r = dns_transaction_request_dnssec_keys(t);
+        t->block_gc--;
 
-                /* Maybe the transaction is ready for GC'ing now? If so, free it and return. */
-                if (!dns_transaction_gc(t))
-                        return;
+        /* Maybe the transaction is ready for GC'ing now? If so, free it and return. */
+        if (!dns_transaction_gc(t))
+                return;
 
-                /* Requesting additional keys might have resulted in
-                 * this transaction to fail, since the auxiliary
-                 * request failed for some reason. If so, we are not
-                 * in pending state anymore, and we should exit
-                 * quickly. */
-                if (t->state != DNS_TRANSACTION_PENDING)
-                        return;
-                if (r < 0)
-                        goto fail;
-                if (r > 0) {
-                        /* There are DNSSEC transactions pending now. Update the state accordingly. */
-                        t->state = DNS_TRANSACTION_VALIDATING;
-                        dns_transaction_close_connection(t);
-                        dns_transaction_stop_timeout(t);
-                        return;
-                }
+        /* Requesting additional keys might have resulted in this transaction to fail, since the auxiliary
+         * request failed for some reason. If so, we are not in pending state anymore, and we should exit
+         * quickly. */
+        if (t->state != DNS_TRANSACTION_PENDING)
+                return;
+        if (r < 0)
+                goto fail;
+        if (r > 0) {
+                /* There are DNSSEC transactions pending now. Update the state accordingly. */
+                t->state = DNS_TRANSACTION_VALIDATING;
+                dns_transaction_close_connection(t);
+                dns_transaction_stop_timeout(t);
+                return;
         }
 
         dns_transaction_process_dnssec(t);
index 167541806a28eaa5f0deac78cc7664bf271ba1e8..88b0d8eab9fae3bf3a95353e2cdebec92664ae4f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-event.h"
index ad5061c2bd795e562db6dc9a5d4889cb1a1355e3..3e5d25586c7a34c6066449a7b2e9db8921aea095 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-messages.h"
 
index df49777e263c20b637964fcafab7c76f4b2853d7..14047ec7eb69c47b32822b1db57210ad026d5050 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct DnsTrustAnchor DnsTrustAnchor;
index f8e1491f8be603364ec5bebbeab19ef42ccf1581..00eb6725f9ff753eb68ffd7602cd4cf4ba06fb5b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "dns-domain.h"
@@ -231,13 +231,15 @@ int dns_zone_put(DnsZone *z, DnsScope *s, DnsResourceRecord *rr, bool probe) {
         if (r < 0)
                 return r;
 
-        i = new0(DnsZoneItem, 1);
+        i = new(DnsZoneItem, 1);
         if (!i)
                 return -ENOMEM;
 
-        i->scope = s;
-        i->rr = dns_resource_record_ref(rr);
-        i->probing_enabled = probe;
+        *i = (DnsZoneItem) {
+                .scope = s,
+                .rr = dns_resource_record_ref(rr),
+                .probing_enabled = probe,
+        };
 
         r = dns_zone_link_item(z, i);
         if (r < 0)
index 2719b2188aa3e4dbc65c780e526010c298814bc4..1f5a6e0571faf81206cddf1e95c028860426a5a3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "hashmap.h"
index 7798746e67a23cc0a9edfb0d7aed232df3fc0869..d908cc64e6b5d9d06fcf57022da363b95568af7f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bus-polkit.h"
index 403455e89f4439d81cbe999eea2215ee7c9c9ecd..f396e23cd76acd0f66ca3396110d569aab328dd5 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #pragma once
 
 #include "sd-bus.h"
index d7f3a5adef2ee6eed245b5e9604cb12f81169a19..78ea1fd814a94b1dd8c4fad282c454654b3ff9ce 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "conf-files.h"
 #include "conf-parser.h"
index 304bd890c95f007bf0980e9734c695ca945b6318..485dd5444b2e2cf5d22f04193dbba8d62fb60c77 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #pragma once
 
 #include "list.h"
index 6b7db7ef8c4a1f99a2114f5d24ba3d839008b244..d3edd350b392a05a58695b3f70fa803d14d732c8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if !ENABLE_DNS_OVER_TLS || !DNS_OVER_TLS_USE_GNUTLS
 #error This source file requires DNS-over-TLS to be enabled and GnuTLS to be available.
index d4da2017c3a03ec86c29d2b29e1db5e0048e02dc..dc1255fbb9776bc776b377301babd3bfdab9c5d5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #if !ENABLE_DNS_OVER_TLS || !DNS_OVER_TLS_USE_GNUTLS
index f95738649df7115ce02af3af612335fc602db05e..defddb52378216a073f4bafb73a6e9583863ae4b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if !ENABLE_DNS_OVER_TLS || !DNS_OVER_TLS_USE_OPENSSL
 #error This source file requires DNS-over-TLS to be enabled and OpenSSL to be available.
index 8100d2ba6b027bcf7e859bdca2c79bc548553591..a73b77bb581612562de8edf1b8c8b60c1d4a8167 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #if !ENABLE_DNS_OVER_TLS || !DNS_OVER_TLS_USE_OPENSSL
index 6199335b7091682f3b5f8cb8bd5c580ff03fb4c3..b638d61ec7a4d1efd763736909635891ae66c824 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #if ENABLE_DNS_OVER_TLS
index 6a7f7499572cfc9592e64ab7233468960e9654ee..e784213e91486f7627de1b55323ad342b914f378 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/stat.h>
 #include <sys/types.h>
@@ -80,11 +80,13 @@ static int parse_line(EtcHosts *hosts, unsigned nr, const char *line) {
                         if (r < 0)
                                 return log_oom();
 
-                        item = new0(EtcHostsItem, 1);
+                        item = new(EtcHostsItem, 1);
                         if (!item)
                                 return log_oom();
 
-                        item->address = address;
+                        *item = (EtcHostsItem) {
+                                .address = address,
+                        };
 
                         r = hashmap_put(hosts->by_address, &item->address, item);
                         if (r < 0) {
index caf32a53ddae230c869f3a2bc0e1cfbc5d530106..459b310185298aa7cdf20dc0c5443484eabc2a4e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "resolved-manager.h"
index 3665d69f3c84c8bf69e76daa4328f9aa39374081..6a693ffe7b3d424b22f72f1ce29302bf2a022a04 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 #include <netinet/in.h>
index fc85ff855c16f83e403906d0aaa05c2cab6f9658..b882df5c40c325dc6fcd80148038690e8dd66cae 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 79d84dde1fa55ba0decdaa52069d14f972a06a89..cb5be90c758645dd636bd77a40a8ac6ed7da54ec 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/if.h>
 #include <unistd.h>
@@ -818,14 +818,16 @@ int link_address_new(Link *l, LinkAddress **ret, int family, const union in_addr
         assert(l);
         assert(in_addr);
 
-        a = new0(LinkAddress, 1);
+        a = new(LinkAddress, 1);
         if (!a)
                 return -ENOMEM;
 
-        a->family = family;
-        a->in_addr = *in_addr;
+        *a = (LinkAddress) {
+                .family = family,
+                .in_addr = *in_addr,
+                .link = l,
+        };
 
-        a->link = l;
         LIST_PREPEND(addresses, l->addresses, a);
         l->n_addresses++;
 
index 44d489ce4792435fbe61f2e862ca82ffeb21b041..3f08e983512e5791ea6b1dfd3e0501626d843fe7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-netlink.h"
index 03f2764d58908d4d9994718325eff808e8db4421..2ddf08815ad40774131553c4f5e24cb7e4c2c7d1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <resolv.h>
index a3b12cf38c3c73eb56d34b8d87a98e49583e37cf..4cdd2606e6ddb397d3b9c5d1a1cfa3244f0279b9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "resolved-manager.h"
index c19710881091dec3284e29eb7fc56e5b7137ef20..7690eac8cd31ddf85ae739c93e3b78e950778da9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <netinet/in.h>
@@ -919,7 +919,11 @@ static int write_loop(int fd, void *message, size_t length) {
 int manager_write(Manager *m, int fd, DnsPacket *p) {
         int r;
 
-        log_debug("Sending %s packet with id %" PRIu16 ".", DNS_PACKET_QR(p) ? "response" : "query", DNS_PACKET_ID(p));
+        log_debug("Sending %s%s packet with id %" PRIu16 " of size %zu.",
+                  DNS_PACKET_TC(p) ? "truncated (!) " : "",
+                  DNS_PACKET_QR(p) ? "response" : "query",
+                  DNS_PACKET_ID(p),
+                  p->size);
 
         r = write_loop(fd, DNS_PACKET_DATA(p), p->size);
         if (r < 0)
@@ -1055,7 +1059,12 @@ int manager_send(
         assert(port > 0);
         assert(p);
 
-        log_debug("Sending %s packet with id %" PRIu16 " on interface %i/%s.", DNS_PACKET_QR(p) ? "response" : "query", DNS_PACKET_ID(p), ifindex, af_to_name(family));
+        log_debug("Sending %s%s packet with id %" PRIu16 " on interface %i/%s of size %zu.",
+                  DNS_PACKET_TC(p) ? "truncated (!) " : "",
+                  DNS_PACKET_QR(p) ? "response" : "query",
+                  DNS_PACKET_ID(p),
+                  ifindex, af_to_name(family),
+                  p->size);
 
         if (family == AF_INET)
                 return manager_ipv4_send(m, fd, ifindex, &destination->in, port, source ? &source->in : NULL, p);
@@ -1418,15 +1427,15 @@ void manager_dnssec_verdict(Manager *m, DnssecVerdict verdict, const DnsResource
         m->n_dnssec_verdict[verdict]++;
 }
 
-bool manager_routable(Manager *m, int family) {
+bool manager_routable(Manager *m) {
         Link *l;
 
         assert(m);
 
-        /* Returns true if the host has at least one interface with a routable address of the specified type */
+        /* Returns true if the host has at least one interface with a routable address (regardless if IPv4 or IPv6) */
 
         HASHMAP_FOREACH(l, m->links)
-                if (link_relevant(l, family, false))
+                if (link_relevant(l, AF_UNSPEC, false))
                         return true;
 
         return false;
index c30052195a6b0ad56f21b7f98033d10b865acd79..20afab05fdf28d6843aca78dc80f0ce009f8a7e5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/stat.h>
@@ -185,7 +185,7 @@ DnsOverTlsMode manager_get_dns_over_tls_mode(Manager *m);
 
 void manager_dnssec_verdict(Manager *m, DnssecVerdict verdict, const DnsResourceKey *key);
 
-bool manager_routable(Manager *m, int family);
+bool manager_routable(Manager *m);
 
 void manager_flush_caches(Manager *m);
 void manager_reset_server_features(Manager *m);
index 921720febfedd63a5522f3a91eca38fb85c1ce4e..a09374719892a26fb575d2b05d3cd790cf18ec3e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <resolv.h>
 #include <netinet/in.h>
index 2f69478681594d8c7db425dac7c062b92a253f14..38ef1808dfb69769d21f70b0e12c4e516100116f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "resolved-manager.h"
index ba8f18f82d9b625b4ab901773c3e9cfc3e55ca8e..6fd9959daf130e7177ba940592ace82bd425a9e3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <resolv.h>
 #include <sys/stat.h>
@@ -156,6 +156,8 @@ int manager_read_resolv_conf(Manager *m) {
                         r = manager_parse_search_domains_and_warn(m, a);
                         if (r < 0)
                                 log_warning_errno(r, "Failed to parse search domain string '%s', ignoring.", a);
+
+                        continue;
                 }
 
                 log_syntax(NULL, LOG_DEBUG, "/etc/resolv.conf", n, 0, "Ignoring resolv.conf line: %s", l);
index 584d25c0f7cf729cfe3d9ec40f31ab0a17e51c77..3734e28a99702082890ead8f7bd7476f30520af8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "resolved-manager.h"
index 2f11a780911d5882dade7361817b8de964b38660..70d6f9056d5aa46a7c08ca919699a7d2093a037d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "in-addr-util.h"
 #include "resolved-dns-synthesize.h"
index cfb90e5e5ec3f9016f7517df41a046b00c1972c4..57fdfe909bd9943b7e056eac6415b5b7e0c7036f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "resolved-manager.h"
index 16477f28d69e73d30638689a81a76f254ab6c639..fd9be30dcfb44c6e990903706768addcbe89f425 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/stat.h>
 #include <sys/types.h>
index bdd96aa9a20241055f6fd0515714a8d10ddc9c39..47c7d671cd3733fb2795d1c510eb417b5558866d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 
index ccd62a14d119f2611d0837c44109b38669e657b3..e21eb86756987ca85c37402ff06501b92f9c6b4c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/ip.h>
 
index 213177d4da646bcd9f9236ece374009e537835ef..0275d0eb948bf8b09f13cf4666f594c4c50367c3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #if HAVE_GCRYPT
index 2230a66ef5e21397adda728afe8ef125e9bfd4f6..e4f4e14cc308c3f445daf4d6ec52326ea134baa8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "dns-type.h"
 #include "resolved-dns-dnssec.h"
index 721bf8732ef620461eb94a9525752af2df2027c2..045952e825d4a1cc2ff24c631e12136552f34999 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <netinet/in.h>
index c9a511beba9ea6c8f9e2bb3c9b60b64f53c548fb..cd93b1c23de6da65b59ee1289eff639b7d129eac 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "log.h"
 #include "resolved-dns-packet.h"
index 501982819aa2e9d967b5fefabdca2964c5031dff..c38716842b2f1099954fad50019195161a555b7e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <linux/rfkill.h>
index a149b9c9c298e052e81021e3747356331b1b85bb..11e7d9e83103ea22f4ed13a934fed8708e2ecb66 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index 41796243131afac004b4564a0b7b4577ac1aff38..b4cc6fe7f84076f8bee1869074316c9af67c50ad 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <stdio.h>
index 7a2767c37b33e66727b216b7e33095188b4fdf9e..ef4b88361f29bf14d62f85dee9e4c583670d2aae 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdbool.h>
index b6a6f480f800ffbaa1ff9bdc214680cf3f9c5397..837e8699ee950a5e629b887693340f6eb1b92518 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <errno.h>
index 38c464c912a53e4f2c76ed7b37ce169d4f95930b..11244537991e60c57c0eb956a258da6e113a50be 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 8d288937efb30085980ceadcec4b6707c50f0853..9eef92bc35b0ef5d084fde63d88b8a74e4d08537 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <time-util.h>
index c4a4b04d22c5175d52d2d1278a23b7d0939e2be5..68e1c557c0c846a9d332f8698b3074b5f0484e00 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stddef.h>
 
index 7fbaf90dcc821cc49af73b07816c9f090aed76f5..8007aeb6957a4c96875acf0a993a2766854ce27f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index a727b98e7c67dd66a6c72f8391e75aeba9661e6d..e1c9fe40f88a75211721568e271ef3a097444f6b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 528e3d01976ca1364ad4251473df922e30df03a7..7aac5e597608208bb9923e532125b14c13bedf30 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 80b597b5cadda9b94bea9daa463d7d04244d25ca..9c93d61a3c3d6106e11e23812eccd83337e6a8c3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 0eb3d2792e0961c8d8cffc3056558e49c1f93808..b11dce4fc0b48f111f80fd68dccf6f98cb7d4ece 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 657407da2d3794661f96cbf71c00f8f919f154f9..1d054090863e68ed4fee2fd2b9c86ec417e270f1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 39d970811d0d6217ec5a217404f2e82326b19848..a33975f3b5b36164282528540887797884c927ef 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index 0229726b42d59abd8f381dc5809c3a20e87460fb..724d7f27d999ac2324f3af808aae84b568ce0900 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #include <sys/stat.h>
 #include <sys/statvfs.h>
 #include <sys/vfs.h>
index 70feaad31418eb1d6abcb8fe1052ae3338d7a031..2f008d12ffe3d1aa18592a4ddcb0a5a7ac8e5fe8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int disable_binfmt(void);
index 2eba72dd59fc4b1602cada712ae189f7bc530855..5d450c8832e94eec65f83a04d14c59b46fbd69ce 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stddef.h>
index 312cee9ce78321bd97e072af4939d0e206aad0cf..1c305a2c4124dda78bdecd8590b5e9d931f91b10 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index eb07a88ba98ee67091d9777594311d08a343078b..3f38e9b3089abde8383d23119c9cf47439ae778b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #if HAVE_BLKID
index 2296ecd9def0e0cb234d2936941f55d9ac104af5..e04b201155bd34130b6592c49755b9cfdf17e430 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bond-util.h"
 #include "string-table.h"
index 66f86e77fa00b77814871d0d9a950ba849b15ca5..a8f9ecb4547015bd0e6bb284a83059d7ad42af89 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <netinet/in.h>
index 4ce146033d5227e1feea42c55bbb7b93ac13f56a..8786e89c0eeda16bd3e90a87a300733c0bd1baa6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "acpi-fpdt.h"
 #include "boot-timestamps.h"
index 4e648f18e2843bf76effeb203239a968984444c5..55b7ad19aa7c96aea619c99bdb27c90294014650 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <time-util.h>
index 189fa25639258bc28ac6cdae762f4a307e5ef83d..e50408ab53bb308113b47ae45e0ffe4748c1a6ac 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 #include <linux/magic.h>
index 1075a41d54151d70a237a67eca524020fd796ed3..1557bd0680927f08409b2f2d33813c3ac0480a65 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #pragma once
 
index e5c9df400429ed15d4607d35b938a2f236f5f3db..32881477d505e4ad5e2bd453fd65bd1d2cbeaa8a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/stat.h>
index a21589eb1f63a12c46b6946da424547b11f56379..eef77f9d8e1a6dde7c7be9bf836ce8f9eabc3998 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/bpf.h>
index 83a94ef104e0b960e9bc3550ca9753faad970aa3..e1a8bcb6802013063648d7ed006fbd8091cdb672 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bridge-util.h"
 #include "string-table.h"
index 5b1c3e9ea9237720a00f187e058f5c375cba0b25..c9b02d822f87fb042210eb3cab460e611b5a77a9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <netinet/in.h>
index 5a123bb8f32ad859065fb8eb9a679d9e0ca5b31d..32f68d5e6a869fa9ff5a81f3e32d5f4d4a83cdbc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-get-properties.h"
 #include "rlimit-util.h"
index f3934a86a25f8f192e3487760ec9c0331a01bfc5..9832c0d067f224bd3026950a029bacc32b8ff9ca 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 2a5aa7467717039b246ea684eb877db01b6bfffc..3754d1dd68c88bac49f31f5a1890ce1d85b12bf9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-locator.h"
 #include "macro.h"
index 2b892360b8c73960012287c593200111dc1109dd..fe3b8765279312d25d234f06f30049ed5a4d675d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 7c487ada9fadb1d5f7513f87de9a379e54444d74..06e6697a3301a044c53ac4fc1fb3296eecafc7ba 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bus-get-properties.h"
index 64eaa540f478f3e2ba84a8b6fb24f1a9705d76a8..85f60a7a2f0e2b98c396d913f884b82320ccb99e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 5cc8ce222d865f70b7228aaa4f6c8cab8aabe45c..84608567aa69b0ed0eacfe0023a8564e4d7bbce8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-map-properties.h"
 #include "alloc-util.h"
index 94242ecc3f787e54bd9ba5095ee455c093a93aab..2a766e3cc0280d1eb870d7353f794a525843ffda 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 85e1e98e19aa95c9f20550f2aad5ab492f41ccc6..19500a552d7ef9b6d2ec3c5a09949f75f5eba32e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-message-util.h"
 
index 98ad035ee47da9b2dfc1bf4dcacd1f0eb50203f1..b82c0830a0718ecf51c4c2411676bae55c91585b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 217d43d333a3ebe6c1cf0c49567753015382b864..f2e53913fbfcaf96547b187562570330c44cd48f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-introspect.h"
 #include "bus-object.h"
index 8add854e59f1163a06be6bfb7666408eaba5954f..145bbd268f588158071cf87dddc0b4946063a889 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 0722b1a118b25864ccf10ffb7329bec80efb2f05..14122e0876a6bc6ecf46d51e0e58a652df174562 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-internal.h"
 #include "bus-message.h"
index 29b392304727c64724ba9a70e73648527b7d388f..91a88a28079b9a341a4cfa64d014f31170b19b75 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index bf7d050fa3970bfb6bfdea168315d8bde608dd79..4cea25073d1a78741e60547007921e1edb8c3b78 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-print-properties.h"
 #include "cap-list.h"
index 1c21dff2c83a68158e64d6579dcc823bc2cc3cde..a4574758e5522a50886e9e880a8af4032a0f9509 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 5ae54efb1948d0819e00513c91b8a7c9cb00eb93..3e97be9671566012f5a1df84cdba7cc67137fbc1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-unit-procs.h"
 #include "hashmap.h"
index 1cb5ca6271eb73b55c840df04af9093dfef371ab..78c55697aea4709592ebb46af9decacfbbfb10a5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 89e0c5bb95e2d173d0abb3614fbc87bc0d0d814b..2bab2299fbe2b58c3db6fb8f8f726dc02c7b5f3a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bus-error.h"
@@ -2037,7 +2037,8 @@ static int bus_append_socket_property(sd_bus_message *m, const char *field, cons
                               "BindIPv6Only",
                               "FileDescriptorName",
                               "SocketUser",
-                              "SocketGroup"))
+                              "SocketGroup",
+                              "Timestamping"))
                 return bus_append_string(m, field, eq);
 
         if (streq(field, "Symlinks"))
@@ -2073,7 +2074,8 @@ static int bus_append_timer_property(sd_bus_message *m, const char *field, const
                               "RemainAfterElapse",
                               "Persistent",
                               "OnTimezoneChange",
-                              "OnClockChange"))
+                              "OnClockChange",
+                              "FixedRandomDelay"))
                 return bus_append_parse_boolean(m, field, eq);
 
         if (STR_IN_SET(field, "AccuracySec",
index 544767b0336eb99e1439ccc812963eb18e11ae8a..999caf65cd3087f0f9b09876e2ef475b6b4547a9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index aa5dadba45573f780113b0705eabf027ac553d9f..fbda218b3b335b43d0848a376eab0199a13ac9a9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 1a1389fd1e84e291a64550d32fecbaccb85e8645..a02d82a52ea1d923fdc2c315b289d25e9872c48f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index eb33ba23400d11d639d713c9c7f82c5ce102eeb3..b2a9e031ce749be127e44ba869c36acdf579cbae 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "bus-wait-for-jobs.h"
index 614a2c9de95445037a7069ec22258e0f7a5ec656..0155887455d927d7ee152f4e3761ee707f83c673 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 7592dcf18d2d29f0463990502820e45f095e9b66..4f1c505bd3f1bae01b165d45c03f01b7f080fcd6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-map-properties.h"
 #include "bus-wait-for-units.h"
index a20f3d8fd7ffba67e1024635ff38d692b7209559..f7ab666f15bc07473293357a03c8cf3e4cf63ad5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "macro.h"
index bcc51f973c9054d5a3019fab07b11e527486d296..7162592fbf7d00b7efd126b432097f8239872d69 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ctype.h>
 #include <errno.h>
index 0a5d95b4b1299d36a56d6297a37612081725ed98..3bfe82d7f60c0173d218d172a8cb3c997ff1fe32 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /* A structure for specifying (possibly repetitive) points in calendar
index e9995645eb4a435b58232976f3073a07ec3cd6e7..f197f715c7927f31c89aeb9d9bcdb5bccab99664 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ftw.h>
 #include <unistd.h>
index 43ce32e30d36fa0a2ef3433641c5b71da4b3f9f2..7eabce24512dedf101c27545d4a39b4946579133 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index b8bf3c27264295ac2142e072fec4f5daa126f1bf..f7c24f88604a59937b264f21ae5dcdb438a7f054 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <dirent.h>
 #include <errno.h>
index dfb26f82910f82e2f45298c4953301263f994a7f..fbbf7663b32a16ce9fe9ccf401a049e551999123 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index cb75d9a11bdf453bd06d5360837626040043fd03..4563729b7c9c03023ff6eb3cf8d6d8e42b7c5293 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/stat.h>
index 14a79733f531e1b4b7a79161ade98e9700d99db6..00038c3b3250e814b3088a36037dc5a4946ad31f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index 5d8f66c6028c3b65a3e7bad338ebacfed4eed1f7..77fe227e36f8d5f0e625331bc39792dedd73e60d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index eaff47d4b783476bc60059e64a48c80359a2348e..ed348fb6014c0a81f7b41d16638e253d3f8afe19 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index 8669547c1325e136956163132319d9b074bcb304..2caa70fa52bfd6cd79d30e2c995e6e3afbaff768 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index b9db54eac9d27cdbf8847ae47bc4d57fce3a6bb3..3f1ae7abfc68cf88f055d6f65629375fb030c244 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <time.h>
index af5d48f55be313adf19af3e43446f951b8f4db4c..b2ec690bc3beead7088de60ff922c40bb508a2c5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index e5ad43f945b5295130e258c9608bacd9a13fdce1..0d9754eb85cbac7d261d12aa2abf682968f4c9c4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 524f57ff80782ed84348d4b7a8f928b7568e91a4..35d301d9dbf2d3595f5d46667155c37f8c14a380 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <limits.h>
index 2514dcbf483cdb6d10e6aabc5c0400eedcf8bb09..8f8714361d5e17f03338e6a1a5f5f58e4a335a61 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <errno.h>
@@ -193,7 +193,7 @@ typedef enum Disabled {
                 return 0;                                               \
         }
 
-#define DEFINE_CONFIG_PARSE_ENUM(function, name, type, msg)             \
+#define DEFINE_CONFIG_PARSE_ENUM_FULL(function, from_string, type, msg) \
         CONFIG_PARSER_PROTOTYPE(function) {                             \
                 type *i = data, x;                                      \
                                                                         \
@@ -202,7 +202,7 @@ typedef enum Disabled {
                 assert(rvalue);                                         \
                 assert(data);                                           \
                                                                         \
-                x = name##_from_string(rvalue);                         \
+                x = from_string(rvalue);                                \
                 if (x < 0) {                                            \
                         log_syntax(unit, LOG_WARNING, filename, line, 0, \
                                    msg ", ignoring: %s", rvalue);       \
@@ -213,6 +213,9 @@ typedef enum Disabled {
                 return 0;                                               \
         }
 
+#define DEFINE_CONFIG_PARSE_ENUM(function, name, type, msg)             \
+        DEFINE_CONFIG_PARSE_ENUM_FULL(function, name##_from_string, type, msg)
+
 #define DEFINE_CONFIG_PARSE_ENUM_WITH_DEFAULT(function, name, type, default_value, msg) \
         CONFIG_PARSER_PROTOTYPE(function) {                             \
                 type *i = data, x;                                      \
index 67897414bc1978f7c099ea72189857d5081df412..a0b648bf791887c116c957bd0efe0e9964e6a380 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "coredump-util.h"
 #include "extract-word.h"
index ff2e511bf17aea7a29e4b02253fc7b6f80b8d82c..a7f3c0e86c838bb7c266b8ba26edaac8ebf7e352 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "macro.h"
index 8779d1d4d306a7af1389405a6a273ac4b01fde9f..2c3b5bb034340cef1bcf09c91f092cdf3e9076a3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stddef.h>
index 9ec83f69302e68af2ad2a90244d23de8bc74bd98..3c63a5882616fe2d571ab981d644325344a9320f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sched.h>
index 9d86478b06b07a3f523ce5d0adb464fc8d8414ec..34a078e7e77e571c42266e6dfd7478935e358f1a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_LIBCRYPTSETUP
 #include "alloc-util.h"
index 046953b8ccd94f38321e5bf78f3579111c509efa..b96ffc74e3b59886635d7e3d65097d35054e36a6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "macro.h"
index 04b8245310044643e7609f20c83d50cc6cc2517c..585e4894a01365459792e54e2d41a45280e5f41f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index d97064099325c835d0efad2ec19e4143deefff60..b788b06913dd90fe5b229fbc06019b8ca0d7570d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdlib.h>
index 437c0e96e65289cae26243b1b22740980b9105dd..92ba6cf76403346dc55a8da9c50a158f4fb6791f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index cbd335721993e5fdc0680834fe2b9f45ec7abd7a..b32a8bc4e4d2d89f6f48f30e17409bcb78d90e10 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_VALGRIND_MEMCHECK_H
 #include <valgrind/memcheck.h>
@@ -109,172 +109,240 @@ not_found:
 }
 
 #if HAVE_BLKID
-/* Detect RPMB and Boot partitions, which are not listed by blkid.
- * See https://github.com/systemd/systemd/issues/5806. */
-static bool device_is_mmc_special_partition(sd_device *d) {
-        const char *sysname;
+static int enumerator_for_parent(sd_device *d, sd_device_enumerator **ret) {
+        _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
+        int r;
 
         assert(d);
+        assert(ret);
 
-        if (sd_device_get_sysname(d, &sysname) < 0)
-                return false;
+        r = sd_device_enumerator_new(&e);
+        if (r < 0)
+                return r;
 
-        return startswith(sysname, "mmcblk") &&
-                (endswith(sysname, "rpmb") || endswith(sysname, "boot0") || endswith(sysname, "boot1"));
+        r = sd_device_enumerator_allow_uninitialized(e);
+        if (r < 0)
+                return r;
+
+        r = sd_device_enumerator_add_match_parent(e, d);
+        if (r < 0)
+                return r;
+
+        *ret = TAKE_PTR(e);
+        return 0;
 }
 
-static bool device_is_block(sd_device *d) {
-        const char *ss;
+static int device_is_partition(sd_device *d, blkid_partition pp) {
+        blkid_loff_t bsize, bstart;
+        uint64_t size, start;
+        int partno, bpartno, r;
+        const char *ss, *v;
 
         assert(d);
+        assert(pp);
 
-        if (sd_device_get_subsystem(d, &ss) < 0)
+        r = sd_device_get_subsystem(d, &ss);
+        if (r < 0)
+                return r;
+        if (!streq(ss, "block"))
                 return false;
 
-        return streq(ss, "block");
-}
+        r = sd_device_get_sysattr_value(d, "partition", &v);
+        if (r == -ENOENT) /* Not a partition device */
+                return false;
+        if (r < 0)
+                return r;
+        r = safe_atoi(v, &partno);
+        if (r < 0)
+                return r;
 
-static int enumerator_for_parent(sd_device *d, sd_device_enumerator **ret) {
-        _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
-        int r;
+        errno = 0;
+        bpartno = blkid_partition_get_partno(pp);
+        if (bpartno < 0)
+                return errno_or_else(EIO);
 
-        assert(d);
-        assert(ret);
+        if (partno != bpartno)
+                return false;
 
-        r = sd_device_enumerator_new(&e);
+        r = sd_device_get_sysattr_value(d, "start", &v);
         if (r < 0)
                 return r;
-
-        r = sd_device_enumerator_allow_uninitialized(e);
+        r = safe_atou64(v, &start);
         if (r < 0)
                 return r;
 
-        r = sd_device_enumerator_add_match_parent(e, d);
+        errno = 0;
+        bstart = blkid_partition_get_start(pp);
+        if (bstart < 0)
+                return errno_or_else(EIO);
+
+        if (start != (uint64_t) bstart)
+                return false;
+
+        r = sd_device_get_sysattr_value(d, "size", &v);
+        if (r < 0)
+                return r;
+        r = safe_atou64(v, &size);
         if (r < 0)
                 return r;
 
-        *ret = TAKE_PTR(e);
-        return 0;
+        errno = 0;
+        bsize = blkid_partition_get_size(pp);
+        if (bsize < 0)
+                return errno_or_else(EIO);
+
+        if (size != (uint64_t) bsize)
+                return false;
+
+        return true;
 }
 
-static int wait_for_partitions_to_appear(
-                int fd,
-                sd_device *d,
-                unsigned num_partitions,
-                DissectImageFlags flags,
-                sd_device_enumerator **ret_enumerator) {
+static int find_partition(
+                sd_device *parent,
+                blkid_partition pp,
+                sd_device **ret) {
 
         _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
         sd_device *q;
-        unsigned n;
         int r;
 
-        assert(fd >= 0);
-        assert(d);
-        assert(ret_enumerator);
+        assert(parent);
+        assert(pp);
+        assert(ret);
 
-        r = enumerator_for_parent(d, &e);
+        r = enumerator_for_parent(parent, &e);
         if (r < 0)
                 return r;
 
-        /* Count the partitions enumerated by the kernel */
-        n = 0;
         FOREACH_DEVICE(e, q) {
-                if (sd_device_get_devnum(q, NULL) < 0)
-                        continue;
-                if (!device_is_block(q))
-                        continue;
-                if (device_is_mmc_special_partition(q))
-                        continue;
-
-                if (!FLAGS_SET(flags, DISSECT_IMAGE_NO_UDEV)) {
-                        r = device_wait_for_initialization(q, "block", USEC_INFINITY, NULL);
-                        if (r < 0)
-                                return r;
+                r = device_is_partition(q, pp);
+                if (r < 0)
+                        return r;
+                if (r > 0) {
+                        *ret = sd_device_ref(q);
+                        return 0;
                 }
-
-                n++;
         }
 
-        if (n == num_partitions + 1) {
-                *ret_enumerator = TAKE_PTR(e);
-                return 0; /* success! */
-        }
-        if (n > num_partitions + 1)
-                return log_debug_errno(SYNTHETIC_ERRNO(EIO),
-                                       "blkid and kernel partition lists do not match.");
+        return -ENXIO;
+}
 
-        /* The kernel has probed fewer partitions than blkid? Maybe the kernel prober is still running or it
-         * got EBUSY because udev already opened the device. Let's reprobe the device, which is a synchronous
-         * call that waits until probing is complete. */
+struct wait_data {
+        sd_device *parent_device;
+        blkid_partition blkidp;
+        sd_device *found;
+};
 
-        for (unsigned j = 0; ; j++) {
-                if (j++ > 20)
-                        return -EBUSY;
+static inline void wait_data_done(struct wait_data *d) {
+        sd_device_unref(d->found);
+}
 
-                if (ioctl(fd, BLKRRPART, 0) >= 0)
-                        break;
-                r = -errno;
-                if (r == -EINVAL) {
-                        /* If we are running on a block device that has partition scanning off, return an
-                         * explicit recognizable error about this, so that callers can generate a proper
-                         * message explaining the situation. */
+static int device_monitor_handler(sd_device_monitor *monitor, sd_device *device, void *userdata) {
+        const char *parent1_path, *parent2_path;
+        struct wait_data *w = userdata;
+        sd_device *pp;
+        int r;
 
-                        r = blockdev_partscan_enabled(fd);
-                        if (r < 0)
-                                return r;
-                        if (r == 0)
-                                return log_debug_errno(SYNTHETIC_ERRNO(EPROTONOSUPPORT),
-                                                       "Device is a loop device and partition scanning is off!");
+        assert(w);
 
-                        return -EINVAL; /* original error */
-                }
-                if (r != -EBUSY)
-                        return r;
+        if (device_for_action(device, DEVICE_ACTION_REMOVE))
+                return 0;
 
-                /* If something else has the device open, such as an udev rule, the ioctl will return
-                 * EBUSY. Since there's no way to wait until it isn't busy anymore, let's just wait a bit,
-                 * and try again.
-                 *
-                 * This is really something they should fix in the kernel! */
-                (void) usleep(50 * USEC_PER_MSEC);
+        r = sd_device_get_parent(device, &pp);
+        if (r < 0)
+                return 0; /* Doesn't have a parent? No relevant to us */
 
-        }
+        r = sd_device_get_syspath(pp, &parent1_path); /* Check parent of device of this action */
+        if (r < 0)
+                goto finish;
+
+        r = sd_device_get_syspath(w->parent_device, &parent2_path); /* Check parent of device we are looking for */
+        if (r < 0)
+                goto finish;
+
+        if (!path_equal(parent1_path, parent2_path))
+                return 0; /* Has a different parent than what we need, not interesting to us */
+
+        r = device_is_partition(device, w->blkidp);
+        if (r < 0)
+                goto finish;
+        if (r == 0) /* Not the one we need */
+                return 0;
+
+        /* It's the one we need! Yay! */
+        assert(!w->found);
+        w->found = sd_device_ref(device);
+        r = 0;
 
-        return -EAGAIN; /* no success yet, try again */
+finish:
+        return sd_event_exit(sd_device_monitor_get_event(monitor), r);
 }
 
-static int loop_wait_for_partitions_to_appear(
-                int fd,
-                sd_device *d,
-                unsigned num_partitions,
-                DissectImageFlags flags,
-                sd_device_enumerator **ret_enumerator) {
-        _cleanup_(sd_device_unrefp) sd_device *device = NULL;
+static int wait_for_partition_device(
+                sd_device *parent,
+                blkid_partition pp,
+                usec_t deadline,
+                sd_device **ret) {
+
+        _cleanup_(sd_event_source_unrefp) sd_event_source *timeout_source = NULL;
+        _cleanup_(sd_device_monitor_unrefp) sd_device_monitor *monitor = NULL;
+        _cleanup_(sd_event_unrefp) sd_event *event = NULL;
         int r;
 
-        assert(fd >= 0);
-        assert(d);
-        assert(ret_enumerator);
+        assert(parent);
+        assert(pp);
+        assert(ret);
 
-        log_debug("Waiting for device (parent + %d partitions) to appear...", num_partitions);
+        r = find_partition(parent, pp, ret);
+        if (r != -ENXIO)
+                return r;
 
-        if (!FLAGS_SET(flags, DISSECT_IMAGE_NO_UDEV)) {
-                r = device_wait_for_initialization(d, "block", USEC_INFINITY, &device);
-                if (r < 0)
-                        return r;
-        } else
-                device = sd_device_ref(d);
+        r = sd_event_new(&event);
+        if (r < 0)
+                return r;
 
-        for (unsigned i = 0; i < N_DEVICE_NODE_LIST_ATTEMPTS; i++) {
-                r = wait_for_partitions_to_appear(fd, device, num_partitions, flags, ret_enumerator);
-                if (r != -EAGAIN)
+        r = sd_device_monitor_new(&monitor);
+        if (r < 0)
+                return r;
+
+        r = sd_device_monitor_filter_add_match_subsystem_devtype(monitor, "block", "partition");
+        if (r < 0)
+                return r;
+
+        r = sd_device_monitor_attach_event(monitor, event);
+        if (r < 0)
+                return r;
+
+        _cleanup_(wait_data_done) struct wait_data w = {
+                .parent_device = parent,
+                .blkidp = pp,
+        };
+
+        r = sd_device_monitor_start(monitor, device_monitor_handler, &w);
+        if (r < 0)
+                return r;
+
+        /* Check again, the partition might have appeared in the meantime */
+        r = find_partition(parent, pp, ret);
+        if (r != -ENXIO)
+                return r;
+
+        if (deadline != USEC_INFINITY) {
+                r = sd_event_add_time(
+                                event, &timeout_source,
+                                CLOCK_MONOTONIC, deadline, 0,
+                                NULL, INT_TO_PTR(-ETIMEDOUT));
+                if (r < 0)
                         return r;
         }
 
-        return log_debug_errno(SYNTHETIC_ERRNO(ENXIO),
-                               "Kernel partitions dit not appear within %d attempts",
-                               N_DEVICE_NODE_LIST_ATTEMPTS);
+        r = sd_event_loop(event);
+        if (r < 0)
+                return r;
+
+        assert(w.found);
+        *ret = TAKE_PTR(w.found);
+        return 0;
 }
 
 static void check_partition_flags(
@@ -300,8 +368,90 @@ static void check_partition_flags(
         }
 }
 
+static int device_wait_for_initialization_harder(
+                sd_device *device,
+                const char *subsystem,
+                usec_t deadline,
+                sd_device **ret) {
+
+        _cleanup_free_ char *uevent = NULL;
+        usec_t start, left, retrigger_timeout;
+        int r;
+
+        start = now(CLOCK_MONOTONIC);
+        left = usec_sub_unsigned(deadline, start);
+
+        if (DEBUG_LOGGING) {
+                char buf[FORMAT_TIMESPAN_MAX];
+                const char *sn = NULL;
+
+                (void) sd_device_get_sysname(device, &sn);
+                log_debug("Waiting for device '%s' to initialize for %s.", strna(sn), format_timespan(buf, sizeof(buf), left, 0));
+        }
+
+        if (left != USEC_INFINITY)
+                retrigger_timeout = CLAMP(left / 4, 1 * USEC_PER_SEC, 5 * USEC_PER_SEC); /* A fourth of the total timeout, but let's clamp to 1s…5s range */
+        else
+                retrigger_timeout = 2 * USEC_PER_SEC;
+
+        for (;;) {
+                usec_t local_deadline, n;
+                bool last_try;
+
+                n = now(CLOCK_MONOTONIC);
+                assert(n >= start);
+
+                /* Find next deadline, when we'll retrigger */
+                local_deadline = start +
+                        DIV_ROUND_UP(n - start, retrigger_timeout) * retrigger_timeout;
+
+                if (deadline != USEC_INFINITY && deadline <= local_deadline) {
+                        local_deadline = deadline;
+                        last_try = true;
+                } else
+                        last_try = false;
+
+                r = device_wait_for_initialization(device, subsystem, local_deadline, ret);
+                if (r >= 0 && DEBUG_LOGGING) {
+                        char buf[FORMAT_TIMESPAN_MAX];
+                        const char *sn = NULL;
+
+                        (void) sd_device_get_sysname(device, &sn);
+                        log_debug("Successfully waited for device '%s' to initialize for %s.", strna(sn), format_timespan(buf, sizeof(buf), usec_sub_unsigned(now(CLOCK_MONOTONIC), start), 0));
+
+                }
+                if (r != -ETIMEDOUT || last_try)
+                        return r;
+
+                if (!uevent) {
+                        const char *syspath;
+
+                        r = sd_device_get_syspath(device, &syspath);
+                        if (r < 0)
+                                return r;
+
+                        uevent = path_join(syspath, "uevent");
+                        if (!uevent)
+                                return -ENOMEM;
+                }
+
+                if (DEBUG_LOGGING) {
+                        char buf[FORMAT_TIMESPAN_MAX];
+
+                        log_debug("Device didn't initialize within %s, assuming lost event. Retriggering device through %s.",
+                                  format_timespan(buf, sizeof(buf), usec_sub_unsigned(now(CLOCK_MONOTONIC), start), 0),
+                                  uevent);
+                }
+
+                r = write_string_file(uevent, "change", WRITE_STRING_FILE_DISABLE_BUFFER);
+                if (r < 0)
+                        return r;
+        }
+}
 #endif
 
+#define DEVICE_TIMEOUT_USEC (45 * USEC_PER_SEC)
+
 int dissect_image(
                 int fd,
                 const VeritySettings *verity,
@@ -312,7 +462,6 @@ int dissect_image(
 #if HAVE_BLKID
         sd_id128_t root_uuid = SD_ID128_NULL, root_verity_uuid = SD_ID128_NULL,
                 usr_uuid = SD_ID128_NULL, usr_verity_uuid = SD_ID128_NULL;
-        _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
         bool is_gpt, is_mbr, generic_rw, multiple_generic = false;
         _cleanup_(sd_device_unrefp) sd_device *d = NULL;
         _cleanup_(dissected_image_unrefp) DissectedImage *m = NULL;
@@ -321,9 +470,9 @@ int dissect_image(
         sd_id128_t generic_uuid = SD_ID128_NULL;
         const char *pttype = NULL;
         blkid_partlist pl;
-        int r, generic_nr;
+        int r, generic_nr, n_partitions;
         struct stat st;
-        sd_device *q;
+        usec_t deadline;
 
         assert(fd >= 0);
         assert(ret);
@@ -370,6 +519,27 @@ int dissect_image(
         if (!S_ISBLK(st.st_mode))
                 return -ENOTBLK;
 
+        r = sd_device_new_from_devnum(&d, 'b', st.st_rdev);
+        if (r < 0)
+                return r;
+
+        if (!FLAGS_SET(flags, DISSECT_IMAGE_NO_UDEV)) {
+                _cleanup_(sd_device_unrefp) sd_device *initialized = NULL;
+
+                /* If udev support is enabled, then let's wait for the device to be initialized before we doing anything. */
+
+                r = device_wait_for_initialization_harder(
+                                d,
+                                "block",
+                                usec_add(now(CLOCK_MONOTONIC), DEVICE_TIMEOUT_USEC),
+                                &initialized);
+                if (r < 0)
+                        return r;
+
+                sd_device_unref(d);
+                d = TAKE_PTR(initialized);
+        }
+
         b = blkid_new_probe();
         if (!b)
                 return -ENOMEM;
@@ -399,10 +569,6 @@ int dissect_image(
         if (!m)
                 return -ENOMEM;
 
-        r = sd_device_new_from_devnum(&d, 'b', st.st_rdev);
-        if (r < 0)
-                return r;
-
         if ((!(flags & DISSECT_IMAGE_GPT_ONLY) &&
             (flags & DISSECT_IMAGE_REQUIRE_ROOT)) ||
             (flags & DISSECT_IMAGE_NO_PARTITION_TABLE)) {
@@ -412,8 +578,8 @@ int dissect_image(
 
                 (void) blkid_probe_lookup_value(b, "USAGE", &usage, NULL);
                 if (STRPTR_IN_SET(usage, "filesystem", "crypto")) {
+                        const char *fstype = NULL, *options = NULL, *devname = NULL;
                         _cleanup_free_ char *t = NULL, *n = NULL, *o = NULL;
-                        const char *fstype = NULL, *options = NULL;
 
                         /* OK, we have found a file system, that's our root partition then. */
                         (void) blkid_probe_lookup_value(b, "TYPE", &fstype, NULL);
@@ -424,10 +590,14 @@ int dissect_image(
                                         return -ENOMEM;
                         }
 
-                        r = device_path_make_major_minor(st.st_mode, st.st_rdev, &n);
+                        r = sd_device_get_devname(d, &devname);
                         if (r < 0)
                                 return r;
 
+                        n = strdup(devname);
+                        if (!n)
+                                return -ENOMEM;
+
                         m->single_file_system = true;
                         m->verity = verity && verity->root_hash && verity->data_path && (verity->designator < 0 || verity->designator == PARTITION_ROOT);
                         m->can_verity = verity && verity->data_path;
@@ -451,13 +621,7 @@ int dissect_image(
 
                         m->encrypted = streq_ptr(fstype, "crypto_LUKS");
 
-                        /* Even on a single partition we need to wait for udev to create the
-                         * /dev/block/X:Y symlink to /dev/loopZ */
-                        r = loop_wait_for_partitions_to_appear(fd, d, 0, flags, &e);
-                        if (r < 0)
-                                return r;
                         *ret = TAKE_PTR(m);
-
                         return 0;
                 }
         }
@@ -472,48 +636,51 @@ int dissect_image(
         if (!is_gpt && ((flags & DISSECT_IMAGE_GPT_ONLY) || !is_mbr))
                 return -ENOPKG;
 
+        /* Safety check: refuse block devices that carry a partition table but for which the kernel doesn't
+         * do partition scanning. */
+        r = blockdev_partscan_enabled(fd);
+        if (r < 0)
+                return r;
+        if (r == 0)
+                return -EPROTONOSUPPORT;
+
         errno = 0;
         pl = blkid_probe_get_partitions(b);
         if (!pl)
                 return errno_or_else(ENOMEM);
 
-        r = loop_wait_for_partitions_to_appear(fd, d, blkid_partlist_numof_partitions(pl), flags, &e);
-        if (r < 0)
-                return r;
+        errno = 0;
+        n_partitions = blkid_partlist_numof_partitions(pl);
+        if (n_partitions < 0)
+                return errno_or_else(EIO);
 
-        FOREACH_DEVICE(e, q) {
+        deadline = usec_add(now(CLOCK_MONOTONIC), DEVICE_TIMEOUT_USEC);
+        for (int i = 0; i < n_partitions; i++) {
+                _cleanup_(sd_device_unrefp) sd_device *q = NULL;
                 unsigned long long pflags;
                 blkid_partition pp;
                 const char *node;
-                dev_t qn;
                 int nr;
 
-                r = sd_device_get_devnum(q, &qn);
-                if (r < 0)
-                        continue;
-
-                if (st.st_rdev == qn)
-                        continue;
-
-                if (!device_is_block(q))
-                        continue;
+                errno = 0;
+                pp = blkid_partlist_get_partition(pl, i);
+                if (!pp)
+                        return errno_or_else(EIO);
 
-                if (device_is_mmc_special_partition(q))
-                        continue;
+                r = wait_for_partition_device(d, pp, deadline, &q);
+                if (r < 0)
+                        return r;
 
                 r = sd_device_get_devname(q, &node);
                 if (r < 0)
-                        continue;
-
-                pp = blkid_partlist_devno_to_partition(pl, qn);
-                if (!pp)
-                        continue;
+                        return r;
 
                 pflags = blkid_partition_get_flags(pp);
 
+                errno = 0;
                 nr = blkid_partition_get_partno(pp);
                 if (nr < 0)
-                        continue;
+                        return errno_or_else(EIO);
 
                 if (is_gpt) {
                         PartitionDesignator designator = _PARTITION_DESIGNATOR_INVALID;
@@ -1643,7 +1810,7 @@ static int verity_partition(
                         if (r == 0) {
                                 /* devmapper might say that the device exists, but the devlink might not yet have been
                                  * created. Check and wait for the udev event in that case. */
-                                r = device_wait_for_devlink(node, "block", 100 * USEC_PER_MSEC, NULL);
+                                r = device_wait_for_devlink(node, "block", usec_add(now(CLOCK_MONOTONIC), 100 * USEC_PER_MSEC), NULL);
                                 /* Fallback to activation with a unique device if it's taking too long */
                                 if (r == -ETIMEDOUT)
                                         break;
@@ -1948,7 +2115,7 @@ int verity_settings_load(
 
         if (verity->root_hash && !verity->root_hash_sig) {
                 if (root_hash_sig_path) {
-                        r = read_full_file_full(AT_FDCWD, root_hash_sig_path, 0, (char**) &root_hash_sig, &root_hash_sig_size);
+                        r = read_full_file_full(AT_FDCWD, root_hash_sig_path, 0, NULL, (char**) &root_hash_sig, &root_hash_sig_size);
                         if (r < 0 && r != -ENOENT)
                                 return r;
 
@@ -1964,7 +2131,7 @@ int verity_settings_load(
                                 if (!p)
                                         return -ENOMEM;
 
-                                r = read_full_file_full(AT_FDCWD, p, 0, (char**) &root_hash_sig, &root_hash_sig_size);
+                                r = read_full_file_full(AT_FDCWD, p, 0, NULL, (char**) &root_hash_sig, &root_hash_sig_size);
                                 if (r < 0 && r != -ENOENT)
                                         return r;
                                 if (r >= 0)
@@ -1978,7 +2145,7 @@ int verity_settings_load(
                                 if (!p)
                                         return -ENOMEM;
 
-                                r = read_full_file_full(AT_FDCWD, p, 0, (char**) &root_hash_sig, &root_hash_sig_size);
+                                r = read_full_file_full(AT_FDCWD, p, 0, NULL, (char**) &root_hash_sig, &root_hash_sig_size);
                                 if (r < 0 && r != -ENOENT)
                                         return r;
                                 if (r >= 0)
index f5db7327bd6a10e6b7fd70efc406fd7617158a67..3b30e08f90fbcfc1d9827dd596e0f1629ac8186b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 7efcb6b2aae432599a511819eb5f90ee743a15b5..b48b9b5cbcf08a8c194fc96a12e1152fd72ec87b 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #include <fcntl.h>
 #include <linux/dm-ioctl.h>
 #include <sys/ioctl.h>
index 997963c042b6858b9a1c53305711686d1be68a1e..e6e3d7d8c54cd8b8c5725ff8402d69cbe9f135ce 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int dm_deferred_remove_cancel(const char *name);
index 35d2eaa9f1519b8fa49bca4239d80f99e0f5d68d..8bd1e3a6acd54fa931d928d7928043a4150dfc65 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <endian.h>
 #include <netinet/in.h>
index 60de7af22721d892cf7cfba5dc76788d9177ce28..77f596294de3b45bd20df6f24417a2b0d8d91984 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <errno.h>
index 6c614b5c0a4851157b7c1f9606182533bf6e7a26..89f4b8ad897dc943a0e8c8f389ec89c2213859fc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdarg.h>
index addf1dab140af2ef3985a7effbdd2a7c69121292..54cceaff1aca3d249905357583fe6f7934cb3355 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "hashmap.h"
index 9411fc8cef8647b2ab243734bc6f1109a11960e5..20f70da31a87295d68ff0bcf1c7f528a3ccc8445 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdlib.h>
 #include <sys/stat.h>
index 171274a0e342edafdc7cf798c45584deab8f035d..34476f4ced00dbf84ace2ea099e6d13757c886b4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "efivars.h"
index a571b43f5791da25b492a06fed2a46173b5b7ca3..1abfccbd817e1f1b59c5c9ccf8d9a3bb043d5844 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "mempool.h"
 
index add68d224dbd14ad5d3106669f886494e4200380..468afce2ba0ed347a47b8ac720d069623f53c7bb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/stat.h>
 
index 158fc4ec0b5303563fba04702bd3bd892232586e..d68058ab2ec95f0d3409b1a3f6ba9698fca9b8a4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /* These functions are split out of fileio.h (and not for example just flags to the functions they wrap) in order to
index e36b4090adbe39d0d4fa591a2f485fb6ef7fbcd4..e6fab262f2d14826fd835ff74e41f2aa49d1be02 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 #include <sys/ioctl.h>
@@ -173,14 +173,18 @@ static int ethtool_connect_or_warn(int *ret, bool warn) {
 
 int ethtool_get_driver(int *ethtool_fd, const char *ifname, char **ret) {
         struct ethtool_drvinfo ecmd = {
-                .cmd = ETHTOOL_GDRVINFO
+                .cmd = ETHTOOL_GDRVINFO,
         };
         struct ifreq ifr = {
-                .ifr_data = (void*) &ecmd
+                .ifr_data = (void*) &ecmd,
         };
         char *d;
         int r;
 
+        assert(ethtool_fd);
+        assert(ifname);
+        assert(ret);
+
         if (*ethtool_fd < 0) {
                 r = ethtool_connect_or_warn(ethtool_fd, true);
                 if (r < 0)
@@ -193,6 +197,9 @@ int ethtool_get_driver(int *ethtool_fd, const char *ifname, char **ret) {
         if (r < 0)
                 return -errno;
 
+        if (isempty(ecmd.driver))
+                return -ENODATA;
+
         d = strdup(ecmd.driver);
         if (!d)
                 return -ENOMEM;
@@ -201,9 +208,14 @@ int ethtool_get_driver(int *ethtool_fd, const char *ifname, char **ret) {
         return 0;
 }
 
-int ethtool_get_link_info(int *ethtool_fd, const char *ifname,
-                          int *ret_autonegotiation, uint64_t *ret_speed,
-                          Duplex *ret_duplex, NetDevPort *ret_port) {
+int ethtool_get_link_info(
+                int *ethtool_fd,
+                const char *ifname,
+                int *ret_autonegotiation,
+                uint64_t *ret_speed,
+                Duplex *ret_duplex,
+                NetDevPort *ret_port) {
+
         struct ethtool_cmd ecmd = {
                 .cmd = ETHTOOL_GSET,
         };
@@ -212,6 +224,9 @@ int ethtool_get_link_info(int *ethtool_fd, const char *ifname,
         };
         int r;
 
+        assert(ethtool_fd);
+        assert(ifname);
+
         if (*ethtool_fd < 0) {
                 r = ethtool_connect_or_warn(ethtool_fd, false);
                 if (r < 0)
@@ -292,14 +307,17 @@ int ethtool_get_permanent_macaddr(int *ethtool_fd, const char *ifname, struct et
 
 int ethtool_set_speed(int *ethtool_fd, const char *ifname, unsigned speed, Duplex duplex) {
         struct ethtool_cmd ecmd = {
-                .cmd = ETHTOOL_GSET
+                .cmd = ETHTOOL_GSET,
         };
         struct ifreq ifr = {
-                .ifr_data = (void*) &ecmd
+                .ifr_data = (void*) &ecmd,
         };
         bool need_update = false;
         int r;
 
+        assert(ethtool_fd);
+        assert(ifname);
+
         if (speed == 0 && duplex == _DUP_INVALID)
                 return 0;
 
@@ -350,14 +368,17 @@ int ethtool_set_speed(int *ethtool_fd, const char *ifname, unsigned speed, Duple
 
 int ethtool_set_wol(int *ethtool_fd, const char *ifname, WakeOnLan wol) {
         struct ethtool_wolinfo ecmd = {
-                .cmd = ETHTOOL_GWOL
+                .cmd = ETHTOOL_GWOL,
         };
         struct ifreq ifr = {
-                .ifr_data = (void*) &ecmd
+                .ifr_data = (void*) &ecmd,
         };
         bool need_update = false;
         int r;
 
+        assert(ethtool_fd);
+        assert(ifname);
+
         if (wol == _WOL_INVALID)
                 return 0;
 
@@ -439,14 +460,18 @@ int ethtool_set_wol(int *ethtool_fd, const char *ifname, WakeOnLan wol) {
 
 int ethtool_set_nic_buffer_size(int *ethtool_fd, const char *ifname, const netdev_ring_param *ring) {
         struct ethtool_ringparam ecmd = {
-                .cmd = ETHTOOL_GRINGPARAM
+                .cmd = ETHTOOL_GRINGPARAM,
         };
         struct ifreq ifr = {
-                .ifr_data = (void*) &ecmd
+                .ifr_data = (void*) &ecmd,
         };
         bool need_update = false;
         int r;
 
+        assert(ethtool_fd);
+        assert(ifname);
+        assert(ring);
+
         if (*ethtool_fd < 0) {
                 r = ethtool_connect_or_warn(ethtool_fd, true);
                 if (r < 0)
@@ -490,7 +515,7 @@ int ethtool_set_nic_buffer_size(int *ethtool_fd, const char *ifname, const netde
         return 0;
 }
 
-static int get_stringset(int ethtool_fd, struct ifreq *ifr, int stringset_id, struct ethtool_gstrings **gstrings) {
+static int get_stringset(int ethtool_fd, struct ifreq *ifr, int stringset_id, struct ethtool_gstrings **ret) {
         _cleanup_free_ struct ethtool_gstrings *strings = NULL;
         struct {
                 struct ethtool_sset_info info;
@@ -504,6 +529,10 @@ static int get_stringset(int ethtool_fd, struct ifreq *ifr, int stringset_id, st
         unsigned len;
         int r;
 
+        assert(ethtool_fd >= 0);
+        assert(ifr);
+        assert(ret);
+
         ifr->ifr_data = (void *) &buffer.info;
 
         r = ioctl(ethtool_fd, SIOCETHTOOL, ifr);
@@ -534,7 +563,7 @@ static int get_stringset(int ethtool_fd, struct ifreq *ifr, int stringset_id, st
         if (r < 0)
                 return -errno;
 
-        *gstrings = TAKE_PTR(strings);
+        *ret = TAKE_PTR(strings);
 
         return 0;
 }
@@ -572,6 +601,10 @@ int ethtool_set_features(int *ethtool_fd, const char *ifname, const int *feature
         struct ifreq ifr = {};
         int i, r;
 
+        assert(ethtool_fd);
+        assert(ifname);
+        assert(features);
+
         if (*ethtool_fd < 0) {
                 r = ethtool_connect_or_warn(ethtool_fd, true);
                 if (r < 0)
@@ -606,7 +639,7 @@ int ethtool_set_features(int *ethtool_fd, const char *ifname, const int *feature
         return 0;
 }
 
-static int get_glinksettings(int fd, struct ifreq *ifr, struct ethtool_link_usettings **g) {
+static int get_glinksettings(int fd, struct ifreq *ifr, struct ethtool_link_usettings **ret) {
         struct ecmd {
                 struct ethtool_link_settings req;
                 __u32 link_mode_data[3 * ETHTOOL_LINK_MODE_MASK_MAX_KERNEL_NU32];
@@ -617,6 +650,10 @@ static int get_glinksettings(int fd, struct ifreq *ifr, struct ethtool_link_uset
         unsigned offset;
         int r;
 
+        assert(fd >= 0);
+        assert(ifr);
+        assert(ret);
+
         /* The interaction user/kernel via the new API requires a small ETHTOOL_GLINKSETTINGS
            handshake first to agree on the length of the link mode bitmaps. If kernel doesn't
            agree with user, it returns the bitmap length it is expecting from user as a negative
@@ -662,18 +699,22 @@ static int get_glinksettings(int fd, struct ifreq *ifr, struct ethtool_link_uset
         offset += ecmd.req.link_mode_masks_nwords;
         memcpy(u->link_modes.lp_advertising, &ecmd.link_mode_data[offset], 4 * ecmd.req.link_mode_masks_nwords);
 
-        *g = u;
+        *ret = u;
 
         return 0;
 }
 
-static int get_gset(int fd, struct ifreq *ifr, struct ethtool_link_usettings **u) {
+static int get_gset(int fd, struct ifreq *ifr, struct ethtool_link_usettings **ret) {
         struct ethtool_link_usettings *e;
         struct ethtool_cmd ecmd = {
                 .cmd = ETHTOOL_GSET,
         };
         int r;
 
+        assert(fd >= 0);
+        assert(ifr);
+        assert(ret);
+
         ifr->ifr_data = (void *) &ecmd;
 
         r = ioctl(fd, SIOCETHTOOL, ifr);
@@ -699,7 +740,7 @@ static int get_gset(int fd, struct ifreq *ifr, struct ethtool_link_usettings **u
                 .link_modes.lp_advertising[0] = ecmd.lp_advertising,
         };
 
-        *u = e;
+        *ret = e;
 
         return 0;
 }
@@ -712,6 +753,10 @@ static int set_slinksettings(int fd, struct ifreq *ifr, const struct ethtool_lin
         unsigned offset;
         int r;
 
+        assert(fd >= 0);
+        assert(ifr);
+        assert(u);
+
         if (u->base.cmd != ETHTOOL_GLINKSETTINGS || u->base.link_mode_masks_nwords <= 0)
                 return -EINVAL;
 
@@ -741,6 +786,10 @@ static int set_sset(int fd, struct ifreq *ifr, const struct ethtool_link_usettin
         };
         int r;
 
+        assert(fd >= 0);
+        assert(ifr);
+        assert(u);
+
         if (u->base.cmd != ETHTOOL_GSET || u->base.link_mode_masks_nwords <= 0)
                 return -EINVAL;
 
@@ -781,10 +830,13 @@ int ethtool_set_glinksettings(
                 uint64_t speed,
                 Duplex duplex,
                 NetDevPort port) {
+
         _cleanup_free_ struct ethtool_link_usettings *u = NULL;
         struct ifreq ifr = {};
         int r;
 
+        assert(fd);
+        assert(ifname);
         assert(advertise);
 
         if (autonegotiation != AUTONEG_DISABLE && memeqzero(advertise, sizeof(uint32_t) * N_ADVERTISE)) {
@@ -838,15 +890,18 @@ int ethtool_set_glinksettings(
 
 int ethtool_set_channels(int *fd, const char *ifname, const netdev_channels *channels) {
         struct ethtool_channels ecmd = {
-                .cmd = ETHTOOL_GCHANNELS
+                .cmd = ETHTOOL_GCHANNELS,
         };
         struct ifreq ifr = {
-                .ifr_data = (void*) &ecmd
+                .ifr_data = (void*) &ecmd,
         };
-
         bool need_update = false;
         int r;
 
+        assert(fd);
+        assert(ifname);
+        assert(channels);
+
         if (*fd < 0) {
                 r = ethtool_connect_or_warn(fd, true);
                 if (r < 0)
@@ -892,15 +947,17 @@ int ethtool_set_channels(int *fd, const char *ifname, const netdev_channels *cha
 
 int ethtool_set_flow_control(int *fd, const char *ifname, int rx, int tx, int autoneg) {
         struct ethtool_pauseparam ecmd = {
-                .cmd = ETHTOOL_GPAUSEPARAM
+                .cmd = ETHTOOL_GPAUSEPARAM,
         };
         struct ifreq ifr = {
-                .ifr_data = (void*) &ecmd
+                .ifr_data = (void*) &ecmd,
         };
-
         bool need_update = false;
         int r;
 
+        assert(fd);
+        assert(ifname);
+
         if (*fd < 0) {
                 r = ethtool_connect_or_warn(fd, true);
                 if (r < 0)
index 9e3f1ed51ae106a1c77d5ac1826972e4f6091a12..f94b3e15bf889cf4d7cbb7ae5f3cd7430b443562 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <macro.h>
index 8fb936dcce45ac3effd6f7cadd13040a15410c11..61ee3b18d5401bcbfb5c4b6257b009711c57791a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <dirent.h>
 #include <errno.h>
index 9fe9012516cbb752e18123dbc5b7222cf14358f1..a69d57c7aedbde8ee3943b0d78caebccefd13578 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index e2b6c679535f1e3e02362d4b0af65dd384a74878..b71dd7afd52d7e648b594f2c1e5ce4dcdd95b2f5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <signal.h>
 #include <stdlib.h>
index 7ac99a481083b9caaedebc6addb6e4255a708dac..05707bf722dd32f9530b331c338d1883b2dd0ab5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index dfe8242fc4cda35a549cb1ebc8e32d4c0d9bd5c5..679e4aad2262e719f4c8dda83932bb3a36788f34 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index ceabb82311ecb4bf71b244b749cb3a70e123ad33..39d15ee4aaf076b14312221a054deb8b90d535ba 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 49ab29720b1a33cee7ea349ef5d506e22ba4d4fe..d03b0548ec9265df6dfbfa999c4049e88876a943 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/stat.h>
 
index 8f88955d8102b7ea8d5ae637f1b058044696dbbc..03b4a164174b546a7b8812a13157500997122df5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdio.h>
index 4d4d615bb7890303b9579c96e19d65e041bc1810..007d2cb39b44751f626f8c408268649ab2385160 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 /* Temporary work-around for broken glibc vs. linux kernel header definitions
  * This is already fixed upstream, remove this when distributions have updated.
index 4fc71dade2d499c0cb977e6d277ce0ecd83b6e7b..0a51a3c692b0d4ec94fdcdd42bd36265438561bd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 1063baba5269501273e7bdb18cd41bf6372c5137..a13a198b7a780f0b9b4164704cf7c47dad6036b8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <ctype.h>
 #include <net/if.h>
index 0d7b7c48c5fba6feb604a3e2eb5bc2f6859f2915..965549b60a4def2da03ab42af4208fdf158e0a2e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 78ec18dd0737b495a84f3e70b632191c4904e104..855137c99adba75697db7ab3e240dd6b9a07de5a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /* exit codes as defined in fsck(8) */
index ca88813602304e316e8d1c37fb1eb74ff094154b..292b97cd6929b506ecef5f30e5ceeb80cc0a3dba 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index a73575e95c88b095873f4461de3dab4f4560329d..1a602cb56b292fb22945c72dce6e5dadfbcfee77 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index d61b367d33709187338a3e54f377b40a6fb3393a..4d49b7d52b7745ebd85043914654a1d112115177 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <unistd.h>
index 579e291fe8ab3d070a6bc3bce15b0f5f2a33fb93..ff6072f53d8f4b376bc0ba9abeecae2df86a5259 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdio.h>
index fad01e208bedddf393db19ae3d5dfb1eeba9e9a6..36ef9c83c7f2bfa2cbe8761776e04f06f5604f7c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "geneve-util.h"
 #include "string-table.h"
index 63c03ae02abf1263518c58d5704dfeb6f871c47a..3865f805a433b5a88322e1ab71621dfa3dec62d1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/if_link.h>
index 53a3f4bfe62b3670458464da3d529cb39778af51..ebcaa9d70f4a090b1ff61fdd46392ac88db1e940 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "gpt.h"
 #include "string-util.h"
index b162eb9d0dc067950913d21116621950aced56b8..94752ea128a5a9c7ece53d37c55c8c69f587aae5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <endian.h>
index d999ff95f821fa4d4f51af4ac5a58c2f4dc3f0a8..da3ed0a8503b6d57ffd875ca6a664b19f5dbd793 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "group-record.h"
 #include "strv.h"
index 85c91eb1f58e50b979f178491574d74f72809981..f81020437c9047857a5e2b432283ef9910f77deb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "json.h"
index 6237424e8243aec252eb4f33e973b22e32b6e08c..f232767adf529aa02aa4bfb89322ea80232783b6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index 247558231c9a26c1eaeb382d0df03236817ebb65..d69cb9b5514431a437a0b9dde3d6747d75dbdbaa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #pragma once
 
index 75d815df38d1718c2a6c720c79f75f10e473bbe1..83c4b3c530f85eaaff129d95231d536c164aaf11 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_LIBIDN2
 #  include <idn2.h>
index d958559ec93bee26ec85355efeeb205a1aa1b527..4698eed3b8003ca4e0fe16ab8a013874796f70c1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #if HAVE_LIBIDN2
index 0d4ce3cafcb9b7c6bc75bbdd54386b86d66c760e..e37c9ad2262cd2348fb2ad421e2ad1d133d5cbfc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index 8f20741c33e32942b2bb481ce1345a584fc32d3e..922db786e6820b17b766c6eda2573385309aedc2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 0a57c0899090fd6d1ada682e95a48e2b329e43c1..298c066dffd857c9a1a77150346469a37228c7dd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index d85aa565cc1e5bd089f28a158b22eaf9507c187f..8d017f61d1efcd3bf827316935a26f99c8a75f2c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 1d7ff81df1f2131c6929016249fd75a50939b3d5..1bf5b8edd7f04445802614223e402ef96e7cfd6c 100644 (file)
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: LGPL-2+ */
 /*
  * initreq.h   Interface to talk to init through /dev/initctl.
  *
index 9267d52b96e993f0a9501808a35a3fbf58ec07db..af350a63a5c763e694c9fd89f3930f4154b1e5cb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index fa8ea7ef81daa92946faf51601f84e934202019c..34e129413e5706757d5e6d50256bfe8eb5bea471 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "install.h"
index cd14b2c4beb40dca02b830b503e5d1110f0609c9..302497a965b1271f8c10434ab9a7ea1e4f89691c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 23ac9953328ff523918dba3f0c2be9e1b49dbf7f..84bf1f59d228b8c38fed343e4c034cfe69a41d7e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef enum UnitFilePresetMode UnitFilePresetMode;
index aa675ea10b25a5cc9cf1476b1952e269243c12fd..0623d5e9be847c7b0e28488879504b6e5933c8e9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <netinet/in.h>
index 5c94969695f7677bb495cd8a7da4336309716cfe..abe3f5fc284621f49fb88a8874125843ec09c296 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 const char *ip_protocol_to_name(int id);
index da6be767892c3c355fabd975a9d2ab2486c26cde..1f2e2ffe7b50603cb58d5e94f8b4ba5ade671fd1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/if.h>
 
index dda659d42ddeac5eebb12998775a9a60d71e33da..90f755b4724724e27af9d2210c8f7939fbe159a9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <netinet/in.h>
index 7c4fc7021dece6a8401bece2a3c1b30603553acc..e95b638f4db45a1e2412a203c9f77063730fe0b5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <unistd.h>
index 783edff5d3235900132f0f4c451c55526c149d61..e0073fcea822e33a8c10524ba183f2307ab37075 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #pragma once
 
index 4d0edbb7d0258b4839c65e8128211b07ae814936..29659aa6b75d709ff353f341d3b8063dd009df3b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "acl-util.h"
 #include "fs-util.h"
index 34ad1bfc8e6dafd7504c6ad7695dfe494f9bbf6f..db7000ffefee6414c7b2b8dd7073876d0790a7bc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index fabff0c860e4e7216428be4b5f1e56c45195b05a..63afd22417e11bfea95ab34e96ea9cbb1dbb6a33 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #pragma once
 
index 1d2cbc8aed980f4431b70bfac3388c99f07df1c0..ddf6dcb6637381a119913ea561049cdf973321b6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <locale.h>
@@ -3195,7 +3195,7 @@ int json_parse_file_at(FILE *f, int dir_fd, const char *path, JsonParseFlags fla
         if (f)
                 r = read_full_stream(f, &text, NULL);
         else if (path)
-                r = read_full_file_full(dir_fd, path, 0, &text, NULL);
+                r = read_full_file_full(dir_fd, path, 0, NULL, &text, NULL);
         else
                 return -EINVAL;
         if (r < 0)
index 1d6fec67b69a36400e504fcc4b8f3e2b2e639e81..0809f3187e38f5e6202fc82d41382b1767f78859 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <fcntl.h>
index 8a46ace205a921c279df611e92c03172581511ea..5b315413aab430a491ae327d32dbff5fa9ea9b33 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_CRYPT_H
 /* libxcrypt is a replacement for glibc's libcrypt, and libcrypt might be
index 924a35d3e1ca3472a1d4326d75f8df95d6791271..5b9b94562938cfed967a43d72940f65d6d0b5db2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 7c3b855df52056e1b1bb15f2dba7ad39b16bb930..db9728c332a86d1a8131974852362d80eba5a040 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdio.h>
index b065c1fe4df5d5d71da9c204e97c0c5bc142c57b..65edfff1ca4bda0112d7e3e7755242e2369ed8fa 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: MIT */
+
 #ifndef __LINUX_NL80211_H
 #define __LINUX_NL80211_H
 /*
index aaad0d9ff04df90d0a127b47c4a40dfc169b9461..7be6b945f2d7165347a1a1f583da0b43d5798324 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-netlink.h"
 
index e88c5e5d2167a4f5cae1dbe88fa40072b1ea4390..c633995dc9a62b7b7c0f5113c9dbed5f7a1e2b6a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-netlink.h"
index 260c2088d58c99d48edd5900312d522daff1a768..6f059abfffa8463a1e9aef6bc59f23a5c068a045 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index e0eef34cdc6d0680cee93f2cd804e14515a01391..36063270dd2f3230268a4521dc97ec5915f7065e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef struct LockFile {
index b844f9ef81262ea4be9310737e1aed0f178ed573..bb692e05184cc29d4a464ea7845f0b555da032c7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "log.h"
index f7d3e01b49384cbd57f507f5d8e580e90b333e65..0bcc8f41c91528e7dac1cb3560f7502f8df0496f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 345efa4b2bbd091697d7bda97328ed5d5e008f4d..71ebe13573740a05b92aba2d527d60436d1f5a32 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 4843cbcaabc40467ce3d4924e2c8d0f5b6b9e7dd..62d5b7ae8e19c3b0eea420c651139c01e8d87485 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_VALGRIND_MEMCHECK_H
 #include <valgrind/memcheck.h>
 #include <sys/ioctl.h>
 #include <unistd.h>
 
+#include "sd-device.h"
+
 #include "alloc-util.h"
 #include "blockdev-util.h"
+#include "device-util.h"
 #include "errno-util.h"
 #include "fd-util.h"
 #include "fileio.h"
 #include "loop-util.h"
 #include "missing_loop.h"
 #include "parse-util.h"
+#include "random-util.h"
 #include "stat-util.h"
 #include "stdio-util.h"
 #include "string-util.h"
+#include "tmpfile-util.h"
 
 static void cleanup_clear_loop_close(int *fd) {
         if (*fd < 0)
@@ -33,66 +38,221 @@ static void cleanup_clear_loop_close(int *fd) {
         (void) safe_close(*fd);
 }
 
-static int loop_configure(int fd, const struct loop_config *c) {
+static int loop_is_bound(int fd) {
+        struct loop_info64 info;
+
+        assert(fd >= 0);
+
+        if (ioctl(fd, LOOP_GET_STATUS64, &info) < 0) {
+                if (errno == ENXIO)
+                        return false; /* not bound! */
+
+                return -errno;
+        }
+
+        return true; /* bound! */
+}
+
+static int device_has_block_children(sd_device *d) {
+        _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
+        const char *main_sn, *main_ss;
+        sd_device *q;
+        int r;
+
+        assert(d);
+
+        /* Checks if the specified device currently has block device children (i.e. partition block
+         * devices). */
+
+        r = sd_device_get_sysname(d, &main_sn);
+        if (r < 0)
+                return r;
+
+        r = sd_device_get_subsystem(d, &main_ss);
+        if (r < 0)
+                return r;
+
+        if (!streq(main_ss, "block"))
+                return -EINVAL;
+
+        r = sd_device_enumerator_new(&e);
+        if (r < 0)
+                return r;
+
+        r = sd_device_enumerator_allow_uninitialized(e);
+        if (r < 0)
+                return r;
+
+        r = sd_device_enumerator_add_match_parent(e, d);
+        if (r < 0)
+                return r;
+
+        FOREACH_DEVICE(e, q) {
+                const char *ss, *sn;
+
+                r = sd_device_get_subsystem(q, &ss);
+                if (r < 0)
+                        continue;
+
+                if (!streq(ss, "block"))
+                        continue;
+
+                r = sd_device_get_sysname(q, &sn);
+                if (r < 0)
+                        continue;
+
+                if (streq(sn, main_sn))
+                        continue;
+
+                return 1; /* we have block device children */
+        }
+
+        return 0;
+}
+
+static int loop_configure(
+                int fd,
+                int nr,
+                const struct loop_config *c,
+                bool *try_loop_configure) {
+
+        _cleanup_(sd_device_unrefp) sd_device *d = NULL;
+        _cleanup_free_ char *sysname = NULL;
+        _cleanup_close_ int lock_fd = -1;
         int r;
 
         assert(fd >= 0);
+        assert(nr >= 0);
         assert(c);
+        assert(try_loop_configure);
 
-        if (ioctl(fd, LOOP_CONFIGURE, c) < 0) {
-                /* Do fallback only if LOOP_CONFIGURE is not supported, propagate all other errors. Note that
-                 * the kernel is weird: non-existing ioctls currently return EINVAL rather than ENOTTY on
-                 * loopback block devices. They should fix that in the kernel, but in the meantime we accept
-                 * both here. */
-                if (!ERRNO_IS_NOT_SUPPORTED(errno) && errno != EINVAL)
-                        return -errno;
-        } else {
-                bool good = true;
+        if (asprintf(&sysname, "loop%i", nr) < 0)
+                return -ENOMEM;
 
-                if (c->info.lo_sizelimit != 0) {
-                        /* Kernel 5.8 vanilla doesn't properly propagate the size limit into the block
-                         * device. If it's used, let's immediately check if it had the desired effect
-                         * hence. And if not use classic LOOP_SET_STATUS64. */
-                        uint64_t z;
+        r = sd_device_new_from_subsystem_sysname(&d, "block", sysname);
+        if (r < 0)
+                return r;
 
-                        if (ioctl(fd, BLKGETSIZE64, &z) < 0) {
-                                r = -errno;
-                                goto fail;
-                        }
+        /* Let's lock the device before we do anything. We take the BSD lock on a second, separately opened
+         * fd for the device. udev after all watches for close() events (specifically IN_CLOSE_WRITE) on
+         * block devices to reprobe them, hence by having a separate fd we will later close() we can ensure
+         * we trigger udev after everything is done. If we'd lock our own fd instead and keep it open for a
+         * long time udev would possibly never run on it again, even though the fd is unlocked, simply
+         * because we never close() it. It also has the nice benefit we can use the _cleanup_close_ logic to
+         * automatically release the lock, after we are done. */
+        lock_fd = fd_reopen(fd, O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY);
+        if (lock_fd < 0)
+                return lock_fd;
+        if (flock(lock_fd, LOCK_EX) < 0)
+                return -errno;
+
+        /* Let's see if the device is really detached, i.e. currently has no associated partition block
+         * devices. On various kernels (such as 5.8) it is possible to have a loopback block device that
+         * superficially is detached but still has partition block devices associated for it. They only go
+         * away when the device is reattached. (Yes, LOOP_CLR_FD doesn't work then, because officially
+         * nothing is attached and LOOP_CTL_REMOVE doesn't either, since it doesn't care about partition
+         * block devices. */
+        r = device_has_block_children(d);
+        if (r < 0)
+                return r;
+        if (r > 0) {
+                r = loop_is_bound(fd);
+                if (r < 0)
+                        return r;
+                if (r > 0)
+                        return -EBUSY;
+
+                return -EUCLEAN; /* Bound but children? Tell caller to reattach something so that the
+                                  * partition block devices are gone too. */
+        }
 
-                        if (z != c->info.lo_sizelimit) {
-                                log_debug("LOOP_CONFIGURE is broken, doesn't honour .lo_sizelimit. Falling back to LOOP_SET_STATUS64.");
-                                good = false;
+        if (*try_loop_configure) {
+                if (ioctl(fd, LOOP_CONFIGURE, c) < 0) {
+                        /* Do fallback only if LOOP_CONFIGURE is not supported, propagate all other
+                         * errors. Note that the kernel is weird: non-existing ioctls currently return EINVAL
+                         * rather than ENOTTY on loopback block devices. They should fix that in the kernel,
+                         * but in the meantime we accept both here. */
+                        if (!ERRNO_IS_NOT_SUPPORTED(errno) && errno != EINVAL)
+                                return -errno;
+
+                        *try_loop_configure = false;
+                } else {
+                        bool good = true;
+
+                        if (c->info.lo_sizelimit != 0) {
+                                /* Kernel 5.8 vanilla doesn't properly propagate the size limit into the
+                                 * block device. If it's used, let's immediately check if it had the desired
+                                 * effect hence. And if not use classic LOOP_SET_STATUS64. */
+                                uint64_t z;
+
+                                if (ioctl(fd, BLKGETSIZE64, &z) < 0) {
+                                        r = -errno;
+                                        goto fail;
+                                }
+
+                                if (z != c->info.lo_sizelimit) {
+                                        log_debug("LOOP_CONFIGURE is broken, doesn't honour .lo_sizelimit. Falling back to LOOP_SET_STATUS64.");
+                                        good = false;
+                                }
                         }
-                }
 
-                if (FLAGS_SET(c->info.lo_flags, LO_FLAGS_PARTSCAN)) {
-                        /* Kernel 5.8 vanilla doesn't properly propagate the partition scanning flag into the
-                         * block device. Let's hence verify if things work correctly here before
-                         * returning. */
+                        if (FLAGS_SET(c->info.lo_flags, LO_FLAGS_PARTSCAN)) {
+                                /* Kernel 5.8 vanilla doesn't properly propagate the partition scanning flag
+                                 * into the block device. Let's hence verify if things work correctly here
+                                 * before returning. */
+
+                                r = blockdev_partscan_enabled(fd);
+                                if (r < 0)
+                                        goto fail;
+                                if (r == 0) {
+                                        log_debug("LOOP_CONFIGURE is broken, doesn't honour LO_FLAGS_PARTSCAN. Falling back to LOOP_SET_STATUS64.");
+                                        good = false;
+                                }
+                        }
 
-                        r = blockdev_partscan_enabled(fd);
-                        if (r < 0)
+                        if (!good) {
+                                /* LOOP_CONFIGURE doesn't work. Remember that. */
+                                *try_loop_configure = false;
+
+                                /* We return EBUSY here instead of retrying immediately with LOOP_SET_FD,
+                                 * because LOOP_CLR_FD is async: if the operation cannot be executed right
+                                 * away it just sets the autoclear flag on the device. This means there's a
+                                 * good chance we cannot actually reuse the loopback device right-away. Hence
+                                 * let's assume it's busy, avoid the trouble and let the calling loop call us
+                                 * again with a new, likely unused device. */
+                                r = -EBUSY;
                                 goto fail;
-                        if (r == 0) {
-                                log_debug("LOOP_CONFIGURE is broken, doesn't honour LO_FLAGS_PARTSCAN. Falling back to LOOP_SET_STATUS64.");
-                                good = false;
                         }
-                }
 
-                if (good)
                         return 0;
-
-                /* Otherwise, undo the attachment and use the old APIs */
-                (void) ioctl(fd, LOOP_CLR_FD);
+                }
         }
 
+        /* Since kernel commit 5db470e229e22b7eda6e23b5566e532c96fb5bc3 (kernel v5.0) the LOOP_SET_STATUS64
+         * ioctl can return EAGAIN in case we change the lo_offset field, if someone else is accessing the
+         * block device while we try to reconfigure it. This is a pretty common case, since udev might
+         * instantly start probing the device as soon as we attach an fd to it. Hence handle it in two ways:
+         * first, let's take the BSD lock that that ensures that udev will not step in between the point in
+         * time where we attach the fd and where we reconfigure the device. Secondly, let's wait 50ms on
+         * EAGAIN and retry. The former should be an efficient mechanism to avoid we have to wait 50ms
+         * needlessly if we are just racing against udev. The latter is protection against all other cases,
+         * i.e. peers that do not take the BSD lock. */
+
         if (ioctl(fd, LOOP_SET_FD, c->fd) < 0)
                 return -errno;
 
-        if (ioctl(fd, LOOP_SET_STATUS64, &c->info) < 0) {
-                r = -errno;
-                goto fail;
+        for (unsigned n_attempts = 0;;) {
+                if (ioctl(fd, LOOP_SET_STATUS64, &c->info) >= 0)
+                        break;
+                if (errno != EAGAIN || ++n_attempts >= 64) {
+                        r = log_debug_errno(errno, "Failed to configure loopback device: %m");
+                        goto fail;
+                }
+
+                /* Sleep some random time, but at least 10ms, at most 250ms. Increase the delay the more
+                 * failed attempts we see */
+                (void) usleep(UINT64_C(10) * USEC_PER_MSEC +
+                              random_u64() % (UINT64_C(240) * USEC_PER_MSEC * n_attempts/64));
         }
 
         return 0;
@@ -102,6 +262,44 @@ fail:
         return r;
 }
 
+static int attach_empty_file(int loop, int nr) {
+        _cleanup_close_ int fd = -1;
+
+        /* So here's the thing: on various kernels (5.8 at least) loop block devices might enter a state
+         * where they are detached but nonetheless have partitions, when used heavily. Accessing these
+         * partitions results in immediatey IO errors. There's no pretty way to get rid of them
+         * again. Neither LOOP_CLR_FD nor LOOP_CTL_REMOVE suffice (see above). What does work is to
+         * reassociate them with a new fd however. This is what we do here hence: we associate the devices
+         * with an empty file (i.e. an image that definitely has no partitions). We then immediately clear it
+         * again. This suffices to make the partitions go away. Ugly but appears to work. */
+
+        log_debug("Found unattached loopback block device /dev/loop%i with partitions. Attaching empty file to remove them.", nr);
+
+        fd = open_tmpfile_unlinkable(NULL, O_RDONLY);
+        if (fd < 0)
+                return fd;
+
+        if (flock(loop, LOCK_EX) < 0)
+                return -errno;
+
+        if (ioctl(loop, LOOP_SET_FD, fd) < 0)
+                return -errno;
+
+        if (ioctl(loop, LOOP_SET_STATUS64, &(struct loop_info64) {
+                                .lo_flags = LO_FLAGS_READ_ONLY|
+                                            LO_FLAGS_AUTOCLEAR|
+                                            LO_FLAGS_PARTSCAN, /* enable partscan, so that the partitions really go away */
+                        }) < 0)
+                return -errno;
+
+        if (ioctl(loop, LOOP_CLR_FD) < 0)
+                return -errno;
+
+        /* The caller is expected to immediately close the loopback device after this, so that the BSD lock
+         * is released, and udev sees the changes. */
+        return 0;
+}
+
 int loop_device_make(
                 int fd,
                 int open_flags,
@@ -111,6 +309,7 @@ int loop_device_make(
                 LoopDevice **ret) {
 
         _cleanup_free_ char *loopdev = NULL;
+        bool try_loop_configure = true;
         struct loop_config config;
         LoopDevice *d = NULL;
         struct stat st;
@@ -201,12 +400,17 @@ int loop_device_make(
                         if (!IN_SET(errno, ENOENT, ENXIO))
                                 return -errno;
                 } else {
-                        r = loop_configure(loop, &config);
+                        r = loop_configure(loop, nr, &config, &try_loop_configure);
                         if (r >= 0) {
                                 loop_with_fd = TAKE_FD(loop);
                                 break;
                         }
-                        if (r != -EBUSY)
+                        if (r == -EUCLEAN) {
+                                /* Make left-over partition disappear hack (see above) */
+                                r = attach_empty_file(loop, nr);
+                                if (r < 0 && r != -EBUSY)
+                                        return r;
+                        } else if (r != -EBUSY)
                                 return r;
                 }
 
@@ -214,6 +418,11 @@ int loop_device_make(
                         return -EBUSY;
 
                 loopdev = mfree(loopdev);
+
+                /* Wait some random time, to make collision less likely. Let's pick a random time in the
+                 * range 0ms…250ms, linearly scaled by the number of failed attempts. */
+                (void) usleep(random_u64() % (UINT64_C(10) * USEC_PER_MSEC +
+                                              UINT64_C(240) * USEC_PER_MSEC * n_attempts/64));
         }
 
         d = new(LoopDevice, 1);
index 16f215b059ab3fd68231b1321aaf841ebb0abc24..9538daea3116cc48cdf6e58df94e654303657fd9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "macro.h"
index 71d6a2c80bc3b5de37a03790120bc8b2403fb8b6..671a56b9e990f1f80332d7358c173b3eab04ce51 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 9fd45899c80d3a5e160ca4a2a4ee04481ba3900b..95a8f5cfbd4818739f0371fc836cf60dcf1b7029 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 7e3312835d71961fbce73b1a5a587371641df6aa..1f0b0b47303e16f084ae08395ca9eb25c05f3b71 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 6f59a18fb69855d123397ffe8012d11ebfe34155..3f528ab060e2b29374bea3e3efbede103d140efb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdint.h>
index 926b4d42a02996ef93a207a6610904a04fa4adf2..11dffe99b2a2b6919a6b13dc352c92c6ee6d50b6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "conf-parser.h"
 #include "macvlan-util.h"
index 7670bbf4020e775ea0ff325573a78621728a1026..0d3a5f40506fc068ad70176d66331322a1bb6438 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/if_link.h>
index cf23ad450c5ceb49b66fa9efd14604e77f4483b6..05cdffeec00da3073368e5e03e688cdae303239a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdlib.h>
index 0ed216f1aaa2358cd0008d1a3627771daef961c3..f30fe4499506511570f702120c85a4678063706c 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 shared_sources = files('''
         acl-util.h
@@ -195,6 +195,8 @@ shared_sources = files('''
         ptyfwd.h
         pwquality-util.c
         pwquality-util.h
+        qrcode-util.c
+        qrcode-util.h
         reboot-util.c
         reboot-util.h
         resize-fs.c
@@ -304,13 +306,6 @@ if conf.get('HAVE_PAM') == 1
 '''.split())
 endif
 
-if conf.get('HAVE_QRENCODE') == 1
-        shared_sources += files('''
-        qrcode-util.c
-        qrcode-util.h
-'''.split())
-endif
-
 generate_ip_protocol_list = find_program('generate-ip-protocol-list.sh')
 ip_protocol_list_txt = custom_target(
         'ip-protocol-list.txt',
index 6289a7339910a719fc41f1c557e575bf10e908b5..ce10e60bb6b9f24d106ce42451adaf5c0bff8467 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "id128-util.h"
 #include "mkfs-util.h"
index 54e9b931e68bf49038bba50b0ed4496724986c81..7647afbfc70f1eba696364c154f1931d394ddaba 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index e1d394c0e1bc53538e30f39e67f8bef2cfca6737..587e6369fb89f8b2f08ede3ec20e86d1ee627126 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index c386c5b459219550391b34a54ce80390e035c36a..4db8c5f04ed6bf1ade57ba128180a938db8954aa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <libkmod.h>
index 83ce749d12782545d43a85dbb3c54c8db3191b5b..b19b3849aaa68b6cf378a067d12b202c197eb723 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdlib.h>
index ba5d6280d2d628232f506f847f15802f214f29f5..6202008a81db0c90bbed2a4f3def7ea89f79bbbd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <mntent.h>
@@ -89,10 +89,11 @@ int mount_option_mangle(
 int mode_to_inaccessible_node(const char *runtime_dir, mode_t mode, char **dest);
 
 /* Useful for usage with _cleanup_(), unmounts, removes a directory and frees the pointer */
-static inline void umount_and_rmdir_and_free(char *p) {
+static inline char* umount_and_rmdir_and_free(char *p) {
         PROTECT_ERRNO;
         (void) umount_recursive(p, 0);
         (void) rmdir(p);
         free(p);
+        return NULL;
 }
 DEFINE_TRIVIAL_CLEANUP_FUNC(char*, umount_and_rmdir_and_free);
index 0a701b0e92218ed313141e2d6e8ca9a1ae50333a..df520ab89ed31ec015026eb4f4fcf73da08d9736 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "netif-naming-scheme.h"
index db47d2909ea28a0b454315b23dcfd1eb57079322..503a74ea33eb9abeb772158fee6f15d09a9a2db0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 10fdbaf326d06f24bd80e89a024efd1a6f34a270..dfc47c423441a1aea646cac6c7c9fcd2f12141da 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #include <sys/poll.h>
 
 #include "fd-util.h"
index 22774bf4b74e24cb854f1f2a113f1cdf94b7b9fb..5aafa9a24e90fda02e90fde8b8ad78582e1e688b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int nscd_flush_cache(char **databases);
index 4dbd18b86833639437f40332045e575525eeaae9..2845041cf49c056d4b93c1883eacf6580b64a4d3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 0aeb0bc89143921538323d86eb12bf74efc718e6..3d774c755ca4bb08de058a9c4c95e98334824421 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "missing_sched.h"
index 3ec8ffc5b267f1d38480808b34274d612b835728..7e41d686628467676da0f14cd25a0be1eff1082c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sched.h>
index 2a9ced74e8d40aecca1988222f4245d8ab9a886c..2f736c9c350fd8a283b638c4d2ca0b4f5cf1ec37 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "cpu-set-util.h"
index 2d14a38dfeb38b3e0ef8fd40803d2fb8255e402f..b607aacf576c71ab186877ea0f6f57ffc0b315cd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "fd-util.h"
 #include "fs-util.h"
index 90bdfc79be06b0deaee1035baa45046cc788e69c..587af7b01cd217a5409bd124d2b30e8899b47fd3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/types.h>
index a7dab530e4c83349a3e86ebb3ffd735e322857e9..1b49834dd8b2d4b33428d0b9f8dfd29b3bf96e92 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #if HAVE_OPENSSL
index 042e77c8c7f758ec605a7bbf60ac419f7bff5fbd..3b7e4958464c0e380803eeb58e3ed7f72a760887 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "env-file.h"
index b54bb0916dbf3e5e038c1c1723c7d8509ab1c0b0..1d9b0b146b3a22f9718072d115cbac3313a2c738 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdio.h>
index 107b345538cf7e230f63427f9eec9a7d4ad4239f..1645b756df930f007fd888de190be7848fbea6df 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "output-mode.h"
 #include "string-table.h"
index 1b4765b3ec10e41faa2a0fafc55acc1151beb9c3..a879054b67618957cf51558046f450b042dcda98 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "json.h"
index 9af7009b3f3aa7823558496b64ebbe5be816eb11..cd8a840e578d1ebbcdd96dcbf149e7c6926abda6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stddef.h>
index 8299e23856591dc090295596c41ecbba2cf97d19..b3b1b4f6b0720ee6c811227bc050e967a0ac33ea 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index f000798ce0683825b8dc2dad25d753e9f1f9d416..621e7fe802e3440cb6b6545f2cde7df4b00a1851 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #include <security/pam_ext.h>
 #include <syslog.h>
 #include <stdlib.h>
index 26d07b7f0cbedb02e252200ef03ade6b5ddb6585..41f1835b3c712fd9f161eb3948ce4209b09df67c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <security/pam_modules.h>
index a3629175239e26744ab811570d149dfd7c1512f4..54433c79b851f4863d649bdc3472645b95089ed6 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #pragma once
 
 #include <inttypes.h>
index 400cebb66fc953c51e7f037996d6d28ab5f9c05e..e74f0be26062713040a697b0a2886b7f40cee3aa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 
index 959e7c3e0d9c90f63760ab1898aae978beb81dcc..f14607de8406b84fa1b8b786936456891f2e4e72 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index f690f334a2afe6d0914abe1b7b7e4bb4107e3c9f..ca5b25a7abf0bbb600eb90c87b1061f3623b4e0a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/utsname.h>
 #include <errno.h>
index b3057ae6b8868fb5f98c6177f32d93bc0c5f69d1..4619f4e4d7fe97e52a0afc09e395922afd42c09e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 void print_separator(void);
index 21e965b04bc575bed6e05af316e35c5f9abcddfb..7a184d53f7b0ce544e14227757adff59e3bae32d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 #include <unistd.h>
index 9810dbec6e10a3c99b36360dff1f697c00aea158..415fbbdd47cc385e8e62b8ad4a01e2ea10429f35 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 6bcdfff41a730c33f6b345d662135bf3b98d3ce7..754b4f5a94f92d3395601f4f95b302ba7cd7ea48 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 887d3cba53a0b651429b8f04941203dae9e3dffd..f0ae6e949d04b76d8b5f83c73e94d73b67ecad9f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 67332833a5fa34ec5ba9de934b2df5855042a2c7..4000bef89e7a90cfb3755bdf1c193ce034ccfba9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index a49de07990741ebdc23bdd3c2ab5daa0133b123f..de288bb017c4361e3a1696278a728d96ce8c3bdd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "macro.h"
index a545daaef3fe4af8eead1002515532da6a3f4e6e..7050e186b75aa3e65d64f5498883a3dc58ede0cc 100644 (file)
@@ -1,25 +1,29 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #include "qrcode-util.h"
+
+#if HAVE_QRENCODE
+#include <qrencode.h>
+
+#include "dlfcn-util.h"
+#include "locale-util.h"
 #include "terminal-util.h"
 
 #define ANSI_WHITE_ON_BLACK "\033[40;37;1m"
 
 static void print_border(FILE *output, unsigned width) {
-        unsigned x, y;
-
         /* Four rows of border */
-        for (y = 0; y < 4; y += 2) {
+        for (unsigned y = 0; y < 4; y += 2) {
                 fputs(ANSI_WHITE_ON_BLACK, output);
 
-                for (x = 0; x < 4 + width + 4; x++)
+                for (unsigned x = 0; x < 4 + width + 4; x++)
                         fputs("\342\226\210", output);
 
                 fputs(ANSI_NORMAL "\n", output);
         }
 }
 
-void write_qrcode(FILE *output, QRcode *qr) {
-        unsigned x, y;
-
+static void write_qrcode(FILE *output, QRcode *qr) {
         assert(qr);
 
         if (!output)
@@ -27,17 +31,15 @@ void write_qrcode(FILE *output, QRcode *qr) {
 
         print_border(output, qr->width);
 
-        for (y = 0; y < (unsigned) qr->width; y += 2) {
-                const uint8_t *row1, *row2;
-
-                row1 = qr->data + qr->width * y;
-                row2 = row1 + qr->width;
+        for (unsigned y = 0; y < (unsigned) qr->width; y += 2) {
+                const uint8_t *row1 = qr->data + qr->width * y;
+                const uint8_t *row2 = row1 + qr->width;
 
                 fputs(ANSI_WHITE_ON_BLACK, output);
-                for (x = 0; x < 4; x++)
+                for (unsigned x = 0; x < 4; x++)
                         fputs("\342\226\210", output);
 
-                for (x = 0; x < (unsigned) qr->width; x ++) {
+                for (unsigned x = 0; x < (unsigned) qr->width; x++) {
                         bool a, b;
 
                         a = row1[x] & 1;
@@ -53,7 +55,7 @@ void write_qrcode(FILE *output, QRcode *qr) {
                                 fputs("\342\226\210", output);
                 }
 
-                for (x = 0; x < 4; x++)
+                for (unsigned x = 0; x < 4; x++)
                         fputs("\342\226\210", output);
                 fputs(ANSI_NORMAL "\n", output);
         }
@@ -61,3 +63,45 @@ void write_qrcode(FILE *output, QRcode *qr) {
         print_border(output, qr->width);
         fflush(output);
 }
+
+int print_qrcode(FILE *out, const char *header, const char *string) {
+        QRcode* (*sym_QRcode_encodeString)(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive);
+        void (*sym_QRcode_free)(QRcode *qrcode);
+        _cleanup_(dlclosep) void *dl = NULL;
+        QRcode* qr;
+        int r;
+
+        /* If this is not an UTF-8 system or ANSI colors aren't supported/disabled don't print any QR
+         * codes */
+        if (!is_locale_utf8() || !colors_enabled())
+                return -EOPNOTSUPP;
+
+        dl = dlopen("libqrencode.so.4", RTLD_LAZY);
+        if (!dl)
+                return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
+                                       "QRCODE support is not installed: %s", dlerror());
+
+        r = dlsym_many_and_warn(
+                        dl,
+                        LOG_DEBUG,
+                        &sym_QRcode_encodeString, "QRcode_encodeString",
+                        &sym_QRcode_free, "QRcode_free",
+                        NULL);
+        if (r < 0)
+                return r;
+
+        qr = sym_QRcode_encodeString(string, 0, QR_ECLEVEL_L, QR_MODE_8, 0);
+        if (!qr)
+                return -ENOMEM;
+
+        if (header)
+                fprintf(out, "\n%s:\n\n", header);
+
+        write_qrcode(out, qr);
+
+        fputc('\n', out);
+
+        sym_QRcode_free(qr);
+        return 0;
+}
+#endif
index 9a21ffd7fe654b0355d73082b89a630795d3219b..6fc45c93d1a1360f50be6064c120f8e2b1daa2d8 100644 (file)
@@ -1,9 +1,13 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
-#pragma once
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
-#if HAVE_QRENCODE
-#include <qrencode.h>
+#pragma once
 #include <stdio.h>
+#include <errno.h>
 
-void write_qrcode(FILE *output, QRcode *qr);
+#if HAVE_QRENCODE
+int print_qrcode(FILE *out, const char *header, const char *string);
+#else
+static inline int print_qrcode(FILE *out, const char *header, const char *string) {
+        return -EOPNOTSUPP;
+}
 #endif
index 888f685aed9ee678fa7f2774fa70265a382ac2a5..756f9d30e0becb51ff9018e957d4c2538134a487 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <unistd.h>
index 1e98ee1dba58557d471cb067acd49b7577197796..bbca8b858d7018bab892006fb9bebece68b40075 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int update_reboot_parameter_and_warn(const char *parameter, bool keep);
index 24a17a2ffef8873aae63155a1ba43c0cd7a1a22f..33cb78babfb83c23fe2692813c04256c52a2a432 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/btrfs.h>
 #include <linux/magic.h>
index 92b41d318c15ea4c974ea83aad0c6525a3581362..8831fd8b409069bb312e8cc53f4539dc3a5b9527 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 615cb6d852f8290e7440684d9df0af7ca2f94919..1023b62499b3f05f5004e66a06175470b515af31 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "conf-parser.h"
 #include "resolve-util.h"
index a7a9c77bdfc83d89c5893e7bbd5d4f788cba141a..4ea24a60b3be84e4b02c04e854148b5210098886 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index 4a541111f96fab5950a18ff254c2653964d5226f..6ca2c5713ddd98487c4c1f961a1a0b015898597d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
@@ -259,10 +259,20 @@ static bool is_seccomp_filter_available(void) {
 bool is_seccomp_available(void) {
         static int cached_enabled = -1;
 
-        if (cached_enabled < 0)
-                cached_enabled =
-                        is_basic_seccomp_available() &&
-                        is_seccomp_filter_available();
+        if (cached_enabled < 0) {
+                int b;
+
+                b = getenv_bool_secure("SYSTEMD_SECCOMP");
+                if (b != 0) {
+                        if (b < 0 && b != -ENXIO) /* ENXIO: env var unset */
+                                log_debug_errno(b, "Failed to parse $SYSTEMD_SECCOMP value, ignoring.");
+
+                        cached_enabled =
+                                is_basic_seccomp_available() &&
+                                is_seccomp_filter_available();
+                } else
+                        cached_enabled = false;
+        }
 
         return cached_enabled;
 }
@@ -383,7 +393,6 @@ const SyscallFilterSet syscall_filter_sets[_SYSCALL_FILTER_SET_MAX] = {
                 "clock_settime\0"
                 "clock_settime64\0"
                 "settimeofday\0"
-                "stime\0"
         },
         [SYSCALL_FILTER_SET_CPU_EMULATION] = {
                 .name = "@cpu-emulation",
@@ -639,6 +648,7 @@ const SyscallFilterSet syscall_filter_sets[_SYSCALL_FILTER_SET_MAX] = {
                 "security\0"
                 "sgetmask\0"
                 "ssetmask\0"
+                "stime\0"
                 "stty\0"
                 "sysfs\0"
                 "tuxcall\0"
index ff3b96df4bb4ab4ef08c517a37f22739e2ed1d0f..610597127e4e4810b0d7a2fcf46d271378e2e982 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <seccomp.h>
index b2abaf4f526f92ef2d23ec456e870e6aa8defdf5..c867807bec7cb85d94d3270443bc54889b48b9f0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index b5ec6ee0e683e54af59fd777800bd8acb3cd38c3..f2e65cfcb09e3eee161e736a546135f8c0aedc3a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "missing_securebits.h"
index 00b70a777ee3a10aca42a701081758a99d32e434..45f57d6a5316ef93a70221b1be46f837880c175d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 
index 9e61c825aa95ebc1feceb4e0bc2cf91d1fea7cdb..6d4f1ef4181bbfe7e13ed349ab242e54e5db5674 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdio.h>
index c9b684fc05ea440f43fbcfca3b02413ab0f57e9d..092be6ee7f620ba062b41ae99a66a280b4992c2c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <stdio.h>
index 928c5961e7a9ec432a826f2eeaf12d3ac5ddb874..360341fb2f4e535a5d09741e28bf8995d72f30a1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "bus-object.h"
index 134cedaf8b65af8671ad79ed9953d2385a53dc57..cea51482deec43476c37f4fc0b913fff59dd9dfa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2018 Dell Inc.
 ***/
index 86dfbf19be00802ae515684c86e09604aef73f95..4b30e6db53c5640af0d463c8ad0c8e9f1a98a72e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <linux/fiemap.h>
index 23970dbe55607ab6d26ce115f079976cd23c5a64..4a7007d06e509d3c7f6a0957b082c133d13e4f8e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <errno.h>
index e6cd7d9bf190aeac8752911d2934911a605e3e94..eac599159db82e49df9411c7cf154a3220980214 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-netlink.h"
index ddaebf0f61ad88eb2391ed819585e15453108728..1f07b198fa151ba898e525efc6ab90853b43741d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <signal.h>
 #include <stdlib.h>
index 97b12fe2685f201b7c646598796ca9dd48babfea..a76cdb11fea3f0df804f7a76f547af1a7e765745 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 4d6c0cae6caf1a8f359b4cc6cdc457f98eb3c1f2..a0024eb2ea00084eeb1f9d09e117be32c9f001c5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <poll.h>
index 56b0175944e5b7607664877e3912558384abf4f1..325dfdde466ec6de5470a594f0e10f3bc5414167 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 112cf6f8fb524dae0a7e10590145604694d92134..86731f8cd235028052705595384cdb7f5c295293 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdbool.h>
index 50c6cbd6ab466644dcf59f58a9f6c92be9a1ec9d..f3c038a1f166577daf623cf22c7a73d50a89fb53 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "string-util.h"
index bd89cb4ef11f4877b82681ba74bc05e1051a4f4b..e0dd17a2f855dc857dced74312c4003fe67a9498 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index f4d48cb431d5d10598777b3eac540cb8773c7084..4e04283e530fa93ee1de4aadca6a4a463837ab73 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 40d18a8894072b74f6457608c238dfd907ec1efe..f1b7e29d507b6eff693f751f70fb21e534ce6489 100644 (file)
@@ -392,6 +392,7 @@ pread64
 preadv
 preadv2
 prlimit64
+process_madvise
 process_vm_readv
 process_vm_writev
 pselect6
index 8543dbd2d05f39b2bc4db7cd5bfa58d249d8dfd4..670c33108b52c0ee904fa897e142af73177b5af6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 316cfcccf9d555d09612cc788a63d8667d3896c2..32364196f97a43c9875667309e961e49542c8e4b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 4eeda3b1bb96e769d75b9037dde228b360011b98..bb8177b6492e9e6de27dbe3d0317f935b6607e9a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 #include <stdlib.h>
index 808e2e6040b0a0539c469aa226b565d3b60e3791..ab7d799029654a66f43984c45aa78954845d2a45 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sched.h>
 #include <signal.h>
index 552e0f2c22e8d85c4d1ea881c178a107eb3b4d27..c1350763ad7288f5430e639ce8280c8d43b9e337 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index c12d7c1375d5bedcbaee7f24086f59bbdd6dda3e..d37c0b08456972fb097ef6a517f760467ef61e48 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/stat.h>
 
index 97a875161b3b7d437186331e93469f429582ad29..01afc0658d2fb97a9a8732caaeb1125d31a610aa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdio.h>
index 75c24d800730aa367ee338aad25a91f920202517..2347179cbc77dac215862ad7a02ca0ba5328823d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index 06e822785715fddc70ec9a8d515d85aba2526a25..a6ee7d4b26b8a1193439d680f4c9fcb6f69303ce 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 98bbfb2ae3444ebc3b0cc61d930b50061f076b39..030922eca931b2a8db6eb17fe5eeb9bed642625a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <unistd.h>
@@ -6,13 +6,16 @@
 #include "alloc-util.h"
 #include "device-util.h"
 #include "env-file.h"
+#include "escape.h"
 #include "log.h"
+#include "macro.h"
 #include "parse-util.h"
 #include "path-util.h"
 #include "signal-util.h"
 #include "string-table.h"
 #include "string-util.h"
 #include "udev-util.h"
+#include "utf8.h"
 
 static const char* const resolve_name_timing_table[_RESOLVE_NAME_TIMING_MAX] = {
         [RESOLVE_NAME_NEVER] = "never",
@@ -195,8 +198,9 @@ static int device_wait_for_initialization_internal(
                 sd_device *_device,
                 const char *devlink,
                 const char *subsystem,
-                usec_t timeout,
+                usec_t deadline,
                 sd_device **ret) {
+
         _cleanup_(sd_device_monitor_unrefp) sd_device_monitor *monitor = NULL;
         _cleanup_(sd_event_source_unrefp) sd_event_source *timeout_source = NULL;
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
@@ -256,10 +260,10 @@ static int device_wait_for_initialization_internal(
         if (r < 0)
                 return log_error_errno(r, "Failed to start device monitor: %m");
 
-        if (timeout != USEC_INFINITY) {
-                r = sd_event_add_time_relative(
+        if (deadline != USEC_INFINITY) {
+                r = sd_event_add_time(
                                 event, &timeout_source,
-                                CLOCK_MONOTONIC, timeout, 0,
+                                CLOCK_MONOTONIC, deadline, 0,
                                 NULL, INT_TO_PTR(-ETIMEDOUT));
                 if (r < 0)
                         return log_error_errno(r, "Failed to add timeout event source: %m");
@@ -287,12 +291,12 @@ static int device_wait_for_initialization_internal(
         return 0;
 }
 
-int device_wait_for_initialization(sd_device *device, const char *subsystem, usec_t timeout, sd_device **ret) {
-        return device_wait_for_initialization_internal(device, NULL, subsystem, timeout, ret);
+int device_wait_for_initialization(sd_device *device, const char *subsystem, usec_t deadline, sd_device **ret) {
+        return device_wait_for_initialization_internal(device, NULL, subsystem, deadline, ret);
 }
 
-int device_wait_for_devlink(const char *devlink, const char *subsystem, usec_t timeout, sd_device **ret) {
-        return device_wait_for_initialization_internal(NULL, devlink, subsystem, timeout, ret);
+int device_wait_for_devlink(const char *devlink, const char *subsystem, usec_t deadline, sd_device **ret) {
+        return device_wait_for_initialization_internal(NULL, devlink, subsystem, deadline, ret);
 }
 
 int device_is_renaming(sd_device *dev) {
@@ -319,3 +323,49 @@ bool device_for_action(sd_device *dev, DeviceAction action) {
 
         return a == action;
 }
+
+int udev_rule_parse_value(char *str, char **ret_value, char **ret_endpos) {
+        char *i, *j;
+        int r;
+        bool is_escaped;
+
+        /* value must be double quotated */
+        is_escaped = str[0] == 'e';
+        str += is_escaped;
+        if (str[0] != '"')
+                return -EINVAL;
+        str++;
+
+        if (!is_escaped) {
+                /* unescape double quotation '\"'->'"' */
+                for (i = j = str; *i != '"'; i++, j++) {
+                        if (*i == '\0')
+                                return -EINVAL;
+                        if (i[0] == '\\' && i[1] == '"')
+                                i++;
+                        *j = *i;
+                }
+                j[0] = '\0';
+        } else {
+                _cleanup_free_ char *unescaped = NULL;
+
+                /* find the end position of value */
+                for (i = str; *i != '"'; i++) {
+                        if (i[0] == '\\')
+                                i++;
+                        if (*i == '\0')
+                                return -EINVAL;
+                }
+                i[0] = '\0';
+
+                r = cunescape_length(str, i - str, 0, &unescaped);
+                if (r < 0)
+                        return r;
+                assert(r <= i - str);
+                memcpy(str, unescaped, r + 1);
+        }
+
+        *ret_value = str;
+        *ret_endpos = i + 1;
+        return 0;
+}
index 04c7ce55203df2d2ef2467dc275b155f3388856d..270861e55edc97663af1387f4ad6bcbaf4fb7067 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-device.h"
@@ -28,7 +28,9 @@ static inline int udev_parse_config(void) {
         return udev_parse_config_full(NULL, NULL, NULL, NULL, NULL);
 }
 
-int device_wait_for_initialization(sd_device *device, const char *subsystem, usec_t timeout, sd_device **ret);
-int device_wait_for_devlink(const char *path, const char *subsystem, usec_t timeout, sd_device **ret);
+int device_wait_for_initialization(sd_device *device, const char *subsystem, usec_t deadline, sd_device **ret);
+int device_wait_for_devlink(const char *path, const char *subsystem, usec_t deadline, sd_device **ret);
 int device_is_renaming(sd_device *dev);
 bool device_for_action(sd_device *dev, DeviceAction action);
+
+int udev_rule_parse_value(char *str, char **ret_value, char **ret_endpos);
index 201d27ab63a778a5c35ab1ffb810d92f6ba2c2f7..5d5bf7f21d87b4dc9e924ca210e058a3340cad5d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdlib.h>
index 49ba38287e1b7ce1e3a7a221c526c8aa6694ae02..ef168cdb33a34e1d7ec10f3f05b707072dff0f9a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 3b51c7c9986e398caf2b3aa34a040b0635b697a3..4c307199e6e8d70c5009f0a7a2820683b0065d8c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-id128.h"
 
index d36bb07cc275109b9a5f097647b1230b0b89df86..5463b0ab13b91afc685d691550b964a87e27c8c4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index d06c8abdbe6c2d15e1444d83e4594ac522fb675c..88b8fc2f8f5f8f43a6f1c660926fce659efd0f74 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "errno-util.h"
 #include "format-util.h"
index e2a87f664c357cb6edbcf983868a94f2b9a7bfda..22ab04d6eec3d150ec572dddc85c82e08713137a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <grp.h>
index 9046fafcb2e3b481e8a28b6b4d5fceff38d784dd..29790282b4e2c648b231b083e8b287459e7a6a34 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "format-util.h"
 #include "fs-util.h"
index 4dcee180a2d42158b14a8e3c10058eaecc95fc46..dcef065d9236b19c659fe78bf5e2be4d45f521c9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "user-record.h"
index 7e7b28eb55023b1cb12e6ebe89577eb9232ba11e..afa3986642f8c51fb5eac986f69f155f712bbe3d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/mount.h>
 
index 2e74b910c2756a54811471d87d8f4560acb49ff5..542a0dc84a9f734bb4330aa290c328f05117bf68 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 57e58a61a9103fd8338a56dcb1313fc70533ebf5..2d480283d12a335d78c234ddcc53512871208c64 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/auxv.h>
 
index 2464f54c3e22e1dd2d79639d9d28c58e35d89293..ee207b518ed68c67a1c7cfa4b1f84708c94c9b71 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/socket.h>
index 9edcd8302ac79d204693a7600130d16af7491760..b36bc205123eac0c82382a318db6f4dd98684853 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index fe55bad12d632bd85b11938eca87a0fba780bbf2..3e71f76b27dbdc3ec15473908e48f71db2d02436 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index fabfe78280b5e44212aecf6a7311e7578d1b0e04..e7be33ca7080bdf6cac4be8df0d9834792615a59 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/poll.h>
 
index 030db39b2f5329e9b7bdfc2d3b2f34f367c63856..7ea1f9113fae1175e42024ec3e7589a1623a4113 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-event.h"
index d2744b6918f4c2ba86b5fe4f4419ff6532635256..2d19172c6f263981aabd85803760669d36f28ec9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index b6a1afcdee630de970a1acf205633a629e8427f4..245bb37ae464a715555e8e624b9abd7d80370ce4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 180f56ede8604c8292993b1339cc1b1a583b7ae6..cb43d50220b870201640ff00b6773cda387180e2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "conf-parser.h"
 #include "parse-util.h"
index c55adee3c07ab7487eb64e79d499db1123ad6658..0336908bf33923131c331da458aab932efecff35 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 5ca6ab3376c573e24091ba89a8870ddd59468e75..3323897a4ca2db58e2e689e5e1c5d41d30667584 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 2d31bb11749d339a1b1d918663e5f4bf17c6ed08..9a1bb384e921c44c0e13764b3e56f95486ffcce2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 typedef enum VolatileMode {
index 4d3d8828f57d98f1bc0d9a573c96191ab00593aa..d33acafe64d869b91aee402e0307ac7462e8f067 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
@@ -7,6 +7,7 @@
 #include <unistd.h>
 #include <linux/watchdog.h>
 
+#include "errno-util.h"
 #include "fd-util.h"
 #include "log.h"
 #include "string-util.h"
@@ -19,44 +20,40 @@ static usec_t watchdog_timeout = USEC_INFINITY;
 static usec_t watchdog_last_ping = USEC_INFINITY;
 
 static int update_timeout(void) {
-        int r;
-
         if (watchdog_fd < 0)
                 return 0;
-
         if (watchdog_timeout == USEC_INFINITY)
                 return 0;
-        else if (watchdog_timeout == 0) {
+
+        if (watchdog_timeout == 0) {
                 int flags;
 
                 flags = WDIOS_DISABLECARD;
-                r = ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags);
-                if (r < 0)
+                if (ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags) < 0)
                         return log_warning_errno(errno, "Failed to disable hardware watchdog: %m");
         } else {
-                int sec, flags;
                 char buf[FORMAT_TIMESPAN_MAX];
+                int sec, flags;
+                usec_t t;
 
-                sec = (int) DIV_ROUND_UP(watchdog_timeout, USEC_PER_SEC);
-                r = ioctl(watchdog_fd, WDIOC_SETTIMEOUT, &sec);
-                if (r < 0)
+                t = DIV_ROUND_UP(watchdog_timeout, USEC_PER_SEC);
+                sec = (int) t >= INT_MAX ? INT_MAX : t; /* Saturate */
+                if (ioctl(watchdog_fd, WDIOC_SETTIMEOUT, &sec) < 0)
                         return log_warning_errno(errno, "Failed to set timeout to %is: %m", sec);
 
                 watchdog_timeout = (usec_t) sec * USEC_PER_SEC;
                 log_info("Set hardware watchdog to %s.", format_timespan(buf, sizeof(buf), watchdog_timeout, 0));
 
                 flags = WDIOS_ENABLECARD;
-                r = ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags);
-                if (r < 0) {
+                if (ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags) < 0) {
                         /* ENOTTY means the watchdog is always enabled so we're fine */
-                        log_full(errno == ENOTTY ? LOG_DEBUG : LOG_WARNING,
+                        log_full(ERRNO_IS_NOT_SUPPORTED(errno) ? LOG_DEBUG : LOG_WARNING,
                                  "Failed to enable hardware watchdog: %m");
-                        if (errno != ENOTTY)
+                        if (!ERRNO_IS_NOT_SUPPORTED(errno))
                                 return -errno;
                 }
 
-                r = ioctl(watchdog_fd, WDIOC_KEEPALIVE, 0);
-                if (r < 0)
+                if (ioctl(watchdog_fd, WDIOC_KEEPALIVE, 0) < 0)
                         return log_warning_errno(errno, "Failed to ping hardware watchdog: %m");
 
                 watchdog_last_ping = now(clock_boottime_or_monotonic());
@@ -67,19 +64,23 @@ static int update_timeout(void) {
 
 static int open_watchdog(void) {
         struct watchdog_info ident;
+        const char *fn;
 
         if (watchdog_fd >= 0)
                 return 0;
 
-        watchdog_fd = open(watchdog_device ?: "/dev/watchdog",
-                           O_WRONLY|O_CLOEXEC);
+        fn = watchdog_device ?: "/dev/watchdog";
+        watchdog_fd = open(fn, O_WRONLY|O_CLOEXEC);
         if (watchdog_fd < 0)
-                return -errno;
+                return log_debug_errno(errno, "Failed to open watchdog device %s: %m", fn);
 
-        if (ioctl(watchdog_fd, WDIOC_GETSUPPORT, &ident) >= 0)
-                log_info("Hardware watchdog '%s', version %x",
+        if (ioctl(watchdog_fd, WDIOC_GETSUPPORT, &ident) < 0)
+                log_debug_errno(errno, "Hardware watchdog %s does not support WDIOC_GETSUPPORT ioctl: %m", fn);
+        else
+                log_info("Using hardware watchdog '%s', version %x, device %s",
                          ident.identity,
-                         ident.firmware_version);
+                         ident.firmware_version,
+                         fn);
 
         return update_timeout();
 }
@@ -102,8 +103,8 @@ int watchdog_set_timeout(usec_t *usec) {
 
         watchdog_timeout = *usec;
 
-        /* If we didn't open the watchdog yet and didn't get any
-         * explicit timeout value set, don't do anything */
+        /* If we didn't open the watchdog yet and didn't get any explicit timeout value set, don't do
+         * anything */
         if (watchdog_fd < 0 && watchdog_timeout == USEC_INFINITY)
                 return 0;
 
@@ -113,13 +114,11 @@ int watchdog_set_timeout(usec_t *usec) {
                 r = update_timeout();
 
         *usec = watchdog_timeout;
-
         return r;
 }
 
 usec_t watchdog_runtime_wait(void) {
-        usec_t rtwait;
-        usec_t ntime;
+        usec_t rtwait, ntime;
 
         if (!timestamp_is_set(watchdog_timeout))
                 return USEC_INFINITY;
@@ -155,18 +154,14 @@ int watchdog_ping(void) {
                         return r;
         }
 
-        r = ioctl(watchdog_fd, WDIOC_KEEPALIVE, 0);
-        if (r < 0)
+        if (ioctl(watchdog_fd, WDIOC_KEEPALIVE, 0) < 0)
                 return log_warning_errno(errno, "Failed to ping hardware watchdog: %m");
 
         watchdog_last_ping = ntime;
-
         return 0;
 }
 
 void watchdog_close(bool disarm) {
-        int r;
-
         if (watchdog_fd < 0)
                 return;
 
@@ -175,8 +170,7 @@ void watchdog_close(bool disarm) {
 
                 /* Explicitly disarm it */
                 flags = WDIOS_DISABLECARD;
-                r = ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags);
-                if (r < 0)
+                if (ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags) < 0)
                         log_warning_errno(errno, "Failed to disable hardware watchdog: %m");
 
                 /* To be sure, use magic close logic, too */
index ce739fd8a38e4cccd5824dbd71b4d5875da93afd..b7587db3abada7e3b43aa7f7d5e63c0d88c82236 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index edf650d200454b49654778b4c7856760646552f0..82cd5fbd6bb245686c33ce0827d2f77843da5b32 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdbool.h>
 
index c9e67e5c0a740e7217ca100f1c949a129ffc5535..ec54669f50131e4be05e6d79dd62b45ac638da71 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 22bb3041fbbc1fa8ba52aeb86c3fa714bfd4466a..ae5cecc25d116c211c708c91f7da5637830d57e3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <net/ethernet.h>
 #include <linux/nl80211.h>
index c7553fafde0296d4988f9e9f738c15fc186fd5ae..01b0c3c63540b95bfbcdad1945e8bb411f8f0398 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #pragma once
 
index 78ac42f08025fa642c424ca012f163d827a17bfe..8ff3feafe40790a436b1f9fa7fc69b44f43cbefb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stddef.h>
index 8da2ff5f75cd4a75cd1733b107db51f42fa4bafe..217b3b0e40e8ee2d11ea88971945d562acfb2a45 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 enum {
index 83c4bf4b3d615d390b256a6ef87b1851675c250b..ee4e215c5797ba222877c48055402b36eab8f0c7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2010 ProFUSION embedded systems
 ***/
index 6eebaf7abc857da38560a40958b89ae97df677fa..e6542c2716dc413c49c547b5a99f9349d251f0d3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2010 ProFUSION embedded systems
 ***/
index b01062484f0a53bcc15fd1eb5ae29082eca932c4..fac1a12406a79591fc603bb3e9a8d7ff63ca8ec2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 /***
index 6bb1a04793db1892f06abdc747a733234cfffae1..39ab55429028703c01b39faf14cc33ac1412f287 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2010-2017 Canonical
   Copyright © 2018 Dell Inc.
index 64dd623c809daecc2aba27b2a6542e53bb91664d..4391d9f1f5dc409d58bfcaa51a339cd2864103a6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index ca145aebf932d2ad0ef8a37266dd8f7bec3c3ef2..81d50717b24ddf17c62fcab4a564607dd88228b4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index 4cf9d22c87cd2bcc049bf7b5533061107df4093f..b0d71ff580c40f597115019a2a276ab74224b2a1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2017 Felipe Sateler
 ***/
index e44a0433b108038e086869a1272c725edadffba1..e263d459a84c9aba1324817293bfb5ed44624bfc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index 666affca190b06fad66c6e16db7688817d0aa2a5..26874cf87712ab375da9bfcdee32a31cbe06537e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <unistd.h>
index 049719acdf08b6d2466f0ada0acaa543d4330a01..2a0290de7f459d90aa75748dbaec5dfba036b460 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 14572d520ee51b8fddd0123ad3521d18579a7d7d..deb0da4f30ac564f3449a1c7dd0d8161bf659355 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int add_dependency(int argc, char *argv[], void *userdata);
index ff211f3a086a22e28606240219a388929ed3476f..4c5203c1f9b32a25ebd7c6050c3f9eb1b34d2de8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index f337beac46cfceaae5c438f3079622341a193e3d..75151d67fc89df7bfba3bf5cc6bbbe79336ecdfa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int cancel_job(int argc, char *argv[], void *userdata);
index ca15f751463ec54e4818427040c3fa4bbaa8428f..eca3a6d35490e2d1a8b43b02a74a4d164a1abf90 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 5db9871e51a6f5c4273c62d6f143ed2d865a09e7..8e73f4efbed4b08288dfdb7fa955874c02d629e3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int clean_or_freeze_unit(int argc, char *argv[], void *userdata);
index dd76d8ee3413ae7c574a19622f5584fb939b1d5d..8e41bd6cb83f93b015b7a0cb22f8333d6182dcca 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <unistd.h>
index da89aa57638e21f6b0905a446ca396b80427f19b..85b9dda0e4a0e6252c771e8e5914caf364c8a0d1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int halt_parse_argv(int argc, char *argv[]);
index 39dbba861ecbf219072a2fb729427f556aee83c4..e05b1b4705f4358b3238f92284d2dd0578c77bdf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 
index 5c89f3decc1c7de1a21992c315c8c9f5a1798d73..658524bf1e8f2e49e395b6598c3d7c9544107b51 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int runlevel_parse_argv(int argc, char *argv[]);
index aca90c93c23df8edfe6f5ca36f483fdcd478175d..0c7d18b6d4b800045a224b1154363a5a9f3bd7f0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 
index 79a317d053b7e7ccba4ef1d20f1b9ad8d9e7038d..7acf9414c9ab9f7d9b64b236c8cf0f3c8ee5b4f7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int shutdown_parse_argv(int argc, char *argv[]);
index 35437ab4c14b47eb24a0d4c24372757772cfef93..148574d52c154ab64786408a3e9bf1cd6b9cbd82 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 
index ed3e08ef9b9cef31489bdaa89b99a88aa2ec58f5..1a2bcd440523b8068a12eae8f7302efad47b37ec 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int telinit_parse_argv(int argc, char *argv[]);
index 6730877e6d84767180a905fb5f9f519ed62ff9f5..03ba90838329f73c7309a365ccc61adef89cff6a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 01fd500bf62055193063a194b81c8671655bba1d..a9fc00770a9f1a16226c58f6f4fdd61298f67768 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int daemon_reload(int argc, char *argv[], void *userdata);
index d6f595d47731a0d1e72835ff82314ae5ab38a0ef..f6e8671a388268d48e07a32b017243d5cde45a91 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "copy.h"
index 98cb942688405c0d00a230574f309ed21a09c4d8..fe7e4dc757529b75e781be52fd77d4b461a3b5f4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int cat(int argc, char *argv[], void *userdata);
index c9daeb15bab73c0ed40a2b9603ec75c91af15208..8f053ca649c71eb08c422b6df7a62fce0a602e9d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 33802b437be7498587de4318146310323593ed11..43f60e78e3c8fae47ca33e32165c8e87d3b0ee51 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int enable_unit(int argc, char *argv[], void *userdata);
index 18eba2d82e40a944fe4757d46bf711c90f678b07..3d99b0deb60f2b6411bc1654ed32cfa3010e9fdd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 18b0e1d9aa8f9ccabb6d68945515f2965f91eb07..9a5238e8c08dd3b1c09cea482e44bdede9dafce1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int check_unit_active(int argc, char *argv[], void *userdata);
index dd64d2e8be7ddaf5a75aebf2c1f99a755d9bab13..02ef8df86e4a51f5b9b3c0b7100f50ee1c7622ad 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 860153e42058eed3994cfd8da4bfe9477eb7ea29..5cb9e5c5375fb43ffb810b626d57a316ffca4966 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int unit_is_enabled(int argc, char *argv[], void *userdata);
index 96186ee6e660ef330d8d1d89c09aaac337b33274..ecebf0d1145a000c5e7217ea9e72dacf7a79d4c6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-event.h"
 #include "sd-daemon.h"
index c955f32e2d73396976604ced9a6f8999f21736df..3d7e9fb83d8e3672ed3959c810e4991dc1f70c35 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int is_system_running(int argc, char *argv[], void *userdata);
index 258546f7c15a0efcdd8dd8948b81f350c5ad1abb..810aad108a3d0ac00cce324f1364276df6ddc0e1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index d904612e4e216a8b7895112a2ac9793fa05d77ba..a42d4f1f90f048a132a44a4f73fd60fc742b3554 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int kill_unit(int argc, char *argv[], void *userdata);
index 9aedcc530fb67c1f3833cc86500054ad0fe6ab16..821998eb4fc7146c89043d830260e3ce4ebbb2b0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "locale-util.h"
 #include "sort-util.h"
index cdc7fc2f648f5fb0a81dd54bba7eeb09f1956ba7..7246570144c35d1370f0d50f5aefb309fb78befc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int list_dependencies(int argc, char *argv[], void *userdata);
index 64a8d6779c3e740920119eeaee0a3620694f66f3..8b028c013aef23591a940c33baec72c6da4966c3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 40d6e83108565ea760f13a31910c46e8f518cdfb..aa4969639435d2ace25013945f414f4571d5e50e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int list_jobs(int argc, char *argv[], void *userdata);
index 424778c803e5d3d3c728ed231aae2a82394fba0c..48d0e8bde477673b53b4be38ccbaa05b5bceebe3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index c20b0e9086012ae8a0e4d31ba0296da4772c5632..4a33e2b27c4dc8508fe7eedc27c5e11a731f5b81 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <inttypes.h>
index 508909a373cc3e6939d6b3187eef3bb070cd1fa6..e1bf8766205b1fa4710079d037a299aa0c7f2b19 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 12f84923a4c1087b1d3eee9d99532bb7242fba7e..387233e01c5172a477fec295148298fa6451c3e6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int list_unit_files(int argc, char *argv[], void *userdata);
index 15d8e4b234395f6ac4b71717f3b21674cfcacfb6..08019123963b002370b6ed07204c31fcfb287aec 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-login.h"
 
index a4c9775837a8e234fcff6378ee9cb9092a26340a..ef2762771264bd7706e1bf00f6890e9b82ca1d86 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int list_units(int argc, char *argv[], void *userdata);
index 435ab0e480ea83c832cbc0a92711975da15ef7c7..64984e4a81cbfbe31d77ccc887a4783019d80057 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 7e134a106075b41878a5353efc1f1587a7b67a9a..9a2e793f031f3c763733d35c8aeb85dd73445e11 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int log_setting(int argc, char *argv[], void *userdata);
index 20486c968ea1ed40b3000fcba49df32600ffe23f..405f12a33d930a3653a689ddce2cc6823ecabb13 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
@@ -146,7 +146,7 @@ int logind_check_inhibitors(enum action a) {
                                           ACTION_KEXEC) ? "shutdown" : "sleep"))
                         continue;
 
-                get_process_comm(pid, &comm);
+                (void) get_process_comm(pid, &comm);
                 user = uid_to_name(uid);
 
                 log_warning("Operation inhibited by \"%s\" (PID "PID_FMT" \"%s\", user %s), reason is \"%s\".",
index a9399e611e16414506eb950573bd0f8b0c3e6476..144056b93978786ec961c3cd3c4bed76f6fec08f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "systemctl.h"
index 2fada83958e18cf180fc9a3883be6d2a230bf392..b5eb199f4af85ef20895fd798e36bf470563a6e6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 408e43b599907ec9eb997eaca6b36cc8cf6eef97..f4f6790404004bfdca847390a03a6fda447823d2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int preset_all(int argc, char *argv[], void *userdata);
index bf7e26dcb70ac7d0c9effb0c3118121cbcb48f2c..eee7586465626df6562d0f550cd25a9096cb9bf5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index b7902ce71660f30ea4fe215aa1edb5bc55a3d21c..956bb469df25b75fca669cc14e706240fe8afbf9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int reset_failed(int argc, char *argv[], void *userdata);
index 6a954bfa4351eba5f6643a74d62852ca55978566..e5798510976121fd06801f04612daae00687b5a1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 8189376f1dd6508da4e1a4ede50f141ffd9e9015..11a53dbbf1908a1469b42009f1260034e938b326 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int service_watchdogs(int argc, char *argv[], void *userdata);
index 423d881dac69210f6bc72b9d3fbc919bb1b2a946..05c1894b1d05c6535968c8faf802d716dc16770f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 2067c8c0d0dd82cfea41b0a57617ebf40ecc1f55..839b2c9b9f1f7c612a2441c849b3215ef9cc85ec 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int get_default(int argc, char *argv[], void *userdata);
index 4d17c91df2c28bc9a4ab67320614a223255c3a9d..b68e6f6f66ed1e3af21dcc2ecc241dcaaaa335be 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 57e51d483cb49451163eb798ff3b7dc9fb6b54d1..bd05e318ad6e0cd3dcc764877889d2e2a6fd217c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int show_environment(int argc, char *argv[], void *userdata);
index 891b67eae7892691e6589393885d7974e5426646..183a7b6a8ad650182dad5ce7f8b0246385149c58 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index e431de5533afb359fd35c2a71b62dfaa72926d64..74990e7cba795d9c7992ed2bd11270e4fe650a75 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int set_property(int argc, char *argv[], void *userdata);
index 119825f86e7d2a126fa14cd1b2c320bfc0e97457..fabaa545e14972e81d46a67c4be2dfd9ddd2820c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/mount.h>
 
index b4e5dda5b7295d44feb614a20347c66716dfebbb..d778bebb43ac6f4f2057281384927593ece623f3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int show(int argc, char *argv[], void *userdata);
index 46f58ff921e41df21cc0d2d337a0cf5cd4417183..15d2ea7941f84b3a57447a761c999da847a2c2d0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bootspec.h"
 #include "bus-error.h"
index 43a31ba287e5aab90d8399039ec95086cb9dbc01..06875e9c63cf4d9ba0ae8c16b020a539c17d1c23 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int start_special(int argc, char *argv[], void *userdata);
index bd78568a2daa19dc0d38074b7cec736a01fb6f10..b398e77eb281f0f65dcb4da46a6134c19fccdcdf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-bus.h"
 
index 3f827405cc1ba47b27c18b60000d16654a6734cb..915c6fa7fb4cebcc248de3528d2786866ccc7949 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "systemctl.h"
index ebcc66a30db299da0ebd4bd89c42f2d7b602b387..9ed40e6ec3aa44d908a68e2de3fc67754177fe26 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 47ed852c63a92dfacf7da5f1ee9dcf7f709b9e24..6e13961ab7de0ffe8fea020efd6182a4838557f1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int switch_root(int argc, char *argv[], void *userdata);
index 2dca9e480f7daba0f0f17aa9a5c05ea2878ad526..a78fa1e04ca08bbaf6f18fc3a0d32ba9ac64fcb9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/stat.h>
index 9a3b84dedaf7c0d9865f0ba4c68c8c26c228c5f5..86fd3ec1861cf3c8ba7056c99309f15c70156538 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "time-util.h"
index 1f1181f2135c81ebf6cf3634dc017f6da111f808..c0b4d489a2461f9f47689258dff1df9462209b53 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-error.h"
 #include "bus-locator.h"
index 044540bd90b6ddfa5fbaea7bc43320d5acd30332..6dcd15284577bbbfd1243926d1079f9b202086a2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 int trivial_method(int argc, char *argv[], void *userdata);
index 603b1ea4fc404f0fc001f81def597d776867fcee..9713fce7af0c995a5c11882174549f200dbec28e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/reboot.h>
 #include <unistd.h>
index 3693f1d678d00d01b56e18a531bb17d36a621e3a..6445bb488741b23039e4d5e90211cbf784baf8f6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index 075159ea57e50bd1bf7eb841dc6b0d8f19cb618b..d002d933aed9a52269c98a64495e13803c179d1b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <locale.h>
index 079c108d7d558ba69d3b80c57dfe7717340e4645..f8cefc9b0128a5104f92cf1cdab02c4a4e2b7292 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <stdbool.h>
index 1055b00d0767d7f72b0a87e8be2fc22ef760e349..e3de2ae56292b465df04d53ce46523ed9dfeef64 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdcommonhfoo
 #define foosdcommonhfoo
 
index 62baf7784e492f90c8baea9bcef1d50395a8140c..f585b2d75b1f17b5090ea9207d7b8c4a33e41faf 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 _systemd_headers = '''
         sd-bus.h
index 8883ec62b916dff47bb8ce823c1a06e6cfe2b1fd..ed96cdbab13e6a96a73095278c194b70354cc9ea 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdbusprotocolhfoo
 #define foosdbusprotocolhfoo
 
index b10a3e04bc3490cb7d50987126433f1fb095138c..ef57efd59593fe58e00dcb09c73acf2face8f92d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdbusvtablehfoo
 #define foosdbusvtablehfoo
 
index 9c37e7e6c97550416cb861cf3774d657a4152d05..87fbcf366e47a77d330aacb45eea0dbdd105fe32 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdbushfoo
 #define foosdbushfoo
 
index b47b15a445a9693aa7238b9eebedf4861ef7c4b5..f42a5d89669a0f7218c3e8014c890cc19bdd4364 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosddaemonhfoo
 #define foosddaemonhfoo
 
index 53092d28f92cc293d56886b8646fe4338f3f5a08..78fe5841609c6652adf3e74004cddc46397de6a2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosddevicehfoo
 #define foosddevicehfoo
 
index ac3b5b369c11319b3224c1a98cc9a872c58dec84..44bafe6df5de06a95d12e1ac0e6e3510b451a60d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosddhcpclienthfoo
 #define foosddhcpclienthfoo
 
@@ -126,6 +126,7 @@ int sd_dhcp_client_set_ifindex(
 int sd_dhcp_client_set_mac(
                 sd_dhcp_client *client,
                 const uint8_t *addr,
+                const uint8_t *bcast_addr,
                 size_t addr_len,
                 uint16_t arp_type);
 int sd_dhcp_client_set_client_id(
index 17bd491819ff324d01f42eae1c80f62e3a238dfc..c255a1f912ecfba4fe58c7ad1c5de91de8cd280a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosddhcpleasehfoo
 #define foosddhcpleasehfoo
 
index 45dbd27985312847f2046524c00d612dc05678aa..71aa479b5ebed949ae0a5686f0c7d6db8216a132 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosddhcpoptionhfoo
 #define foosddhcpoptionhfoo
 
index b6a5e9db84742a5b1f8abf9ab3842af3e422e961..f42c3dbb8b7fb33b1489a5e803dd85cee816a3b4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosddhcpserverhfoo
 #define foosddhcpserverhfoo
 
index 2b0d63a527d94236241e7a7c2daef7e6084a1f02..75ee27d68bdb41826f74993a9d169a1b3c477503 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosddhcp6clienthfoo
 #define foosddhcp6clienthfoo
 
index 240df74af8c520cf707f9bde280ddfcc17d8129d..f77b31acf997597b58ac2f3188fbfd04a8e4d33f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosddhcp6leasehfoo
 #define foosddhcp6leasehfoo
 
index 88a4986315123d7bcab8e6986dcaaf09d451a88b..ddb2c7cecdf4bf765cd8352d721678fb14953f74 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosddhcp6optionhfoo
 #define foosddhcp6optionhfoo
 
index 3a53c3d27da1419cbf282e787e05d5c6bf03bcb9..937c9bd4605d7d9d8e57bf240ad5fbac0ad3a2f6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdeventhfoo
 #define foosdeventhfoo
 
index 2b0cd7f5e769d87b5e050c1845b7c965eb62e8b6..9380759e07c1b7a4e0a843e501fee34eaa964d64 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdhwdbhfoo
 #define foosdhwdbhfoo
 
index 9b00b76ea63eef9758e5e69927db034eb4294aee..02aa318a06082ebf7be74f20ecf5b992bcda7f36 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdid128hfoo
 #define foosdid128hfoo
 
index ebf723fc221e08492687a9bb9164a9ca90e29e25..d900018f427af7ee5f076ae6227ecb5c853739bb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdipv4acdfoo
 #define foosdipv4acdfoo
 
index 71bd4cfe484dff0d5a3e6728042e2a8e7e7dc6c7..a0682232e3c3b76787b29b92845fce944e71c1bb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdipv4llfoo
 #define foosdipv4llfoo
 
index d220f21aa29f518578d22d619f19aeefa250cfe8..03696eb1af9bf76cdd85284adb16a5d3b239cdc3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdjournalhfoo
 #define foosdjournalhfoo
 
index c2abc201216e2980b89940c937bcff3730c138bb..f551f6b4fa92888257f41c6309be8c1933bf92d6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdlldphfoo
 #define foosdlldphfoo
 
index 6a8c20625910f8a406c371b4bee9cb3eadbc7363..6958d99a1e8f86d2ee91bc18906ec2d208fbd90a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdloginhfoo
 #define foosdloginhfoo
 
index eea8c2c900ad8c32aef9aa6c9a88ecee5e471f48..97ba02ffa83c3ae6a5df11e06b7bb9e1e8c78e77 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdmessageshfoo
 #define foosdmessageshfoo
 
index 3ddfc8cb6d2f2c9aabbbf9a970ad5e5cc1c27b8c..c0e37899a7208c6c8fea5ebc7dc47f5153c0a416 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdndiscfoo
 #define foosdndiscfoo
 
index e01d960e37b8b69275147049316a9605e49e95b4..bf6d1e47ffea3fa3b6eb7950d167c78f7f9a1ea6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdnetlinkhfoo
 #define foosdnetlinkhfoo
 
index 42bcd74b745885b2f0875d35a65e5cf208e545d1..7e062514189627876e4ce6d9b156adfee43c069f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdnetworkhfoo
 #define foosdnetworkhfoo
 
index e13e67db8fc4904e71e52c27141420912e4e05f2..5f2f03c27beefb0a5940ae250a639ed98c58fe15 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdpathhfoo
 #define foosdpathhfoo
 
index 0f1437829d03f11a4e9483e21e6ffd03b7a1b41b..3f6c149d5e259daba08b92da1799b184195c9893 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdradvfoo
 #define foosdradvfoo
 
@@ -56,7 +56,7 @@ int sd_radv_set_ifindex(sd_radv *ra, int interface_index);
 int sd_radv_set_mac(sd_radv *ra, const struct ether_addr *mac_addr);
 int sd_radv_set_mtu(sd_radv *ra, uint32_t mtu);
 int sd_radv_set_hop_limit(sd_radv *ra, uint8_t hop_limit);
-int sd_radv_set_router_lifetime(sd_radv *ra, uint32_t router_lifetime);
+int sd_radv_set_router_lifetime(sd_radv *ra, uint16_t router_lifetime);
 int sd_radv_set_managed_information(sd_radv *ra, int managed);
 int sd_radv_set_other_information(sd_radv *ra, int other);
 int sd_radv_set_preference(sd_radv *ra, unsigned preference);
index d78e8db257ca3e047a5f3ca9233ddf316dd2153e..ee58d18137d4ad0d8f2e9ccaec6ebeb903de5749 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdresolvehfoo
 #define foosdresolvehfoo
 
index 151b423d51df0ec92d2dc05297911dedcfbb7782..57013d011fce0f3f71b0b38db5d1e8867dee9124 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #ifndef foosdutf8hfoo
 #define foosdutf8hfoo
 
index b91f32bbf3d353ccb29ef7ecdf1863ed3f9c79ef..9a8838d5eb81dc6eb744e0d3c015b2bf55b0557a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <utmp.h>
index 7d6be317424738d40d5d66b01562975f0da1ca02..008a8250bbe78f9deea801f251abc25864caf2e0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index ac1182e37a21d2903db5dd56a73f6baf150ae54a..aed576991f2e3bb0351a340fb4fb1038f0676bd2 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 awkscript = 'test-hashmap-ordered.awk'
 test_hashmap_ordered_c = custom_target(
@@ -433,6 +433,17 @@ tests += [
          [],
          []],
 
+        [['src/test/test-loop-block.c'],
+         [libcore,
+          libshared],
+         [threads,
+          libblkid],
+         '',
+         '',
+         [],
+         includes,
+         false],
+
         [['src/test/test-selinux.c'],
          [],
          []],
@@ -764,6 +775,10 @@ tests += [
           libselinux],
          '', 'manual', '-DLOG_REALM=LOG_REALM_UDEV'],
 
+        [['src/test/test-udev-util.c'],
+         [],
+         []],
+
         [['src/test/test-id128.c'],
          [],
          []],
@@ -808,6 +823,10 @@ tests += [
         [['src/test/test-psi-util.c'],
          [],
          []],
+
+        [['src/test/test-qrcode-util.c'],
+         [libshared],
+         [libdl]],
 ]
 
 ############################################################
index 08764faa4f5a852b7292872ddfd2927dacab6b30..37c8265268ce7c55fcded4bf541c6f043c13e7f1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <stdlib.h>
index 884372e60e228f5f0d28c06293e18323b17b450e..672dc68be92a13f69a58c9e1205b59a55d651433 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/socket.h>
 
index 72356aeaa4da2bec0fcf8923686d3a6d69e4f3df..b4319f9c7da93df87f622aca45e835cffe62e67f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <malloc.h>
 #include <stdint.h>
index 8c43bfc750ec265e9a58d63ada0836e453732daf..798c95c0e91ac3197ab2b0471615ee6bf0664ef0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "architecture.h"
 #include "log.h"
index d7352b54e072ffbb47b4d00e03a40f420b646938..9e21f3218946a898e9ca5e7266d33826b3f27428 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/if_arp.h>
 
index 098bb35bce67ebebc8fc43e99d743d21eae4d1f2..06158acf12bffb243c589d0b8f44aea6e39f18bb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "ask-password-api.h"
 #include "strv.h"
index 7d8accc2fc0af85a64cc9575be6a75cadd77b65d..8eefad50447bbe59c060ba7fc63b97b29eb2be3f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <unistd.h>
index 10417f662f9d3be4708c7d3c65626ef058df5e60..6ef2998a56508b52a422560782d2eabd80e16293 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 /*
  * IPC barrier tests
index b281c1ae74e40dd377d7057dc4848c8307b4624c..9c5d551d276255a96ed3d29cc46777ad1c806d64 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bitmap.h"
 
index 29074ecccd38de6517430c0c59d2c21dfe49c7e5..ae5b5821f0fa822ba2553939d67fb97579dcca0c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/types.h>
 #include <unistd.h>
index d2740bca73012938dd750fa929c6efe721e2c02d..2c5eb7313bd389154a2d4dd66fec5fcc4cb78b0b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/resource.h>
 #include <sys/time.h>
index 71aed125583d34ad4a42588a19c7672275ef86ab..cb7d8398a81c59297eade2ea8e9110efd523f194 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/bpf_insn.h>
 #include <string.h>
index 9dbe4dccd136f442e521168d1de8ee39c747796d..e840536d4b37273f10e87baf9bb944d68cd36ab6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 
index a536608ce094ae5b089c9ef84ce2d2dcf01780c6..0381ba1ee4feb24e47df3341a1d4c1e373556dc7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "bus-util.h"
 #include "log.h"
index d566638d5d46b29b73beee373d4ebbdbcc1214be..e0b7f2280843db66a371c6da1b5c4259fd5a7d3f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "calendarspec.h"
index 81d5c456d749b122a699f30c41c51517eeb968fa..c5f429d052722f9c5052e0443a5fdaff02bcdcfc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 #include <sys/prctl.h>
index 2d47c77f4669ece391fcd1f588d1673efb65c3b9..0ff56070b163fb25b4f1188641f826f135bbc25f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 #include <pwd.h>
index a445acc955071a3a58e76cb6aa709fc8e086fab1..be73be83f8225f69639e8d8c499bc633ef1c17c5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "cgroup.h"
 #include "log.h"
index 27bfcdc17fc2b42e1df2ac96520ce241e457bea7..b53e327c63d302e5d6937e5aaae073a0777e1ee8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index 25fa0d75df0c0ee78ad008e971f2926c5df333c8..72726ca59593bed39d80b17cb828771dcff761fa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index f4843374ea320fef3c5f77189b4d43b39e9aaeef..b03f6ff12ee2808259ff814b1fe3714559c18f41 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index eff586a2e1d5497f5e1e34e7204219dfce1a352b..41b1df117ee69dc11731676d037df488f1acc851 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "build.h"
index 4fbb186f52cfe622d1fe8af724d167fcf5c58f7c..722e11a0c0c2c92408040e045e02bbf69e4b2a99 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index f7b3dd5e00509b873bd0d397e43eab7211747b41..d9b9b62dc5a5c00b4b813fbb39044b342887c15b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #include <getopt.h>
 
 #include "fd-util.h"
index aa11bd270ffda8f8a88e48512419037364061eb2..66c6fd97d1dc09dbf7e25a9253920c1d0ff6901b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/xattr.h>
 #include <unistd.h>
index 271d4655463a183b97addc37b04aa671ee21b073..714935cb817184294edd2b5085ad6c121ffe8093 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2016 Canonical Ltd.
 ***/
index b42de612003d518936832eab2efb24ac5f53944c..15099d8df8b521cba8c320594d6ce3d6cec4fe33 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 #include <sys/types.h>
index f37f32f1b5288f29cbfd23805cb8166ff036588f..ee7bbd1002d2ca3fe56d9a266a35989a241125e4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2014 Michael Marineau
 ***/
index 07edc17f92ef6d79b00540115f873f8e24f92ab8..04b610c6f1fdb29f690d46049a46a514b011e001 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "conf-parser.h"
 #include "fd-util.h"
index 6ed655a358bc0c1ff68bcfc0c6cef2556e01f4ed..ffa929788928e14a9bf4bdc8faecdbe67d181d67 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/xattr.h>
 #include <unistd.h>
index 14a78007e3188af9dce6033c238437e18cbebed1..f9a44b2c6589d843e71b130fef0809de5ee06f03 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "coredump-util.h"
index 450e19e06f2d90166cca85cb493a2d69aa1750c8..0cfc883d66885d2c951e4ba99089f7c710fbb0bf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "cpu-set-util.h"
index 6ca821581f33c629bba1d037faf8d3102f363d2d..e6dd29a0a7a378c56b69d3ad98d829065da0aead 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index f39eca61763ead0741631a2e945d99c2f429b356..47b70967385554e6b73de64be07325dbe4e6d8f8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "string-util.h"
index 11196cd4d6adf143b78eba5319f2d7448bfcd363..ea9df56aebc0bddfdbdbc719f88b7c3274284c39 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "capability-util.h"
 #include "dev-setup.h"
index ad8d9ace16c180a7441768e27f178a01561d1874..9efb3fe3b3f9754ab426fb9793f840aa8d86a57a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/types.h>
 
index 148ebaa4d0728050516b08741d3bd29c72b57e66..35981ebc3b46fcf74bb2081651909914dac1dbc7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <dlfcn.h>
 #include <stdlib.h>
index b73dc56465617a3336c2aee7c988958a2a12a0ee..2df2380de4d2b2dea23f19adb7ba4bfd930c5a82 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "dns-domain.h"
index 92692bd487b80bab09ae816932333af01b611412..a25c0b57bdafcca4648c9d2d0c5909ce8d2d60d8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index 8ce28ed9f53a46be8fa6223968dcbe40a0c6d247..88214aa7a68a5f7321456b13ed4322677ae25e20 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "emergency-action.h"
 #include "tests.h"
index 6465151b271d2511052348e836d97efbe1428e7f..cd7cfd9f09b09a4deebd00b6c8a953e6e13f7c7e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index 23779b9b8775999c5dc40f1c40281a795681f1f0..a3acde17bacb99035ac7fdb612a56f35d79e49e6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "env-file.h"
 #include "fd-util.h"
index 4fede158cd075eb9a403d4cd743052b0894e5285..dd150b30680c129e48ebb2070f1fff1055a073fb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "env-util.h"
 #include "fd-util.h"
@@ -274,12 +274,10 @@ static void test_env_clean(void) {
         assert_se(streq(e[0], "FOOBAR=WALDO"));
         assert_se(streq(e[1], "X="));
         assert_se(streq(e[2], "F=F"));
-        assert_se(streq(e[3], "0000=000"));
-        assert_se(streq(e[4], "abcd=äöüß"));
-        assert_se(streq(e[5], "xyz=xyz\n"));
-        assert_se(streq(e[6], "another=final one"));
-        assert_se(streq(e[7], "BASH_FUNC_foo%%=() {  echo foo\n}"));
-        assert_se(e[8] == NULL);
+        assert_se(streq(e[3], "abcd=äöüß"));
+        assert_se(streq(e[4], "xyz=xyz\n"));
+        assert_se(streq(e[5], "another=final one"));
+        assert_se(e[6] == NULL);
 }
 
 static void test_env_name_is_valid(void) {
@@ -292,11 +290,8 @@ static void test_env_name_is_valid(void) {
         assert_se(!env_name_is_valid("xxx\a"));
         assert_se(!env_name_is_valid("xxx\007b"));
         assert_se(!env_name_is_valid("\007\009"));
-        assert_se( env_name_is_valid("5_starting_with_a_number_is_unexpected_but_valid"));
+        assert_se(!env_name_is_valid("5_starting_with_a_number_is_wrong"));
         assert_se(!env_name_is_valid("#¤%&?_only_numbers_letters_and_underscore_allowed"));
-        assert_se( env_name_is_valid("BASH_FUNC_foo%%"));
-        assert_se(!env_name_is_valid("with spaces%%"));
-        assert_se(!env_name_is_valid("with\nnewline%%"));
 }
 
 static void test_env_value_is_valid(void) {
@@ -325,13 +320,9 @@ static void test_env_assignment_is_valid(void) {
         assert_se(!env_assignment_is_valid("a b="));
         assert_se(!env_assignment_is_valid("a ="));
         assert_se(!env_assignment_is_valid(" b="));
-        /* Names with dots and dashes makes those variables inaccessible as bash variables (as the syntax
-         * simply does not allow such variable names, see http://tldp.org/LDP/abs/html/gotchas.html). They
-         * are still valid variables according to POSIX though. */
-        assert_se( env_assignment_is_valid("a.b="));
-        assert_se( env_assignment_is_valid("a-b="));
-        /* Those are not ASCII, so not valid according to POSIX (though zsh does allow unicode variable
-         * names…). */
+        /* no dots or dashes: http://tldp.org/LDP/abs/html/gotchas.html */
+        assert_se(!env_assignment_is_valid("a.b="));
+        assert_se(!env_assignment_is_valid("a-b="));
         assert_se(!env_assignment_is_valid("\007=głąb kapuściany"));
         assert_se(!env_assignment_is_valid("c\009=\007\009\011"));
         assert_se(!env_assignment_is_valid("głąb=printf \"\x1b]0;<mock-chroot>\x07<mock-chroot>\""));
index 699747fcc3cae4945d6c5b7b97d34cd650d4f345..3e410ca299ed7af3c2ac0a5c2afbf2a95b8d10aa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "escape.h"
index f5d640a69037976e2e6513cb047faf2bcae05865..5da69f7321eded8bbcf5534b617cf15595ba7afe 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/stat.h>
index 0bc2a45c3031cf30e799613a22c31a7b496d3b55..e15b7a55fa07cf0dac0d8161b285a3c39e893c72 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 #include <sys/prctl.h>
index e90375f6bd864873fecda8c4989effca2b143c9e..4dc197301d1124a084ab5c7be013ad0d69a9df9a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "exit-status.h"
 #include "string-util.h"
index cc1f29385f31a502343fb431660d83274a2720ee..56b516fe40af2ada77fec8f3302e4b09240fd94a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdlib.h>
index 5351fdb9e9db048b74cb20c47570332ba6d4af44..bece89aef25bdd221a2201e26cfee2632d811b4d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <unistd.h>
index 212fe0dbd4703383991c8b37862abe1fb5d86935..c77d7ffe83c2e754fb78faf5e1684a0cc082c69a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <unistd.h>
index ce5af43db5796d5cd3fc08fea6facc9ef84af99b..431aea07ef03370197231b0a6345ee9948075fdf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <limits.h>
@@ -15,6 +15,7 @@
 #include "io-util.h"
 #include "parse-util.h"
 #include "process-util.h"
+#include "random-util.h"
 #include "rm-rf.h"
 #include "socket-util.h"
 #include "string-util.h"
@@ -863,7 +864,7 @@ static void test_read_nul_string(void) {
 static void test_read_full_file_socket(void) {
         _cleanup_(rm_rf_physical_and_freep) char *z = NULL;
         _cleanup_close_ int listener = -1;
-        _cleanup_free_ char *data = NULL;
+        _cleanup_free_ char *data = NULL, *clientname = NULL;
         union sockaddr_union sa;
         const char *j;
         size_t size;
@@ -883,23 +884,35 @@ static void test_read_full_file_socket(void) {
         assert_se(bind(listener, &sa.sa, SOCKADDR_UN_LEN(sa.un)) >= 0);
         assert_se(listen(listener, 1) >= 0);
 
+        /* Bind the *client* socket to some randomized name, to verify that this works correctly. */
+        assert_se(asprintf(&clientname, "@%" PRIx64 "/test-bindname", random_u64()) >= 0);
+
         r = safe_fork("(server)", FORK_DEATHSIG|FORK_LOG, &pid);
         assert_se(r >= 0);
         if (r == 0) {
+                union sockaddr_union peer = {};
+                socklen_t peerlen = sizeof(peer);
                 _cleanup_close_ int rfd = -1;
                 /* child */
 
                 rfd = accept4(listener, NULL, 0, SOCK_CLOEXEC);
                 assert_se(rfd >= 0);
 
+                assert_se(getpeername(rfd, &peer.sa, &peerlen) >= 0);
+
+                assert_se(peer.un.sun_family == AF_UNIX);
+                assert_se(peerlen > offsetof(struct sockaddr_un, sun_path));
+                assert_se(peer.un.sun_path[0] == 0);
+                assert_se(streq(peer.un.sun_path + 1, clientname + 1));
+
 #define TEST_STR "This is a test\nreally."
 
                 assert_se(write(rfd, TEST_STR, strlen(TEST_STR)) == strlen(TEST_STR));
                 _exit(EXIT_SUCCESS);
         }
 
-        assert_se(read_full_file_full(AT_FDCWD, j, 0, &data, &size) == -ENXIO);
-        assert_se(read_full_file_full(AT_FDCWD, j, READ_FULL_FILE_CONNECT_SOCKET, &data, &size) >= 0);
+        assert_se(read_full_file_full(AT_FDCWD, j, 0, NULL, &data, &size) == -ENXIO);
+        assert_se(read_full_file_full(AT_FDCWD, j, READ_FULL_FILE_CONNECT_SOCKET, clientname, &data, &size) >= 0);
         assert_se(size == strlen(TEST_STR));
         assert_se(streq(data, TEST_STR));
 
index 1788e8d1ca8c262a5d50c894037ab8abc6e26c2d..64616e4391d655fafbead1ffcfd94aa62c5e4bdc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "firewall-util.h"
 #include "log.h"
index cf2e34dc9d37bf47117b945c12bae23a34803874..24ee1df953af26081d07a2b77b374adc02ac0051 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index 6558ee2b0a6f2b9ece864569405cbc34596bbdee..5562ac8761ca5bb0bbec2bbcfdc24624074558b6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "format-util.h"
 #include "macro.h"
index f63b1f5d5faea844bd70d363856a3de400f25523..d1f9252521a4da6436ad33fbf036458d9b8f8000 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index f3506045a1f2634deb6e23179e363e43bbd464d4..222ffbb2a75b6b487d0c2ff11353d54b57cef67d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index b28b4eb5a25488e4fad5b6a66e203f2dae91d6f5..2af040b63a5d56518e629757bdbe2ea2c00b8676 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "gcrypt-util.h"
index 667d15335fbf19c31df1d66e4b6756e82c6256e0..df6444c43384c3e8954114cb80691089b5f1447c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/stat.h>
index 44d1044bf37fe96eb6054853f6a1d51634f4ac18..270fcd0df4076419ec48160aae2ea4a5ba92704b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index 5ff5d096a63048e353413ce694a8906f5a6e1d3e..9ed6bee9da178c7db1c37f1e65db424852404b05 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "hashmap.h"
index 852712844f41f3fce691c3cc2e59dc9c577c1fe5..20bc97ce58376ac7cba776668d3c380cfdfbd87c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "hashmap.h"
 #include "string-util.h"
index 52217429b1541e9d0de87ba3752acf0c0509e249..f0f96797690439d0477968c228ddb16fd9cb6c0f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index 5ab82bba618e7162a172f5eefb0c0d608338d8fe..73839b3115197bc2160ad4ad65d4334fa9d5e54e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index 710c0572e668db28b3ab2b99af4126ad7458a0d1..1a925f253c18e47571c8085835e391949d0eef71 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "hostname-setup.h"
 #include "util.h"
index 66eedddce83afd6efe986c8edd970198605ab073..a0649b9deb08a453d1ea4b27fe188056eab86fd9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/types.h>
index a9ecd0627bf6340715f3f0160b5a84e8ff9277af..2b6364566bfae4df0ee128350db126ffdffb474b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fnmatch.h>
 #include <netinet/in.h>
index 6fb2fd42987905aee9fa774f53de9f03b72a6062..aedec54a7f898ab83ee37c47f4be4d897daa1c33 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index f1423fb635569e236caa7b9cf920e10f13a2c1c4..7cd91efcb7f75993693e0ceea001e6b3a9fe6a42 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 #include <string.h>
index 42e632a8a29e90cb1d49fa0ee62d8df151da54f3..104c022cb4ab7c48e9bde80b0cd5744887cdfc11 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <stdlib.h>
index 79390e52891cc3fed718e976f0e71551afd5ddc4..15bbbdeb727c5b379eb32335aad3cfc563d3f82c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <netinet/in.h>
 
index 4565d656768b20119de65175acfc255fd83ca528..238f0bf6669872765325161c1e5407207c1dc0f4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "clean-ipc.h"
 #include "errno-util.h"
index 33a95c6b52ebfa104f706b97e2b0139793887918..024d976a75646cd80099de085e613072dd5b4905 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index 488335695618429ff73ff3c7a650f4087e14c3e2..da266d92ac34372be9c3f65041034c26c821a6d1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/types.h>
 #include <sys/stat.h>
index 6da93d6aed6291844b26c7313ec71a6a20f603c1..1d4b11945ec4c39de87150b8dd29b34e049b7f69 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <math.h>
 
index 58b83b686638b15e0d0d147e5ffb3863b8f75f00..cd296d698e1c5b2b9b5a16c5754335ffbd5455d5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #if HAVE_CRYPT_H
 #  include <crypt.h>
index c3395493d460b038c2f25996331a9be8384f97dc..bd2381f38e01fff9674f435521cd7358c24dc593 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "fd-util.h"
index 2cc679f42e1abfd5a0cfc36c840ccdddddc1f846..d162abaea0adb10bb6a6f01d2bad5222251d638a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index ca5361adb9d599f45abd0c059998c1a2c73ffa1c..fc6e1c8cd1068cdc9c15009d034645950a8add8f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2013 Jan Janssen
 ***/
index bf74cbe6e1411029728b0a8f193507ae24db4d5b..40c1fd053269a96e7850892949c394adcbf23fb0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <stddef.h>
@@ -765,9 +765,8 @@ static void test_config_parse_pass_environ(void) {
                                       "PassEnvironment", 0, "'invalid name' 'normal_name' A=1 'special_name$$' \\",
                                       &passenv, NULL);
         assert_se(r >= 0);
-        assert_se(strv_length(passenv) == 2);
+        assert_se(strv_length(passenv) == 1);
         assert_se(streq(passenv[0], "normal_name"));
-        assert_se(streq(passenv[1], "special_name$$"));
 }
 
 static void test_unit_dump_config_items(void) {
index 37505ea7837828e1f610afdf477fca17d516f7f9..7eeddd28f44e418b8ffe24d8fe8abbaa86ff7828 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index 347982dd5240f7c9e310d9a4f6ed0c2259fa91ac..62f82200a0b3e0f4f888a5259bee1bfe28828c03 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "kbd-util.h"
 #include "locale-util.h"
index c1f2f8b09dd2a735e54a75737f053dcd3accb69c..a2a53730efcaddbc019c2115b28508156c486be6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stddef.h>
 #include <unistd.h>
diff --git a/src/test/test-loop-block.c b/src/test/test-loop-block.c
new file mode 100644 (file)
index 0000000..298ded9
--- /dev/null
@@ -0,0 +1,250 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include <fcntl.h>
+#include <linux/loop.h>
+#include <pthread.h>
+
+#include "alloc-util.h"
+#include "dissect-image.h"
+#include "fd-util.h"
+#include "fileio.h"
+#include "fs-util.h"
+#include "gpt.h"
+#include "missing_loop.h"
+#include "mkfs-util.h"
+#include "mount-util.h"
+#include "namespace-util.h"
+#include "string-util.h"
+#include "strv.h"
+#include "tests.h"
+#include "tmpfile-util.h"
+#include "user-util.h"
+#include "virt.h"
+
+#define N_THREADS 5
+#define N_ITERATIONS 3
+
+static usec_t end = 0;
+
+static void* thread_func(void *ptr) {
+        int fd = PTR_TO_FD(ptr);
+        int r;
+
+        for (unsigned i = 0; i < N_ITERATIONS; i++) {
+                _cleanup_(loop_device_unrefp) LoopDevice *loop = NULL;
+                _cleanup_(umount_and_rmdir_and_freep) char *mounted = NULL;
+                _cleanup_(dissected_image_unrefp) DissectedImage *dissected = NULL;
+
+                if (now(CLOCK_MONOTONIC) >= end) {
+                        log_notice("Time's up, exiting thread's loop");
+                        break;
+                }
+
+                log_notice("> Thread iteration #%u.", i);
+
+                assert_se(mkdtemp_malloc(NULL, &mounted) >= 0);
+
+                r = loop_device_make(fd, O_RDONLY, 0, UINT64_MAX, LO_FLAGS_PARTSCAN, &loop);
+                if (r < 0)
+                        log_error_errno(r, "Failed to allocate loopback device: %m");
+                assert_se(r >= 0);
+
+                log_notice("Acquired loop device %s, will mount on %s", loop->node, mounted);
+
+                r = dissect_image(loop->fd, NULL, NULL, DISSECT_IMAGE_READ_ONLY, &dissected);
+                if (r < 0)
+                        log_error_errno(r, "Failed dissect loopback device %s: %m", loop->node);
+                assert_se(r >= 0);
+
+                log_info("Dissected loop device %s", loop->node);
+
+                for (PartitionDesignator d = 0; d < _PARTITION_DESIGNATOR_MAX; d++) {
+                        if (!dissected->partitions[d].found)
+                                continue;
+
+                        log_notice("Found node %s fstype %s designator %s",
+                                   dissected->partitions[d].node,
+                                   dissected->partitions[d].fstype,
+                                   partition_designator_to_string(d));
+                }
+
+                assert_se(dissected->partitions[PARTITION_ESP].found);
+                assert_se(dissected->partitions[PARTITION_ESP].node);
+                assert_se(dissected->partitions[PARTITION_XBOOTLDR].found);
+                assert_se(dissected->partitions[PARTITION_XBOOTLDR].node);
+                assert_se(dissected->partitions[PARTITION_ROOT].found);
+                assert_se(dissected->partitions[PARTITION_ROOT].node);
+                assert_se(dissected->partitions[PARTITION_HOME].found);
+                assert_se(dissected->partitions[PARTITION_HOME].node);
+
+                r = dissected_image_mount(dissected, mounted, UID_INVALID, DISSECT_IMAGE_READ_ONLY);
+                log_notice_errno(r, "Mounted %s → %s: %m", loop->node, mounted);
+                assert_se(r >= 0);
+
+                log_notice("Unmounting %s", mounted);
+                mounted = umount_and_rmdir_and_free(mounted);
+
+                log_notice("Unmounted.");
+
+                dissected = dissected_image_unref(dissected);
+
+                log_notice("Detaching loop device %s", loop->node);
+                loop = loop_device_unref(loop);
+                log_notice("Detached loop device.");
+        }
+
+        log_notice("Leaving thread");
+
+        return NULL;
+}
+
+static bool have_root_gpt_type(void) {
+#ifdef GPT_ROOT_NATIVE
+        return true;
+#else
+        return false;
+#endif
+}
+
+int main(int argc, char *argv[]) {
+        _cleanup_free_ char *p = NULL, *cmd = NULL;
+        _cleanup_(pclosep) FILE *sfdisk = NULL;
+        _cleanup_(loop_device_unrefp) LoopDevice *loop = NULL;
+        _cleanup_close_ int fd = -1;
+        _cleanup_(dissected_image_unrefp) DissectedImage *dissected = NULL;
+        _cleanup_(umount_and_rmdir_and_freep) char *mounted = NULL;
+        pthread_t threads[N_THREADS];
+        const char *fs;
+        sd_id128_t id;
+        int r;
+
+        test_setup_logging(LOG_DEBUG);
+        log_show_tid(true);
+        log_show_time(true);
+
+        if (!have_root_gpt_type()) {
+                log_tests_skipped("No root partition GPT defined for this architecture, exiting.");
+                return EXIT_TEST_SKIP;
+        }
+
+        if (detect_container() > 0) {
+                log_tests_skipped("Test not supported in a container, requires udev/uevent notifications.");
+                return EXIT_TEST_SKIP;
+        }
+
+        if (strstr_ptr(ci_environment(), "autopkgtest")) {
+                // FIXME: we should reenable this one day
+                log_tests_skipped("Skipping test on Ubuntu autopkgtest CI, test too slow and installed udev too flakey.");
+                return EXIT_TEST_SKIP;
+        }
+
+        /* This is a test for the loopback block device setup code and it's use by the image dissection
+         * logic: since the kernel APIs are hard use and prone to races, let's test this in a heavy duty
+         * test: we open a bunch of threads and repeatedly allocate and deallocate loopback block devices in
+         * them in parallel, with an image file with a number of partitions. */
+
+        r = detach_mount_namespace();
+        if (ERRNO_IS_PRIVILEGE(r)) {
+                log_tests_skipped("Lacking privileges");
+                return EXIT_TEST_SKIP;
+        }
+
+        FOREACH_STRING(fs, "vfat", "ext4") {
+                r = mkfs_exists(fs);
+                assert_se(r >= 0);
+                if (!r) {
+                        log_tests_skipped("mkfs.{vfat|ext4} not installed");
+                        return EXIT_TEST_SKIP;
+                }
+        }
+
+        assert_se(r >= 0);
+
+        assert_se(tempfn_random_child("/var/tmp", "sfdisk", &p) >= 0);
+        fd = open(p, O_CREAT|O_EXCL|O_RDWR|O_CLOEXEC|O_NOFOLLOW, 0666);
+        assert_se(fd >= 0);
+        assert_se(ftruncate(fd, 256*1024*1024) >= 0);
+
+        assert_se(cmd = strjoin("sfdisk ", p));
+        assert_se(sfdisk = popen(cmd, "we"));
+
+        /* A reasonably complex partition table that fits on a 64K disk */
+        fputs("label: gpt\n"
+              "size=32M, type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B\n"
+              "size=32M, type=BC13C2FF-59E6-4262-A352-B275FD6F7172\n"
+              "size=32M, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F\n"
+              "size=32M, type=", sfdisk);
+
+#ifdef GPT_ROOT_NATIVE
+        fprintf(sfdisk, SD_ID128_UUID_FORMAT_STR, SD_ID128_FORMAT_VAL(GPT_ROOT_NATIVE));
+#else
+        fprintf(sfdisk, SD_ID128_UUID_FORMAT_STR, SD_ID128_FORMAT_VAL(GPT_ROOT_X86_64));
+#endif
+
+        fputs("\n"
+              "size=32M, type=933AC7E1-2EB4-4F13-B844-0E14E2AEF915\n", sfdisk);
+
+        assert_se(pclose(sfdisk) == 0);
+        sfdisk = NULL;
+
+        assert_se(loop_device_make(fd, O_RDWR, 0, UINT64_MAX, LO_FLAGS_PARTSCAN, &loop) >= 0);
+        assert_se(dissect_image(loop->fd, NULL, NULL, 0, &dissected) >= 0);
+
+        assert_se(dissected->partitions[PARTITION_ESP].found);
+        assert_se(dissected->partitions[PARTITION_ESP].node);
+        assert_se(dissected->partitions[PARTITION_XBOOTLDR].found);
+        assert_se(dissected->partitions[PARTITION_XBOOTLDR].node);
+        assert_se(dissected->partitions[PARTITION_ROOT].found);
+        assert_se(dissected->partitions[PARTITION_ROOT].node);
+        assert_se(dissected->partitions[PARTITION_HOME].found);
+        assert_se(dissected->partitions[PARTITION_HOME].node);
+
+        assert_se(sd_id128_randomize(&id) >= 0);
+        assert_se(make_filesystem(dissected->partitions[PARTITION_ESP].node, "vfat", "EFI", id, true) >= 0);
+
+        assert_se(sd_id128_randomize(&id) >= 0);
+        assert_se(make_filesystem(dissected->partitions[PARTITION_XBOOTLDR].node, "vfat", "xbootldr", id, true) >= 0);
+
+        assert_se(sd_id128_randomize(&id) >= 0);
+        assert_se(make_filesystem(dissected->partitions[PARTITION_ROOT].node, "ext4", "root", id, true) >= 0);
+
+        assert_se(sd_id128_randomize(&id) >= 0);
+        assert_se(make_filesystem(dissected->partitions[PARTITION_HOME].node, "ext4", "home", id, true) >= 0);
+
+        dissected = dissected_image_unref(dissected);
+        assert_se(dissect_image(loop->fd, NULL, NULL, 0, &dissected) >= 0);
+
+        assert_se(mkdtemp_malloc(NULL, &mounted) >= 0);
+
+        /* This first (writable) mount will initialize the mount point dirs, so that the subsequent read-only ones can work */
+        assert_se(dissected_image_mount(dissected, mounted, UID_INVALID, 0) >= 0);
+
+        assert_se(umount_recursive(mounted, 0) >= 0);
+        loop = loop_device_unref(loop);
+
+        log_notice("Threads are being started now");
+
+        /* Let's make sure we run for 10s on slow systems at max */
+        end = usec_add(now(CLOCK_MONOTONIC),
+                       slow_tests_enabled() ? 5 * USEC_PER_SEC :
+                       1 * USEC_PER_SEC);
+
+        for (unsigned i = 0; i < N_THREADS; i++)
+                assert_se(pthread_create(threads + i, NULL, thread_func, FD_TO_PTR(fd)) == 0);
+
+        log_notice("All threads started now.");
+
+        for (unsigned i = 0; i < N_THREADS; i++) {
+                log_notice("Joining thread #%u.", i);
+
+                void *k;
+                assert_se(pthread_join(threads[i], &k) == 0);
+                assert_se(k == NULL);
+
+                log_notice("Joined thread #%u.", i);
+        }
+
+        log_notice("Threads are all terminated now.");
+
+        return 0;
+}
index 89b760fae436d2ed53b5951b34cf96f4d7c87618..58d8c29dbb0b49006efccb8f5c3d43c1782388ca 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 #include <string.h>
index 6986405dc6c89f685195f2c5ca54185bc76d9ddd..41df5588d082948a11a15a1951c1fa6a6ba8bcbc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/mount.h>
 
index ada5b1712c6a5df5d937903f0d883d6ef3bbaef5..287488b7c133e6682e9aed0ad9ce7403c7d7a815 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sched.h>
 #include <sys/mount.h>
index 7571e609a26fe8236a4c691881b00a9a6c91a9ca..e234f54deee8ed03d89c705e22a936e1507cc2ea 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/socket.h>
index a734524eebd403ed3ddd7667b89f91f499545884..49aca68c49bc3670c27a1a8a4d3439c633be95c3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <arpa/inet.h>
 #include <linux/if_tunnel.h>
index 5d7931f619e1d6eab68547db7c79bbc4c098b6ba..6ec1cff28ad2ee82393415718353d573d53d24fb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdlib.h>
index 97c219596d1b876a28304ec1a46a2ba07dc83fe6..1a5a8082f3ca88b27a554f8a72df2f4775745343 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "main-func.h"
 #include "nscd-flush.h"
index 293d7a8468b2b342daafbae536a11bff6d7a0576..2e9414d16d54eea127f5baf5dd34a743bc3f65f7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <dlfcn.h>
 #include <net/if.h>
index 5933ec28a3241e0142270c58d2662605d5a14cb6..1a961d125bbdde3e250224b343d660ca306cf79a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 
index 268c54fccc78ab54cc81cc52e5331135c63b3390..0fbdd9706f69590d3e8d9cad74fe38f73d4df28b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index c215a2e99e945787d730d83c6cd19e5f9d2b1bff..ef630269459be777baf1e1b42e22b94571a2700b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index d4f908f5d46875601965cb93ed2dd436f5181999..1c969091ef7052bd108bb56c1f3bb635be3a99b7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <linux/loadavg.h>
index b9111e9259eff6c047e19a84ab63cde7d090f17b..da146aac2a0cb5ce45a7e5dabd7b679e99ca10a8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdlib.h>
 #include <sys/stat.h>
index e98c19dd6cc5e2bc7f512f46bd585261cfa22c76..36108f548b70d72f0c80eb31c71db5bbf17144c7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 #include <unistd.h>
index 2e20674c2f39ebaca5489d7950266d2c9e18e9c4..490fb136a7604b6185371f36587297a87d9390e0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdbool.h>
 #include <sys/stat.h>
index 9236eb131581c7a33762d50a9c5c5c05bec1e878..dbae34e73e490a28ec2595d93c2a815ac24c70c8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 #include <sys/stat.h>
index 50f66cb970b280f49d62e2d2bb768cbdd8f1bdff..4bfa18195e5abccd1f2b38a9db903de5c4f18733 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdlib.h>
 
index 4a9b111a20ab5bc0bfd56c60de3fa197ca813618..1f5ee7d768d994f4c55a519d3cdc4e094f052eb0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "env-util.h"
index b00dd4a980df747ccdeecb13044cd760cf06b817..a87cdf8747a96506f009197b545ff9f2ca294c3b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/mount.h>
index 61434578b0b87865a5cfd02d447552a1f8605c46..b2679e30fb24b17794b81fab7546895323998202 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 
index bde8ef80b1a259a31edb9ad2f34bc73c2cfad01a..0b5a30cf57efe5d33e75b0433b66c29649fd1923 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/loadavg.h>
 
diff --git a/src/test/test-qrcode-util.c b/src/test/test-qrcode-util.c
new file mode 100644 (file)
index 0000000..221ad85
--- /dev/null
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include "locale-util.h"
+#include "main-func.h"
+#include "qrcode-util.h"
+#include "tests.h"
+
+static int run(int argc, char **argv) {
+        int r;
+
+        test_setup_logging(LOG_DEBUG);
+
+        assert_se(setenv("SYSTEMD_COLORS", "1", 1) == 0); /* Force the qrcode to be printed */
+
+        r = print_qrcode(stdout, "This should say \"TEST\"", "TEST");
+        if (r == -EOPNOTSUPP)
+                return log_tests_skipped("not supported");
+        if (r < 0)
+                return log_error_errno(r, "Failed to print QR code: %m");
+        return 0;
+}
+
+DEFINE_MAIN_FUNCTION(run);
index ad5bc72a4e138c0e1e3ca68155a3b47765130541..02a73ecdb269621be12ebe50a129406078db81cc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "hexdecoct.h"
 #include "random-util.h"
index 56a6fa2d76617d714f366a933457fec704575f3a..af60572e050bc007b0c7b946c8e36b1546062d7b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index 8620e72b2b736e83f8895e17d0297c629cf7b1b0..4d699b92f088aaf53a16f44adce407e7b64e4803 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index 90eda96a738a6d4c4a1a30058107330ed081b8b5..057ae6b2bce34e38906855e22bb2a5371bdac3e8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/resource.h>
 
index d6e426c0fbec1159e40faca36157c14bdcbdc400..38aa100e0bbab2d8cd96d119d9c49186d8a509e7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index da6d2a21e66cf14f2a506df086542c7e4ec69e68..1f125b1d1e23035b0d90921a187923961e25cfa9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2012 Holger Hans Peter Freyther
 ***/
index eb34d8eab2d83cfaf286b5e7e25abedcd03085bd..7e1512a97dc6b0c6a313e5ad1c33108d45d1d94a 100644 (file)
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
 #include "sd-hwdb.h"
 
 #include "alloc-util.h"
index 9260db5aceefd9df3a9868e73d179424939a6210..75436ab1ced62d4ef52139df7c4f8a8875b654ef 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-path.h"
 
index 8831d87fe781c46592192c8cefb78b3e59e6e47e..853b0ef3b938b3eb2a2fb09ad88211b0621428fa 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <poll.h>
index 59b4f719466ec4b02cd5b0bbc43699387f38a65c..3eb7ad30cf5e66daa631876733adfe202ce98612 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/stat.h>
 
index a57d5db2b10c4242082f3a24bf906731d9192c7f..7bd53a861dad3c1f1849240a743ec67f1627207e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "escape.h"
 #include "fd-util.h"
index aea83d2679c53e7e9b67b5628169db435a58dabd..ae36fac10296566803cbf0fe9b3b0f2fe6b74311 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <pthread.h>
 
index d3e6de79789c685b3a4ef06914ecab3f96792dce..16314d051b6d1f529137ab01b0e5fe9fe8830247 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "set.h"
 #include "strv.h"
index f753e3836ed687fa0745c968770d4a70e076bffb..d141735320a2f3a169b1a9a94f5610ea8c48656a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <sys/mman.h>
index 1a8c60ad4204fdec4dfa3102393e55c75d1edb85..e5096a8c00c4629b352c63a7f044c5a81f10c942 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 
index 6ae272fa94233fd3fc643f2ec57cb08652ce5f9d..4a1672fb950fe7b9c3ebbeac2f4da483dddd4aeb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "memory-util.h"
 #include "siphash24.h"
index 6dee2022e8f0d9e2c599aca7838e3326cc539878..3c9dc180fa455281486d57d555b7cd8eb3fc3a32 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sched.h>
 #include <stdio.h>
index 8b4fa82640b443f660c149609fbd843c72f69828..d916254cc9b7a8318f8e58307f8ac21f149159ba 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <inttypes.h>
index afb7038621445d62758f0b82abb370c173286d3c..704cc01e6f39e0b864ef8520bfcd320af5dc9f7c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "missing_network.h"
index 1bb186655dea2b295821ef01fd841f655ad34ecc..4ff7d714f8f79cf2f261e71a4d3c4fb6d9844243 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <grp.h>
index e81b12b418a63fb0e170e62b5f8464cb29599bb5..b1e8a61021e8395248e2b26d9db83471a74e0636 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "log.h"
index 13a66dfb173d463a07a2caf2ff56be5902c6e2b7..9aca09c4defa359f59a1bd6567a4e0f6bd2768b9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <linux/magic.h>
index eb0523d87ae62a199d475224d638b139aaaeb6f0..904a9bbf5de10b19e015d223840666c969730d7d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "static-destruct.h"
index 483ba44caa1394691d3ce7995f67e53b6bc5b405..867be19c86025df108cce59e8acccf05bcba1f25 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdlib.h>
 
index 196c96aa8cdd033e33a3b8c20b77883c00b6d09e..b74eb180f3fbeaffb29cfb4f00eb144176d11488 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "locale-util.h"
index 8e305f3791269d25ef24904807bede47b31ff3ba..be54b0d4d62482070092100a0079ab6a820ea706 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index f681795ebe656dd681495480d49d4f23a7009beb..0c46af05cca0e8a9883768df09f3c8ebd82fd52f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "escape.h"
index 749aa46d75f2debcee1c4e242e983c95567a921d..4b6d8ebce30d4c3196c11e9abcb097281648dc89 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 
index 2b957dd4d6c233d3ca7ffea9b183593b8b3c1fa3..a6f449b76478ad88d147025742a02e11d67ea375 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "strv.h"
 #include "sysctl-util.h"
index 7f4af38940e7d9b6e28861cd3d502b71d94a9d29..255922d05b04c5043fefe77c089de03a8cfae67e 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # systemd is free software; you can redistribute it and/or modify it
 # under the terms of the GNU Lesser General Public License as published by
index 72736111438555232237e2e48cea3c03f48a2f65..e25cf9e5d91287727ad6da85d4c76557ca0955ac 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "architecture.h"
 #include "automount.h"
index 003257111afd393dbebb26823cb38bf35e5b42b2..508f0c03ee332909ad60858a5c8939598937fc40 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <stdbool.h>
index 64242951acac11740545fea29788b071b03151af..cfe8753441c6a42f59eb6716a48bb291367fe187 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "random-util.h"
 #include "serialize.h"
index b5268716554bbc981975a2c7b2ad2d2a6a2f3809..4c3389af8c5aedc4dfcfe582df689a87b73ca0c6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <stdio.h>
diff --git a/src/test/test-udev-util.c b/src/test/test-udev-util.c
new file mode 100644 (file)
index 0000000..b0213f8
--- /dev/null
@@ -0,0 +1,202 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "macro.h"
+#include "string-util.h"
+#include "udev-util.h"
+
+static void test_udev_rule_parse_value_one(const char *in, const char *expected_value, int expected_retval) {
+        _cleanup_free_ char *str = NULL;
+        char *value = UINT_TO_PTR(0x12345678U);
+        char *endpos = UINT_TO_PTR(0x87654321U);
+
+        assert_se(str = strdup(in));
+        assert_se(udev_rule_parse_value(str, &value, &endpos) == expected_retval);
+        if (expected_retval < 0) {
+                /* not modified on failure */
+                assert_se(value == UINT_TO_PTR(0x12345678U));
+                assert_se(endpos == UINT_TO_PTR(0x87654321U));
+        } else {
+                assert_se(streq_ptr(value, expected_value));
+                assert_se(endpos == str + strlen(in));
+        }
+}
+
+static void test_parse_value(void) {
+        /* input: "valid operand"
+         * parsed: valid operand
+         * use the following command to help generate textual C strings:
+         * python3 -c 'import json; print(json.dumps(input()))' */
+        test_udev_rule_parse_value_one(
+                "\"valid operand\"",
+                "valid operand",
+                0
+        );
+}
+
+static void test_parse_value_with_backslashes(void) {
+        /* input: "va'l\'id\"op\"erand"
+         * parsed: va'l\'id"op"erand */
+        test_udev_rule_parse_value_one(
+                "\"va'l\\'id\\\"op\\\"erand\"",
+                "va'l\\'id\"op\"erand",
+                0
+        );
+}
+
+static void test_parse_value_no_quotes(void) {
+        test_udev_rule_parse_value_one(
+                "no quotes",
+                0,
+                -EINVAL
+        );
+}
+
+static void test_parse_value_noescape(void) {
+        test_udev_rule_parse_value_one(
+                "\"\\\\a\\b\\x\\y\"",
+                "\\\\a\\b\\x\\y",
+                0
+        );
+}
+
+static void test_parse_value_nul(void) {
+        test_udev_rule_parse_value_one(
+                "\"reject\0nul\"",
+                0,
+                -EINVAL
+        );
+}
+
+static void test_parse_value_escape_nothing(void) {
+        /* input: e"" */
+        test_udev_rule_parse_value_one(
+                "e\"\"",
+                "",
+                0
+        );
+}
+
+static void test_parse_value_escape_nothing2(void) {
+        /* input: e"1234" */
+        test_udev_rule_parse_value_one(
+                "e\"1234\"",
+                "1234",
+                0
+        );
+}
+
+static void test_parse_value_escape_double_quote(void) {
+        /* input: e"\"" */
+        test_udev_rule_parse_value_one(
+                "e\"\\\"\"",
+                "\"",
+                0
+        );
+}
+
+static void test_parse_value_escape_backslash(void) {
+        /* input: e"\ */
+        test_udev_rule_parse_value_one(
+                "e\"\\",
+                0,
+                -EINVAL
+        );
+        /* input: e"\" */
+        test_udev_rule_parse_value_one(
+                "e\"\\\"",
+                0,
+                -EINVAL
+        );
+        /* input: e"\\" */
+        test_udev_rule_parse_value_one(
+                "e\"\\\\\"",
+                "\\",
+                0
+        );
+        /* input: e"\\\" */
+        test_udev_rule_parse_value_one(
+                "e\"\\\\\\\"",
+                0,
+                -EINVAL
+        );
+        /* input: e"\\\"" */
+        test_udev_rule_parse_value_one(
+                "e\"\\\\\\\"\"",
+                "\\\"",
+                0
+        );
+        /* input: e"\\\\" */
+        test_udev_rule_parse_value_one(
+                "e\"\\\\\\\\\"",
+                "\\\\",
+                0
+        );
+}
+
+static void test_parse_value_newline(void) {
+        /* input: e"operand with newline\n" */
+        test_udev_rule_parse_value_one(
+                "e\"operand with newline\\n\"",
+                "operand with newline\n",
+                0
+        );
+}
+
+static void test_parse_value_escaped(void) {
+        /* input: e"single\rcharacter\t\aescape\bsequence" */
+        test_udev_rule_parse_value_one(
+                "e\"single\\rcharacter\\t\\aescape\\bsequence\"",
+                "single\rcharacter\t\aescape\bsequence",
+                0
+        );
+}
+
+static void test_parse_value_invalid_escape(void) {
+        /* input: e"reject\invalid escape sequence" */
+        test_udev_rule_parse_value_one(
+                "e\"reject\\invalid escape sequence",
+                0,
+                -EINVAL
+        );
+}
+
+static void test_parse_value_invalid_termination(void) {
+        /* input: e"\ */
+        test_udev_rule_parse_value_one(
+                "e\"\\",
+                0,
+                -EINVAL
+        );
+}
+
+static void test_parse_value_unicode(void) {
+        /* input: "s\u1d1c\u1d04\u029c \u1d1c\u0274\u026a\u1d04\u1d0f\u1d05\u1d07 \U0001d568\U0001d560\U0001d568" */
+        test_udev_rule_parse_value_one(
+                "e\"s\\u1d1c\\u1d04\\u029c \\u1d1c\\u0274\\u026a\\u1d04\\u1d0f\\u1d05\\u1d07 \\U0001d568\\U0001d560\\U0001d568\"",
+                "s\xe1\xb4\x9c\xe1\xb4\x84\xca\x9c \xe1\xb4\x9c\xc9\xb4\xc9\xaa\xe1\xb4\x84\xe1\xb4\x8f\xe1\xb4\x85\xe1\xb4\x87 \xf0\x9d\x95\xa8\xf0\x9d\x95\xa0\xf0\x9d\x95\xa8",
+                0
+        );
+}
+
+int main(int argc, char **argv) {
+        test_parse_value();
+        test_parse_value_with_backslashes();
+        test_parse_value_no_quotes();
+        test_parse_value_nul();
+        test_parse_value_noescape();
+
+        test_parse_value_escape_nothing();
+        test_parse_value_escape_nothing2();
+        test_parse_value_escape_double_quote();
+        test_parse_value_escape_backslash();
+        test_parse_value_newline();
+        test_parse_value_escaped();
+        test_parse_value_invalid_escape();
+        test_parse_value_invalid_termination();
+        test_parse_value_unicode();
+
+        return EXIT_SUCCESS;
+}
index 00cab7bb45c988cae8da088c782ad3b389df80a5..8acf86da37785f4d57c787f0c8dc63c7d2ac4fb8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2003-2004 Greg Kroah-Hartman <greg@kroah.com>
 ***/
index 65a556c9c61c5cd459a9f62f64807e908354f84a..16cbab07d605f7b6896fbe171f6798f08a9fc5b9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stddef.h>
 
index 27f6b565413075560edec1e6b228b3e7f9c725a8..df3ae98f5050238f5bf0c58e08d3c9db29d85a5b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "tests.h"
 #include "umask-util.h"
index 02852bc089e2aa11f3541250bfc4387098bc429f..676c6dd862a7e1211a6ce131467c607eb3f7f4bd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "errno-util.h"
index 3d6f9a03b4415b587991a5bcf75c9ec8f52b5b93..b4d380b5292f31a868fdcb4c97f574573b308807 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "memory-util.h"
 #include "sparse-endian.h"
index d1f85a7f26a4c2fc8e50cbc4e9a411471889214c..8f9679051daaca6c3990bbb651537f3803c440f2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "path-lookup.h"
 #include "set.h"
index 0d524f9a5626dd13511f028159f361eddd5d5f67..ece78aa5486b21c2efe1ec028b3dd19f9b3ed22d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdio.h>
 #include <stdlib.h>
index d623706648b8ae6e95db2b21dd7ac53909c5f2cb..c9182e382bda184f48fcf372d47bf212f1e938d3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <unistd.h>
 #include <sys/types.h>
index 306d08a2824cb9640075a6ed385da9796da19610..8924b5f95a16b354a9367a1124b0c5ccad21708f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "format-util.h"
index 66003ac13eb112ff65f1df903f98f14d23be4554..c7b6d8dd534ec427e4bf68c39fcd683d6de4c149 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "string-util.h"
index cfbafcc5ca630d1bf4ca665731639543d247d066..0fe7a381c708ee6e827f17a5f3955e799a0c9d75 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/wait.h>
index fbfc72cd81a76d742a4875b217baf3e2f24ba622..9a5fbc6c8e280f8ba449f019660c059de6f933d8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <poll.h>
index 24593c75d9e72dffd2f7741c3bee003f318b6dea..b7a0cbf5273919c0d83758d679cc9a659feec7b5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 
index 28ecffb0c0bb187adf7b063fe8c8d2d18617e7fe..4afc46f10f04a58e55a7d0800b5454662f83753d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "log.h"
 #include "manager.h"
index ab66d5c49d83f5757df32961ac86401b3960b819..cbef75fe07ff7f73399c1d254ba2b34a193dcc48 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <string.h>
 #include <unistd.h>
index dd1df8c247b4fb987d38f864dbf1e353ee0bcf8a..853ea9c2919cc4426327e66496e77660d7ecfe81 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "macro.h"
 #include "web-util.h"
index 3e6df96c5df5f51917b015990be365f04845f658..f93aca68f083a2d9582518dcbcef10fdae00942c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 70287b3c554f7901ea44fcb65e239d74439b5e59..a437e2cfedda3d5bd5da87e6a6bf81a35581f3b3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "fd-util.h"
index 63e7a10e7b1d11447c04011c55d140cee34c2bf5..e69d6d0fe4bc25e7655f3d7c0777d4d45398f7b0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdarg.h>
 
index 96072445f6efe4b9eac9250cf6a3d94e4dc52e47..df34541bf702ce6bf45912cab726afd251cfb0e3 100644 (file)
@@ -1,11 +1,5 @@
-/*
- * systemd service to wait until kernel realtime clock is synchronized
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- * USA
- */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/* systemd service to wait until kernel realtime clock is synchronized */
 
 #include <errno.h>
 #include <stdbool.h>
index 46c7360da3e50f5a14a9ee6d62851b436abbc427..6eb9607e084615441c8b61c622f6c205fe9aa7c1 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 if conf.get('ENABLE_TIMEDATED') == 1
         install_data('org.freedesktop.timedate1.conf',
index 53f6c8435d7f54f0fb497e6a4f19db4c43868073..4567082281d2842e2f73b3dbbe1ddf2384a7314b 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This file is part of systemd.
 
index b6303ba1dd20739268a0c166fb2754e9f47c5e01..c4e71b075308209ac5853816bd0e6ab50ab49d25 100644 (file)
@@ -3,7 +3,7 @@
         "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
 
 <!--
-  SPDX-License-Identifier: LGPL-2.1+
+  SPDX-License-Identifier: LGPL-2.1-or-later
 
   This file is part of systemd.
 
index d5f3a6e30d941f65f07c3d323c9b183a460a1dc7..6b82d700f96e9faeb488eb88fd03b125547129ca 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 0131bbed8cff0acb98e3f005b9532349f00b088c..455c602c30f287a7d8c2754d5c18f03e8b75657d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <locale.h>
index c467b854775aa9be022c00aeb0ef13ffc456aac5..cdc0938d5ff309eb7ef4b4679d162a0d5fe3fc7e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/stat.h>
index e5c118c8db7b1cc1cd91391317ddb317f77714a6..22b6347babd98f9d0c7f49694d538e869cb88360 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_timesyncd_sources = files('''
         timesyncd.c
index 84b4b4f973f8f849368062ad198f3e19ce915909..98878d6ac900660c4da256b3001f2ff11629eb72 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index bd03a1dd90aca6b37fa7494c56ec395c2d39e577..31e91e7b7b06a6a1ab6a591d41c2b199c192ddb2 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 /* Some unit tests for the helper functions in timesyncd. */
 
index 6effdfc3250fb76aaeae50b525b370643970e236..c5ad5feb958e84ac42b9c56ba2590ec61fe657c9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "sd-bus.h"
 
index 6670ffbc360ab81502e086e1dcdb54739b3a99a9..83db2167e269d6a20555b3241c701bfb15f79520 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "timesyncd-manager.h"
index d7ec94e487b561b252c76b6c6a8fab435056740e..2c3114613bbe1ee3376eabce9fa7b9f5ecd6ec96 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "def.h"
index bbe27cf2ac3b83a357b3c5727145fedbba0119cb..d6b9060401c47d7c627fe5593e7915b30a1628b3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "conf-parser.h"
index 0fab37d78345eb832bfe604c12e277461e41985f..93ba4ef87d49fa068c2f924daa59c9f107a03766 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <math.h>
index d74521c9cf59a64abeca0031bb12c20979eed71b..940a88ed7ba03e90b85b94ff790f82222ee8eae8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include <sys/timex.h>
index 14fba6d2cc084a455596d45bde3d1e90057944be..76ed9ecac609336bb2cac6a9a3e7ba276fc3c325 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sparse-endian.h"
index aadecb6a1cd8a5f2bea3845414f636b8e6631aa7..f7ec317f413df91ed293038d0f532454fcbcb141 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "alloc-util.h"
 #include "timesyncd-server.h"
index d30bd2a3ce31e764e3f1d295caba9a0733877307..8e9e408eccb09781f09f5df42af1a596a8907507 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "list.h"
index 4f514d536d0b73a00e6eecbd359711f394d46ff5..1f59bf14e1aa59bc03dfe5bd74344d61c85a1ae7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/stat.h>
 #include <sys/types.h>
index 434dcf800dbc2f849b5126040bd084e5ac25a60b..2d61568c6642739ae6ae56b70738e4ba72b91a91 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_tmpfiles_sources = [
         'src/tmpfiles/tmpfiles.c',
index b6596fd0c731168935e5c599193ff18c89c3e0f6..eb63bc38073a8ff35571ead10d8c2d0c02843777 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
@@ -1104,13 +1104,17 @@ static int path_set_acl(const char *path, const char *pretty, acl_type_t type, a
                   strna(t), pretty);
 
         r = acl_set_file(path, type, dup);
-        if (r < 0)
-                /* Return positive to indicate we already warned */
-                return -log_error_errno(errno,
-                                        "Setting %s ACL \"%s\" on %s failed: %m",
-                                        type == ACL_TYPE_ACCESS ? "access" : "default",
-                                        strna(t), pretty);
-
+        if (r < 0) {
+                if (ERRNO_IS_NOT_SUPPORTED(errno))
+                        /* No error if filesystem doesn't support ACLs. Return negative. */
+                        return -errno;
+                else
+                        /* Return positive to indicate we already warned */
+                        return -log_error_errno(errno,
+                                                "Setting %s ACL \"%s\" on %s failed: %m",
+                                                type == ACL_TYPE_ACCESS ? "access" : "default",
+                                                strna(t), pretty);
+        }
         return 0;
 }
 #endif
@@ -1150,6 +1154,11 @@ static int fd_set_acls(Item *item, int fd, const char *path, const struct stat *
         if (r == 0 && item->acl_default && S_ISDIR(st->st_mode))
                 r = path_set_acl(procfs_path, path, ACL_TYPE_DEFAULT, item->acl_default, item->append_or_force);
 
+        if (ERRNO_IS_NOT_SUPPORTED(r)) {
+                log_debug_errno(r, "ACLs not supported by file system at %s", path);
+                return 0;
+        }
+
         if (r > 0)
                 return -r; /* already warned */
 
@@ -1157,10 +1166,6 @@ static int fd_set_acls(Item *item, int fd, const char *path, const struct stat *
         if (r == -ENOENT && proc_mounted() == 0)
                 r = -ENOSYS;
 
-        if (r == -EOPNOTSUPP) {
-                log_debug_errno(r, "ACLs not supported by file system at %s", path);
-                return 0;
-        }
         if (r < 0)
                 return log_error_errno(r, "ACL operation on \"%s\" failed: %m", path);
 #endif
index 932f6e18b233689ffc7fc2ac141031fe6f4a1a2a..1940792b9d565243c02ec0c5bfd393d023ec6178 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2015 Werner Fink
 ***/
index b5e14922a25dd8b799d0627ae96bcc71bf9336d1..ce0bf5d24bea145ab4978fd00c07c4932d246c62 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * ata_id - reads product/serial number from ATA drives
  *
index 13b947beb1bc9e491c9790296b4e6579c7d0320b..804cc7c5aa5f9a47c99a3dc733357248370c5caf 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * cdrom_id - optical drive and media information prober
  */
index 83761d72b4534cbd344a93add82ccc6d7cad8b1a..f14b81d30df9354bd1da0854e964036d60575bc8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /*
  * Identifies FIDO CTAP1 ("U2F")/CTAP2 security tokens based on the usage declared in their report
  * descriptor and outputs suitable environment variables.
index bbfcf93709a7c1d4ebb108f87d4c81f7f1a0e405..2dfa759032b768b6f90bf11a108e2d80b43d58a0 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /* Inspired by Andrew Lutomirski's 'u2f-hidraw-policy.c' */
 
 #include <errno.h>
index c813a3a4547a9b0fa1d6acc2252ff601a269f473..57af57e889249ccaf80998fe6d59f321bcc797c3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #pragma once
 
index 45a4879e82ab89002d9152c8b2ccac03f522745c..44d66df1a04f452f9508df9f53ee3c4018798479 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/hid.h>
 #include <stdbool.h>
index 38eec2bc28d42b64a09cdced73262c5c6a411486..6836bca28d5ef35958dc6f57ee6b46e1766ef15c 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <stdint.h>
 #include <stdlib.h>
index aa23b07090458837902e340682e3948774d18452..e6dd4c7cac968e69a6f587249d81a45ed6fce2c1 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 udevadm_sources = files('''
         udevadm.c
index f47b13378c5c335cae26d35ebd375f02c16a94ed..df1f1c173a31f67d0c5669b9ce4a446b12bf0394 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * Copyright © 2010 - Maxim Levitsky
  *
index 1d8c93b7fd6809e0f75020ac897ca2456579a148..ae03a7d2f7ec33325472276a9df354e3317fa508 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 #pragma once
 
 /*
index f8e1b140f526a63d65cf1e5c27bf9145d4b31e87..f4612ba4f9cf4ece1911268afe103d89004603c8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * Copyright © 2010 - Maxim Levitsky
  *
index e0dacc732a18d1a3d536f1bc379bb952b6b6e649..6f3469c5b87fe17384ff6ce8c121782546bc44b5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "fd-util.h"
 #include "fs-util.h"
index c23c2bdd2057624f4ed66d6b5f63d02ee6983552..afb2cd4d1c9359b80a8fec458100aeb43745377f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <linux/netdevice.h>
 #include <netinet/ether.h>
index 8b5801c003fd15070099b64df7dab10980fd0021..eab1849fcd5808a6036745c2ced312ce877c2083 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-device.h"
index 208b3e72ab6b4673e6affd09529e54bbf5e17186..ee3e401b7a98cc42b4ba4943bf667faf3f49fca7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 #pragma once
 
 /*
index 9c33a560a8ccbfc0dc3f1399f36be8fd5e1d5501..57202564da5c155221689fd29ecb530f773b54ff 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * Copyright © IBM Corp. 2003
  * Copyright © SUSE Linux Products GmbH, 2006
index 70e804fb75de157946bb71c03962d408270a896f..2fe64f45f255d91514865e293bfe7c3f9c2beb90 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 #pragma once
 
 /*
index 7f25824df3d646d85da205368382bfce9830a832..4fe725477f53f48387cba87c7d14cb1f5bbd7c77 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * Copyright © IBM Corp. 2003
  *
index 1df41dab36bc34d9a21cbb491a9e5cd5cbd141f8..3f64548ad076a7df3717233619b65923815c43fb 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * probe disks for filesystems and partitions
  *
index 1f0073e5cde74a510f80094f2788ff2c23360148..9079d1b8e97207c89125ce36b15da53fc791c29d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <fcntl.h>
 #include <linux/btrfs.h>
index 59ae6c7ad44ee3449235f6cecc08eaa9385e9d9d..78835185b07345d12c4509a30f4a25b2438c1490 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fnmatch.h>
index 81dd03e4c50db79652f32b39e5c0bdc436cc562b..6a4911ca348771959e18abac5606836b88d5db9a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * expose input properties via udev
  *
index 48146105e043a916f8df37ed5681cc5735828826..cd766a8b6a5c76f0c2d7e358b2b50dfb66539cdc 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index b3daddcdd5465c29ba2f04c2520b4b456c93f33e..3be8bd56f4648b19e0716c17cd81af193536bd74 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * load kernel modules
  *
index d3db37a8e013a050d283e361271dea178804f6ef..d06a8c71560dd3436d0612a0624a8e3299f2ebc8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 /*
  * Predictable network interface device names based on:
index ee3ca9fa38469c6c118376e182afe724f7c623ae..cb12b943fe7d95d04b1e561229be87540a08cc6d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "device-util.h"
 #include "alloc-util.h"
@@ -19,7 +19,10 @@ static int builtin_net_setup_link(sd_device *dev, int argc, char **argv, bool te
                 return log_device_error_errno(dev, SYNTHETIC_ERRNO(EINVAL), "This program takes no arguments.");
 
         r = link_get_driver(ctx, dev, &driver);
-        if (r >= 0)
+        if (r < 0)
+                log_device_full_errno(dev, r == -EOPNOTSUPP ? LOG_DEBUG : LOG_WARNING,
+                                      r, "Failed to query device driver: %m");
+        else
                 udev_builtin_add_property(dev, test, "ID_NET_DRIVER", driver);
 
         r = link_config_get(ctx, dev, &link);
index 6c020ac0ed0037db2ebdb928f0994f7833a6947b..0da59e2c756e589570aa2431ca0fd87da2ecc810 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * compose persistent device path
  *
index d552316eee07cd319d11eab01d5500a023fa5593..cfdf130f12773ca466043896d1163d00973535a6 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * manage device node user ACL
  */
index 758b5ed7e215a3efa7236b07aea4e2a59efe89cd..fa554e740f3dae6cde09c4274dca181b070fa651 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * USB device properties and persistent device path
  *
index b13c1bffe5c8e128b66b8ce84f1c84664dec2c5f..80d17662b20670ac199f87215019a6352ceb7865 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <stdio.h>
index 99af505551452bdc6ca18d607b1f1282c6c49bb3..14d6406d2b1dffa4fb5f14f9ebcc2b91f5848813 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 #pragma once
 
 #include <stdbool.h>
index 8401691659554a42521290e3791be36517a3e83b..48355aa50c865d15a6d1d6a70137fe95269bbace 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1-or-later
  *
  * libudev - interface to udev device information
  *
index 2c84a8b16d8ae7703045143b22d2397df94ee2d9..680fbf7bff1de84d4712f63e95ca358198a13200 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 #pragma once
 
 #include "sd-event.h"
index ede8e3aef72ae3fa840c87ec9eba53186bb599ec..64ae83c47978dfb408ef2421c4e17a1b073f14f5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 
 #include <ctype.h>
 #include <errno.h>
@@ -1041,6 +1041,13 @@ int udev_event_execute_rules(UdevEvent *event,
         if (r < 0)
                 return log_device_debug_errno(dev, r, "Failed to update database under /run/udev/data/: %m");
 
+        /* Yes, we run update_devnode() twice, because in the first invocation, that is before update of udev database,
+         * it could happen that two contenders are replacing each other's symlink. Hence we run it again to make sure
+         * symlinks point to devices that claim them with the highest priority. */
+        r = update_devnode(event);
+        if (r < 0)
+                return r;
+
         device_set_is_initialized(dev);
 
         return 0;
index a0193ffef350c54972ef8b2f11fed615452fd3ca..864782822cd9671a05f79eb4a0e2b8abc38bbdd7 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 #pragma once
 
 /*
index 2cc26d29fa64957f788caec59a8c564db3f8057f..bde18f756e446695f882a56eee9fad186a53d533 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
 #include "path-util.h"
 #include "selinux-util.h"
 #include "smack-util.h"
+#include "stat-util.h"
 #include "stdio-util.h"
 #include "string-util.h"
 #include "strxcpyx.h"
 #include "udev-node.h"
 #include "user-util.h"
 
+#define LINK_UPDATE_MAX_RETRIES 128
+
 static int node_symlink(sd_device *dev, const char *node, const char *slink) {
         _cleanup_free_ char *slink_dirname = NULL, *target = NULL;
         const char *id_filename, *slink_tmp;
@@ -99,7 +102,9 @@ static int node_symlink(sd_device *dev, const char *node, const char *slink) {
         if (rename(slink_tmp, slink) < 0) {
                 r = log_device_error_errno(dev, errno, "Failed to rename '%s' to '%s': %m", slink_tmp, slink);
                 (void) unlink(slink_tmp);
-        }
+        } else
+                /* Tell caller that we replaced already existing symlink. */
+                r = 1;
 
         return r;
 }
@@ -192,7 +197,7 @@ static int link_update(sd_device *dev, const char *slink, bool add) {
         _cleanup_free_ char *target = NULL, *filename = NULL, *dirname = NULL;
         char name_enc[PATH_MAX];
         const char *id_filename;
-        int r;
+        int i, r, retries;
 
         assert(dev);
         assert(slink);
@@ -212,14 +217,6 @@ static int link_update(sd_device *dev, const char *slink, bool add) {
         if (!add && unlink(filename) == 0)
                 (void) rmdir(dirname);
 
-        r = link_find_prioritized(dev, add, dirname, &target);
-        if (r < 0) {
-                log_device_debug(dev, "No reference left, removing '%s'", slink);
-                if (unlink(slink) == 0)
-                        (void) rmdir_parents(slink, "/");
-        } else
-                (void) node_symlink(dev, target, slink);
-
         if (add)
                 do {
                         _cleanup_close_ int fd = -1;
@@ -232,7 +229,49 @@ static int link_update(sd_device *dev, const char *slink, bool add) {
                                 r = -errno;
                 } while (r == -ENOENT);
 
-        return r;
+        /* If the database entry is not written yet we will just do one iteration and possibly wrong symlink
+         * will be fixed in the second invocation. */
+        retries = sd_device_get_is_initialized(dev) > 0 ? LINK_UPDATE_MAX_RETRIES : 1;
+
+        for (i = 0; i < retries; i++) {
+                struct stat st1 = {}, st2 = {};
+
+                r = stat(dirname, &st1);
+                if (r < 0 && errno != ENOENT)
+                        return -errno;
+
+                r = link_find_prioritized(dev, add, dirname, &target);
+                if (r == -ENOENT) {
+                        log_device_debug(dev, "No reference left, removing '%s'", slink);
+                        if (unlink(slink) == 0)
+                                (void) rmdir_parents(slink, "/");
+
+                        break;
+                } else if (r < 0)
+                        return log_device_error_errno(dev, r, "Failed to determine highest priority symlink: %m");
+
+                r = node_symlink(dev, target, slink);
+                if (r < 0) {
+                        (void) unlink(filename);
+                        break;
+                } else if (r == 1)
+                        /* We have replaced already existing symlink, possibly there is some other device trying
+                         * to claim the same symlink. Let's do one more iteration to give us a chance to fix
+                         * the error if other device actually claims the symlink with higher priority. */
+                        continue;
+
+                /* Skip the second stat() if the first failed, stat_inode_unmodified() would return false regardless. */
+                if ((st1.st_mode & S_IFMT) != 0) {
+                        r = stat(dirname, &st2);
+                        if (r < 0 && errno != ENOENT)
+                                return -errno;
+
+                        if (stat_inode_unmodified(&st1, &st2))
+                                break;
+                }
+        }
+
+        return i < LINK_UPDATE_MAX_RETRIES ? 0 : -ELOOP;
 }
 
 int udev_node_update_old_links(sd_device *dev, sd_device *dev_old) {
@@ -451,8 +490,11 @@ int udev_node_add(sd_device *dev, bool apply,
         (void) node_symlink(dev, devnode, filename);
 
         /* create/update symlinks, add symlinks to name index */
-        FOREACH_DEVICE_DEVLINK(dev, devlink)
-                (void) link_update(dev, devlink, true);
+        FOREACH_DEVICE_DEVLINK(dev, devlink) {
+                r = link_update(dev, devlink, true);
+                if (r < 0)
+                        log_device_info_errno(dev, r, "Failed to update device symlinks: %m");
+        }
 
         return 0;
 }
@@ -465,8 +507,11 @@ int udev_node_remove(sd_device *dev) {
         assert(dev);
 
         /* remove/update symlinks, remove symlinks from name index */
-        FOREACH_DEVICE_DEVLINK(dev, devlink)
-                (void) link_update(dev, devlink, false);
+        FOREACH_DEVICE_DEVLINK(dev, devlink) {
+                r = link_update(dev, devlink, false);
+                if (r < 0)
+                        log_device_info_errno(dev, r, "Failed to update device symlinks: %m");
+        }
 
         r = xsprintf_dev_num_path_from_sd_device(dev, &filename);
         if (r < 0)
index 5ae816d66f12c3a27a960f39f1d3693838bdb98d..84c7e4567fa34296749f3066af07ed900ac18166 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 #pragma once
 
 #include <stdbool.h>
index 7e029927fd0d45960f5933c64fe773b36c7efafd..ef6a0c112cb1f8c33c0cb7da7d8a538c171e7f20 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 
 #include <ctype.h>
 
@@ -990,8 +990,9 @@ static UdevRuleOperatorType parse_operator(const char *op) {
 }
 
 static int parse_line(char **line, char **ret_key, char **ret_attr, UdevRuleOperatorType *ret_op, char **ret_value) {
-        char *key_begin, *key_end, *attr, *tmp, *value, *i, *j;
+        char *key_begin, *key_end, *attr, *tmp;
         UdevRuleOperatorType op;
+        int r;
 
         assert(line);
         assert(*line);
@@ -1031,30 +1032,14 @@ static int parse_line(char **line, char **ret_key, char **ret_attr, UdevRuleOper
         key_end[0] = '\0';
 
         tmp += op == OP_ASSIGN ? 1 : 2;
-        value = skip_leading_chars(tmp, NULL);
-
-        /* value must be double quotated */
-        if (value[0] != '"')
-                return -EINVAL;
-        value++;
-
-        /* unescape double quotation '\"' -> '"' */
-        for (i = j = value; ; i++, j++) {
-                if (*i == '"')
-                        break;
-                if (*i == '\0')
-                        return -EINVAL;
-                if (i[0] == '\\' && i[1] == '"')
-                        i++;
-                *j = *i;
-        }
-        j[0] = '\0';
+        tmp = skip_leading_chars(tmp, NULL);
+        r = udev_rule_parse_value(tmp, ret_value, line);
+        if (r < 0)
+                return r;
 
-        *line = i+1;
         *ret_key = key_begin;
         *ret_attr = attr;
         *ret_op = op;
-        *ret_value = value;
         return 1;
 }
 
index cdb98e8ceccf4bc3be58f9791b0dafde73e73401..3f40a5395ec332e0b6c0ba4b270a33f20eb726ae 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 #pragma once
 
 #include "hashmap.h"
index d87a43537cff14792d68f42dc81f2854f7fd6bf1..8656fb0076dc4b7c39553bc0a55f8633b929a43a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * Copyright © 2009 Canonical Ltd.
  * Copyright © 2009 Scott James Remnant <scott@netsplit.com>
index 24a136d26114d325a922c1bdc1d3c97da3c7d8af..a15fa2767e836379fca6e5df6fea43d7ce355c79 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 #pragma once
 
 #include "sd-device.h"
index 6096dcbe781bcc0622c162ae2131aef4ebe391da..ef23a6c9f65d43159a5c45b40126d8ba80ba6e9f 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 7f8960f549f96df889d89097951d1b823735b84f..3d219222b9d46081a1e1361f5d6be2d1d2fad219 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 
index ae6d8caf54e02c39c4b5f4245b5523cc9713eb97..5ff6256dfa5d54dc56f5145368fdfe44249c87d8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 
 #include <ctype.h>
 #include <errno.h>
@@ -493,7 +493,11 @@ int info_main(int argc, char *argv[], void *userdata) {
                 if (arg_wait_for_initialization_timeout > 0) {
                         sd_device *d;
 
-                        r = device_wait_for_initialization(device, NULL, arg_wait_for_initialization_timeout, &d);
+                        r = device_wait_for_initialization(
+                                        device,
+                                        NULL,
+                                        usec_add(now(CLOCK_MONOTONIC), arg_wait_for_initialization_timeout),
+                                        &d);
                         if (r < 0)
                                 return r;
 
index 52f27ed941600e4de8cb8feb651b8955537c4fe8..cae7f1bbb85d38dfa9cae8da72e907cef8b8960d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index 66c7103d783ac729756319fa251518d3b06e8ec9..2bd5853553784b433fdf74b10ade0562311149a8 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * Copyright © 2009 Canonical Ltd.
  * Copyright © 2009 Scott James Remnant <scott@netsplit.com>
index eb5d3e2b905f66c5d0d644771198e72827b20870..8995e5ccaebaea2f061047a77b8416df60e1d23a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index 0d84b31ff02eb81e69074fe61bb936aca985c8bb..a029622af9dab240491dbb1beb9badb1e4ec6094 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * Copyright © 2003-2004 Greg Kroah-Hartman <greg@kroah.com>
  */
index a588d18fd117b1637af09f7729adf66b902072f5..5c74184c33620785dfe8883eaf75acf681098725 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index bc21115ebdd953888368330865ae927714e1149a..39d0c7eb3f142206c5bbdf885a097fa23572ee68 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 
 #include <errno.h>
 
index 59e89022a06d3267e721b27c162fd2e5aa330444..91587c5492ad9fc1cb44292da30d69390f1051f5 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 #pragma once
 
 #include "sd-device.h"
index e476f88f00812db5a3abc907493291683c737a0a..408e4a34676ad2c06223c43150ae2dfe074d9ce4 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 
 #include <errno.h>
 #include <getopt.h>
index 86b24af086d07854681c0bd063d600b639e74408..162bbb9a43616154ab162a1ce06d57fc3d10383b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 #pragma once
 
 #include <stdio.h>
index 18079d363d8476e93d0f749d39b735ee9c41ee71..b6544988c64f60f367ba4a0e5c03ae726f247df3 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * Copyright © 2004 Chris Friesen <chris_friesen@sympatico.ca>
  * Copyright © 2009 Canonical Ltd.
index 848ffc245b43f78d1de83a96d90d3d714076d7e7..583e8952255b9e3acd776904c111e1024205cf42 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 #pragma once
 
 int run_udevd(int argc, char *argv[]);
index 5de26b8062377ce96c34eaa5a74a30fa47affb93..932446b766dadfef611c5d6b3f09d735531490fd 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 /*
  * Copyright (c) 2009 Filippo Argiolas <filippo.argiolas@gmail.com>
  *
index 92c348d83bc8003c25867c92fdb04a660dc75f99..212892527e6ad55a13e5c1e0944f9b87e57e7c84 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/stat.h>
 #include <sys/types.h>
index 4ab90a63ed8def2a8bed4733b51d54da1f69d85a..0546486f73e9955a6714da9f9f5ad5492b9fa18d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <sys/stat.h>
index cd92b696c0c20733599deea4c37ecce3fa587f52..d1b8176714ed8b8a90525408904087be17ead65d 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <fcntl.h>
index 2f7e1accbf90d6c9704e9a1fc03f4c0413880ed5..3a6225e01eaae6c9ea9ebc6ee00357ec10533fff 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 systemd_userwork_sources = files('''
         userwork.c
index 0c135fae149ebdc0628ade44c8bc368648a23a66..0d0b2870abc0832f088a86f427e7840a1d716f93 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 #include <utmp.h>
index 060285783f1135d40a74933c81f11509a9d24959..f8d315ce2de3b2d6015dcaa9b6f76a4073390b4b 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/wait.h>
 
index 0bf67fe55b4431fd142c69688cbe79382e7d35e3..b81615aca1139f6c5dc433947a3e111777bf6927 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "sd-bus.h"
index e456104dd7453765e59607e971bac2bdf6847ba7..6f2c8078432bb20be0ccbe5f988606eacb9e0fb1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/stat.h>
 #include <sys/types.h>
index a68011b3fcad43f17f50a4afbc84adc041d5de88..d525a6e05afad2d9817c9d7d982f5df672d2dcea 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <poll.h>
 #include <sys/wait.h>
index 70679b6dd256786d40b9680ab81a52557e623e4f..a16988c38c3122d2e3c1b1d3da8d235b25cf159a 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 03065ec26c7205489c8d0e3175fee84e2ee5fd4a..695ef0239ddc926e9807daa135cbc803a8587e7d 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 if conf.get('ENABLE_VCONSOLE') == 1
         vconsole_rules = configure_file(
index a2fe7e909976cd86c08a157a984c4a04bd8cc4cb..b28e2853e10b16ff7ebd313767696a85c9faae84 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /***
   Copyright © 2016 Michal Soltys <soltys@ziu.info>
 ***/
index ea1d056600de1d5a4d784ad9eb59da92bdc6354c..4682a7b04ce22049dfd92493e11e1b71af06ff2e 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdbool.h>
index 829495175924895602823a88dd8a15fa8bc1da68..558e9510ff0b457ab8a0f0dfb90b2a06b0262889 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
@@ -100,7 +100,7 @@ static int run(int argc, char *argv[]) {
                                 if (r < 0)
                                         return log_error_errno(r, "Failed to parse root hash signature '%s': %m", argv[6]);
                         } else {
-                                r = read_full_file_full(AT_FDCWD, argv[6], READ_FULL_FILE_CONNECT_SOCKET, &hash_sig, &hash_sig_size);
+                                r = read_full_file_full(AT_FDCWD, argv[6], READ_FULL_FILE_CONNECT_SOCKET, NULL, &hash_sig, &hash_sig_size);
                                 if (r < 0)
                                         return log_error_errno(r, "Failed to read root hash signature: %m");
                         }
index 04c371077a8317e1b46e92a6777d142944638c07..ee3532cc02a0a0bfd57927615d106c64dfd05207 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <sys/mount.h>
 
index 84a3561654e6d19c42f5a140e9b969c51efb2a02..c4485cf6256fb2a96632b4fdb2abd8919e8104f9 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include "main-func.h"
 #include "strv.h"
index 6cec28e6226a7713f54d71a7adf2283839b7b2ff..7b441a9a12b7a4ca27453681553f3f6e2480ce01 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index da5e79dcff5d014a22219f66ccb833a22631caba..671d16d2d9efb06b1d6d82c608fbff980886226a 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <errno.h>
 #include <stdio.h>
index 8cf07ef64a5f7b57ece236bd5f0067d6707cb78b..2641718899c8c9d716a066aa96c774ad725cdbf1 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
 #include "macro.h"
index 3f072e3db77cd85af37a7cec9d04f1c41024eee8..e9b20ea5407b3365876609e41465225c046cab7f 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 install_data(
         '50-default.conf',
index 146f922bed0ec1dd0579a62c4039cba2dacc9ddb..93a61f0d9a892606e5f7b23f2dbd95e245d86db5 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 in_files = ['basic.conf']
 
diff --git a/test/TEST-56-OOMD/Makefile b/test/TEST-56-OOMD/Makefile
new file mode 120000 (symlink)
index 0000000..e9f93b1
--- /dev/null
@@ -0,0 +1 @@
+../TEST-01-BASIC/Makefile
\ No newline at end of file
diff --git a/test/TEST-56-OOMD/test.sh b/test/TEST-56-OOMD/test.sh
new file mode 100755 (executable)
index 0000000..55b0d1d
--- /dev/null
@@ -0,0 +1,48 @@
+#!/usr/bin/env bash
+set -e
+TEST_DESCRIPTION="systemd-oomd Memory Pressure Test"
+
+. $TEST_BASE_DIR/test-functions
+
+check_result_nspawn() {
+    local ret=1
+    local journald_report=""
+    local pids=""
+    [[ -e $1/testok ]] && ret=0
+    if [[ -e $1/skipped ]]; then
+        echo "TEST-56-OOMD was skipped:"
+        cat $1/skipped
+        ret=0
+    fi
+    [[ -f $1/failed ]] && cp -a $1/failed $TESTDIR
+    save_journal $1/var/log/journal
+    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
+    echo $JOURNAL_LIST
+    test -s $TESTDIR/failed && ret=$(($ret+1))
+    [ -n "$TIMED_OUT" ] && ret=$(($ret+1))
+    check_asan_reports "$1" || ret=$(($ret+1))
+    _umount_dir $initdir
+    return $ret
+}
+
+check_result_qemu() {
+    local ret=1
+    mount_initdir
+    [[ -e $initdir/testok ]] && ret=0
+    if [[ -e $initdir/skipped ]]; then
+        echo "TEST-56-OOMD was skipped:"
+        cat $initdir/skipped
+        ret=0
+    fi
+    [[ -f $initdir/failed ]] && cp -a $initdir/failed $TESTDIR
+    save_journal $initdir/var/log/journal
+    check_asan_reports "$initdir" || ret=$(($ret+1))
+    _umount_dir $initdir
+    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
+    echo $JOURNAL_LIST
+    test -s $TESTDIR/failed && ret=$(($ret+1))
+    [ -n "$TIMED_OUT" ] && ret=$(($ret+1))
+    return $ret
+}
+
+do_test "$@" 56
index d03ca2cbf97ac9c1c2f5c12d240ee0ede3517f7c..11ed185de071b66fc279717ed972132983da93e4 100755 (executable)
@@ -1,8 +1,8 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 OUTFILE_HEADER = """#!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # create-sys-script.py
 #
index e0b582d4f26b6bbb3792a9cd24e2c0d319605472..043627c739df77cf1dcee56c0d747ba9e1078e83 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # Message catalog for systemd's own messages
 # Polish translation
index 92fcbe83eab91751854094023ff4d9c602378c98..feb5b1fbb05b82186dfb22bf2f3a5665eb901a59 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 6ae98981033d7f082213ce8f3753b1f6b1309bee..b6a5c5ad552026048933620991fd9e2eaf8b9474 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index eebc89f5c2391c296625eff7c038c6d2ebcbdca7..30ce98687a4a132d5a1d71568c5029246f6c036f 100644 (file)
@@ -175,6 +175,7 @@ PipeSize=
 Priority=
 PropagatesReloadTo=
 RandomizedDelaySec=
+FixedRandomDelay=
 RebootArgument=
 ReceiveBuffer=
 RefuseManualStart=
index bf8c6bfc3ec819f86c8dbc04a4f929387d0919a6..3fad2da42ede73066b4f2a5f79b9cca8924e3ff3 100644 (file)
@@ -1,5 +1,5 @@
 slice
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 777a123ef4102f18c2f6d5e5fdef077b392843a4..371469d8326e54e91eddacd8151d466ac007c08e 100644 (file)
@@ -1,5 +1,5 @@
 automount
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 2eb316fcaa6676803ba710b3affb733c4a46e53b..969ee428fa856b5815c3916bbc9ebd0d05dd4974 100644 (file)
@@ -1,5 +1,5 @@
 socket
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 3e12c752de3ba931d4874b998a35097dc454515c..7eca92d2193ac5782814815de9bd2cb426fd1184 100644 (file)
@@ -1,5 +1,5 @@
 path
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 79ee9861d8e657d189759df3b6d2524cc709cf84..45c64bae1cdc5e725bce32264191473035bf2152 100644 (file)
@@ -1,5 +1,5 @@
 service
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 0854c5f841f30ced99dc9e9194caf725155bd81c..42c5c9a0676aaeaaabacf8bb936cb669f381320d 100644 (file)
@@ -1,5 +1,5 @@
 service
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 7db361cd69b74bad928f47850297f713865196a9..5bf91b9f4cd13bd6ae16b2ea472db86ea7e4a23c 100644 (file)
@@ -1,5 +1,5 @@
 timer
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 [Unit]
 Description=Daily Cleanup of Temporary Directories
 Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
@@ -32,6 +32,7 @@ OnCalendar=Fri 2012-11-23 11:12:13
 Persistent=true
 AccuracySec=24h
 RandomizedDelaySec=234234234
+FixedRandomDelay=true
 
 Persistent=no
 Unit=foo.service
index 171226c6809aa6432c225108e70384bb41d4679f..29d04c0f4cd3ff30e31d1dc00bcac3cefd0db9cf 100644 (file)
@@ -1,5 +1,5 @@
 target
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9c257d1191be6393a4e0c614b1d2f716e9865dc3..b2a491d447eccd52cd33873ca265ebebac164627 100644 (file)
@@ -1,5 +1,5 @@
 mount
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 99584c144b153f610badc41242579e14bb6e68c3..772e07e7fc3853d5d791effbf3b82668a18062b7 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # The 'optimization' option was introduced in meson 0.48.0, so let's keep
 # the code compatible with older versions as well
index 8b909f7d80996f17842c1d801d79779544a179cb..2b54a0e70fcf0652dc8086d7a4a631ca785ed998 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Call built systemd-hwdb update on our hwdb files to ensure that they parse
 # without error
index 5656abdf72a97df0277d351c9313aba86eb67789..cc461febf102102722793f9e749132c059285b0f 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 if install_tests
         testdata_dir = testsdir + '/testdata/'
index 4116995f8c5fd0477ad7fe8525168eb262a973e1..8496ec881cee036e56dfe013c4542b3db3f2797d 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # networkd integration test
 # This uses temporary configuration in /run and temporary veth devices, and
index 658b9459a90a984fb64e2d1f33c4430542b04572..9a9e4d1658542e2e5cc538a391013c4af9d3932b 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # Simple udev rules syntax checker
 #
diff --git a/test/sd-script.py b/test/sd-script.py
new file mode 100644 (file)
index 0000000..b41e359
--- /dev/null
@@ -0,0 +1,342 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: LGPL-2.1+
+#
+# sd-script.py: create LOTS of sd device entries in fake sysfs
+#
+# (C) 2018 Martin Wilck, SUSE Linux GmbH
+#
+# Run after sys-script.py
+# Usage: sd-script.py <directory> <num>
+# <num> is the number of device nodes (disks + partititions)
+# to create in addition to what sys-script.py already did.
+# The script can be run several times in a row if <num> is increased,
+# adding yet more device entries.
+# Tested up to 1000 entries, more are possible.
+# Note that sys-script.py already creates 10 sd device nodes
+# (sda+sdb and partitions). This script starts with sdc.
+
+import re
+import os
+import errno
+import sys
+
+def d(path, mode):
+    os.mkdir(path, mode)
+
+def l(path, src):
+    os.symlink(src, path)
+
+def f(path, mode, contents):
+    with open(path, "wb") as f:
+        f.write(contents)
+    os.chmod(path, mode)
+
+class SD(object):
+
+    sd_major = [8] + list(range(65, 72)) + list(range(128, 136))
+    _name_re = re.compile(r'sd(?P<f>[a-z]*)$')
+
+    def _init_from_name(self, name):
+        mt = self._name_re.match(name)
+        if mt is None:
+            raise RuntimeError("invalid name %s" % name)
+        nm = mt.group("f")
+        base = 1
+        ls = nm[-1]
+        nm = nm[:-1]
+        n = base * (ord(ls)-ord('a'))
+        while len(nm) > 0:
+            ls = nm[-1]
+            nm = nm[:-1]
+            base *= 26
+            n += base * (1 + ord(ls)-ord('a'))
+        self._num = n
+
+    def _init_from_dev(self, dev):
+        maj, min = dev.split(":")
+        maj = self.sd_major.index(int(maj, 10))
+        min = int(min, 10)
+        num = int(min / 16)
+        self._num = 16*maj + num%16 + 256*int(num/16)
+
+    @staticmethod
+    def _disk_num(a, b):
+        n = ord(a)-ord('a')
+        if b != '':
+            n = 26 * (n+1) + ord(b)-ord('a')
+        return n
+
+    @staticmethod
+    def _get_major(n):
+        return SD.sd_major[(n%256)//16]
+    @staticmethod
+    def _get_minor(n):
+        return 16 * (n % 16 + 16 * n//256)
+
+    @staticmethod
+    def _get_name(n):
+        # see sd_format_disk_name() (sd.c)
+        s = chr(n % 26 + ord('a'))
+        n = n // 26 - 1
+        while n >= 0:
+            s = chr(n % 26 + ord('a')) + s
+            n = n // 26 - 1
+        return "sd" + s
+
+    @staticmethod
+    def _get_dev_t(n):
+        maj = SD._get_major(n)
+        min = SD._get_minor(n)
+        return (maj << 20) + min
+
+    def __init__(self, arg):
+        if type(arg) is type(0):
+            self._num = arg
+        elif arg.startswith("sd"):
+            self._init_from_name(arg)
+        else:
+            self._init_from_dev(arg)
+
+    def __cmp__(self, other):
+        return cmp(self._num, other._num)
+
+    def __hash__(self):
+        return hash(self._num)
+
+    def __str__(self):
+        return "%s/%s" % (
+            self.devstr(),
+            self._get_name(self._num))
+
+    def major(self):
+        return self._get_major(self._num)
+
+    def minor(self):
+        return self._get_minor(self._num)
+
+    def devstr(self):
+        return "%d:%d" % (self._get_major(self._num),
+                          self._get_minor(self._num))
+
+    def namestr(self):
+        return self._get_name(self._num)
+
+    def longstr(self):
+        return "%d\t%s\t%s\t%08x" % (self._num,
+                                     self.devstr(),
+                                     self.namestr(),
+                                     self._get_dev_t(self._num))
+
+class MySD(SD):
+    def subst(self, first_sg):
+        disk = {
+            "lun": self._num,
+            "major": self.major(),
+            "devnode": self.namestr(),
+            "disk_minor": self.minor(),
+            "sg_minor": first_sg + self._num,
+        }
+        return disk
+
+disk_template = r"""\
+l('sys/bus/scsi/drivers/sd/7:0:0:{lun}', '../../../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}')
+l('sys/bus/scsi/devices/7:0:0:{lun}', '../../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}')
+l('sys/dev/char/254:{sg_minor}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}')
+l('sys/dev/char/21:{sg_minor}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}')
+l('sys/class/scsi_disk/7:0:0:{lun}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}')
+l('sys/class/scsi_generic/sg{sg_minor}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}')
+l('sys/class/bsg/7:0:0:{lun}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}')
+l('sys/class/scsi_device/7:0:0:{lun}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device/7:0:0:{lun}')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/generic', 'scsi_generic/sg{sg_minor}')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/subsystem', '../../../../../../../../../bus/scsi')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/driver', '../../../../../../../../../bus/scsi/drivers/sd')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/iodone_cnt', 0o644, b'0xc3\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/device_blocked', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/max_sectors', 0o644, b'240\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/modalias', 0o644, b'scsi:t-0x00\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_level', 0o644, b'3\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/queue_depth', 0o644, b'1\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/rev', 0o644, b'1.00\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/type', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/iocounterbits', 0o644, b'32\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/vendor', 0o644, b'Generic \n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/state', 0o644, b'running\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/queue_type', 0o644, b'none\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/iorequest_cnt', 0o644, b'0xc3\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/evt_media_change', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/model', 0o644, b'USB Flash Drive \n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/ioerr_cnt', 0o644, b'0x2\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/uevent', 0o644, b'''DEVTYPE=scsi_device
+DRIVER=sd
+MODALIAS=scsi:t-0x00
+''')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/timeout', 0o644, b'60\n')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk', 0o755)
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/subsystem', '../../../../../../../../../../../class/scsi_disk')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/device', '../../../7:0:0:{lun}')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/app_tag_own', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/FUA', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/cache_type', 0o644, b'write through\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/protection_type', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/manage_start_stop', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/allow_restart', 0o644, b'1\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/uevent', 0o644, b'')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/power', 0o755)
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_disk/7:0:0:{lun}/power/wakeup', 0o644, b'\n')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/power', 0o755)
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/power/wakeup', 0o644, b'\n')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic', 0o755)
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}/subsystem', '../../../../../../../../../../../class/scsi_generic')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}/device', '../../../7:0:0:{lun}')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}/dev', 0o644, b'21:{sg_minor}\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}/uevent', 0o644, b'''MAJOR=21
+MINOR={sg_minor}
+''')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}/power', 0o755)
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_generic/sg{sg_minor}/power/wakeup', 0o644, b'\n')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg', 0o755)
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}/subsystem', '../../../../../../../../../../../class/bsg')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}/device', '../../../7:0:0:{lun}')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}/dev', 0o644, b'254:{sg_minor}\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}/uevent', 0o644, b'''MAJOR=254
+MINOR={sg_minor}
+''')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}/power', 0o755)
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/bsg/7:0:0:{lun}/power/wakeup', 0o644, b'\n')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block', 0o755)
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device', 0o755)
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device/7:0:0:{lun}', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device/7:0:0:{lun}/subsystem', '../../../../../../../../../../../class/scsi_device')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device/7:0:0:{lun}/device', '../../../7:0:0:{lun}')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device/7:0:0:{lun}/uevent', 0o644, b'')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device/7:0:0:{lun}/power', 0o755)
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/scsi_device/7:0:0:{lun}/power/wakeup', 0o644, b'\n')
+l('sys/dev/block/{major}:{disk_minor}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}')
+l('sys/class/block/{devnode}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}')
+l('sys/block/{devnode}', '../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/subsystem', '../../../../../../../../../../../class/block')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/bdi', '../../../../../../../../../../virtual/bdi/{major}:{disk_minor}')
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/device', '../../../7:0:0:{lun}')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/capability', 0o644, b'13\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/ro', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/make-it-fail', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/size', 0o644, b'257024\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/dev', 0o644, b'{major}:{disk_minor}\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/range', 0o644, b'16\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/removable', 0o644, b'1\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/stat', 0o644, b'     117      409     2103      272        0        0        0        0        0      194      272\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/uevent', 0o644, b'''MAJOR={major}
+MINOR={disk_minor}
+DEVTYPE=disk
+DEVNAME={devnode}
+''')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/bsg', '../../../bsg/7:0:0:{lun}')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/nr_requests', 0o644, b'128\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/nomerges', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/scheduler', 0o644, b'noop anticipatory deadline [cfq] \n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/hw_sector_size', 0o644, b'512\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/max_hw_sectors_kb', 0o644, b'120\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/read_ahead_kb', 0o644, b'128\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/max_sectors_kb', 0o644, b'120\n')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched', 0o755)
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/slice_async_rq', 0o644, b'2\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/back_seek_max', 0o644, b'16384\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/slice_sync', 0o644, b'100\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/slice_async', 0o644, b'40\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/fifo_expire_sync', 0o644, b'125\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/slice_idle', 0o644, b'8\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/back_seek_penalty', 0o644, b'2\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/fifo_expire_async', 0o644, b'250\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/queue/iosched/quantum', 0o644, b'4\n')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/power', 0o755)
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/power/wakeup', 0o644, b'\n')
+"""
+
+part_template = r"""\
+l('sys/dev/block/{major}:{part_minor}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}')
+l('sys/class/block/{devnode}{part_num}', '../../devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}')
+d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}', 0o755)
+l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}/subsystem', '../../../../../../../../../../../../class/block')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}/start', 0o644, b'32\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}/make-it-fail', 0o644, b'0\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}/size', 0o644, b'256992\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}/dev', 0o644, b'{major}:{part_minor}\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}/stat', 0o644, b'     109      392     1903      246        0        0        0        0        0      169      246\n')
+f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:{lun}/block/{devnode}/{devnode}{part_num}/uevent', 0o644, b'''MAJOR={major}
+MINOR={part_minor}
+DEVTYPE=partition
+DEVNAME={devnode}{part_num}
+''')
+"""
+
+if len(sys.argv) != 3:
+    exit("Usage: {} <target dir> <number>".format(sys.argv[0]))
+
+if not os.path.isdir(sys.argv[1]):
+    exit("Target dir {} not found".format(sys.argv[1]))
+
+def create_part_sysfs(disk, sd, prt):
+    part = disk
+    part.update ({
+        "part_num": prt,
+        "part_minor": disk["disk_minor"] + prt,
+    })
+
+    try:
+        exec(part_template.format(**part))
+    except OSError:
+        si = sys.exc_info()[1]
+        if (si.errno == errno.EEXIST):
+            print("sysfs structures for %s%d exist" % (sd.namestr(), prt))
+        else:
+            print("error for %s%d: %s" % (sd.namestr(), prt, si[1]))
+            raise
+    else:
+        print("sysfs structures for %s%d created" % (sd.namestr(), prt))
+
+def create_disk_sysfs(dsk, first_sg, n):
+    sd = MySD(dsk)
+    disk = sd.subst(first_sg)
+
+    try:
+        exec(disk_template.format(**disk))
+    except OSError:
+        si = sys.exc_info()[1]
+        if (si.errno == errno.EEXIST):
+            print("sysfs structures for %s exist" % sd.namestr())
+        elif (si.errno == errno.ENOENT):
+            print("error for %s: %s - have you run sys-script py first?" %
+                  (sd.namestr(), si.strerror))
+            return -1
+        else:
+            print("error for %s: %s" % (sd.namestr(), si.strerror))
+            raise
+    else:
+        print("sysfs structures for %s created" % sd.namestr())
+
+    n += 1
+    if n >= last:
+        return n
+
+    for prt in range(1, 16):
+        create_part_sysfs(disk, sd, prt)
+        n += 1
+        if n >= last:
+            return n
+
+    return n
+
+os.chdir(sys.argv[1])
+n = 0
+last = int(sys.argv[2])
+first_sg = 2
+for dsk in range(2, 1000):
+    n = create_disk_sysfs(dsk, first_sg, n)
+    if n >= last or n == -1:
+        break
index a51112603e9eceb1c1dff71d42329b9276405b3d..e9ce6653135258449560d62ce0f50db3b4d5cb79 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # sys-script.py
 #
@@ -11677,6 +11677,7 @@ f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:
 f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb/uevent', 0o644, b'''MAJOR=8
 MINOR=16
 DEVTYPE=disk
+DEVNAME=sdb
 ''')
 d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb/queue', 0o755)
 l('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb/queue/bsg', '../../../bsg/7:0:0:0')
@@ -11709,6 +11710,7 @@ f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:
 f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb/sdb1/uevent', 0o644, b'''MAJOR=8
 MINOR=17
 DEVTYPE=partition
+DEVNAME=sdb1
 ''')
 d('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb/sdb1/power', 0o755)
 f('sys/devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb/sdb1/power/wakeup', 0o644, b'\n')
@@ -13150,6 +13152,7 @@ f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10
 f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10/uevent', 0o644, b'''MAJOR=8
 MINOR=10
 DEVTYPE=partition
+DEVNAME=sda10
 ''')
 d('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10/power', 0o755)
 f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10/power/wakeup', 0o644, b'\n')
@@ -13163,6 +13166,7 @@ f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9/
 f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9/uevent', 0o644, b'''MAJOR=8
 MINOR=9
 DEVTYPE=partition
+DEVNAME=sda9
 ''')
 d('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9/holders', 0o755)
 l('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9/holders/md0', '../../../../../../../../../virtual/block/md0')
@@ -13178,6 +13182,7 @@ f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7/
 f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7/uevent', 0o644, b'''MAJOR=8
 MINOR=7
 DEVTYPE=partition
+DEVNAME=sda7
 ''')
 d('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7/power', 0o755)
 f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7/power/wakeup', 0o644, b'\n')
@@ -13205,6 +13210,7 @@ f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8/
 f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8/uevent', 0o644, b'''MAJOR=8
 MINOR=8
 DEVTYPE=partition
+DEVNAME=sda8
 ''')
 d('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8/power', 0o755)
 f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8/power/wakeup', 0o644, b'\n')
@@ -13232,6 +13238,7 @@ f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6/
 f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6/uevent', 0o644, b'''MAJOR=8
 MINOR=6
 DEVTYPE=partition
+DEVNAME=sda6
 ''')
 d('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6/power', 0o755)
 f('sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6/power/wakeup', 0o644, b'\n')
index 3d9c1ddb8782e1925b34653692a53527d6597ddf..484b610a02ec3ebad327cda96a8a6e56a9ab3824 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # systemd-sysv-generator integration test
 #
index 8aa16fb7f94838201d1e82bb6d9a31e046965409..9491e4081e4191002b94ec00ba8cfa09f1086280 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  Copyright © 2017 Michal Sekletar <msekleta@redhat.com>
 
index 9893864bcd197f0e4b031ddd51dfd0dd93123525..a2cb28c3808ee28e2a80bfcc7189e73b9647a035 100644 (file)
@@ -65,6 +65,7 @@ BASICTOOLS=(
     echo
     env
     false
+    getconf
     getent
     getfacl
     grep
index 3d2acecde2a24ad788c2e9a569c3fd2163df6866..609692f97aef29c34fe66ae8bf82271dce4724b9 100644 (file)
@@ -3,3 +3,6 @@ Name=veth99
 
 [Network]
 IPv6AcceptRA=true
+
+[IPv6AcceptRA]
+UseDomains=yes
index aec1d1b2c312a6922f590d1e02cd71d402372709..7813c2c1ba71056375316a363151248a2caaca94 100644 (file)
@@ -7,6 +7,7 @@ IPv6SendRA=yes
 [IPv6SendRA]
 DNS=_link_local 2002:da8:1:0::1
 DNSLifetimeSec=1min
+Domains=hogehoge.test
 
 [IPv6Prefix]
 Prefix=2002:da8:1:0::/64
index 752b2fee435f0c8de327cc2e1e42e5412f2dc6d8..1062f93e55062fbddd0d52f96dac5d9b67ecf313 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 # systemd-networkd tests
 
 import argparse
@@ -2230,6 +2230,66 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
         self.assertRegex(output, 'via 2001:1234:5:8fff:ff:ff:ff:ff dev dummy98')
         self.assertRegex(output, 'via 2001:1234:5:9fff:ff:ff:ff:ff dev dummy98')
 
+        copy_unit_to_networkd_unit_path('25-address-static.network')
+        check_output(*networkctl_cmd, 'reload', env=env)
+        self.wait_online(['dummy98:routable'])
+
+        # check all routes managed by Manager are removed
+        print('### ip route show type blackhole')
+        output = check_output('ip route show type blackhole')
+        print(output)
+        self.assertEqual(output, '')
+
+        print('### ip route show type unreachable')
+        output = check_output('ip route show type unreachable')
+        print(output)
+        self.assertEqual(output, '')
+
+        print('### ip route show type prohibit')
+        output = check_output('ip route show type prohibit')
+        print(output)
+        self.assertEqual(output, '')
+
+        remove_unit_from_networkd_path(['25-address-static.network'])
+        check_output(*networkctl_cmd, 'reload', env=env)
+        self.wait_online(['dummy98:routable'])
+
+        # check all routes managed by Manager are reconfigured
+        print('### ip route show type blackhole')
+        output = check_output('ip route show type blackhole')
+        print(output)
+        self.assertRegex(output, 'blackhole 202.54.1.2 proto static')
+
+        print('### ip route show type unreachable')
+        output = check_output('ip route show type unreachable')
+        print(output)
+        self.assertRegex(output, 'unreachable 202.54.1.3 proto static')
+
+        print('### ip route show type prohibit')
+        output = check_output('ip route show type prohibit')
+        print(output)
+        self.assertRegex(output, 'prohibit 202.54.1.4 proto static')
+
+        rc = call("ip link del dummy98")
+        self.assertEqual(rc, 0)
+        time.sleep(2)
+
+        # check all routes managed by Manager are removed
+        print('### ip route show type blackhole')
+        output = check_output('ip route show type blackhole')
+        print(output)
+        self.assertEqual(output, '')
+
+        print('### ip route show type unreachable')
+        output = check_output('ip route show type unreachable')
+        print(output)
+        self.assertEqual(output, '')
+
+        print('### ip route show type prohibit')
+        output = check_output('ip route show type prohibit')
+        print(output)
+        self.assertEqual(output, '')
+
     @expectedFailureIfRTA_VIAIsNotSupported()
     def test_route_via_ipv6(self):
         copy_unit_to_networkd_unit_path('25-route-via-ipv6.network', '12-dummy.netdev')
@@ -3254,6 +3314,10 @@ class NetworkdRATests(unittest.TestCase, Utilities):
         self.assertRegex(output, 'fe80::')
         self.assertRegex(output, '2002:da8:1::1')
 
+        output = check_output(*resolvectl_cmd, 'domain', 'veth99', env=env)
+        print(output)
+        self.assertIn('hogehoge.test', output)
+
         output = check_output(*networkctl_cmd, '-n', '0', 'status', 'veth99', env=env)
         print(output)
         self.assertRegex(output, '2002:da8:1:0')
index 4f44292249405339fe4568885f4bb84291c1a558..d8cdd5ac14dc7748199d691bc01422007df889b7 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9b6ed1c13feec452f236b8314fea492b89d62337..1bec148bee8a794be1eedec909a29484d4052fd6 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index b6c16a14120f88f817470a0669a5f32406c06872..eed3d16b458519b1ef6ecc99d24d4795538dc1b9 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 1ab6828d713ab4c62806aedc52c56f4e4d1eaa0b..693b0d84c7d4d14517f13f0b2677b4ccbda2b8b6 100755 (executable)
 
 use warnings;
 use strict;
+use POSIX qw(WIFEXITED WEXITSTATUS);
+use IPC::SysV qw(IPC_PRIVATE S_IRUSR S_IWUSR IPC_CREAT);
+use IPC::Semaphore;
+use Time::HiRes qw(usleep);
+use Cwd qw(getcwd abs_path);
 
 my $udev_bin            = "./test-udev";
 my $valgrind            = 0;
@@ -45,20 +50,73 @@ for (my $i = 1; $i < 10000; ++$i) {
 }
 $rules_10k_tags_continuation .= "TAG+=\"test10000\"\\n";
 
+# Create a device list with all block devices under /sys
+# (except virtual devices and cd-roms)
+# the optional argument exp_func returns expected and non-expected
+# symlinks for the device.
+sub all_block_devs {
+        my ($exp_func) = @_;
+        my @devices;
+
+        foreach my $bd (glob "$udev_sys/dev/block/*") {
+                my $tgt = readlink($bd);
+                my ($exp, $notexp) = (undef, undef);
+
+                next if ($tgt =~ m!/virtual/! || $tgt =~ m!/sr[0-9]*$!);
+
+                $tgt =~ s!^\.\./\.\.!!;
+                ($exp, $notexp) = $exp_func->($tgt) if defined($exp_func);
+                my $device = {
+                        devpath => $tgt,
+                        exp_links => $exp,
+                        not_exp_links => $notexp,
+                };
+                push(@devices, $device);
+        }
+        return \@devices;
+}
+
+# This generator returns a suitable exp_func for use with
+# all_block_devs().
+sub expect_for_some {
+        my ($pattern, $links, $donot) = @_;
+        my $_expect = sub {
+                my ($name) = @_;
+
+                if ($name =~ /$pattern/) {
+                        return ($links, undef);
+                } elsif ($donot) {
+                        return (undef, $links);
+                } else {
+                        return (undef, undef);
+                }
+        };
+        return $_expect;
+}
+
 my @tests = (
         {
                 desc            => "no rules",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "sda",
-                exp_rem_error   => "yes",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_rem_error   => "yes",
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_rem_error   => "yes",
+                        }],
                 rules           => <<EOF
 #
 EOF
         },
         {
                 desc            => "label test of scsi disc",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "boot_disk",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["boot_disk"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", SYMLINK+="boot_disk%n"
 KERNEL=="ttyACM0", SYMLINK+="modem"
@@ -66,8 +124,11 @@ EOF
         },
         {
                 desc            => "label test of scsi disc",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "boot_disk",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["boot_disk"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", SYMLINK+="boot_disk%n"
 KERNEL=="ttyACM0", SYMLINK+="modem"
@@ -75,8 +136,11 @@ EOF
         },
         {
                 desc            => "label test of scsi disc",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "boot_disk",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["boot_disk"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", SYMLINK+="boot_disk%n"
 KERNEL=="ttyACM0", SYMLINK+="modem"
@@ -84,27 +148,40 @@ EOF
         },
         {
                 desc            => "label test of scsi partition",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "boot_disk1",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["boot_disk1"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", SYMLINK+="boot_disk%n"
 EOF
         },
         {
                 desc            => "label test of pattern match",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "boot_disk1",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["boot_disk1", "boot_disk1-4", "boot_disk1-5"],
+                                not_exp_links   => ["boot_disk1-1", "boot_disk1-2", "boot_disk1-3"]
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", ATTRS{vendor}=="?ATA", SYMLINK+="boot_disk%n-1"
 SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA?", SYMLINK+="boot_disk%n-2"
 SUBSYSTEMS=="scsi", ATTRS{vendor}=="A??", SYMLINK+="boot_disk%n"
 SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATAS", SYMLINK+="boot_disk%n-3"
+SUBSYSTEMS=="scsi", ATTRS{vendor}=="AT?", SYMLINK+="boot_disk%n-4"
+SUBSYSTEMS=="scsi", ATTRS{vendor}=="??A", SYMLINK+="boot_disk%n-5"
 EOF
         },
         {
                 desc            => "label test of multiple sysfs files",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "boot_disk1",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["boot_disk1"],
+                                not_exp_links   => ["boot_diskX1"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", ATTRS{model}=="ST910021AS X ", SYMLINK+="boot_diskX%n"
 SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", ATTRS{model}=="ST910021AS", SYMLINK+="boot_disk%n"
@@ -112,25 +189,39 @@ EOF
         },
         {
                 desc            => "label test of max sysfs files (skip invalid rule)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "boot_disk1",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["boot_disk1", "boot_diskXY1"],
+                                not_exp_links   => ["boot_diskXX1"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", ATTRS{model}=="ST910021AS", ATTRS{scsi_level}=="6", ATTRS{rev}=="4.06", ATTRS{type}=="0", ATTRS{queue_depth}=="32", SYMLINK+="boot_diskXX%n"
+SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", ATTRS{model}=="ST910021AS", ATTRS{scsi_level}=="6", ATTRS{rev}=="4.06", ATTRS{type}=="0", ATTRS{queue_depth}=="1", SYMLINK+="boot_diskXY%n"
 SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", ATTRS{model}=="ST910021AS", ATTRS{scsi_level}=="6", ATTRS{rev}=="4.06", ATTRS{type}=="0", SYMLINK+="boot_disk%n"
 EOF
         },
         {
                 desc            => "catch device by *",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "modem/0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["modem/0", "catch-all"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM*", SYMLINK+="modem/%n"
+KERNEL=="*", SYMLINK+="catch-all"
 EOF
         },
+        # 10
         {
                 desc            => "catch device by * - take 2",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "modem/0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["modem/0"],
+                                not_exp_links   => ["bad"],
+                        }],
                 rules           => <<EOF
 KERNEL=="*ACM1", SYMLINK+="bad"
 KERNEL=="*ACM0", SYMLINK+="modem/%n"
@@ -138,8 +229,12 @@ EOF
         },
         {
                 desc            => "catch device by ?",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "modem/0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["modem/0"],
+                                not_exp_links   => ["modem/0-1", "modem/0-2"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM??*", SYMLINK+="modem/%n-1"
 KERNEL=="ttyACM??", SYMLINK+="modem/%n-2"
@@ -148,8 +243,12 @@ EOF
         },
         {
                 desc            => "catch device by character class",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "modem/0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["modem/0"],
+                                not_exp_links   => ["modem/0-1", "modem/0-2"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[A-Z]*", SYMLINK+="modem/%n-1"
 KERNEL=="ttyACM?[0-9]", SYMLINK+="modem/%n-2"
@@ -157,17 +256,23 @@ KERNEL=="ttyACM[0-9]*", SYMLINK+="modem/%n"
 EOF
         },
         {
-                desc            => "replace kernel name",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "modem",
+                desc            => "don't replace kernel name",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["modem"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM0", SYMLINK+="modem"
 EOF
         },
         {
-                desc            => "Handle comment lines in config file (and replace kernel name)",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "modem",
+                desc            => "Handle comment lines in config file (and don't replace kernel name)",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["modem"],
+                        }],
                 rules           => <<EOF
 # this is a comment
 KERNEL=="ttyACM0", SYMLINK+="modem"
@@ -175,9 +280,12 @@ KERNEL=="ttyACM0", SYMLINK+="modem"
 EOF
         },
         {
-                desc            => "Handle comment lines in config file with whitespace (and replace kernel name)",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "modem",
+                desc            => "Handle comment lines in config file with whitespace (and don't replace kernel name)",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["modem"],
+                        }],
                 rules           => <<EOF
  # this is a comment with whitespace before the comment
 KERNEL=="ttyACM0", SYMLINK+="modem"
@@ -185,9 +293,12 @@ KERNEL=="ttyACM0", SYMLINK+="modem"
 EOF
         },
         {
-                desc            => "Handle whitespace only lines (and replace kernel name)",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "whitespace",
+                desc            => "Handle whitespace only lines (and don't replace kernel name)",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["whitespace"],
+                        }],
                 rules           => <<EOF
 
 
@@ -200,9 +311,12 @@ KERNEL=="ttyACM0", SYMLINK+="whitespace"
 EOF
         },
         {
-                desc            => "Handle empty lines in config file (and replace kernel name)",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "modem",
+                desc            => "Handle empty lines in config file (and don't replace kernel name)",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["modem"],
+                        }],
                 rules           => <<EOF
 
 KERNEL=="ttyACM0", SYMLINK+="modem"
@@ -210,9 +324,12 @@ KERNEL=="ttyACM0", SYMLINK+="modem"
 EOF
         },
         {
-                desc            => "Handle backslashed multi lines in config file (and replace kernel name)",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "modem",
+                desc            => "Handle backslashed multi lines in config file (and don't replace kernel name)",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["modem"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM0", \\
 SYMLINK+="modem"
@@ -221,16 +338,23 @@ EOF
         },
         {
                 desc            => "preserve backslashes, if they are not for a newline",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "aaa",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["aaa"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM0", PROGRAM=="/bin/echo -e \\101", RESULT=="A", SYMLINK+="aaa"
 EOF
         },
+        # 20
         {
-                desc            => "Handle stupid backslashed multi lines in config file (and replace kernel name)",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "modem",
+                desc            => "Handle stupid backslashed multi lines in config file (and don't replace kernel name)",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["modem"],
+                        }],
                 rules           => <<EOF
 
 #
@@ -247,41 +371,57 @@ EOF
         },
         {
                 desc            => "subdirectory handling",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "sub/direct/ory/modem",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["sub/direct/ory/modem"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM0", SYMLINK+="sub/direct/ory/modem"
 EOF
         },
         {
                 desc            => "parent device name match of scsi partition",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "first_disk5",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["first_disk5"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", SYMLINK+="first_disk%n"
 EOF
         },
         {
                 desc            => "test substitution chars",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "Major:8:minor:5:kernelnumber:5:id:0:0:0:0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["Major:8:minor:5:kernelnumber:5:id:0:0:0:0"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", SYMLINK+="Major:%M:minor:%m:kernelnumber:%n:id:%b"
 EOF
         },
         {
                 desc            => "import of shell-value returned from program",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "node12345678",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["node12345678"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", IMPORT{program}="/bin/echo -e \' TEST_KEY=12345678\\n  TEST_key2=98765\'", SYMLINK+="node\$env{TEST_KEY}"
 KERNEL=="ttyACM0", SYMLINK+="modem"
 EOF
         },
         {
-                desc            => "substitution of sysfs value (%s{file})",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "disk-ATA-sda",
+                desc            => "sustitution of sysfs value (%s{file})",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["disk-ATA-sda"],
+                                not_exp_links   => ["modem"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", SYMLINK+="disk-%s{vendor}-%k"
 KERNEL=="ttyACM0", SYMLINK+="modem"
@@ -289,9 +429,12 @@ EOF
         },
         {
                 desc            => "program result substitution",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "special-device-5",
-                not_exp_name    => "not",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["special-device-5"],
+                                not_exp_links   => ["not"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n special-device", RESULT=="-special-*", SYMLINK+="not"
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n special-device", RESULT=="special-*", SYMLINK+="%c-%n"
@@ -299,128 +442,184 @@ EOF
         },
         {
                 desc            => "program result substitution (newline removal)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "newline_removed",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["newline_removed"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo test", RESULT=="test", SYMLINK+="newline_removed"
 EOF
         },
         {
                 desc            => "program result substitution",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "test-0:0:0:0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["test-0:0:0:0"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n test-%b", RESULT=="test-0:0*", SYMLINK+="%c"
 EOF
         },
         {
                 desc            => "program with lots of arguments",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "foo9",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["foo9"],
+                                not_exp_links   => ["foo3", "foo4", "foo5", "foo6", "foo7", "foo8"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n foo3 foo4 foo5 foo6 foo7 foo8 foo9", KERNEL=="sda5", SYMLINK+="%c{7}"
 EOF
         },
         {
                 desc            => "program with subshell",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "bar9",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["bar9"],
+                                not_exp_links   => ["foo3", "foo4", "foo5", "foo6", "foo7", "foo8"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/sh -c 'echo foo3 foo4 foo5 foo6 foo7 foo8 foo9 | sed  s/foo9/bar9/'", KERNEL=="sda5", SYMLINK+="%c{7}"
 EOF
         },
         {
                 desc            => "program arguments combined with apostrophes",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "foo7",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["foo7"],
+                                not_exp_links   => ["foo3", "foo4", "foo5", "foo6", "foo8"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n 'foo3 foo4'   'foo5   foo6   foo7 foo8'", KERNEL=="sda5", SYMLINK+="%c{5}"
 EOF
         },
         {
                 desc            => "program arguments combined with escaped double quotes, part 1",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "foo2",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["foo2"],
+                                not_exp_links   => ["foo1"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/sh -c 'printf %%s \\\"foo1 foo2\\\" | grep \\\"foo1 foo2\\\"'", KERNEL=="sda5", SYMLINK+="%c{2}"
 EOF
         },
         {
                 desc            => "program arguments combined with escaped double quotes, part 2",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "foo2",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["foo2"],
+                                not_exp_links   => ["foo1"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/sh -c \\\"printf %%s 'foo1 foo2' | grep 'foo1 foo2'\\\"", KERNEL=="sda5", SYMLINK+="%c{2}"
 EOF
         },
         {
                 desc            => "program arguments combined with escaped double quotes, part 3",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "foo2",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["foo2"],
+                                not_exp_links   => ["foo1", "foo3"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/sh -c 'printf \\\"%%s %%s\\\" \\\"foo1 foo2\\\" \\\"foo3\\\"| grep \\\"foo1 foo2\\\"'", KERNEL=="sda5", SYMLINK+="%c{2}"
 EOF
         },
         {
                 desc            => "characters before the %c{N} substitution",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "my-foo9",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["my-foo9"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n foo3 foo4 foo5 foo6 foo7 foo8 foo9", KERNEL=="sda5", SYMLINK+="my-%c{7}"
 EOF
         },
         {
                 desc            => "substitute the second to last argument",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "my-foo8",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["my-foo8"],
+                                not_exp_links   => ["my-foo3", "my-foo4", "my-foo5", "my-foo6", "my-foo7", "my-foo9"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n foo3 foo4 foo5 foo6 foo7 foo8 foo9", KERNEL=="sda5", SYMLINK+="my-%c{6}"
 EOF
         },
         {
                 desc            => "test substitution by variable name",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "Major:8-minor:5-kernelnumber:5-id:0:0:0:0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["Major:8-minor:5-kernelnumber:5-id:0:0:0:0"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", SYMLINK+="Major:\$major-minor:\$minor-kernelnumber:\$number-id:\$id"
 EOF
         },
         {
                 desc            => "test substitution by variable name 2",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "Major:8-minor:5-kernelnumber:5-id:0:0:0:0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["Major:8-minor:5-kernelnumber:5-id:0:0:0:0"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", DEVPATH=="*/sda/*", SYMLINK+="Major:\$major-minor:%m-kernelnumber:\$number-id:\$id"
 EOF
         },
         {
                 desc            => "test substitution by variable name 3",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "850:0:0:05",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["850:0:0:05"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", DEVPATH=="*/sda/*", SYMLINK+="%M%m%b%n"
 EOF
         },
         {
                 desc            => "test substitution by variable name 4",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "855",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["855"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", DEVPATH=="*/sda/*", SYMLINK+="\$major\$minor\$number"
 EOF
         },
         {
                 desc            => "test substitution by variable name 5",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "8550:0:0:0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["8550:0:0:0"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", DEVPATH=="*/sda/*", SYMLINK+="\$major%m%n\$id"
 EOF
         },
         {
                 desc            => "non matching SUBSYSTEMS for device with no parent",
-                devpath         => "/devices/virtual/tty/console",
-                exp_name        => "TTY",
+                devices => [
+                        {
+                                devpath         => "/devices/virtual/tty/console",
+                                exp_links       => ["TTY"],
+                                not_exp_links   => ["foo"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n foo", RESULT=="foo", SYMLINK+="foo"
 KERNEL=="console", SYMLINK+="TTY"
@@ -428,8 +627,12 @@ EOF
         },
         {
                 desc            => "non matching SUBSYSTEMS",
-                devpath         => "/devices/virtual/tty/console",
-                exp_name        => "TTY",
+                devices => [
+                        {
+                                devpath         => "/devices/virtual/tty/console",
+                                exp_links       => ["TTY"],
+                                not_exp_links   => ["foo"],
+                        }],
                 rules                => <<EOF
 SUBSYSTEMS=="foo", ATTRS{dev}=="5:1", SYMLINK+="foo"
 KERNEL=="console", SYMLINK+="TTY"
@@ -437,8 +640,11 @@ EOF
         },
         {
                 desc            => "ATTRS match",
-                devpath         => "/devices/virtual/tty/console",
-                exp_name        => "foo",
+                devices => [
+                        {
+                                devpath         => "/devices/virtual/tty/console",
+                                exp_links       => ["foo", "TTY"],
+                        }],
                 rules           => <<EOF
 KERNEL=="console", SYMLINK+="TTY"
 ATTRS{dev}=="5:1", SYMLINK+="foo"
@@ -446,8 +652,12 @@ EOF
         },
         {
                 desc            => "ATTR (empty file)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "empty",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["empty", "not-something"],
+                                not_exp_links   => ["something", "not-empty"],
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", ATTR{test_empty_file}=="?*", SYMLINK+="something"
 KERNEL=="sda", ATTR{test_empty_file}!="", SYMLINK+="not-empty"
@@ -457,8 +667,13 @@ EOF
         },
         {
                 desc            => "ATTR (non-existent file)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "non-existent",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["non-existent", "wrong"],
+                                not_exp_links   => ["something", "empty", "not-empty",
+                                                    "not-something", "something"],
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", ATTR{nofile}=="?*", SYMLINK+="something"
 KERNEL=="sda", ATTR{nofile}!="", SYMLINK+="not-empty"
@@ -470,8 +685,11 @@ EOF
         },
         {
                 desc            => "program and bus type match",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "scsi-0:0:0:0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["scsi-0:0:0:0"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="usb", PROGRAM=="/bin/echo -n usb-%b", SYMLINK+="%c"
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n scsi-%b", SYMLINK+="%c"
@@ -480,16 +698,24 @@ EOF
         },
         {
                 desc            => "sysfs parent hierarchy",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "modem",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["modem"],
+                        }],
                 rules           => <<EOF
 ATTRS{idProduct}=="007b", SYMLINK+="modem"
 EOF
         },
         {
                 desc            => "name test with ! in the name",
-                devpath         => "/devices/virtual/block/fake!blockdev0",
-                exp_name        => "is/a/fake/blockdev0",
+                devices => [
+                        {
+                                devpath         => "/devices/virtual/block/fake!blockdev0",
+                                devnode         => "fake/blockdev0",
+                                exp_links       => ["is/a/fake/blockdev0"],
+                                not_exp_links       => ["is/not/a/fake/blockdev0", "modem"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", SYMLINK+="is/not/a/%k"
 SUBSYSTEM=="block", SYMLINK+="is/a/%k"
@@ -498,17 +724,24 @@ EOF
         },
         {
                 desc            => "name test with ! in the name, but no matching rule",
-                devpath         => "/devices/virtual/block/fake!blockdev0",
-                exp_name        => "fake/blockdev0",
-                exp_rem_error   => "yes",
+                devices => [
+                        {
+                                devpath         => "/devices/virtual/block/fake!blockdev0",
+                                devnode         => "fake/blockdev0",
+                                not_exp_links       => ["modem"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM0", SYMLINK+="modem"
 EOF
         },
         {
                 desc            => "KERNELS rule",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "scsi-0:0:0:0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["scsi-0:0:0:0"],
+                                not_exp_links       => ["no-match", "short-id", "not-scsi"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="usb", KERNELS=="0:0:0:0", SYMLINK+="not-scsi"
 SUBSYSTEMS=="scsi", KERNELS=="0:0:0:1", SYMLINK+="no-match"
@@ -519,8 +752,12 @@ EOF
         },
         {
                 desc            => "KERNELS wildcard all",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "scsi-0:0:0:0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["scsi-0:0:0:0"],
+                                not_exp_links   => ["no-match", "before"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNELS=="*:1", SYMLINK+="no-match"
 SUBSYSTEMS=="scsi", KERNELS=="*:0:1", SYMLINK+="no-match"
@@ -531,8 +768,11 @@ EOF
         },
         {
                 desc            => "KERNELS wildcard partial",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "scsi-0:0:0:0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["scsi-0:0:0:0", "before"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", SYMLINK+="before"
 SUBSYSTEMS=="scsi", KERNELS=="*:0", SYMLINK+="scsi-0:0:0:0"
@@ -540,41 +780,57 @@ EOF
         },
         {
                 desc            => "KERNELS wildcard partial 2",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "scsi-0:0:0:0",
-                rules           => <<EOF
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["scsi-0:0:0:0", "before"],
+                        }],
+                rules                => <<EOF
 SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", SYMLINK+="before"
 SUBSYSTEMS=="scsi", KERNELS=="*:0:0:0", SYMLINK+="scsi-0:0:0:0"
 EOF
         },
         {
                 desc            => "substitute attr with link target value (first match)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "driver-is-sd",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["driver-is-sd"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", SYMLINK+="driver-is-\$attr{driver}"
 EOF
         },
         {
                 desc            => "substitute attr with link target value (currently selected device)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "driver-is-ahci",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["driver-is-ahci"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="pci", SYMLINK+="driver-is-\$attr{driver}"
 EOF
         },
         {
                 desc            => "ignore ATTRS attribute whitespace",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "ignored",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["ignored"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", ATTRS{whitespace_test}=="WHITE  SPACE", SYMLINK+="ignored"
 EOF
         },
         {
                 desc            => "do not ignore ATTRS attribute whitespace",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "matched-with-space",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["matched-with-space"],
+                                not_exp_links   => ["wrong-to-ignore"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", ATTRS{whitespace_test}=="WHITE  SPACE ", SYMLINK+="wrong-to-ignore"
 SUBSYSTEMS=="scsi", ATTRS{whitespace_test}=="WHITE  SPACE   ", SYMLINK+="matched-with-space"
@@ -582,117 +838,150 @@ EOF
         },
         {
                 desc            => "permissions USER=bad GROUP=name",
-                devpath         => "/devices/virtual/tty/tty33",
-                exp_name        => "tty33",
-                exp_perms       => "0:0:0600",
+                devices => [
+                        {
+                                devpath         => "/devices/virtual/tty/tty33",
+                                exp_perms       => "0:0:0600",
+                        }],
                 rules           => <<EOF
 KERNEL=="tty33", OWNER="bad", GROUP="name"
 EOF
         },
         {
                 desc            => "permissions OWNER=1",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "node",
-                exp_perms       => "1::0600",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["node"],
+                                exp_perms       => "1::0600",
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", OWNER="1"
 EOF
         },
         {
                 desc            => "permissions GROUP=1",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "node",
-                exp_perms       => ":1:0660",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["node"],
+                                exp_perms       => ":1:0660",
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", GROUP="1"
 EOF
         },
         {
                 desc            => "textual user id",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "node",
-                exp_perms       => "daemon::0600",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["node"],
+                                exp_perms       => "daemon::0600",
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", OWNER="daemon"
 EOF
         },
         {
                 desc            => "textual group id",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "node",
-                exp_perms       => ":daemon:0660",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["node"],
+                                exp_perms       => ":daemon:0660",
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", GROUP="daemon"
 EOF
         },
         {
                 desc            => "textual user/group id",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "node",
-                exp_perms       => "root:audio:0660",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["node"],
+                                exp_perms       => "root:audio:0660",
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", OWNER="root", GROUP="audio"
 EOF
         },
         {
                 desc            => "permissions MODE=0777",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "node",
-                exp_perms       => "::0777",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["node"],
+                                exp_perms       => "::0777",
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", MODE="0777"
 EOF
         },
         {
                 desc            => "permissions OWNER=1 GROUP=1 MODE=0777",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "node",
-                exp_perms       => "1:1:0777",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["node"],
+                                exp_perms       => "1:1:0777",
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", OWNER="1", GROUP="1", MODE="0777"
 EOF
         },
         {
                 desc            => "permissions OWNER to 1",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "ttyACM0",
-                exp_perms       => "1::",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_perms       => "1::",
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", OWNER="1"
 EOF
         },
         {
                 desc            => "permissions GROUP to 1",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "ttyACM0",
-                exp_perms       => ":1:0660",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_perms       => ":1:0660",
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", GROUP="1"
 EOF
         },
         {
                 desc            => "permissions MODE to 0060",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "ttyACM0",
-                exp_perms       => "::0060",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_perms       => "::0060",
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", MODE="0060"
 EOF
         },
         {
                 desc            => "permissions OWNER, GROUP, MODE",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "ttyACM0",
-                exp_perms       => "1:1:0777",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_perms       => "1:1:0777",
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", OWNER="1", GROUP="1", MODE="0777"
 EOF
         },
         {
                 desc            => "permissions only rule",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "ttyACM0",
-                exp_perms       => "1:1:0777",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_perms       => "1:1:0777",
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", OWNER="1", GROUP="1", MODE="0777"
 KERNEL=="ttyUSX[0-9]*", OWNER="2", GROUP="2", MODE="0444"
@@ -701,9 +990,11 @@ EOF
         },
         {
                 desc            => "multiple permissions only rule",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "ttyACM0",
-                exp_perms       => "1:1:0777",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_perms       => "1:1:0777",
+                        }],
                 rules           => <<EOF
 SUBSYSTEM=="tty", OWNER="1"
 SUBSYSTEM=="tty", GROUP="1"
@@ -714,9 +1005,11 @@ EOF
         },
         {
                 desc            => "permissions only rule with override at SYMLINK+ rule",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "ttyACM0",
-                exp_perms       => "1:2:0777",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_perms       => "1:2:0777",
+                        }],
                 rules           => <<EOF
 SUBSYSTEM=="tty", OWNER="1"
 SUBSYSTEM=="tty", GROUP="1"
@@ -727,53 +1020,71 @@ EOF
         },
         {
                 desc            => "major/minor number test",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "node",
-                exp_majorminor  => "8:0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["node"],
+                                exp_majorminor  => "8:0",
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node"
 EOF
         },
         {
                 desc            => "big major number test",
-                devpath         => "/devices/virtual/misc/misc-fake1",
-                exp_name        => "node",
-                exp_majorminor  => "4095:1",
-                rules           => <<EOF
+                devices => [
+                        {
+                                devpath         => "/devices/virtual/misc/misc-fake1",
+                                exp_links       => ["node"],
+                                exp_majorminor  => "4095:1",
+                        }],
+                rules                => <<EOF
 KERNEL=="misc-fake1", SYMLINK+="node"
 EOF
         },
         {
                 desc            => "big major and big minor number test",
-                devpath         => "/devices/virtual/misc/misc-fake89999",
-                exp_name        => "node",
-                exp_majorminor  => "4095:89999",
+                devices => [
+                        {
+                                devpath         => "/devices/virtual/misc/misc-fake89999",
+                                exp_links       => ["node"],
+                                exp_majorminor  => "4095:89999",
+                        }],
                 rules           => <<EOF
 KERNEL=="misc-fake89999", SYMLINK+="node"
 EOF
         },
         {
                 desc            => "multiple symlinks with format char",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "symlink2-ttyACM0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["symlink1-0", "symlink2-ttyACM0", "symlink3-"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", SYMLINK="symlink1-%n symlink2-%k symlink3-%b"
 EOF
         },
         {
                 desc            => "multiple symlinks with a lot of s p a c e s",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "one",
-                not_exp_name    => " ",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["one", "two"],
+                                not_exp_links       => [" "],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", SYMLINK="  one     two        "
 EOF
         },
         {
                 desc            => "symlink with spaces in substituted variable",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "name-one_two_three-end",
-                not_exp_name    => " ",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["name-one_two_three-end"],
+                                not_exp_links   => [" "],
+                        }],
                 rules           => <<EOF
 ENV{WITH_WS}="one two three"
 SYMLINK="name-\$env{WITH_WS}-end"
@@ -781,9 +1092,12 @@ EOF
         },
         {
                 desc            => "symlink with leading space in substituted variable",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "name-one_two_three-end",
-                not_exp_name    => " ",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["name-one_two_three-end"],
+                                not_exp_links   => [" "],
+                        }],
                 rules           => <<EOF
 ENV{WITH_WS}="   one two three"
 SYMLINK="name-\$env{WITH_WS}-end"
@@ -791,9 +1105,12 @@ EOF
         },
         {
                 desc            => "symlink with trailing space in substituted variable",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "name-one_two_three-end",
-                not_exp_name    => " ",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["name-one_two_three-end"],
+                                not_exp_links   => [" "],
+                        }],
                 rules           => <<EOF
 ENV{WITH_WS}="one two three   "
 SYMLINK="name-\$env{WITH_WS}-end"
@@ -801,9 +1118,12 @@ EOF
         },
         {
                 desc            => "symlink with lots of space in substituted variable",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "name-one_two_three-end",
-                not_exp_name    => " ",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["name-one_two_three-end"],
+                                not_exp_links   => [" "],
+                        }],
                 rules           => <<EOF
 ENV{WITH_WS}="   one two three   "
 SYMLINK="name-\$env{WITH_WS}-end"
@@ -811,39 +1131,26 @@ EOF
         },
         {
                 desc            => "symlink with multiple spaces in substituted variable",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "name-one_two_three-end",
-                not_exp_name    => " ",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["name-one_two_three-end"],
+                                not_exp_links   => [" "],
+                        }],
                 rules           => <<EOF
 ENV{WITH_WS}="   one  two  three   "
 SYMLINK="name-\$env{WITH_WS}-end"
 EOF
         },
         {
-                desc            => "symlink with space and var with space, part 1",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "first",
-                not_exp_name    => " ",
-                rules           => <<EOF
-ENV{WITH_WS}="   one  two  three   "
-SYMLINK="  first  name-\$env{WITH_WS}-end another_symlink a b c "
-EOF
-        },
-        {
-                desc            => "symlink with space and var with space, part 2",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "name-one_two_three-end",
-                not_exp_name    => " ",
-                rules           => <<EOF
-ENV{WITH_WS}="   one  two  three   "
-SYMLINK="  first  name-\$env{WITH_WS}-end another_symlink a b c "
-EOF
-        },
-        {
-                desc            => "symlink with space and var with space, part 3",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "another_symlink",
-                not_exp_name    => " ",
+                desc            => "symlink with space and var with space",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["first", "name-one_two_three-end",
+                                                    "another_symlink", "a", "b", "c"],
+                                not_exp_links   => [" "],
+                        }],
                 rules           => <<EOF
 ENV{WITH_WS}="   one  two  three   "
 SYMLINK="  first  name-\$env{WITH_WS}-end another_symlink a b c "
@@ -851,133 +1158,187 @@ EOF
         },
         {
                 desc            => "symlink creation (same directory)",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "modem0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["modem0"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", SYMLINK="modem%n"
 EOF
         },
         {
                 desc            => "multiple symlinks",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "second-0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["first-0", "second-0", "third-0"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM0", SYMLINK="first-%n second-%n third-%n"
 EOF
         },
         {
                 desc            => "symlink name '.'",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => ".",
-                exp_add_error   => "yes",
-                exp_rem_error   => "yes",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["."],
+                                exp_add_error        => "yes",
+                                exp_rem_error        => "yes",
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="."
 EOF
         },
         {
                 desc            => "symlink node to itself",
-                devpath         => "/devices/virtual/tty/tty0",
-                exp_name        => "link",
-                exp_add_error   => "yes",
-                exp_rem_error   => "yes",
-                option          => "clean",
+                devices => [
+                        {
+                                devpath         => "/devices/virtual/tty/tty0",
+                                exp_links       => ["link"],
+                                exp_add_error        => "yes",
+                                exp_rem_error        => "yes",
+                        }],
+                option                => "clean",
                 rules           => <<EOF
 KERNEL=="tty0", SYMLINK+="tty0"
 EOF
         },
         {
                 desc            => "symlink %n substitution",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "symlink0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["symlink0"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", SYMLINK+="symlink%n"
 EOF
         },
         {
                 desc            => "symlink %k substitution",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "symlink-ttyACM0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["symlink-ttyACM0"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", SYMLINK+="symlink-%k"
 EOF
         },
         {
                 desc            => "symlink %M:%m substitution",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "major-166:0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["major-166:0"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyACM%n", SYMLINK+="major-%M:%m"
 EOF
         },
         {
                 desc            => "symlink %b substitution",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "symlink-0:0:0:0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["symlink-0:0:0:0"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="symlink-%b"
 EOF
         },
         {
                 desc            => "symlink %c substitution",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "test",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["test"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", PROGRAM=="/bin/echo test", SYMLINK+="%c"
 EOF
         },
         {
                 desc            => "symlink %c{N} substitution",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "test",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["test"],
+                                not_exp_links   => ["symlink", "this"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", PROGRAM=="/bin/echo symlink test this", SYMLINK+="%c{2}"
 EOF
         },
         {
                 desc            => "symlink %c{N+} substitution",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "this",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["test", "this"],
+                                not_exp_links   => ["symlink"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", PROGRAM=="/bin/echo symlink test this", SYMLINK+="%c{2+}"
 EOF
         },
         {
                 desc            => "symlink only rule with %c{N+}",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "test",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["test", "this"],
+                                not_exp_links   => ["symlink"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda", PROGRAM=="/bin/echo link test this" SYMLINK+="%c{2+}"
 EOF
         },
         {
                 desc            => "symlink %s{filename} substitution",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "166:0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["166:0"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", SYMLINK+="%s{dev}"
 EOF
         },
         {
                 desc            => "program result substitution (numbered part of)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "link1",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["link1", "link2"],
+                                not_exp_links   => ["node"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n node link1 link2", RESULT=="node *", SYMLINK+="%c{2} %c{3}"
 EOF
         },
         {
                 desc            => "program result substitution (numbered part of+)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
-                exp_name        => "link4",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["link1", "link2", "link3", "link4"],
+                                not_exp_links   => ["node"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", PROGRAM=="/bin/echo -n node link1 link2 link3 link4", RESULT=="node *", SYMLINK+="%c{2+}"
 EOF
         },
         {
                 desc            => "SUBSYSTEM match test",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "node",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["node"],
+                                not_exp_links   => ["should_not_match", "should_not_match2"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="should_not_match", SUBSYSTEM=="vc"
 SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", SUBSYSTEM=="block"
@@ -986,8 +1347,12 @@ EOF
         },
         {
                 desc            => "DRIVERS match test",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "node",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["node"],
+                                not_exp_links   => ["should_not_match"]
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="should_not_match", DRIVERS=="sd-wrong"
 SUBSYSTEMS=="scsi", KERNEL=="sda", SYMLINK+="node", DRIVERS=="sd"
@@ -995,32 +1360,47 @@ EOF
         },
         {
                 desc            => "devnode substitution test",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "node",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["node"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda", PROGRAM=="/usr/bin/test -b %N" SYMLINK+="node"
 EOF
         },
         {
                 desc            => "parent node name substitution test",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "sda-part-1",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["sda-part-1"],
+                        }],
                 rules           => <<EOF
-SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="%P-part-1"
+SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="%P-part-%n"
 EOF
         },
         {
                 desc            => "udev_root substitution",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "start-/dev-end",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["start-/dev-end"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="start-%r-end"
 EOF
         },
         {
+                # This is not supported any more
                 desc            => "last_rule option",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "last",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["last"],
+                                not_exp_links   => ["very-last"],
+                                exp_nodev_error => "yes",
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="last", OPTIONS="last_rule"
 SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="very-last"
@@ -1028,8 +1408,12 @@ EOF
         },
         {
                 desc            => "negation KERNEL!=",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "match",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["match", "before"],
+                                not_exp_links   => ["matches-but-is-negated"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL!="sda1", SYMLINK+="matches-but-is-negated"
 SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="before"
@@ -1038,8 +1422,12 @@ EOF
         },
         {
                 desc            => "negation SUBSYSTEM!=",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "not-anything",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["before", "not-anything"],
+                                not_exp_links   => ["matches-but-is-negated"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", SUBSYSTEM=="block", KERNEL!="sda1", SYMLINK+="matches-but-is-negated"
 SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="before"
@@ -1048,8 +1436,11 @@ EOF
         },
         {
                 desc            => "negation PROGRAM!= exit code",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "nonzero-program",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["before", "nonzero-program"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="before"
 KERNEL=="sda1", PROGRAM!="/bin/false", SYMLINK+="nonzero-program"
@@ -1057,8 +1448,12 @@ EOF
         },
         {
                 desc            => "ENV{} test",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "true",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["true"],
+                                not_exp_links   => ["bad", "wrong"],
+                        }],
                 rules           => <<EOF
 ENV{ENV_KEY_TEST}="test"
 SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ENV_KEY_TEST}=="go", SYMLINK+="wrong"
@@ -1068,8 +1463,12 @@ EOF
         },
         {
                 desc            => "ENV{} test",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "true",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["true"],
+                                not_exp_links   => ["bad", "wrong", "no"],
+                        }],
                 rules           => <<EOF
 ENV{ENV_KEY_TEST}="test"
 SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ENV_KEY_TEST}=="go", SYMLINK+="wrong"
@@ -1080,8 +1479,12 @@ EOF
         },
         {
                 desc            => "ENV{} test (assign)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "true",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["true", "before"],
+                                not_exp_links   => ["no"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}="true"
 SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}=="yes", SYMLINK+="no"
@@ -1091,20 +1494,35 @@ EOF
         },
         {
                 desc            => "ENV{} test (assign 2 times)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "true",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["true", "before"],
+                                not_exp_links   => ["no", "bad"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}="true"
 SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}="absolutely-\$env{ASSIGN}"
 SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="before"
 SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}=="yes", SYMLINK+="no"
+SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}=="true", SYMLINK+="bad"
 SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}=="absolutely-true", SYMLINK+="true"
 EOF
         },
         {
                 desc            => "ENV{} test (assign2)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "part",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["part"],
+                                not_exp_links   => ["disk"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["disk"],
+                                not_exp_links   => ["part"],
+                        },
+                    ],
                 rules           => <<EOF
 SUBSYSTEM=="block", KERNEL=="*[0-9]", ENV{PARTITION}="true", ENV{MAINDEVICE}="false"
 SUBSYSTEM=="block", KERNEL=="*[!0-9]", ENV{PARTITION}="false", ENV{MAINDEVICE}="true"
@@ -1115,40 +1533,56 @@ EOF
         },
         {
                 desc            => "untrusted string sanitize",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "sane",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["sane"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda1", PROGRAM=="/bin/echo -e name; (/usr/bin/badprogram)", RESULT=="name_ _/usr/bin/badprogram_", SYMLINK+="sane"
 EOF
         },
         {
                 desc            => "untrusted string sanitize (don't replace utf8)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "uber",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["uber"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda1", PROGRAM=="/bin/echo -e \\xc3\\xbcber" RESULT=="\xc3\xbcber", SYMLINK+="uber"
 EOF
         },
         {
                 desc            => "untrusted string sanitize (replace invalid utf8)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "replaced",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["replaced"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", KERNEL=="sda1", PROGRAM=="/bin/echo -e \\xef\\xe8garbage", RESULT=="__garbage", SYMLINK+="replaced"
 EOF
         },
         {
                 desc            => "read sysfs value from parent device",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "serial-354172020305000",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["serial-354172020305000"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM*", ATTRS{serial}=="?*", SYMLINK+="serial-%s{serial}"
 EOF
         },
         {
                 desc            => "match against empty key string",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "ok",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["ok"],
+                                not_exp_links   => ["not-1-ok", "not-2-ok", "not-3-ok"],
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", ATTRS{nothing}!="", SYMLINK+="not-1-ok"
 KERNEL=="sda", ATTRS{nothing}=="", SYMLINK+="not-2-ok"
@@ -1158,8 +1592,12 @@ EOF
         },
         {
                 desc            => "check ACTION value",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "ok",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["ok"],
+                                not_exp_links   => ["unknown-not-ok"],
+                        }],
                 rules           => <<EOF
 ACTION=="unknown", KERNEL=="sda", SYMLINK+="unknown-not-ok"
 ACTION=="add", KERNEL=="sda", SYMLINK+="ok"
@@ -1167,38 +1605,50 @@ EOF
         },
         {
                 desc            => "final assignment",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "ok",
-                exp_perms       => "root:tty:0640",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["ok"],
+                                exp_perms       => "root:tty:0640",
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", GROUP:="tty"
-KERNEL=="sda", GROUP="not-ok", MODE="0640", SYMLINK+="ok"
+KERNEL=="sda", GROUP="root", MODE="0640", SYMLINK+="ok"
 EOF
         },
         {
                 desc            => "final assignment 2",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "ok",
-                exp_perms       => "root:tty:0640",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["ok"],
+                                exp_perms       => "root:tty:0640",
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", GROUP:="tty"
 SUBSYSTEM=="block", MODE:="640"
-KERNEL=="sda", GROUP="not-ok", MODE="0666", SYMLINK+="ok"
+KERNEL=="sda", GROUP="root", MODE="0666", SYMLINK+="ok"
 EOF
         },
         {
                 desc            => "env substitution",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "node-add-me",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["node-add-me"],
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", MODE="0666", SYMLINK+="node-\$env{ACTION}-me"
 EOF
         },
         {
                 desc            => "reset list to current value",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "three",
-                not_exp_name    => "two",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["three"],
+                                not_exp_links   => ["two", "one"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", SYMLINK+="one"
 KERNEL=="ttyACM[0-9]*", SYMLINK+="two"
@@ -1207,9 +1657,12 @@ EOF
         },
         {
                 desc            => "test empty SYMLINK+ (empty override)",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "right",
-                not_exp_name    => "wrong",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["right"],
+                                not_exp_links   => ["wrong"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM[0-9]*", SYMLINK+="wrong"
 KERNEL=="ttyACM[0-9]*", SYMLINK=""
@@ -1218,8 +1671,11 @@ EOF
         },
         {
                 desc            => "test multi matches",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "right",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["right", "before"],
+                        }],
                 rules           => <<EOF
 KERNEL=="ttyACM*", SYMLINK+="before"
 KERNEL=="ttyACM*|nothing", SYMLINK+="right"
@@ -1227,8 +1683,12 @@ EOF
         },
         {
                 desc            => "test multi matches 2",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "right",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["right", "before"],
+                                not_exp_links   => ["nomatch"],
+                        }],
                 rules           => <<EOF
 KERNEL=="dontknow*|*nothing", SYMLINK+="nomatch"
 KERNEL=="ttyACM*", SYMLINK+="before"
@@ -1237,8 +1697,12 @@ EOF
         },
         {
                 desc            => "test multi matches 3",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "right",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["right"],
+                                not_exp_links   => ["nomatch", "wrong1", "wrong2"],
+                        }],
                 rules           => <<EOF
 KERNEL=="dontknow|nothing", SYMLINK+="nomatch"
 KERNEL=="dontknow|ttyACM0a|nothing|attyACM0", SYMLINK+="wrong1"
@@ -1248,8 +1712,12 @@ EOF
         },
         {
                 desc            => "test multi matches 4",
-                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
-                exp_name        => "right",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1d.7/usb5/5-2/5-2:1.0/tty/ttyACM0",
+                                exp_links       => ["right"],
+                                not_exp_links   => ["nomatch", "wrong1", "wrong2", "wrong3"],
+                        }],
                 rules           => <<EOF
 KERNEL=="dontknow|nothing", SYMLINK+="nomatch"
 KERNEL=="dontknow|ttyACM0a|nothing|attyACM0", SYMLINK+="wrong1"
@@ -1259,10 +1727,13 @@ KERNEL=="ttyACM0a|nothing", SYMLINK+="wrong3"
 EOF
         },
         {
-                desc            => "test multi matches 5",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "found",
-                not_exp_name    => "bad",
+               desc            => "test multi matches 5",
+               devices => [
+                       {
+                               devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                               exp_links       => ["found"],
+                               not_exp_name    => "bad",
+                       }],
                 rules           => <<EOF
 KERNEL=="sda", TAG="foo"
 TAGS=="|foo", SYMLINK+="found"
@@ -1271,9 +1742,12 @@ EOF
         },
         {
                 desc            => "test multi matches 6",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "found",
-                not_exp_name    => "bad",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["found"],
+                                not_exp_name    => "bad",
+                       }],
                 rules           => <<EOF
 KERNEL=="sda", TAG=""
 TAGS=="|foo", SYMLINK+="found"
@@ -1282,9 +1756,12 @@ EOF
         },
         {
                 desc            => "test multi matches 7",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "found",
-                not_exp_name    => "bad",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["found"],
+                                not_exp_name    => "bad",
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", TAG="foo"
 TAGS=="foo||bar", SYMLINK+="found"
@@ -1293,9 +1770,12 @@ EOF
         },
         {
                 desc            => "test multi matches 8",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "found",
-                not_exp_name    => "bad",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["found"],
+                                not_exp_name    => "bad",
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", TAG=""
 TAGS=="foo||bar", SYMLINK+="found"
@@ -1304,9 +1784,12 @@ EOF
         },
         {
                 desc            => "test multi matches 9",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "found",
-                not_exp_name    => "bad",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["found"],
+                                not_exp_name    => "bad",
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", TAG="foo"
 TAGS=="foo|", SYMLINK+="found"
@@ -1315,9 +1798,12 @@ EOF
         },
         {
                 desc            => "test multi matches 10",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "found",
-                not_exp_name    => "bad",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["found"],
+                                not_exp_name    => "bad",
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", TAG=""
 TAGS=="foo|", SYMLINK+="found"
@@ -1326,9 +1812,12 @@ EOF
         },
         {
                 desc            => "test multi matches 11",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "found",
-                not_exp_name    => "bad",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["found"],
+                                not_exp_name    => "bad",
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", TAG="c"
 TAGS=="foo||bar||c", SYMLINK+="found"
@@ -1336,28 +1825,31 @@ TAGS=="aaa||bbb||ccc", SYMLINK+="bad"
 EOF
         },
         {
-                desc            => "IMPORT parent test sequence 1/2 (keep)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "parent",
-                option          => "keep",
+                desc            => "IMPORT parent test",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["parent"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["parentenv-parent_right"],
+                        }],
+                sleep_us        => 500000,  # Serialized! We need to sleep here after adding sda
                 rules           => <<EOF
+KERNEL=="sda1", IMPORT{parent}="PARENT*", SYMLINK+="parentenv-\$env{PARENT_KEY}\$env{WRONG_PARENT_KEY}"
 KERNEL=="sda", IMPORT{program}="/bin/echo -e \'PARENT_KEY=parent_right\\nWRONG_PARENT_KEY=parent_wrong'"
 KERNEL=="sda", SYMLINK+="parent"
-EOF
-        },
-        {
-                desc            => "IMPORT parent test sequence 2/2 (keep)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "parentenv-parent_right",
-                option          => "clean",
-                rules           => <<EOF
-KERNEL=="sda1", IMPORT{parent}="PARENT*", SYMLINK+="parentenv-\$env{PARENT_KEY}\$env{WRONG_PARENT_KEY}"
 EOF
         },
         {
                 desc            => "GOTO test",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "right",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["right"],
+                                not_exp_test    => ["wrong", "wrong2"],
+                        }],
                 rules           => <<EOF
 KERNEL=="sda1", GOTO="TEST"
 KERNEL=="sda1", SYMLINK+="wrong"
@@ -1370,8 +1862,11 @@ EOF
         },
         {
                 desc            => "GOTO label does not exist",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "right",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["right"],
+                        }],
                 rules           => <<EOF
 KERNEL=="sda1", GOTO="does-not-exist"
 KERNEL=="sda1", SYMLINK+="right",
@@ -1380,9 +1875,12 @@ EOF
         },
         {
                 desc            => "SYMLINK+ compare test",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "right",
-                not_exp_name    => "wrong",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["right", "link"],
+                                not_exp_links   => ["wrong"],
+                        }],
                 rules           => <<EOF
 KERNEL=="sda1", SYMLINK+="link"
 KERNEL=="sda1", SYMLINK=="link*", SYMLINK+="right"
@@ -1391,8 +1889,12 @@ EOF
         },
         {
                 desc            => "invalid key operation",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "yes",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["yes"],
+                                not_exp_links   => ["no"],
+                        }],
                 rules           => <<EOF
 KERNEL="sda1", SYMLINK+="no"
 KERNEL=="sda1", SYMLINK+="yes"
@@ -1400,16 +1902,23 @@ EOF
         },
         {
                 desc            => "operator chars in attribute",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "yes",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["yes"],
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", ATTR{test:colon+plus}=="?*", SYMLINK+="yes"
 EOF
         },
         {
                 desc            => "overlong comment line",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
-                exp_name        => "yes",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["yes"],
+                                not_exp_links   => ["no"],
+                        }],
                 rules           => <<EOF
 # 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
    # 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
@@ -1419,16 +1928,23 @@ EOF
         },
         {
                 desc            => "magic subsys/kernel lookup",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "00:16:41:e2:8d:ff",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["00:16:41:e2:8d:ff"],
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", SYMLINK+="\$attr{[net/eth0]address}"
 EOF
         },
         {
                 desc            => "TEST absolute path",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "there",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["there"],
+                                not_exp_links   => ["notthere"],
+                        }],
                 rules           => <<EOF
 TEST=="/etc/machine-id", SYMLINK+="there"
 TEST!="/etc/machine-id", SYMLINK+="notthere"
@@ -1436,44 +1952,56 @@ EOF
         },
         {
                 desc            => "TEST subsys/kernel lookup",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "yes",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["yes"],
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", TEST=="[net/eth0]", SYMLINK+="yes"
 EOF
         },
         {
                 desc            => "TEST relative path",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "relative",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["relative"],
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", TEST=="size", SYMLINK+="relative"
 EOF
         },
         {
                 desc            => "TEST wildcard substitution (find queue/nr_requests)",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "found-subdir",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["found-subdir"],
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", TEST=="*/nr_requests", SYMLINK+="found-subdir"
 EOF
         },
         {
                 desc            => "TEST MODE=0000",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "sda",
-                exp_perms       => "0:0:0000",
-                exp_rem_error   => "yes",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_perms       => "0:0:0000",
+                                exp_rem_error   => "yes",
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", MODE="0000"
 EOF
         },
         {
                 desc            => "TEST PROGRAM feeds OWNER, GROUP, MODE",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "sda",
-                exp_perms       => "1:1:0400",
-                exp_rem_error   => "yes",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_perms       => "1:1:0400",
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", MODE="666"
 KERNEL=="sda", PROGRAM=="/bin/echo 1 1 0400", OWNER="%c{1}", GROUP="%c{2}", MODE="%c{3}"
@@ -1481,10 +2009,12 @@ EOF
         },
         {
                 desc            => "TEST PROGRAM feeds MODE with overflow",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "sda",
-                exp_perms       => "0:0:0440",
-                exp_rem_error   => "yes",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_perms       => "0:0:0440",
+                                exp_rem_error   => "yes",
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", MODE="440"
 KERNEL=="sda", PROGRAM=="/bin/echo 0 0 0400letsdoabuffferoverflow0123456789012345789012345678901234567890", OWNER="%c{1}", GROUP="%c{2}", MODE="%c{3}"
@@ -1492,19 +2022,23 @@ EOF
         },
         {
                 desc            => "magic [subsys/sysname] attribute substitution",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "sda-8741C4G-end",
-                exp_perms       => "0:0:0600",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["sda-8741C4G-end"],
+                                exp_perms       => "0:0:0600",
+                        }],
                 rules           => <<EOF
-KERNEL=="sda", PROGRAM="/bin/true create-envp"
-KERNEL=="sda", ENV{TESTENV}="change-envp"
 KERNEL=="sda", SYMLINK+="%k-%s{[dmi/id]product_name}-end"
 EOF
         },
         {
                 desc            => "builtin path_id",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0"],
+                        }],
                 rules           => <<EOF
 KERNEL=="sda", IMPORT{builtin}="path_id"
 KERNEL=="sda", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/\$env{ID_PATH}"
@@ -1512,9 +2046,12 @@ EOF
         },
         {
                 desc            => "add and match tag",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "found",
-                not_exp_name    => "bad",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["found"],
+                                not_exp_links   => ["bad"],
+                        }],
                 rules           => <<EOF
 SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", TAG+="green"
 TAGS=="green", SYMLINK+="found"
@@ -1523,17 +2060,23 @@ EOF
         },
         {
                 desc            => "don't crash with lots of tags",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "found",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["found"],
+                        }],
                 rules           => $rules_10k_tags . <<EOF
 TAGS=="test1", TAGS=="test500", TAGS=="test1234", TAGS=="test9999", TAGS=="test10000", SYMLINK+="found"
 EOF
         },
         {
                 desc            => "continuations",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "found",
-                not_exp_name    => "bad",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["found"],
+                                not_exp_name    => "bad",
+                        }],
                 rules           => $rules_10k_tags_continuation . <<EOF
 TAGS=="test1", TAGS=="test500", TAGS=="test1234", TAGS=="test9999", TAGS=="test10000", SYMLINK+="bad"
 KERNEL=="sda",\\
@@ -1551,9 +2094,13 @@ EOF
         },
         {
                 desc            => "continuations with empty line",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "found",
-                not_exp_name    => "bad",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["found"],
+                                not_exp_name    => "bad",
+
+                        }],
                 rules           => <<EOF
 # empty line finishes continuation
 KERNEL=="sda", TAG+="foo" \\
@@ -1563,13 +2110,16 @@ KERNEL=="sda", TAG+="aaa" \\
 KERNEL=="sdb", TAG+="bbb"
 TAGS=="foo", SYMLINK+="found"
 TAGS=="aaa", SYMLINK+="bad"
-EOF
+                    EOF
         },
         {
                 desc            => "continuations with white only line",
-                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
-                exp_name        => "found",
-                not_exp_name    => "bad",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
+                                exp_links       => ["found"],
+                                not_exp_name    => "bad",
+                        }],
                 rules           => <<EOF
 # space only line finishes continuation
 KERNEL=="sda", TAG+="foo" \\
@@ -1581,16 +2131,199 @@ TAGS=="foo", SYMLINK+="found"
 TAGS=="aaa", SYMLINK+="bad"
 EOF
         },
+        {
+                desc            => "multiple devices",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["part-1"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["part-5"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6",
+                                exp_links       => ["part-6"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7",
+                                exp_links       => ["part-7"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8",
+                                exp_links       => ["part-8"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9",
+                                exp_links       => ["part-9"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10",
+                                exp_links       => ["part-10"],
+                        },
+                    ],
+                rules          => <<EOF
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="part-%n"
+EOF
+        },
+        {
+                desc            => "multiple devices, same link name, positive prio",
+                repeat          => 100,
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["part-1"],
+                                not_exp_links   => ["partition"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["part-5"],
+                                not_exp_links   => ["partition"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6",
+                                not_exp_links   => ["partition"],
+                                exp_links       => ["part-6"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7",
+                                exp_links       => ["part-7", "partition"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8",
+                                not_exp_links   => ["partition"],
+                                exp_links       => ["part-8"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9",
+                                not_exp_links   => ["partition"],
+                                exp_links       => ["part-9"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10",
+                                not_exp_links   => ["partition"],
+                                exp_links       => ["part-10"],
+                        },
+                    ],
+                rules          => <<EOF
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="part-%n"
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="partition"
+KERNEL=="*7", OPTIONS+="link_priority=10"
+EOF
+        },
+        {
+                desc            => "multiple devices, same link name, negative prio",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["part-1"],
+                                not_exp_links   => ["partition"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["part-5"],
+                                not_exp_links   => ["partition"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6",
+                                not_exp_links   => ["partition"],
+                                exp_links       => ["part-6"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7",
+                                exp_links       => ["part-7", "partition"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8",
+                                not_exp_links   => ["partition"],
+                                exp_links       => ["part-8"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9",
+                                not_exp_links   => ["partition"],
+                                exp_links       => ["part-9"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10",
+                                not_exp_links   => ["partition"],
+                                exp_links       => ["part-10"],
+                        },
+                    ],
+                rules          => <<EOF
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="part-%n"
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="partition"
+KERNEL!="*7", OPTIONS+="link_priority=-10"
+EOF
+        },
+        {
+                desc            => "multiple devices, same link name, positive prio, sleep",
+                devices => [
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+                                exp_links       => ["part-1"],
+                                not_exp_links   => ["partition"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
+                                exp_links       => ["part-5"],
+                                not_exp_links   => ["partition"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6",
+                                not_exp_links   => ["partition"],
+                                exp_links       => ["part-6"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7",
+                                exp_links       => ["part-7", "partition"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8",
+                                not_exp_links   => ["partition"],
+                                exp_links       => ["part-8"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9",
+                                not_exp_links   => ["partition"],
+                                exp_links       => ["part-9"],
+                        },
+                        {
+                                devpath         => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10",
+                                not_exp_links   => ["partition"],
+                                exp_links       => ["part-10"],
+                        },
+                    ],
+                sleep_us       => 10000,
+                rules          => <<EOF
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="part-%n"
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="partition"
+KERNEL=="*7", OPTIONS+="link_priority=10"
+EOF
+        },
+        {
+                desc           => 'all_block_devs',
+                generator      => expect_for_some("\\/sda6\$", ["blockdev"]),
+                repeat         => 10,
+                rules          => <<EOF
+SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sd*", SYMLINK+="blockdev"
+KERNEL=="sda6", OPTIONS+="link_priority=10"
+EOF
+        }
 );
 
-sub udev {
-        my ($action, $devpath, $rules) = @_;
+sub create_rules {
+        my ($rules) = @_;
 
         # create temporary rules
         system("mkdir", "-p", "$udev_rules_dir");
         open CONF, ">$udev_rules" || die "unable to create rules file: $udev_rules";
         print CONF $$rules;
         close CONF;
+}
+
+sub udev {
+        my ($action, $devpath) = @_;
 
         if ($valgrind > 0) {
                 return system("$udev_bin_valgrind $action $devpath");
@@ -1604,6 +2337,8 @@ sub udev {
 }
 
 my $error = 0;
+my $good = 0;
+my $exp_good = 0;
 
 sub permissions_test {
         my($rules, $uid, $gid, $mode) = @_;
@@ -1634,6 +2369,7 @@ sub permissions_test {
         }
         if ($wrong == 0) {
                 print "permissions: ok\n";
+                $good++;
         } else {
                 printf "  expected permissions are: %s:%s:%#o\n", $1, $2, oct($3);
                 printf "  created permissions are : %i:%i:%#o\n", $uid, $gid, $mode & 07777;
@@ -1659,6 +2395,7 @@ sub major_minor_test {
         }
         if ($wrong == 0) {
                 print "major:minor: ok\n";
+                $good++;
         } else {
                 printf "  expected major:minor is: %i:%i\n", $1, $2;
                 printf "  created major:minor is : %i:%i\n", $major, $minor;
@@ -1669,7 +2406,7 @@ sub major_minor_test {
 }
 
 sub udev_setup {
-        system("umount", $udev_tmpfs);
+        system("umount \"$udev_tmpfs\" 2>/dev/null");
         rmdir($udev_tmpfs);
         mkdir($udev_tmpfs) || die "unable to create udev_tmpfs: $udev_tmpfs\n";
 
@@ -1709,44 +2446,77 @@ sub udev_setup {
         return 1;
 }
 
-sub run_test {
-        my ($rules, $number) = @_;
-        my $rc;
+sub get_devnode {
+        my ($device) = @_;
+        my $devnode;
 
-        print "TEST $number: $rules->{desc}\n";
-        print "device \'$rules->{devpath}\' expecting node/link \'$rules->{exp_name}\'\n";
+        if (defined($device->{devnode})) {
+                $devnode = "$udev_dev/$device->{devnode}";
+        } else {
+                $devnode = "$device->{devpath}";
+                $devnode =~ s!.*/!$udev_dev/!;
+        }
+        return $devnode;
+}
 
-        $rc = udev("add", $rules->{devpath}, \$rules->{rules});
-        if ($rc != 0) {
-                print "$udev_bin add failed with code $rc\n";
+sub check_devnode {
+        my ($device) = @_;
+        my $devnode = get_devnode($device);
+
+        my @st = lstat("$devnode");
+        if (! (-b _  || -c _)) {
+                print "add $devnode:         error\n";
+                system("tree", "$udev_dev");
                 $error++;
+                return undef;
         }
-        if (defined($rules->{not_exp_name})) {
-                if ((-e "$udev_dev/$rules->{not_exp_name}") ||
-                    (-l "$udev_dev/$rules->{not_exp_name}")) {
-                        print "nonexistent: error \'$rules->{not_exp_name}\' not expected to be there\n";
-                        $error++;
-                        sleep(1);
-                }
+
+        my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size,
+            $atime, $mtime, $ctime, $blksize, $blocks) = @st;
+
+        if (defined($device->{exp_perms})) {
+                permissions_test($device, $uid, $gid, $mode);
         }
+        if (defined($device->{exp_majorminor})) {
+                major_minor_test($device, $rdev);
+        }
+        print "add $devnode:         ok\n";
+        $good++;
+        return $devnode;
+}
 
-        if ((-e "$udev_dev/$rules->{exp_name}") ||
-            (-l "$udev_dev/$rules->{exp_name}")) {
+sub get_link_target {
+        my ($link) = @_;
 
-                my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size,
-                    $atime, $mtime, $ctime, $blksize, $blocks) = stat("$udev_dev/$rules->{exp_name}");
+        my $cwd = getcwd();
+        my $dir = "$udev_dev/$link";
+        my $tgt = readlink("$udev_dev/$link");
+        $dir =~ s!/[^/]*$!!;
+        $tgt = abs_path("$dir/$tgt");
+        $tgt =~ s!^$cwd/!!;
+        return $tgt;
+}
 
-                if (defined($rules->{exp_perms})) {
-                        permissions_test($rules, $uid, $gid, $mode);
-                }
-                if (defined($rules->{exp_majorminor})) {
-                        major_minor_test($rules, $rdev);
+sub check_link_add {
+        my ($link, $devnode, $err_expected) = @_;
+
+        my @st = lstat("$udev_dev/$link");
+        if (-l _) {
+                my $tgt = get_link_target($link);
+
+                if ($tgt ne $devnode) {
+                        print "symlink $link:         error, found -> $tgt\n";
+                        $error++;
+                        system("tree", "$udev_dev");
+                } else {
+                        print "symlink $link:         ok\n";
+                        $good++;
                 }
-                print "add:         ok\n";
         } else {
-                print "add:         error";
-                if ($rules->{exp_add_error}) {
+                print "symlink $link:         error";
+                if ($err_expected) {
                         print " as expected\n";
+                        $good++;
                 } else {
                         print "\n";
                         system("tree", "$udev_dev");
@@ -1755,22 +2525,80 @@ sub run_test {
                         sleep(1);
                 }
         }
+}
 
-        if (defined($rules->{option}) && $rules->{option} eq "keep") {
-                print "\n\n";
-                return;
+sub check_link_nonexistent {
+        my ($link, $devnode, $err_expected) = @_;
+
+        if ((-e "$udev_dev/$link") || (-l "$udev_dev/$link")) {
+                my $tgt = get_link_target($link);
+
+                if ($tgt ne $devnode) {
+                        print "nonexistent: '$link' points to other device (ok)\n";
+                        $good++;
+                } else {
+                        print "nonexistent: error \'$link\' should not be there";
+                        if ($err_expected) {
+                                print " (as expected)\n";
+                                $good++;
+                        } else {
+                                print "\n";
+                                system("tree", "$udev_dev");
+                                print "\n";
+                                $error++;
+                                sleep(1);
+                        }
+                }
+        } else {
+                print "nonexistent $link:         ok\n";
+                $good++;
+        }
+}
+
+sub check_add {
+        my ($device) = @_;
+        my $devnode = check_devnode($device);
+
+        if (defined($device->{exp_links})) {
+                foreach my $link (@{$device->{exp_links}}) {
+                        check_link_add($link, $devnode,
+                                       $device->{exp_add_error});
+                }
+        }
+        if (defined $device->{not_exp_links}) {
+                foreach my $link (@{$device->{not_exp_links}}) {
+                        check_link_nonexistent($link, $devnode,
+                                               $device->{exp_nodev_error});
+                }
         }
+}
+
+sub check_remove_devnode {
+        my ($device) = @_;
+        my $devnode = get_devnode($device);
 
-        $rc = udev("remove", $rules->{devpath}, \$rules->{rules});
-        if ($rc != 0) {
-                print "$udev_bin remove failed with code $rc\n";
+        if (-e "$devnode") {
+                print "remove  $devnode:      error";
+                print "\n";
+                system("tree", "$udev_dev");
+                print "\n";
                 $error++;
+                sleep(1);
+        } else {
+                print "remove $devnode:         ok\n";
+                $good++;
         }
-        if ((-e "$udev_dev/$rules->{exp_name}") ||
-            (-l "$udev_dev/$rules->{exp_name}")) {
-                print "remove:      error";
-                if ($rules->{exp_rem_error}) {
+}
+
+sub check_link_remove {
+        my ($link, $err_expected) = @_;
+
+        if ((-e "$udev_dev/$link") ||
+            (-l "$udev_dev/$link")) {
+                print "remove  $link:      error";
+                if ($err_expected) {
                         print " as expected\n";
+                        $good++;
                 } else {
                         print "\n";
                         system("tree", "$udev_dev");
@@ -1779,10 +2607,132 @@ sub run_test {
                         sleep(1);
                 }
         } else {
-                print "remove:      ok\n";
+                print "remove  $link:      ok\n";
+                $good++;
+        }
+}
+
+sub check_remove {
+        my ($device) = @_;
+
+        check_remove_devnode($device);
+
+        return if (!defined($device->{exp_links}));
+
+        foreach my $link (@{$device->{exp_links}}) {
+                check_link_remove($link, $device->{exp_rem_error});
         }
+}
+
+sub run_udev {
+        my ($action, $dev, $sleep_us, $sema) = @_;
+
+        # Notify main process that this worker has started
+        $sema->op(0, 1, 0);
+
+        # Wait for start
+        $sema->op(0, 0, 0);
+        usleep($sleep_us) if defined ($sleep_us);
+        my $rc = udev($action, $dev->{devpath});
+        exit $rc;
+}
+
+sub fork_and_run_udev {
+        my ($action, $rules, $sema) = @_;
+        my @devices = @{$rules->{devices}};
+        my $dev;
+        my $k = 0;
+
+        $sema->setval(0, 1);
+        foreach $dev (@devices) {
+                my $pid = fork();
 
-        print "\n";
+                if (!$pid) {
+                        run_udev($action, $dev,
+                                 defined($rules->{sleep_us}) ? $k * $rules->{sleep_us} : undef,
+                                 $sema);
+                } else {
+                        $dev->{pid} = $pid;
+                }
+                $k++;
+        }
+
+        # This operation waits for all workers to become ready, and
+        # starts them off when that's the case.
+        $sema->op(0, -($#devices + 2), 0);
+
+        foreach $dev (@devices) {
+                my $rc;
+                my $pid;
+
+                $pid = waitpid($dev->{pid}, 0);
+                if ($pid == -1) {
+                        print "error waiting for pid dev->{pid}\n";
+                }
+                if (WIFEXITED($?)) {
+                        $rc = WEXITSTATUS($?);
+
+                        if ($rc) {
+                                print "$udev_bin $action for $dev->{devpath} failed with code $rc\n";
+                                $error += 1;
+                        } else {
+                                $good++;
+                        }
+                }
+        }
+}
+
+sub run_test {
+        my ($rules, $number, $sema) = @_;
+        my $rc;
+        my @devices;
+        my $ntests;
+        my $cur_good = $good;
+        my $cur_error = $error;
+
+        if (!defined $rules->{devices}) {
+                $rules->{devices} = all_block_devs($rules->{generator});
+        }
+        @devices = @{$rules->{devices}};
+        # For each device: exit status and devnode test for add & remove
+        $ntests += 4 * ($#devices + 1);
+
+        foreach my $dev (@devices) {
+                $ntests += 2 * ($#{$dev->{exp_links}} + 1)
+                    + ($#{$dev->{not_exp_links}} + 1)
+                    + (defined $dev->{exp_perms} ? 1 : 0)
+                    + (defined $dev->{exp_majorminor} ? 1 : 0);
+        }
+        if (defined $rules->{repeat}) {
+                $ntests *= $rules->{repeat};
+        }
+        $exp_good += $ntests;
+        print "TEST $number: $rules->{desc}\n";
+        create_rules(\$rules->{rules});
+
+      REPEAT:
+        fork_and_run_udev("add", $rules, $sema);
+
+        foreach my $dev (@devices) {
+                check_add($dev);
+        }
+
+        if (defined($rules->{option}) && $rules->{option} eq "keep") {
+                print "\n\n";
+                return;
+        }
+
+        fork_and_run_udev("remove", $rules, $sema);
+
+        foreach my $dev (@devices) {
+                check_remove($dev);
+        }
+
+        if (defined($rules->{repeat}) && --($rules->{repeat}) > 0) {
+                goto REPEAT;
+        }
+        printf "TEST $number: errors: %d good: %d/%d\n\n", $error-$cur_error,
+            $good-$cur_good, $ntests;
 
         if (defined($rules->{option}) && $rules->{option} eq "clean") {
                 udev_setup();
@@ -1839,12 +2789,13 @@ foreach my $arg (@ARGV) {
                 push(@list, $arg);
         }
 }
+my $sema = IPC::Semaphore->new(IPC_PRIVATE, 1, S_IRUSR | S_IWUSR | IPC_CREAT);
 
 if ($list[0]) {
         foreach my $arg (@list) {
                 if (defined($tests[$arg-1]->{desc})) {
                         print "udev-test will run test number $arg:\n\n";
-                        run_test($tests[$arg-1], $arg);
+                        run_test($tests[$arg-1], $arg, $sema);
                 } else {
                         print "test does not exist.\n";
                 }
@@ -1854,12 +2805,13 @@ if ($list[0]) {
         print "\nudev-test will run ".($#tests + 1)." tests:\n\n";
 
         foreach my $rules (@tests) {
-                run_test($rules, $test_num);
+                run_test($rules, $test_num, $sema);
                 $test_num++;
         }
 }
 
-print "$error errors occurred\n\n";
+$sema->remove;
+print "$error errors occurred. $good/$exp_good good results.\n\n";
 
 cleanup();
 
index 4f44292249405339fe4568885f4bb84291c1a558..d8cdd5ac14dc7748199d691bc01422007df889b7 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index d48e6d6494275b02b606f4265d9fc6414b3eb048..582ae6ba275ee71461e29150239d27c7b4ec8ebd 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9af67fdb1faaf729249f3d989c02714d4633c429..c6e20d77609fb4f0b1c056b5c01f5cd859f62bee 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index b6c16a14120f88f817470a0669a5f32406c06872..eed3d16b458519b1ef6ecc99d24d4795538dc1b9 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
diff --git a/test/units/testsuite-56-slowgrowth.sh b/test/units/testsuite-56-slowgrowth.sh
new file mode 100755 (executable)
index 0000000..ff5a747
--- /dev/null
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+set -eu -o pipefail
+
+PAGE_SIZE=$(getconf PAGE_SIZE)
+BLOAT_ITERATION_TARGET=$(( 100 << 20 )) # 100 MB
+BLOAT_HOLDER=()
+PID="$$"
+
+function bloat {
+        local set_size=$(cat "/proc/$PID/statm" | cut -d " " -f2)
+        local mem_usage=$(( "$set_size" * "$PAGE_SIZE" ))
+        local target_mem_size=$(( "$mem_usage" + "$1" ))
+
+        BLOAT_HOLDER=()
+        while [[ "$mem_usage" -lt "$target_mem_size" ]]; do
+                echo "target $target_mem_size"
+                echo "mem usage $mem_usage"
+                BLOAT_HOLDER+=( $(printf "%0.sg" {1..1000000}) )
+                set_size=$(cat "/proc/$PID/statm" | cut -d " " -f2)
+                mem_usage=$(( "$set_size" * "$PAGE_SIZE" ))
+        done
+}
+
+function run {
+        local arr=()
+
+        while [[ true ]]; do
+                bloat "$BLOAT_ITERATION_TARGET"
+                arr+=( "$BLOAT_HOLDER" )
+                sleep 1
+        done
+}
+
+run
diff --git a/test/units/testsuite-56-testbloat.service b/test/units/testsuite-56-testbloat.service
new file mode 100644 (file)
index 0000000..40cf5a9
--- /dev/null
@@ -0,0 +1,9 @@
+[Unit]
+Description=Create a lot of memory pressure
+
+[Service]
+# A very small memory.high will cause the script (trying to use a lot of memory)
+# to throttle and be put under heavy pressure
+MemoryHigh=2M
+Slice=testsuite-56-workload.slice
+ExecStart=/usr/lib/systemd/tests/testdata/units/testsuite-56-slowgrowth.sh
diff --git a/test/units/testsuite-56-testchill.service b/test/units/testsuite-56-testchill.service
new file mode 100644 (file)
index 0000000..6cae3d8
--- /dev/null
@@ -0,0 +1,6 @@
+[Unit]
+Description=No memory pressure
+
+[Service]
+Slice=testsuite-56-workload.slice
+ExecStart=sleep infinity
diff --git a/test/units/testsuite-56-workload.slice b/test/units/testsuite-56-workload.slice
new file mode 100644 (file)
index 0000000..3d542ec
--- /dev/null
@@ -0,0 +1,10 @@
+[Unit]
+Description=Test slice for memory pressure kills
+
+[Slice]
+CPUAccounting=true
+MemoryAccounting=true
+IOAccounting=true
+TasksAccounting=true
+ManagedOOMMemoryPressure=kill
+ManagedOOMMemoryPressureLimitPercent=50%
diff --git a/test/units/testsuite-56.service b/test/units/testsuite-56.service
new file mode 100644 (file)
index 0000000..b53b090
--- /dev/null
@@ -0,0 +1,7 @@
+[Unit]
+Description=TESTSUITE-56-OOMD
+
+[Service]
+ExecStartPre=rm -f /failed /skipped /testok
+ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
+Type=oneshot
diff --git a/test/units/testsuite-56.sh b/test/units/testsuite-56.sh
new file mode 100755 (executable)
index 0000000..37d62d9
--- /dev/null
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+set -ex
+set -o pipefail
+
+systemd-analyze log-level debug
+systemd-analyze log-target console
+
+# Loose checks to ensure the environment has the necessary features for systemd-oomd
+[[ "$( awk '/SwapTotal/ { print $2 }' /proc/meminfo )" != "0" ]] || echo "no swap" >> /skipped
+[[ -e /proc/pressure ]] || echo "no PSI" >> /skipped
+cgroup_type=$(stat -fc %T /sys/fs/cgroup/)
+if [[ "$cgroup_type" != *"cgroup2"* ]] && [[ "$cgroup_type" != *"0x63677270"* ]]; then
+    echo "no cgroup2" >> /skipped
+fi
+[[ -e /skipped ]] && exit 0 || true
+
+systemctl start testsuite-56-testbloat.service
+systemctl start testsuite-56-testchill.service
+
+# Verify systemd-oomd is monitoring the expected units
+oomctl | grep "/testsuite-56-workload.slice"
+oomctl | grep "50%"
+
+# systemd-oomd watches for elevated pressure for 30 seconds before acting.
+# It can take time to build up pressure so either wait 5 minutes or for the service to fail.
+timeout=$(date -ud "5 minutes" +%s)
+while [[ $(date -u +%s) -le $timeout ]]; do
+    if ! systemctl status testsuite-56-testbloat.service; then
+        break
+    fi
+    sleep 15
+done
+
+# testbloat should be killed and testchill should be fine
+if systemctl status testsuite-56-testbloat.service; then exit 42; fi
+if ! systemctl status testsuite-56-testchill.service; then exit 24; fi
+
+systemd-analyze log-level info
+
+echo OK > /testok
+
+exit 0
index b1aa8c797ccdb3124e53b63a6f40f2e3fa595357..99f82e3b809e149e0a375dbdd30903cb018e9673 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 0a9582d8b96456d7c0d19b55769fe1efd603915b..a41dd3e454c7966a5676c6fa47ea4439c0b8a808 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 enable_tmpfiles = conf.get('ENABLE_TMPFILES') == 1
 
index b8ddf7f4b770939f9658f3ad2f29ee2771ed0a53..3fd0c7d3024e5da4903d684ef9ab3fb60121e09d 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 # See tmpfiles.d(5) for details
 
 Q /var/lib/portables 0700
index e8e9ed48ae33c3717ffeafa65ebed87bad900287..e6540b5de4701e31776a830ea840babf324d6609 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 #
 # The systemd-pstore.service(1) archives the contents of /sys/fs/pstore
 # upon boot so that there is room for a subsequent dump. This service
index 51204eb7c9052dc625362cb9476634dfaa7ce2ed..7ea6de8311154cdc9218b7ffbdc22a99626ebf1f 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 TOP=`git rev-parse --show-toplevel`
 
index 95249f9c9cdc760640dd2d0a6f5c57a1962fe11a..54d922975c3d0e9cb6945aac8ee0369767bec7bf 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 TOP=`git rev-parse --show-toplevel`
 
index 66018a54fd4b6fe9d4ae35bd012023948e4bd8e0..d2388b71715a9b4d2c9e9f1ed7d3d70c8a2f482a 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 import gdb
 
index 5392df0ebbbb2105f3cac4f9fc183949e0b24c07..d240b2c383d9341f5a0860649a80138dc85364e7 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 """
 Generate %-from-name.gperf from %-list.txt
index cc0f99169c9c136c320148cb88fec68367e2c28a..f6fccd60462b65d2f06e769c4b52793fcd64a056 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 set -eu
 
-git shortlog -s `git describe --abbrev=0`.. | \
+git shortlog -s `git describe --abbrev=0 --match 'v[0-9][0-9][0-9]'`.. | \
     awk '{ $1=""; print $0 "," }' | \
     sort -u
index 8114522a1c45240ebe47f9abe2d2677c5953cf53..633b7711d14f5c7e71d2f5e83362b087938e01f8 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 # Generate autosuspend rules for devices that have been tested to work properly
 # with autosuspend by the Chromium OS team. Based on
@@ -7,18 +7,18 @@
 
 import chromiumos.gen_autosuspend_rules
 
-print('# pci:v<00VENDOR>d<00DEVICE>:* (8 uppercase hexadecimal digits twice)')
+print('# pci:v<00VENDOR>d<00DEVICE> (8 uppercase hexadecimal digits twice)')
 for entry in chromiumos.gen_autosuspend_rules.PCI_IDS:
     vendor, device = entry.split(':')
     vendor = int(vendor, 16)
     device = int(device, 16)
-    print('pci:v{:08X}d{:08X}:*'.format(vendor, device))
+    print('pci:v{:08X}d{:08X}*'.format(vendor, device))
 
-print('# usb:v<VEND>p<PROD>:* (4 uppercase hexadecimal digits twice)')
+print('# usb:v<VEND>p<PROD> (4 uppercase hexadecimal digits twice)')
 for entry in chromiumos.gen_autosuspend_rules.USB_IDS:
     vendor, product = entry.split(':')
     vendor = int(vendor, 16)
     product = int(product, 16)
-    print('usb:v{:04X}p{:04X}:*'.format(vendor, product))
+    print('usb:v{:04X}p{:04X}*'.format(vendor, product))
 
 print(' ID_AUTOSUSPEND=1')
index b04281490d6089ee4726ca6af5397f21659ffd4c..bbdc5572f53a968ae41ecf5bbb8d5c6275628846 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 import sys
 import collections
index 37c708d81dc0953df4bcc2183a49331838da6ae9..bae36fbabf90ff7eb53d28a4c47286e3330c4fe6 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 import collections
 import sys
index 5b8690b687fe199d8e8dd121aab3f06129068f43..491246b32ba1970724c01169a37fb6c08ba5290e 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 set -ex
 
index 14ae30f33c4827252c94f8697240a7db2c0cf14e..cb8eda9cc5631e60033f06a958557189a0bba554 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 import argparse
 import collections
index f5db691f3ef857d5ed6dd24ffbd39cfd286f7a09..9e1660c1238e1cbf0b92f45bdc31f8019bfc7660 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 from __future__ import print_function
 import collections
index f399e7493ca2461647a3ccf2f76002376dd5d8ab..0361358bec27ce06fa8d11e804b2fa140990e444 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 from lxml import etree as tree
 
index 4f44292249405339fe4568885f4bb84291c1a558..d8cdd5ac14dc7748199d691bc01422007df889b7 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 22a9a5bb2bf922c87d8dec6cd13d390ff3950702..ddc85bf8909a837cfeb90701ad5cb91c2cd3d3b1 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 62407d363e4ab4af3b368593ea9c5a7643399fde..8333c2332fc8f5f0c2b5077d8e99a48a95a848d7 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index f0b9e57e7c4801bf180293bae26669d8bf215a6e..f302384dc489729bafbedc8b0bd28aac28b85fb5 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 7c3992e8e03031157ef7cc70d06cc31b2e34721e..d61a490be3241c36646c16c9ec2dd4db28a66b11 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index e4f9ae57916c882ac8eb4cd4ff5eb0f290b77f4f..92307a3ccb556f05abfd6cc84053a3c91ecc630d 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 12e4107f607f89d11751639b3b3ccfc2634af7ea..6bb8ff75cc77164a4b7a121c5ee0e9490fdaca87 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index fdb572bc70c201276733aed037f8a1ea3ed08840..b8eecbdcc185027dec6c058950c5fe773ae354f4 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9f3868e1060fbab911e633f3d681e695a847fbcd..5b4de84eaca2f6b4474c6b4cfae70c7425081a85 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 278ed9b6109994f84a1a1fcb8c5aa837cf085fce..517437784ceb80821c129fbc2eb24f4ddc2584ad 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 0114ad31f0f6f2b8d087faf46da56a96c625b8ca..02683a9e1effa2b4fb85c24bcefcf12f98c76026 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 180d9e6a57c9b7a42cd7916396f0552bf98c9285..9418f5e7173d4cc89e6f845dfcc7ff085b2a22ca 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index a4e954e8572a06078eb19f4ac6cd9cb6f0c2d8b4..e7f34beb3e06ec78de0103f092ea8b75a54fef74 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 0a79533a9e9f673ee28d2f1d4df8c0b11142e31b..d7a1472a2bf26f0bbadeab9705c0256e41a6ec85 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 0e12386d4dc232d3cfb33578db74d48f2203c566..34f6069dd13c058fd1fc7e7059bc6b975e7f8749 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 98b236e9ffc31384b9923f8a295d9b84dacb5ead..b9714961009b5c64f52c632b189ebeeabd3874ce 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index adb98bf92c3f7d8a3ebe6a8bac012c56161b04ae..5cf0875faee86840d042af9a3ba996bbdfe3390c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index b3110179bf1c07e7502ab5e5d7e07ef7ac8ac4e3..7e9aac2023cb93dc60536654fa71e4f8abb4c8c9 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 087d68666605047678ad3b34caa34496ed41585a..4c21002619eb2754e8cd418be270f2b609290ddb 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index f3e30e9756be859b63125b9eacf40a9cef7de382..4b2087fa1b76d22386bc27dd2f127beb19c81993 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 87c33745f2020cd8973c4bbad396a82fcd8c0014..b06758bf9591cb66aac2cc6da74b51096d885f02 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 8580c658e6a60433cc271a78b3ec920a7e90ed7e..9ec6f2a6b1f875c76660ebf7244d7d18dde8c096 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index e5e22b8187b4b7b8fce5813e3e0c33690ba918d4..4ed0b35146509735e8ce20af41c4612011fd0c22 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 1120ef3effeaaffb328ca3010eaab5e3728e6d5e..08ab5039627fc693abfd4d500f88baac5ebc5879 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
diff --git a/units/initrd-cryptsetup.target b/units/initrd-cryptsetup.target
deleted file mode 100644 (file)
index 2a2938c..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#  SPDX-License-Identifier: LGPL-2.1+
-#
-#  This file is part of systemd.
-#
-#  systemd is free software; you can redistribute it and/or modify it
-#  under the terms of the GNU Lesser General Public License as published by
-#  the Free Software Foundation; either version 2.1 of the License, or
-#  (at your option) any later version.
-
-[Unit]
-Description=Initrd Encrypted Volumes
-Documentation=man:systemd.special(7)
-OnFailure=emergency.target
-OnFailureJobMode=replace-irreversibly
-AssertPathExists=/etc/initrd-release
-DefaultDependencies=no
-Conflicts=shutdown.target
index 49577c364f3a8f30c270c68aee3170d35152d5bd..8c6bdf35f56177941230ceb71abe37ea271cb68d 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 94a9719b502c3500d0191d5dae413669508c6cd4..38df7283558fd0861bc0a52b21526345dd1a67e7 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index bcb69093203d0e6013fcb444f969d98b6aba0dfc..f3c3d79a2bf30876782871d358c161c84d84c547 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index f5a8855b6c6a848e4be3fc3fb97d7b5ac97d54c1..4037ac41260cb1703edc70050f0aa2facc04e1e3 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 682b8af875b805806bd5696b34e1fedce2f0de77..e3d692671126068fdbead9bb18cbea997706c57e 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 32ff40a3f6840f51ede1dfde8a550c73f77e29b2..1e32ec57dd5eb1eff53d8fdbbd042a1cfdc97a02 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 0d66080de73d1a63255eac62e78e3a9097d5266f..bc444736fdfaed0701ec7ef76d4de1b9ff6be5fb 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index bfd497ecc3099b0edb919774fd0ba4d72cbc4912..655158a58bca3daa98d5d95f878f1cd75030effb 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 706cd7065c3d7551b8e787f2ace1425e6ec15d18..5d8f8cdc52d2c5d04d67d9ae538bab790d7f320c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 0971edf9ec4263cc0bf4d7b29d6b1645085d2a73..f4170d6a99f90974c0b14c58a0c1829612d0c72e 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 3c3cbf5607e92c8158835dde50e867861be5c533..33824d4d4f28e2348a25210fd85a3dffa6548ce8 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9aca15b95381f9d1dc011cfd56d53c42c37a1ca6..bffa7e95dd870d1ab16e660287826cf4ba51197b 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 6ba49300870be220296c337ee4832b43af29a390..02797953a5bea974c6c1d75cb4180cf905df58e2 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index b4e4c17d88ab796cedd1414d8eb00569cc9fe42a..501d3530c02fe1d9037da56338403872da9370f1 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 224765aa905b658dba9aa10603f375558d5f1be8..165839aeb17fb1b68cafe192c081a1c3c81dfb9c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index a55e71786888525566770968b58e8c2688e3c4c2..e249539dc8f5f6589ad2a79f72a9275b43c8d0cd 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 with_runlevels = conf.get('HAVE_SYSV_COMPAT') == 1
 
@@ -22,14 +22,12 @@ units = [
          'multi-user.target.wants/'],
         ['getty-pre.target',                    ''],
         ['graphical.target',                    '',
-         (with_runlevels ? 'runlevel5.target default.target' : 'default.target')],
+         'default.target' + (with_runlevels ? ' runlevel5.target' : '')],
         ['halt.target',                         ''],
         ['hibernate.target',                    'ENABLE_HIBERNATE'],
         ['hybrid-sleep.target',                 'ENABLE_HIBERNATE'],
         ['suspend-then-hibernate.target',       'ENABLE_HIBERNATE'],
         ['initrd-cleanup.service',              'ENABLE_INITRD'],
-        ['initrd-cryptsetup.target',            'HAVE_LIBCRYPTSETUP ENABLE_INITRD',
-         'sysinit.target.wants/'],
         ['initrd-fs.target',                    'ENABLE_INITRD'],
         ['initrd-parse-etc.service',            'ENABLE_INITRD'],
         ['initrd-root-device.target',           'ENABLE_INITRD'],
@@ -61,8 +59,9 @@ units = [
          'sysinit.target.wants/'],
         ['proc-sys-fs-binfmt_misc.mount',       'ENABLE_BINFMT'],
         ['reboot.target',                       '',
-         (with_runlevels ? 'runlevel6.target ctrl-alt-del.target' : 'ctrl-alt-del.target')],
-        ['remote-cryptsetup.target',            'HAVE_LIBCRYPTSETUP'],
+         'ctrl-alt-del.target' + (with_runlevels ? ' runlevel6.target' : '')],
+        ['remote-cryptsetup.target',            'HAVE_LIBCRYPTSETUP',
+         'initrd-root-device.target.wants/'],
         ['remote-fs-pre.target',                ''],
         ['remote-fs.target',                    ''],
         ['rescue.target',                       '',
index 34a0557735f18f648105ecdc83884c65de1ce55d..968994287caf71e0ab37e368bb383043d82cf186 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 386e1b547d836c61039b73ddeebfe07c631b73c4..53eb2b7ed0b83b38aaa9cf412d4509ec7cb9a40a 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 8b8c7851e20a6acf32125bcdeb4a1d1d9c296d82..c3edfeb4f91e3f8b8a804116f3228adddd8ad56b 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 806eb720f810a08c98eb185c6854cd0110046eda..70279dacdbdce4e0605abf8434330e8d8c58b00c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 3e4fdff14464016419d21b5073ed8f052a44edb6..08baf126b4ff61014b163ee4a736e1b1cda6b867 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 8d56c8ea368f3a410bc4e6f9a717cf6f1a9c09f6..53e7a31d0eb608224c9c4d887d6fe74d46fe811f 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 7436b6c80d7595ea35020360561c0eaebd7bd503..9f0d6192fbab4cbdc61ebac8ab0675d6fe87e39c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9b6ed1c13feec452f236b8314fea492b89d62337..1bec148bee8a794be1eedec909a29484d4052fd6 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 47c109ceed29fe9336343a7f99df8f91eb7c270d..e97f058fdcd50dba6b896d93e7a1c0fe147a4edc 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index e1fb0d4e347573397b6feae24ccd41cf88470e86..c695669c5cc9e46e83914254f283ca45ef0ed11f 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 30a6bc99184411aef7ece169f4a47d7327e03a9a..a71e249976749e53520dff647a342856784070c5 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 1587853e1e23f2d2d9a1e9072cb4a5e22786382e..919271b3e2eb61b9eeb293f52b4f516a0e753884 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 25c747439a19da19e631d0d3894f9a83ab7def7c..fa6b4c823936caab2afb1581ebdb4b34f7f8be9c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index d4aaaf09d400bbdcdb0daab552bf4f6b140feb18..f7ce98f18ea289087f041a9576280b24141138a9 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index c2782db631733fae1c44da6f9a138ffe147898f4..a900c90dcf5d512afe6630c627a3f8078c8d662b 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 4445d5defeb448e9a4ed0f22956cb70f31b9c0c0..0a689bfa2d2c2d114fba09f2805bc458cf91f834 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 3f22605c8c7c2d48996092c46bf37afa44180bef..bba5e0ce7c79fe5db086fb62138f9b0694c7ec34 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 0d44348e75692a0d882cfe9d3fe17fedad06f2a0..74011d8aece3d48db219b0d2a6b47f9c2cb37521 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 4106e2d9f751a873b16d7f2349bde459757abb41..20185160033b7585eebd608f76b225e8189073a9 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 0e04a94f397853d0831472a5ac3abf5ab7a7ef88..112808358ea846e0f8012022ae5e644207d12aa1 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 801ee4d6ef217dfa6a45093401d92c4f3ce62185..8bd853baa5fda17a672d4ad858b39409391c7bb3 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 4b72bef84e24afbe80622b79cb008ce71c098896..72c1df590dbad67e91ed17e557ec655a2de91041 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index d48e6d6494275b02b606f4265d9fc6414b3eb048..582ae6ba275ee71461e29150239d27c7b4ec8ebd 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 8228541dac56caa087e1eeaa8385e00188a4c076..beda318c34f31bc8cedec7cdf63d501cabf98c94 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9409dc670744ced89c2ab7bae9559a3e035321eb..a38a4319ff011fd95e24fe56c2c466e0dba55674 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 84a04d638561210a20c45ed6e014ff81670dabc1..4517e35fc57d84b6462799c931f4e425494b838c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 717ea2311dfcce6709f58984a8d8bece9c5b601e..0c3fe7210e20f00a2ef2485df6c3329dc6ecf4a9 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9af67fdb1faaf729249f3d989c02714d4633c429..c6e20d77609fb4f0b1c056b5c01f5cd859f62bee 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 19afc2a63735118a005930f2192b454d85ee3ef4..99e68af008920420308413c24566b426269c9a7e 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 999c0a9c86ba3e229083fe41767d32b425e31e4d..e9987633666d202a14dbc7e5b09e6e4194f1fe28 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 1a156b4147b9d78c3b0c21efc1968cea3cae4b86..bf228f933fedaf36ead0c12acbc26b15ca70bdf9 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 8cef5b6489a70621f6ff705ae2251fc256e85d66..bcdd98815b54afed5f8ee03ac41624cbfcedbdac 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 7bbc342be8efe2338dd44a900e24d75d6b20ecf9..cbcdd5f2cc960432c3d5497f144c2af786614ef0 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index e6997884dc91b2507ad3edaa74705584ec580877..001c7b57cce5ccd7225dd61e8db1dfbcdbd6acf0 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 618270ddae8ab75200d402b4ed9c25f481815517..d03837bafbfbfda18006ced0b283acb2f024e80e 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index e29b258a47c356e0700c0034c2eed91688b3680b..8800c96bcdbac6735fdfb98e7bac539c689dac1c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index b6c16a14120f88f817470a0669a5f32406c06872..eed3d16b458519b1ef6ecc99d24d4795538dc1b9 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index c4b1cea2d606702bced6dcd346406757321e90cd..ff76bc5a6f45657ee7717be04a66b99a10eb0680 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 83310900a7afa40ea7e992e08a00cec7a33d0c83..9369b73ae27fefc63f6e9a172baad8cfb0f4e9f6 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 41abcd631c5e005eb53db402b1c168b50d4e670e..d0878dcb0bbd93d8896dbfd5651acc78f43bac33 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 163b75c220d273fdbd68966c9cfd615c64a8a8ff..04101389eb7f336f8601eb7405b804092a3ef71c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 29812edf9272dcf8ce67d9e3e1c7034612c7b074..dcddfc2ea591431fec5b0c423b4a4c30eef324bf 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 248d597540e06e9dfa4c2b368091b19a0b02dd67..a7aac8378785e6c7dbf3f51182cc457efa9a6056 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 6ee4c253a39dafcfe4c294072e7db97598b4f704..d31f3fa70f02d7c73b9994332b85981ef4e4699a 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 193a9b311e0581a36d04b4b940aed4d85fb715d0..c82cfd26c7b440480f73a2477af4cfac6dd8ed00 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 52a3037cd48ff454b2f56d07b99327778e9929ac..6a70b58cef5c9fffcc526a2725c2a40095633e00 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 6f7967fd003f8143f56fa2858ff82743a99f4a32..317aa387455c3ab3d52c6bdbd602845f1d721cf0 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index e54e95e11d5daed387793670c3f850f65277bcb9..ca76750c0a8aace6667fa5f92a37c3cfd7bfd574 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 511d991d3ba0189b1aa22ebb301d4ebc9c7b2966..601588fc6197e05e76510cbdd5a3566fcdd7cc85 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 27e898b85b30cb4a1fb1c08db27e2380491ff85a..1bf74c21291325250f11890fda04c364dde4eb7d 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 8aead02417824ee78e2bea41023a2a38e29344d1..55f05ec8d899706f81e73762a9344d54d54827ad 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index c9971b919921b185d9228e089ef74779b9956944..922358fe5d62fde0b8cdcb9c50b9a70296711ef1 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index d1ece270749e4667fa155839840860bf9e0855da..219f207835383c9c640bbc4a4a0dfc5dd1638996 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 773c400b476c8916212e939ce55b31eddcab7153..df6e671e841b44575fb2119d52f9c8d04b185ea4 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index e17fef7b36eacdfb3da33d091ecd6a969efa1545..2fea88384f62ccafb3b3dc9049332055288e7384 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 042081cceeb0456ca3b05190df4e393b59cb4bc4..c4a2948120b0dc387d522d3279abc955bd7c89ec 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 332208352d40c6a057dca9ba4d1716263ea62c79..6d9c9aba695c845685c4ca197456eea0bd33c56b 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index cd16d1de202a827e0f380d94f287b6ebcfc83a58..37bfe285c03850daf26f55cea2da7d3081b145b4 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index a2db06b031dfefbb68f2ef7d1017c6c643650a47..85e0c88169ad3345f3111eb79234a8f8423d3e23 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 963b257ab8dd88c83f41d6b4070c14a352c9d3d4..30965411ff3acf33dcf06f40e475aec25bb9c52f 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 3a5057d3aaf8b17578e8ece758da41df0f6f3da0..b16fedb4ce9d6f40a27cfd9cf93a43738be5eb9b 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 4b6a91c9846e130a3fcf01b06479e41346ebc396..5ac53ca9dc530d2e87a5ff4bedfdd0516bcea442 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 017441f9dadfb825a7538417478b1e1f70112ba1..d3d0efebd0a839bec97267f34e64e6b370d1f8b3 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9887018a1f23631a3ca7e2cfd0f9f8b935054fee..57398e521473869e5099ff050e7930c02dd0b194 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 466ade974cff1b5bcb13745a291df0876f2f9a9d..6fe37daacd36d3725aa265f0aa809aea47de13a5 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 58a7b472599078568eafcee8c745251a24cdd7c2..afe395687ddf5f0552c921b6ea95e7e50454fb85 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index c276283908486b49ec6459088063ad8f1875f8c3..6367433682b902615a46b140c28c57ace34b608e 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9d975799081e86ac9d2c0e6ee81c3060dd74de21..598a67f0e41c5fe0b8734728697334d52e566b17 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 6db55a5490ff89825e0321dc8d28b5321f5b1d10..477925685a289cb270cef340a96bb91430477a98 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 0f45743fa0a76e9e54c41b6b46a000ab4eda9af0..1a71592b931be0f8f90066221b0d2785971dc55c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 2436f2a2cf191d668d7f4c4f96e456a959335c43..7944d6fd9aa52d6e444fe28d4c742e1239c92335 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 7c3632b32337b239d152006edba9c08f3c63c8e4..30e74e32239727a1a687cb08a9a674bbb515e07b 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 82befc9912742ac756c3c593d8013046686a8b76..e48df81e70b211e1cde187409e8a16695371eeb7 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 48d0a656babaf9048fa835aa392a15a91c138f28..29568190389dc3552e10b8c2ad5265de9643db68 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 8b9a9ebdfb3a0ca761ed7074be6d76b9e67d541e..ba6b6e73444b0d16a4a3f743f977e2c985c51d40 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index cb8b77496363f58c36b8db8260f1f386de4c220f..f0c0aebc8659d70804927902a989b389b0057901 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 80ad6ac845f473efcd3ef0f712ab0c0d330f1f57..93e8b252b25e744bd812948902a9604b67a2253d 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
@@ -19,12 +19,13 @@ Before=sockets.target
 IgnoreOnIsolate=yes
 
 [Socket]
-Service=systemd-journald.service
 ListenDatagram=/run/systemd/journal/dev-log
-Symlinks=/dev/log
-SocketMode=0666
 PassCredentials=yes
 PassSecurity=yes
+Service=systemd-journald.service
+SocketMode=0666
+Symlinks=/dev/log
+Timestamping=us
 
 # Increase both the send and receive buffer, so that things don't
 # block early. Note that journald internally uses the this socket both
index b6730c2fa5aa6a289d27df0eb41104ef6d8af12f..05d8cf6ce4535e57d24cbeb15f0f6b92440f90f4 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 0cb1bfa3ca7296ab0bb1d696d4a774a65330cc7f..1c43d8c863ab018ba5d934f5cde28a5ce94dfcff 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index c95ae5ab64b8f1bbf8985ae2986d4cf0c87d26e7..ada3520ad15db8cf296392194ed4f6804d0c2df5 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
@@ -19,10 +19,11 @@ Before=sockets.target
 IgnoreOnIsolate=yes
 
 [Socket]
-ListenStream=/run/systemd/journal/stdout
 ListenDatagram=/run/systemd/journal/socket
-SocketMode=0666
+ListenStream=/run/systemd/journal/stdout
 PassCredentials=yes
 PassSecurity=yes
 ReceiveBuffer=8M
 Service=systemd-journald.service
+SocketMode=0666
+Timestamping=us
index e7ea919328081e0660003d9e03584eb8f1bb27ab..14a217d025ff67e0e1f828216e5840eb86adf8c7 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 3badd7842afc467ed59170021f2507dd5a6c3fb8..60c025fcc3b90d27f8ea5ec0e466ee80bd54e838 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 7413e1d6b1a5881c518257cc3fa7f32ce5bd80ba..0aa7933be47691ca680bd82ef8470bd6676ed637 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 47f147956b604db149e2cdc82b101baa8d6237fd..652b956a34095647a5c1b7a206bb9b40c7fe98a9 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index cb44ccbae663c3172831fba891e46d97806844f7..f131b60d4fbc490fdd145526a96086ce5a297446 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 5616a3570192670176ffa74239ef2110ebd6b235..89e0613955ccce67e8f1e4c76275c7e5d2c1dcb4 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 0e452ddcab1886539927823a3072d288227e710e..56c95326594c860525518f238f57e14430000c6b 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 26abe21d1b342bb128f3dd47ffa9d2a2535fa222..fdb5b3a41ea326a2fd5ce1787468404af560d4ee 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 248a8dc64eba736a411875064a5e95da7f67e12f..bda8426191665c2e5d52c5a680dc93d603982132 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 7666e166697b06dcb72bcfc0f74eed4dbcf7f68d..d868e7777555520bb69e76fb6d85c544e168a560 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index c8ff9be3e503fe15fca09c51aa6713a810dcf9b1..9834b06a43844458a2584e8d38a8406d66ed7763 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index bc049e5ade924cae38f72ae6040969e738ac8103..aa9ad7e02c3e85a881e83208422d72d734351ca1 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index c91c92707e060826c9e3fa5ed751de6a4fe248ff..a6551f91527003bf5e57f6aa06dc346da43298e9 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 67bd117c95461863c7581dc7cdd00dba24279411..fd7c8d213db70535a57273b310f33e565fb3200c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 3051fbd3d07bf315b776f6d697dbb3f4226c0c36..e00a0065e3928a845d1cf5acb5dd721b6780ad83 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 8d1d54389b9984760e560c7452031b53646507c7..bb2ddb0e7391c8e519d3572fd31f3ae42904dc84 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 6e4827f03c8632f990a3ded3a5cb7649ff26619d..624ee704d53fe7c4070d8fd6b606a7f2440e708b 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 244da0a30718902c3903d1aba18fe17c25448777..3e10378a89e362f4b14ebdc7e91780fdf0efe416 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index aa4b3e7357c2326911f1946c513d773a299542cd..a7d4acb898ef7e7d9b279123e520adaefe8afd64 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 505f60aabf026a1bccc1fb3c982d9fd4886de334..b50a792b0e1744d4a1b148ae89f782c6ea002499 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 4f4304d68e208017885e118eddfe0a546c0d5885..51985a793aad5ce9689f29d75f9efc8f0f436a79 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9393a64f001f8bfa70503e5f16d79b16e5d22bcf..a5565834ebbe3129e6feb71ad579ebab0abbb1a7 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 513d96b74cfa356a1dc9880fddab45bd1f0b0e59..29adb6bf219b46693020070db6eb4b63604d214e 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index af2042f1e515afbaf71918d0961f6ec3fb42be50..40a80a0b39f0fa36b72c5dd8ca46b86a7f016396 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9d408903bb3a84b388fcd11b04d7509abcf26d32..4ca8d6fc04d963de5e9e4392284582eced08e629 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 5d6a58273021b27a4f3372966e44b2365c5385b8..3f811e7e1a4f9418cde8511c5a4f0d553ce5c48e 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 11ed383ba9790c6d7df159c7c57de04d36e73437..40cc83e1929743b493075616d5f98b5dd606170c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 5b0f7f9df4d1fa36d32072c97fa22ebd737ff742..c4a34a81a2095ae755a8bff7d66df917b2d49140 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index da05e0eb1bbe9cb07c0968086ad91c4fda9f9729..ff5b3db82138f70bd5a2c7d45b3e8dba42603fc2 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 475182d6bc4b84a108aa7341fcdac0130cba48c7..212d0e5a1555d1f7cf38187c479cdce2f6af530f 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index f84bd3830b7365f7617b9235df5c3f498c44f787..6f476173b664ecd59943bdc21c5754088a0b47b3 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 08ddb141ba6728882aa398c29d5c05250359915a..62120d819088329bdb0ca10058dee12934caea6f 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index f20bb143ef7a99dded415e8cb24437fbb25fcfc9..e962954f06c0baaa2bc1f47ea51904ceaabb6c47 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 3e3017820fea34e326cd3ec4a1c8586cf527f465..6c6cfe7a08403c070e6b1baa0a943021bc088643 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 1027823859e5974167959cf01d95b71567d6286d..0babe78767a420b78fe77054099dd448fb0fe68b 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 29799ee81caa3cee7542f0027835a3f2fa626263..3f028d25337770ed6bb25b6e1228106bf80037c5 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9352c6f59890388669fbc7a84ea11048fce49025..994c47fce4b5d3bc0f9c0bd78704c2398a148411 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index cfe8d61c2aff83162e5fb7a911f4d453cfe985a4..8b2d88e1859e13463e56deeca4176cbec4bdedda 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 5b8628c754abddb4da0284b4ab0ca21d446f26ec..a9d5a4d8ca1dd877d92ccafd5ea1d6fc53cf9313 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index b2a65f1a84eb44f40fcd395e0e7761759f0d4a41..f636aebff8211ea98f92a457ce6236eb6f94963b 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9ada3a6a7418c7a5ab3338896d150a9514afd789..f20dd50350681277c86c9eba6cb900120faad561 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 6e82ec7474be7bf92c750605f819139bd24efac5..b4aa746673156562a0b7bb07a178c30de54b71f1 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 642d926a316cee742eae717a1a1d57c42c47e2c7..042145cc2cad194933c4e754f8a1bb01d550f7ae 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index b9a668faeb4225e2430e37eceb1db7beb77c3f96..e2fa2d83bab1baf5c00ec8d5d140d433551f3443 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 13de728b1dba361e2bea1475bfc46aec18b7d17a..b15a651682686dcbfc5f954356dbfb5c3b5396b3 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index bbfd83a8f29f5b391ac9944fb977599bea62db5e..9b36a170253c8d5e9825abfe932a68c0b436a3bd 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 2b4bb7a87a5ee446e6ab322b9053a97c16a5cc91..50235dd1ef2851fb22427d5e1659ad5cfa90cf90 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9042521c9d736f2a442ef62e3f44c232b80288e6..45da05639598d2942b9e300eea5f2abcc5f92305 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index a39e9a4ec2d557034c2488b6ffa5b3b57d2e083b..5ecc702b6d109c3dbe7f04ef7bf40f300dd9b839 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 6b4003352989a46dccb9f9963e162b8f43f0392f..daac8ef04e5ed066da25a17d0e0d7a040e589560 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9106502e8becf12f820e4ac492f06ecd27339a62..e730bbdbb150e967310db5eae623c5eca2879c66 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index b1aa8c797ccdb3124e53b63a6f40f2e3fa595357..99f82e3b809e149e0a375dbdd30903cb018e9673 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index cf6837852fc2f930ed50e0fe339ecdcf513c9e3a..a8e58516328a9ec2bd8d46b2e0d251f16bc84ba3 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 54fa5aebf271d0aca9ea0ed63d72e7522fb091eb..319b5033cb8478accdc0e1ccd902937423def01f 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index c666683a98a65c73147143851ded7628e702bb54..46de5b8d6284047979a41486a11e01cd45f7a25b 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index c81a00e0502fc82e4eff1876d8a06be99933420c..cb3651b728d245fc79c2d13eb4f0080323cd71e0 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index c168b89f9859247278a946b04d8fe4bcca264bc3..ff23e01af8fe4ba7e7300648a62eeceb31d3e344 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 3f2d98fcdf61a2d0c1c2a14dc6a104d7508fde83..3e4906411d8ea79fffeb8553e2c891eded8c789a 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 1ae8275c80df8fec9353731079286d77e2cb93f4..6c79304c59f60a12cf2b906d54c77423b99ae0b0 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 62407d363e4ab4af3b368593ea9c5a7643399fde..8333c2332fc8f5f0c2b5077d8e99a48a95a848d7 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index c50638c91832f891932b59b1fcb3a7228e85f1ba..b1824313da2001dbe35b46c851bf7ef2b4776ca0 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 11a6f8eabe698a72e5ed0ade0903ac111f5eabe1..ec2dde2b8eb03bc46e7b2c82bf24414100a663bb 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 3adfc5aaa48af5744a4c4f0c33c4e9a5ae9f6ae9..4b9e3dc67fb9be132bc66f4d3f656b8368438e3a 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index a38eaabbc419446b9446aae5b354e8e6ad26bc98..1f8fafcbe97cb1966e3e64b1a201cad87e21cb8c 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 744c1e7c5e9d6eff550d738b74322328475f7d52..337a92092dbed68be398822feeef0abb31cc2594 100644 (file)
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: LGPL-2.1+
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 units = [
         'app.slice',
index 9b6ed1c13feec452f236b8314fea492b89d62337..1bec148bee8a794be1eedec909a29484d4052fd6 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index e1fb0d4e347573397b6feae24ccd41cf88470e86..c695669c5cc9e46e83914254f283ca45ef0ed11f 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index d48e6d6494275b02b606f4265d9fc6414b3eb048..582ae6ba275ee71461e29150239d27c7b4ec8ebd 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 717ea2311dfcce6709f58984a8d8bece9c5b601e..0c3fe7210e20f00a2ef2485df6c3329dc6ecf4a9 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 9af67fdb1faaf729249f3d989c02714d4633c429..c6e20d77609fb4f0b1c056b5c01f5cd859f62bee 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 19afc2a63735118a005930f2192b454d85ee3ef4..99e68af008920420308413c24566b426269c9a7e 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 87f906c3b72daca8636793e6a5fb3d0782dd6be5..18725253bb37a6b35b38b5988fb452cd59906a4b 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index b989d413732b62cc4efc1cffff59b0a07ca6dc07..6a937071f762dbc04bb0f57215aa6740fb9d500b 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index d1dbad98de5bbe2130e415d15086bf9a4d392c71..f8f6ef4ab97888bb688f84f8195ce6c6c5ed7f12 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index c4b29cbe8ce381cd331e62b2ba5d19c5df47ad9b..156689edcd8655db35db3b32c9005d514b4fe6af 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index b1aa8c797ccdb3124e53b63a6f40f2e3fa595357..99f82e3b809e149e0a375dbdd30903cb018e9673 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 22df5a35d3fa376b6ac4d365542a36e97460e914..1be7c4b8600f7166fcc4f0a1bb831593f33c4934 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index ace24369ddd3c6f95b3cea8f44f3fe30dec94548..8c6c6d1157ccac04834dc4b48e04cb95675b3484 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #
index 3658199cc7e2813ead2252e99df193f8b356c5de..82ebfa5245776508efa59a924f75a853583d5a7a 100644 (file)
@@ -1,4 +1,4 @@
-#  SPDX-License-Identifier: LGPL-2.1+
+#  SPDX-License-Identifier: LGPL-2.1-or-later
 #
 #  This file is part of systemd.
 #