Compare commits
No commits in common. "185924ab631da9132000532ecc19a0f48c1b7b47" and "4ee40eefceffc6c30a00b4d908f1d752da6a8343" have entirely different histories.
185924ab63
...
4ee40eefce
|
@ -31,6 +31,7 @@ BuildPackages=
|
||||||
gnu-efi-devel
|
gnu-efi-devel
|
||||||
gnutls-devel
|
gnutls-devel
|
||||||
gperf
|
gperf
|
||||||
|
hostname
|
||||||
iptables-devel
|
iptables-devel
|
||||||
kmod-devel
|
kmod-devel
|
||||||
libacl-devel
|
libacl-devel
|
||||||
|
|
|
@ -1,60 +0,0 @@
|
||||||
# SPDX-License-Identifier: LGPL-2.1+
|
|
||||||
|
|
||||||
# This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
|
|
||||||
# Simply invoke "mkosi" in the project directory to build an OS image.
|
|
||||||
|
|
||||||
[Distribution]
|
|
||||||
Distribution=opensuse
|
|
||||||
Release=tumbleweed
|
|
||||||
|
|
||||||
[Output]
|
|
||||||
Format=raw_btrfs
|
|
||||||
Bootable=yes
|
|
||||||
|
|
||||||
[Partitions]
|
|
||||||
RootSize=3G
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
# Uncomment to share system RPM cache (works only with Tumbleweed)
|
|
||||||
#Cache=/var/cache/zypp/packages
|
|
||||||
BuildDirectory=mkosi.builddir
|
|
||||||
BuildPackages=
|
|
||||||
docbook-xsl-stylesheets
|
|
||||||
fdupes
|
|
||||||
gcc
|
|
||||||
gnu-efi
|
|
||||||
gperf
|
|
||||||
intltool
|
|
||||||
libacl-devel
|
|
||||||
libapparmor-devel
|
|
||||||
libblkid-devel
|
|
||||||
libbz2-devel
|
|
||||||
libcap-devel
|
|
||||||
libcryptsetup-devel
|
|
||||||
libcurl-devel
|
|
||||||
libgcrypt-devel
|
|
||||||
libkmod-devel
|
|
||||||
liblz4-devel
|
|
||||||
libmicrohttpd-devel
|
|
||||||
libmount-devel
|
|
||||||
libseccomp-devel
|
|
||||||
libselinux-devel
|
|
||||||
libxslt-tools
|
|
||||||
m4
|
|
||||||
meson
|
|
||||||
pam-devel
|
|
||||||
pciutils-devel
|
|
||||||
pcre-devel
|
|
||||||
python3
|
|
||||||
python3-lxml
|
|
||||||
qrencode-devel
|
|
||||||
zlib-devel
|
|
||||||
# to satisfy tests
|
|
||||||
acl
|
|
||||||
glibc-locale
|
|
||||||
system-group-obsolete
|
|
||||||
timezone
|
|
||||||
|
|
||||||
Packages=
|
|
||||||
# brought in via meson->python3
|
|
||||||
libp11-kit0
|
|
2
TODO
2
TODO
|
@ -22,8 +22,6 @@ Janitorial Clean-ups:
|
||||||
|
|
||||||
Features:
|
Features:
|
||||||
|
|
||||||
* homed: add homed.conf setting DefaultStorage= or so
|
|
||||||
|
|
||||||
* homed: maybe pre-create ~/.cache as subvol so that it can have separate quota
|
* homed: maybe pre-create ~/.cache as subvol so that it can have separate quota
|
||||||
easily?
|
easily?
|
||||||
|
|
||||||
|
|
|
@ -291,9 +291,7 @@ manpages = [
|
||||||
''],
|
''],
|
||||||
['sd_bus_message_get_type',
|
['sd_bus_message_get_type',
|
||||||
'3',
|
'3',
|
||||||
['sd_bus_message_get_errno',
|
['sd_bus_message_is_method_call',
|
||||||
'sd_bus_message_get_error',
|
|
||||||
'sd_bus_message_is_method_call',
|
|
||||||
'sd_bus_message_is_method_error',
|
'sd_bus_message_is_method_error',
|
||||||
'sd_bus_message_is_signal'],
|
'sd_bus_message_is_signal'],
|
||||||
''],
|
''],
|
||||||
|
@ -337,10 +335,8 @@ manpages = [
|
||||||
''],
|
''],
|
||||||
['sd_bus_message_set_expect_reply',
|
['sd_bus_message_set_expect_reply',
|
||||||
'3',
|
'3',
|
||||||
['sd_bus_message_get_allow_interactive_authorization',
|
['sd_bus_message_get_auto_start',
|
||||||
'sd_bus_message_get_auto_start',
|
|
||||||
'sd_bus_message_get_expect_reply',
|
'sd_bus_message_get_expect_reply',
|
||||||
'sd_bus_message_set_allow_interactive_authorization',
|
|
||||||
'sd_bus_message_set_auto_start'],
|
'sd_bus_message_set_auto_start'],
|
||||||
''],
|
''],
|
||||||
['sd_bus_message_skip', '3', [], ''],
|
['sd_bus_message_skip', '3', [], ''],
|
||||||
|
|
|
@ -72,7 +72,6 @@
|
||||||
<citerefentry><refentrytitle>sd_bus_error</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_error</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_error_add_map</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_error_add_map</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_get_address</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_get_address</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_get_allow_interactive_authorization</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
|
||||||
<citerefentry><refentrytitle>sd_bus_get_bus_id</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_get_bus_id</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_get_current_handler</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_get_current_handler</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_get_current_message</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_get_current_message</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
|
@ -97,10 +96,7 @@
|
||||||
<citerefentry><refentrytitle>sd_bus_message_at_end</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_at_end</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_copy</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_copy</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_dump</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_dump</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_get_allow_interactive_authorization</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
|
||||||
<citerefentry><refentrytitle>sd_bus_message_get_cookie</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_get_cookie</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_get_errno</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
|
||||||
<citerefentry><refentrytitle>sd_bus_message_get_error</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
|
||||||
<citerefentry><refentrytitle>sd_bus_message_get_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_get_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_get_property</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_get_property</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_get_property_trivial</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_get_property_trivial</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
|
@ -119,7 +115,6 @@
|
||||||
<citerefentry><refentrytitle>sd_bus_message_read_strv</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_read_strv</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_rewind</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_rewind</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_seal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_seal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_set_allow_interactive_authorization</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
|
||||||
<citerefentry><refentrytitle>sd_bus_message_set_destination</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_set_destination</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_set_sender</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_set_sender</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_set_expect_reply</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_set_expect_reply</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
|
@ -134,7 +129,6 @@
|
||||||
<citerefentry><refentrytitle>sd_bus_request_name</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_request_name</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_send</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_send</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_set_address</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_set_address</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_set_allow_interactive_authorization</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
|
||||||
<citerefentry><refentrytitle>sd_bus_set_bus_client</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_set_bus_client</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_set_close_on_exit</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_set_close_on_exit</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_set_connected_signal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_set_connected_signal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
|
|
|
@ -17,8 +17,6 @@
|
||||||
|
|
||||||
<refnamediv>
|
<refnamediv>
|
||||||
<refname>sd_bus_message_get_type</refname>
|
<refname>sd_bus_message_get_type</refname>
|
||||||
<refname>sd_bus_message_get_error</refname>
|
|
||||||
<refname>sd_bus_message_get_errno</refname>
|
|
||||||
<refname>sd_bus_message_is_signal</refname>
|
<refname>sd_bus_message_is_signal</refname>
|
||||||
<refname>sd_bus_message_is_method_call</refname>
|
<refname>sd_bus_message_is_method_call</refname>
|
||||||
<refname>sd_bus_message_is_method_error</refname>
|
<refname>sd_bus_message_is_method_error</refname>
|
||||||
|
@ -32,37 +30,27 @@
|
||||||
|
|
||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>int <function>sd_bus_message_get_type</function></funcdef>
|
<funcdef>int <function>sd_bus_message_get_type</function></funcdef>
|
||||||
<paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
|
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
|
||||||
<paramdef>uint8_t *<parameter>type</parameter></paramdef>
|
<paramdef>uint8_t *<parameter>type</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
|
|
||||||
<funcprototype>
|
|
||||||
<funcdef>sd_bus_error* <function>sd_bus_message_get_error</function></funcdef>
|
|
||||||
<paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
|
|
||||||
</funcprototype>
|
|
||||||
|
|
||||||
<funcprototype>
|
|
||||||
<funcdef>int <function>sd_bus_message_get_errno</function></funcdef>
|
|
||||||
<paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
|
|
||||||
</funcprototype>
|
|
||||||
|
|
||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>int <function>sd_bus_message_is_signal</function></funcdef>
|
<funcdef>int <function>sd_bus_message_is_signal</function></funcdef>
|
||||||
<paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
|
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
|
||||||
<paramdef>const char *<parameter>interface</parameter></paramdef>
|
<paramdef>const char *<parameter>interface</parameter></paramdef>
|
||||||
<paramdef>const char *<parameter>member</parameter></paramdef>
|
<paramdef>const char *<parameter>member</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
|
|
||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>int <function>sd_bus_message_is_method_call</function></funcdef>
|
<funcdef>int <function>sd_bus_message_is_method_call</function></funcdef>
|
||||||
<paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
|
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
|
||||||
<paramdef>const char *<parameter>interface</parameter></paramdef>
|
<paramdef>const char *<parameter>interface</parameter></paramdef>
|
||||||
<paramdef>const char *<parameter>member</parameter></paramdef>
|
<paramdef>const char *<parameter>member</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
|
|
||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>int <function>sd_bus_message_is_method_error</function></funcdef>
|
<funcdef>int <function>sd_bus_message_is_method_error</function></funcdef>
|
||||||
<paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
|
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
|
||||||
<paramdef>const char *<parameter>name</parameter></paramdef>
|
<paramdef>const char *<parameter>name</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
|
@ -74,52 +62,40 @@
|
||||||
|
|
||||||
<para><function>sd_bus_message_get_type()</function> returns the type of a message in the output
|
<para><function>sd_bus_message_get_type()</function> returns the type of a message in the output
|
||||||
parameter <parameter>type</parameter>, one of <constant>SD_BUS_MESSAGE_METHOD_CALL</constant>,
|
parameter <parameter>type</parameter>, one of <constant>SD_BUS_MESSAGE_METHOD_CALL</constant>,
|
||||||
<constant>SD_BUS_MESSAGE_METHOD_RETURN</constant>, <constant>SD_BUS_MESSAGE_METHOD_ERROR</constant>,
|
<constant>SD_BUS_MESSAGE_METHOD_RETURN</constant>,
|
||||||
<constant>SD_BUS_MESSAGE_SIGNAL</constant>. This type is either specified as a parameter when the message
|
<constant>SD_BUS_MESSAGE_METHOD_ERROR</constant>, <constant>SD_BUS_MESSAGE_SIGNAL</constant>.
|
||||||
is created using
|
This type is either specified as a parameter when the message is created using
|
||||||
<citerefentry><refentrytitle>sd_bus_set_message_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_set_message_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
or is set automatically when the message is created using
|
or is set automatically when the message is created using
|
||||||
<citerefentry><refentrytitle>sd_bus_set_message_new_signal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_set_message_new_signal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_set_message_new_method_call</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_set_message_new_method_call</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_set_message_new_method_error</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
<citerefentry><refentrytitle>sd_bus_set_message_new_method_error</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||||
and similar functions.</para>
|
and similar functions.
|
||||||
|
|
||||||
<para><function>sd_bus_message_get_error()</function> returns the error stored in the message
|
|
||||||
<parameter>m</parameter>, if there is any. Otherwise, it returns <constant>NULL</constant>.
|
|
||||||
<function>sd_bus_message_get_errno()</function> returns the error stored in the message
|
|
||||||
<parameter>m</parameter> as a positive errno-style value, if there is any. Otherwise, it returns zero.
|
|
||||||
Errors are mapped to errno values according to the default and any additional registered error mappings.
|
|
||||||
See <citerefentry><refentrytitle>sd-bus-errors</refentrytitle><manvolnum>3</manvolnum></citerefentry> and
|
|
||||||
<citerefentry><refentrytitle>sd_bus_error_add_map</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para><function>sd_bus_message_is_signal()</function> checks if message <parameter>m</parameter> is a
|
<para><function>sd_bus_message_is_signal()</function> checks if message <parameter>m</parameter>
|
||||||
signal message. If <parameter>interface</parameter> is non-null, it also checks if the message has the
|
is a signal message. If <parameter>interface</parameter> is non-null, it also checks if the
|
||||||
same interface set. If <parameter>member</parameter> is non-null, it also checks if the message has the
|
message has the same interface set. If <parameter>member</parameter> is non-null, it also checks
|
||||||
same member set. Also see
|
if the message has the same member set. Also see
|
||||||
<citerefentry><refentrytitle>sd_bus_set_message_new_signal</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
<citerefentry><refentrytitle>sd_bus_set_message_new_signal</refentrytitle><manvolnum>3</manvolnum></citerefentry>. It returns true when all checks pass.</para>
|
||||||
It returns true when all checks pass.</para>
|
|
||||||
|
|
||||||
<para><function>sd_bus_message_is_method_call()</function> checks if message <parameter>m</parameter>
|
<para><function>sd_bus_message_is_method_call()</function> checks if message <parameter>m</parameter>
|
||||||
is a method call message. If <parameter>interface</parameter> is non-null, it also checks if the message
|
is a method call message. If <parameter>interface</parameter> is non-null, it also checks if the
|
||||||
has the same interface set. If <parameter>member</parameter> is non-null, it also checks if the message
|
message has the same interface set. If <parameter>member</parameter> is non-null, it also checks
|
||||||
has the same member set. Also see
|
if the message has the same member set. Also see
|
||||||
<citerefentry><refentrytitle>sd_bus_set_message_new_method_call</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
<citerefentry><refentrytitle>sd_bus_set_message_new_method_call</refentrytitle><manvolnum>3</manvolnum></citerefentry>. It returns true when all checks pass.</para>
|
||||||
It returns true when all checks pass.</para>
|
|
||||||
|
|
||||||
<para><function>sd_bus_message_is_method_error()</function> checks if message <parameter>m</parameter>
|
<para><function>sd_bus_message_is_method_error()</function> checks if message <parameter>m</parameter>
|
||||||
is an error reply message. If <parameter>name</parameter> is non-null, it also checks if the message has
|
is an error reply message. If <parameter>name</parameter> is non-null, it also checks if the
|
||||||
the same error identifier set. Also see
|
message has the same error identifier set. Also see
|
||||||
<citerefentry><refentrytitle>sd_bus_set_message_new_method_error</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
<citerefentry><refentrytitle>sd_bus_set_message_new_method_error</refentrytitle><manvolnum>3</manvolnum></citerefentry>. It returns true when all checks pass.</para>
|
||||||
It returns true when all checks pass.</para>
|
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Return Value</title>
|
<title>Return Value</title>
|
||||||
|
|
||||||
<para>On success, these functions return a non-negative integer. On failure, they return a negative
|
<para>On success, those functions return 0 or a positive
|
||||||
errno-style error code. <function>sd_bus_message_get_errno()</function> always returns a non-negative
|
integer. On failure, it returns a negative errno-style error code.</para>
|
||||||
integer, even on failure.</para>
|
|
||||||
|
|
||||||
<refsect2>
|
<refsect2>
|
||||||
<title>Errors</title>
|
<title>Errors</title>
|
||||||
|
@ -130,7 +106,7 @@
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><constant>-EINVAL</constant></term>
|
<term><constant>-EINVAL</constant></term>
|
||||||
|
|
||||||
<listitem><para>The message parameter <parameter>m</parameter> or an output parameter is
|
<listitem><para>The <parameter>message</parameter> parameter or the output parameter are
|
||||||
<constant>NULL</constant>.</para></listitem>
|
<constant>NULL</constant>.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
@ -146,9 +122,7 @@
|
||||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_set_destination</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_set_destination</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||||
<citerefentry><refentrytitle>sd-bus-errors</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
|
||||||
<citerefentry><refentrytitle>sd_bus_error_add_map</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,6 @@
|
||||||
<refname>sd_bus_message_get_expect_reply</refname>
|
<refname>sd_bus_message_get_expect_reply</refname>
|
||||||
<refname>sd_bus_message_set_auto_start</refname>
|
<refname>sd_bus_message_set_auto_start</refname>
|
||||||
<refname>sd_bus_message_get_auto_start</refname>
|
<refname>sd_bus_message_get_auto_start</refname>
|
||||||
<refname>sd_bus_message_set_allow_interactive_authorization</refname>
|
|
||||||
<refname>sd_bus_message_get_allow_interactive_authorization</refname>
|
|
||||||
|
|
||||||
<refpurpose>Set and query bus message metadata</refpurpose>
|
<refpurpose>Set and query bus message metadata</refpurpose>
|
||||||
</refnamediv>
|
</refnamediv>
|
||||||
|
@ -51,61 +49,41 @@
|
||||||
<funcdef>int <function>sd_bus_message_get_auto_start</function></funcdef>
|
<funcdef>int <function>sd_bus_message_get_auto_start</function></funcdef>
|
||||||
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
|
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
|
|
||||||
<funcprototype>
|
|
||||||
<funcdef>int <function>sd_bus_message_set_allow_interactive_authorization</function></funcdef>
|
|
||||||
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
|
|
||||||
<paramdef>int <parameter>b</parameter></paramdef>
|
|
||||||
</funcprototype>
|
|
||||||
|
|
||||||
<funcprototype>
|
|
||||||
<funcdef>int <function>sd_bus_message_get_allow_interactive_authorization</function></funcdef>
|
|
||||||
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
|
|
||||||
</funcprototype>
|
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
|
|
||||||
</refsynopsisdiv>
|
</refsynopsisdiv>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Description</title>
|
<title>Description</title>
|
||||||
|
|
||||||
<para><function>sd_bus_message_set_expect_reply()</function> sets or clears the
|
<para><function>sd_bus_message_set_expect_reply()</function> sets or clears the
|
||||||
<constant>NO_REPLY_EXPECTED</constant> flag on the message <parameter>m</parameter>. This flag matters
|
<constant>NO_REPLY_EXPECTED</constant> flag on the message <parameter>m</parameter>. This flag
|
||||||
only for method call messages and is used to specify that no method return or error reply is expected.
|
matters only for method call messages and is used to specify that no method return or error
|
||||||
It is ignored for other types. Thus, for a method call message, calling
|
reply is expected. It is ignored for other types. Thus, for a method call message, calling
|
||||||
<programlisting>sd_bus_message_set_expect_reply(…, 0)</programlisting> sets the flag and suppresses the
|
<programlisting>sd_bus_message_set_expect_reply(…, 0)</programlisting> sets the flag and
|
||||||
reply.</para>
|
suppresses the reply.</para>
|
||||||
|
|
||||||
<para><function>sd_bus_message_get_expect_reply()</function> checks if the
|
<para><function>sd_bus_message_get_expect_reply()</function> checks if the
|
||||||
<constant>NO_REPLY_EXPECTED</constant> flag is set on the message <parameter>m</parameter>. It will
|
<constant>NO_REPLY_EXPECTED</constant> flag is set on the message <parameter>m</parameter>. It
|
||||||
return positive if it is not set, and zero if it is.</para>
|
will return positive if it is not set, and zero if it is.</para>
|
||||||
|
|
||||||
<para><function>sd_bus_message_set_auto_start()</function> sets or clears the
|
<para><function>sd_bus_message_set_auto_start()</function> sets or clears the
|
||||||
<constant>NO_AUTO_START</constant> flag on the message <parameter>m</parameter>. When the flag is set,
|
<constant>NO_AUTO_START</constant> flag on the message <parameter>m</parameter>. When the flag
|
||||||
the bus must not launch an owner for the destination name in response to this message. Calling
|
is set the bus must not launch an owner for the destination name in response to this message.
|
||||||
<programlisting>sd_bus_message_set_auto_start(…, 0)</programlisting> sets the flag.</para>
|
Calling
|
||||||
|
<programlisting>sd_bus_message_set_auto_start(…, 0)</programlisting> sets the flag.
|
||||||
|
</para>
|
||||||
|
|
||||||
<para><function>sd_bus_message_get_auto_start()</function> checks if the
|
<para><function>sd_bus_message_get_auto_start()</function> checks if the
|
||||||
<constant>NO_AUTO_START</constant> flag is set on the message <parameter>m</parameter>. It will return
|
<constant>NO_AUTO_START</constant> flag is set on the message <parameter>m</parameter>. It
|
||||||
positive if it is not set, and zero if it is.</para>
|
will return positive if it is not set, and zero if it is.</para>
|
||||||
|
|
||||||
<para><function>sd_bus_message_set_allow_interactive_authorization()</function> sets or clears the
|
|
||||||
<constant>ALLOW_INTERACTIVE_AUTHORIZATION</constant> flag on the message <parameter>m</parameter>.
|
|
||||||
Setting this flag informs the receiver that the caller is prepared to wait for interactive authorization
|
|
||||||
via polkit or a similar framework. Note that setting this flag does not guarantee that the receiver will
|
|
||||||
actually perform interactive authorization. Also, make sure to set a suitable message timeout when using
|
|
||||||
this flag since interactive authorization could potentially take a long time as it depends on user input.
|
|
||||||
If <parameter>b</parameter> is non-zero, the flag is set.</para>
|
|
||||||
|
|
||||||
<para><function>sd_bus_message_get_allow_interactive_authorization()</function> checks if the
|
|
||||||
<constant>ALLOW_INTERACTIVE_AUTHORIZATION</constant> flag is set on the message <parameter>m</parameter>.
|
|
||||||
It will return a positive integer if the flag is set. Otherwise, it returns zero.</para>
|
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Return Value</title>
|
<title>Return Value</title>
|
||||||
|
|
||||||
<para>On success, these functions return a non-negative integer. On failure, they return a negative
|
<para>On success, these functions return 0 or a positive integer. On failure, they return a
|
||||||
errno-style error code.</para>
|
negative errno-style error code.</para>
|
||||||
|
|
||||||
<refsect2>
|
<refsect2>
|
||||||
<title>Errors</title>
|
<title>Errors</title>
|
||||||
|
@ -116,17 +94,18 @@
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><constant>-EINVAL</constant></term>
|
<term><constant>-EINVAL</constant></term>
|
||||||
|
|
||||||
<listitem><para>The <parameter>message</parameter> parameter is <constant>NULL</constant>.
|
<listitem><para>The <parameter>message</parameter> parameter is
|
||||||
</para></listitem>
|
<constant>NULL</constant>.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><constant>-EPERM</constant></term>
|
<term><constant>-EPERM</constant></term>
|
||||||
|
|
||||||
<listitem>
|
<listitem><para>The message <parameter>message</parameter> is sealed
|
||||||
<para>The message <parameter>message</parameter> is sealed when trying to set a flag.</para>
|
when trying to set a flag.</para>
|
||||||
|
|
||||||
<para>The message <parameter>message</parameter> has wrong type.</para>
|
<para>The message <parameter>message</parameter> has wrong
|
||||||
|
type.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
@ -144,4 +123,5 @@
|
||||||
<citerefentry><refentrytitle>sd_bus_set_description</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
<citerefentry><refentrytitle>sd_bus_set_description</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
</refentry>
|
</refentry>
|
||||||
|
|
|
@ -1946,15 +1946,6 @@
|
||||||
<varname>DNS=</varname>.</para></listitem>
|
<varname>DNS=</varname>.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>LPRServers=</varname></term>
|
|
||||||
|
|
||||||
<listitem><para>Similar to the <varname>DNS=</varname> setting described above, this
|
|
||||||
setting configures whether and what LPR (line printer) server information shall be emitted
|
|
||||||
as part of the DHCP lease. The same syntax, propagation semantics and defaults apply as for
|
|
||||||
<varname>DNS=</varname>.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>EmitRouter=</varname></term>
|
<term><varname>EmitRouter=</varname></term>
|
||||||
|
|
||||||
|
|
18
mkosi.build
18
mkosi.build
|
@ -42,14 +42,6 @@ fi
|
||||||
if [ ! -f "$BUILDDIR"/build.ninja ] ; then
|
if [ ! -f "$BUILDDIR"/build.ninja ] ; then
|
||||||
sysvinit_path=`realpath /etc/init.d`
|
sysvinit_path=`realpath /etc/init.d`
|
||||||
|
|
||||||
init_path=`realpath /sbin/init 2>/dev/null`
|
|
||||||
if [ -z "$init_path" ] ; then
|
|
||||||
rootprefix=""
|
|
||||||
else
|
|
||||||
rootprefix=${init_path%/lib/systemd/systemd}
|
|
||||||
rootprefix=/${rootprefix#/}
|
|
||||||
fi
|
|
||||||
|
|
||||||
nobody_user=`id -u -n 65534 2> /dev/null`
|
nobody_user=`id -u -n 65534 2> /dev/null`
|
||||||
if [ "$nobody_user" != "" ] ; then
|
if [ "$nobody_user" != "" ] ; then
|
||||||
# Validate that we can translate forth and back
|
# Validate that we can translate forth and back
|
||||||
|
@ -84,17 +76,11 @@ if [ ! -f "$BUILDDIR"/build.ninja ] ; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
meson "$BUILDDIR" -D "sysvinit-path=$sysvinit_path" -D "rootprefix=$rootprefix" -D default-hierarchy=unified -D man=false -D "nobody-user=$nobody_user" -D "nobody-group=$nobody_group"
|
meson "$BUILDDIR" -D "sysvinit-path=$sysvinit_path" -D default-hierarchy=unified -D man=false -D "nobody-user=$nobody_user" -D "nobody-group=$nobody_group"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ninja -C "$BUILDDIR" all
|
ninja -C "$BUILDDIR" all
|
||||||
if [ "$WITH_TESTS" = 1 ] ; then
|
[ "$WITH_TESTS" = 0 ] || ninja -C "$BUILDDIR" test
|
||||||
for id in 1 2 3; do
|
|
||||||
groupadd -g $id testgroup$id || :
|
|
||||||
done
|
|
||||||
|
|
||||||
ninja -C "$BUILDDIR" test
|
|
||||||
fi
|
|
||||||
ninja -C "$BUILDDIR" install
|
ninja -C "$BUILDDIR" install
|
||||||
|
|
||||||
mkdir -p "$DESTDIR"/etc
|
mkdir -p "$DESTDIR"/etc
|
||||||
|
|
|
@ -111,7 +111,7 @@ bool strv_overlap(char * const *a, char * const *b) _pure_;
|
||||||
(s)--)
|
(s)--)
|
||||||
|
|
||||||
#define STRV_FOREACH_PAIR(x, y, l) \
|
#define STRV_FOREACH_PAIR(x, y, l) \
|
||||||
for ((x) = (l), (y) = (x) ? (x+1) : NULL; (x) && *(x) && *(y); (x) += 2, (y) = (x + 1))
|
for ((x) = (l), (y) = (x+1); (x) && *(x) && *(y); (x) += 2, (y) = (x + 1))
|
||||||
|
|
||||||
char **strv_sort(char **l);
|
char **strv_sort(char **l);
|
||||||
void strv_print(char * const *l);
|
void strv_print(char * const *l);
|
||||||
|
|
|
@ -1624,7 +1624,6 @@ int setup_namespace(
|
||||||
r = 0;
|
r = 0;
|
||||||
|
|
||||||
finish:
|
finish:
|
||||||
if (n_mounts > 0)
|
|
||||||
for (m = mounts; m < mounts + n_mounts; m++)
|
for (m = mounts; m < mounts + n_mounts; m++)
|
||||||
mount_entry_done(m);
|
mount_entry_done(m);
|
||||||
|
|
||||||
|
|
|
@ -2569,8 +2569,6 @@ static unsigned service_exec_command_index(Unit *u, ServiceExecCommand id, ExecC
|
||||||
ExecCommand *first, *c;
|
ExecCommand *first, *c;
|
||||||
|
|
||||||
assert(s);
|
assert(s);
|
||||||
assert(id >= 0);
|
|
||||||
assert(id < _SERVICE_EXEC_COMMAND_MAX);
|
|
||||||
|
|
||||||
first = s->exec_command[id];
|
first = s->exec_command[id];
|
||||||
|
|
||||||
|
@ -2634,12 +2632,10 @@ static int service_serialize_exec_command(Unit *u, FILE *f, ExecCommand *command
|
||||||
|
|
||||||
p = cescape(command->path);
|
p = cescape(command->path);
|
||||||
if (!p)
|
if (!p)
|
||||||
return log_oom();
|
return -ENOMEM;
|
||||||
|
|
||||||
key = strjoina(type, "-command");
|
key = strjoina(type, "-command");
|
||||||
(void) serialize_item_format(f, key, "%s %u %s %s", service_exec_command_to_string(id), idx, p, args);
|
return serialize_item_format(f, key, "%s %u %s %s", service_exec_command_to_string(id), idx, p, args);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int service_serialize(Unit *u, FILE *f, FDSet *fds) {
|
static int service_serialize(Unit *u, FILE *f, FDSet *fds) {
|
||||||
|
@ -2741,11 +2737,7 @@ static int service_serialize(Unit *u, FILE *f, FDSet *fds) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int service_deserialize_exec_command(
|
static int service_deserialize_exec_command(Unit *u, const char *key, const char *value) {
|
||||||
Unit *u,
|
|
||||||
const char *key,
|
|
||||||
const char *value) {
|
|
||||||
|
|
||||||
Service *s = SERVICE(u);
|
Service *s = SERVICE(u);
|
||||||
int r;
|
int r;
|
||||||
unsigned idx = 0, i;
|
unsigned idx = 0, i;
|
||||||
|
@ -2834,10 +2826,9 @@ static int service_deserialize_exec_command(
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (command && control) {
|
if (command && control)
|
||||||
s->control_command = command;
|
s->control_command = command;
|
||||||
s->control_command_id = id;
|
else if (command)
|
||||||
} else if (command)
|
|
||||||
s->main_command = command;
|
s->main_command = command;
|
||||||
else
|
else
|
||||||
log_unit_warning(u, "Current command vanished from the unit file, execution of the command list won't be resumed.");
|
log_unit_warning(u, "Current command vanished from the unit file, execution of the command list won't be resumed.");
|
||||||
|
|
|
@ -1626,10 +1626,9 @@ static int add_directory(
|
||||||
!((dirname && dirname_is_machine_id(dirname) > 0) || path_has_prefix(j, path, "/run")))
|
!((dirname && dirname_is_machine_id(dirname) > 0) || path_has_prefix(j, path, "/run")))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (dirname &&
|
if (!(FLAGS_SET(j->flags, SD_JOURNAL_ALL_NAMESPACES) ||
|
||||||
(!(FLAGS_SET(j->flags, SD_JOURNAL_ALL_NAMESPACES) ||
|
|
||||||
dirname_has_namespace(dirname, j->namespace) > 0 ||
|
dirname_has_namespace(dirname, j->namespace) > 0 ||
|
||||||
(FLAGS_SET(j->flags, SD_JOURNAL_INCLUDE_DEFAULT_NAMESPACE) && dirname_has_namespace(dirname, NULL) > 0))))
|
(FLAGS_SET(j->flags, SD_JOURNAL_INCLUDE_DEFAULT_NAMESPACE) && dirname_has_namespace(dirname, NULL) > 0)))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
r = directory_open(j, path, &d);
|
r = directory_open(j, path, &d);
|
||||||
|
|
|
@ -67,9 +67,6 @@ struct sd_dhcp_lease {
|
||||||
struct in_addr *smtp_server;
|
struct in_addr *smtp_server;
|
||||||
size_t smtp_server_size;
|
size_t smtp_server_size;
|
||||||
|
|
||||||
struct in_addr *lpr_server;
|
|
||||||
size_t lpr_server_size;
|
|
||||||
|
|
||||||
struct sd_dhcp_route *static_route;
|
struct sd_dhcp_route *static_route;
|
||||||
size_t static_route_size, static_route_allocated;
|
size_t static_route_size, static_route_allocated;
|
||||||
|
|
||||||
|
|
|
@ -55,8 +55,8 @@ struct sd_dhcp_server {
|
||||||
|
|
||||||
char *timezone;
|
char *timezone;
|
||||||
|
|
||||||
struct in_addr *ntp, *dns, *sip, *pop3_server, *smtp_server, *lpr_server;
|
struct in_addr *ntp, *dns, *sip, *pop3_server, *smtp_server;
|
||||||
unsigned n_ntp, n_dns, n_sip, n_pop3_server, n_smtp_server, n_lpr_server;
|
unsigned n_ntp, n_dns, n_sip, n_pop3_server, n_smtp_server;
|
||||||
|
|
||||||
OrderedHashmap *extra_options;
|
OrderedHashmap *extra_options;
|
||||||
OrderedHashmap *vendor_options;
|
OrderedHashmap *vendor_options;
|
||||||
|
|
|
@ -140,13 +140,6 @@ int sd_dhcp_lease_get_servers(
|
||||||
*addr = lease->smtp_server;
|
*addr = lease->smtp_server;
|
||||||
return (int) lease->smtp_server_size;
|
return (int) lease->smtp_server_size;
|
||||||
|
|
||||||
case SD_DHCP_LEASE_LPR_SERVERS:
|
|
||||||
if (lease->lpr_server_size <= 0)
|
|
||||||
return -ENODATA;
|
|
||||||
|
|
||||||
*addr = lease->lpr_server;
|
|
||||||
return (int) lease->lpr_server_size;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return log_debug_errno(SYNTHETIC_ERRNO(ENXIO),
|
return log_debug_errno(SYNTHETIC_ERRNO(ENXIO),
|
||||||
"Unknown DHCP lease info item %d.", what);
|
"Unknown DHCP lease info item %d.", what);
|
||||||
|
@ -168,9 +161,6 @@ int sd_dhcp_lease_get_pop3_server(sd_dhcp_lease *lease, const struct in_addr **a
|
||||||
int sd_dhcp_lease_get_smtp_server(sd_dhcp_lease *lease, const struct in_addr **addr) {
|
int sd_dhcp_lease_get_smtp_server(sd_dhcp_lease *lease, const struct in_addr **addr) {
|
||||||
return sd_dhcp_lease_get_servers(lease, SD_DHCP_LEASE_SMTP_SERVERS, addr);
|
return sd_dhcp_lease_get_servers(lease, SD_DHCP_LEASE_SMTP_SERVERS, addr);
|
||||||
}
|
}
|
||||||
int sd_dhcp_lease_get_lpr_servers(sd_dhcp_lease *lease, const struct in_addr **addr) {
|
|
||||||
return sd_dhcp_lease_get_servers(lease, SD_DHCP_LEASE_LPR_SERVERS, addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
int sd_dhcp_lease_get_domainname(sd_dhcp_lease *lease, const char **domainname) {
|
int sd_dhcp_lease_get_domainname(sd_dhcp_lease *lease, const char **domainname) {
|
||||||
assert_return(lease, -EINVAL);
|
assert_return(lease, -EINVAL);
|
||||||
|
@ -324,7 +314,6 @@ static sd_dhcp_lease *dhcp_lease_free(sd_dhcp_lease *lease) {
|
||||||
free(lease->sip);
|
free(lease->sip);
|
||||||
free(lease->pop3_server);
|
free(lease->pop3_server);
|
||||||
free(lease->smtp_server);
|
free(lease->smtp_server);
|
||||||
free(lease->lpr_server);
|
|
||||||
free(lease->static_route);
|
free(lease->static_route);
|
||||||
free(lease->client_id);
|
free(lease->client_id);
|
||||||
free(lease->vendor_specific);
|
free(lease->vendor_specific);
|
||||||
|
@ -659,12 +648,6 @@ int dhcp_lease_parse_options(uint8_t code, uint8_t len, const void *option, void
|
||||||
log_debug_errno(r, "Failed to parse SMTP server, ignoring: %m");
|
log_debug_errno(r, "Failed to parse SMTP server, ignoring: %m");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SD_DHCP_OPTION_LPR_SERVER:
|
|
||||||
r = lease_parse_in_addrs(option, len, &lease->lpr_server, &lease->lpr_server_size);
|
|
||||||
if (r < 0)
|
|
||||||
log_debug_errno(r, "Failed to parse LPR server, ignoring: %m");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case SD_DHCP_OPTION_STATIC_ROUTE:
|
case SD_DHCP_OPTION_STATIC_ROUTE:
|
||||||
r = lease_parse_routes(option, len, &lease->static_route, &lease->static_route_size, &lease->static_route_allocated);
|
r = lease_parse_routes(option, len, &lease->static_route, &lease->static_route_size, &lease->static_route_allocated);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
|
@ -1103,7 +1086,6 @@ int dhcp_lease_load(sd_dhcp_lease **ret, const char *lease_file) {
|
||||||
*sip = NULL,
|
*sip = NULL,
|
||||||
*pop3_server = NULL,
|
*pop3_server = NULL,
|
||||||
*smtp_server = NULL,
|
*smtp_server = NULL,
|
||||||
*lpr_server = NULL,
|
|
||||||
*mtu = NULL,
|
*mtu = NULL,
|
||||||
*routes = NULL,
|
*routes = NULL,
|
||||||
*domains = NULL,
|
*domains = NULL,
|
||||||
|
@ -1135,7 +1117,6 @@ int dhcp_lease_load(sd_dhcp_lease **ret, const char *lease_file) {
|
||||||
"SIP", &sip,
|
"SIP", &sip,
|
||||||
"POP3_SERVERS", &pop3_server,
|
"POP3_SERVERS", &pop3_server,
|
||||||
"SMTP_SERVERS", &smtp_server,
|
"SMTP_SERVERS", &smtp_server,
|
||||||
"LPR_SERVERS", &lpr_server,
|
|
||||||
"MTU", &mtu,
|
"MTU", &mtu,
|
||||||
"DOMAINNAME", &lease->domainname,
|
"DOMAINNAME", &lease->domainname,
|
||||||
"HOSTNAME", &lease->hostname,
|
"HOSTNAME", &lease->hostname,
|
||||||
|
@ -1264,15 +1245,6 @@ int dhcp_lease_load(sd_dhcp_lease **ret, const char *lease_file) {
|
||||||
lease->smtp_server_size = r;
|
lease->smtp_server_size = r;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lpr_server) {
|
|
||||||
r = deserialize_in_addrs(&lease->lpr_server, lpr_server);
|
|
||||||
if (r < 0)
|
|
||||||
log_debug_errno(r, "Failed to deserialize LPR server %s, ignoring: %m", lpr_server);
|
|
||||||
else
|
|
||||||
lease->lpr_server_size = r;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (mtu) {
|
if (mtu) {
|
||||||
r = safe_atou16(mtu, &lease->mtu);
|
r = safe_atou16(mtu, &lease->mtu);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
|
|
|
@ -142,7 +142,6 @@ static sd_dhcp_server *dhcp_server_free(sd_dhcp_server *server) {
|
||||||
free(server->sip);
|
free(server->sip);
|
||||||
free(server->pop3_server);
|
free(server->pop3_server);
|
||||||
free(server->smtp_server);
|
free(server->smtp_server);
|
||||||
free(server->lpr_server);
|
|
||||||
|
|
||||||
hashmap_free(server->leases_by_client_id);
|
hashmap_free(server->leases_by_client_id);
|
||||||
|
|
||||||
|
@ -534,15 +533,6 @@ static int server_send_ack(sd_dhcp_server *server, DHCPRequest *req,
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (server->n_lpr_server > 0) {
|
|
||||||
r = dhcp_option_append(
|
|
||||||
&packet->dhcp, req->max_optlen, &offset, 0,
|
|
||||||
SD_DHCP_OPTION_LPR_SERVER,
|
|
||||||
sizeof(struct in_addr) * server->n_lpr_server, server->lpr_server);
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (server->timezone) {
|
if (server->timezone) {
|
||||||
r = dhcp_option_append(
|
r = dhcp_option_append(
|
||||||
&packet->dhcp, req->max_optlen, &offset, 0,
|
&packet->dhcp, req->max_optlen, &offset, 0,
|
||||||
|
@ -1171,11 +1161,6 @@ int sd_dhcp_server_set_servers(
|
||||||
n_a = &server->n_smtp_server;
|
n_a = &server->n_smtp_server;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SD_DHCP_LEASE_LPR_SERVERS:
|
|
||||||
a = &server->lpr_server;
|
|
||||||
n_a = &server->n_lpr_server;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return log_debug_errno(SYNTHETIC_ERRNO(ENXIO),
|
return log_debug_errno(SYNTHETIC_ERRNO(ENXIO),
|
||||||
"Unknown DHCP lease info item %d.", what);
|
"Unknown DHCP lease info item %d.", what);
|
||||||
|
@ -1214,9 +1199,6 @@ int sd_dhcp_server_set_pop3_server(sd_dhcp_server *server, const struct in_addr
|
||||||
int sd_dhcp_server_set_smtp_server(sd_dhcp_server *server, const struct in_addr smtp[], unsigned n) {
|
int sd_dhcp_server_set_smtp_server(sd_dhcp_server *server, const struct in_addr smtp[], unsigned n) {
|
||||||
return sd_dhcp_server_set_servers(server, SD_DHCP_LEASE_SMTP_SERVERS, smtp, n);
|
return sd_dhcp_server_set_servers(server, SD_DHCP_LEASE_SMTP_SERVERS, smtp, n);
|
||||||
}
|
}
|
||||||
int sd_dhcp_server_set_lpr(sd_dhcp_server *server, const struct in_addr lpr[], unsigned n) {
|
|
||||||
return sd_dhcp_server_set_servers(server, SD_DHCP_LEASE_LPR_SERVERS, lpr, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
int sd_dhcp_server_set_emit_router(sd_dhcp_server *server, int enabled) {
|
int sd_dhcp_server_set_emit_router(sd_dhcp_server *server, int enabled) {
|
||||||
assert_return(server, -EINVAL);
|
assert_return(server, -EINVAL);
|
||||||
|
|
|
@ -1298,19 +1298,20 @@ static int message_add_offset(sd_bus_message *m, size_t offset) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void message_extend_containers(sd_bus_message *m, size_t expand) {
|
static void message_extend_containers(sd_bus_message *m, size_t expand) {
|
||||||
|
struct bus_container *c;
|
||||||
|
|
||||||
assert(m);
|
assert(m);
|
||||||
|
|
||||||
if (expand <= 0)
|
if (expand <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (m->n_containers <= 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* Update counters */
|
/* Update counters */
|
||||||
for (struct bus_container *c = m->containers; c < m->containers + m->n_containers; c++)
|
for (c = m->containers; c < m->containers + m->n_containers; c++) {
|
||||||
|
|
||||||
if (c->array_size)
|
if (c->array_size)
|
||||||
*c->array_size += expand;
|
*c->array_size += expand;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void *message_extend_body(
|
static void *message_extend_body(
|
||||||
sd_bus_message *m,
|
sd_bus_message *m,
|
||||||
|
@ -1372,6 +1373,7 @@ static void *message_extend_body(
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
} else {
|
} else {
|
||||||
|
struct bus_container *c;
|
||||||
void *op;
|
void *op;
|
||||||
size_t os, start_part, end_part;
|
size_t os, start_part, end_part;
|
||||||
|
|
||||||
|
@ -1392,8 +1394,7 @@ static void *message_extend_body(
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Readjust pointers */
|
/* Readjust pointers */
|
||||||
if (m->n_containers > 0)
|
for (c = m->containers; c < m->containers + m->n_containers; c++)
|
||||||
for (struct bus_container *c = m->containers; c < m->containers + m->n_containers; c++)
|
|
||||||
c->array_size = adjust_pointer(c->array_size, op, os, part->data);
|
c->array_size = adjust_pointer(c->array_size, op, os, part->data);
|
||||||
|
|
||||||
m->error.message = (const char*) adjust_pointer(m->error.message, op, os, part->data);
|
m->error.message = (const char*) adjust_pointer(m->error.message, op, os, part->data);
|
||||||
|
|
|
@ -56,18 +56,12 @@ static int node_vtable_get_userdata(
|
||||||
static void *vtable_method_convert_userdata(const sd_bus_vtable *p, void *u) {
|
static void *vtable_method_convert_userdata(const sd_bus_vtable *p, void *u) {
|
||||||
assert(p);
|
assert(p);
|
||||||
|
|
||||||
if (!u)
|
|
||||||
return SIZE_TO_PTR(p->x.method.offset); /* don't add offset on NULL, to make ubsan happy */
|
|
||||||
|
|
||||||
return (uint8_t*) u + p->x.method.offset;
|
return (uint8_t*) u + p->x.method.offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *vtable_property_convert_userdata(const sd_bus_vtable *p, void *u) {
|
static void *vtable_property_convert_userdata(const sd_bus_vtable *p, void *u) {
|
||||||
assert(p);
|
assert(p);
|
||||||
|
|
||||||
if (!u)
|
|
||||||
return SIZE_TO_PTR(p->x.property.offset); /* as above */
|
|
||||||
|
|
||||||
return (uint8_t*) u + p->x.property.offset;
|
return (uint8_t*) u + p->x.property.offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -264,10 +264,6 @@ _public_ int sd_network_link_get_smtp_servers(int ifindex, char ***ret) {
|
||||||
return network_link_get_strv(ifindex, "SMTP_SERVERS", ret);
|
return network_link_get_strv(ifindex, "SMTP_SERVERS", ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
_public_ int sd_network_link_get_lpr_servers(int ifindex, char ***ret) {
|
|
||||||
return network_link_get_strv(ifindex, "LPR_SERVERS", ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
_public_ int sd_network_link_get_dns_default_route(int ifindex) {
|
_public_ int sd_network_link_get_dns_default_route(int ifindex) {
|
||||||
char path[STRLEN("/run/systemd/netif/links/") + DECIMAL_STR_MAX(ifindex) + 1];
|
char path[STRLEN("/run/systemd/netif/links/") + DECIMAL_STR_MAX(ifindex) + 1];
|
||||||
_cleanup_free_ char *s = NULL;
|
_cleanup_free_ char *s = NULL;
|
||||||
|
|
|
@ -1241,7 +1241,7 @@ static int link_status_one(
|
||||||
const LinkInfo *info) {
|
const LinkInfo *info) {
|
||||||
|
|
||||||
_cleanup_strv_free_ char **dns = NULL, **ntp = NULL, **sip = NULL, **search_domains = NULL, **route_domains = NULL,
|
_cleanup_strv_free_ char **dns = NULL, **ntp = NULL, **sip = NULL, **search_domains = NULL, **route_domains = NULL,
|
||||||
**pop3_server = NULL, **smtp_server = NULL, **lpr_server = NULL;
|
**pop3_server = NULL, **smtp_server = NULL;
|
||||||
_cleanup_free_ char *setup_state = NULL, *operational_state = NULL, *tz = NULL;
|
_cleanup_free_ char *setup_state = NULL, *operational_state = NULL, *tz = NULL;
|
||||||
_cleanup_free_ char *t = NULL, *network = NULL;
|
_cleanup_free_ char *t = NULL, *network = NULL;
|
||||||
const char *driver = NULL, *path = NULL, *vendor = NULL, *model = NULL, *link = NULL;
|
const char *driver = NULL, *path = NULL, *vendor = NULL, *model = NULL, *link = NULL;
|
||||||
|
@ -1270,7 +1270,6 @@ static int link_status_one(
|
||||||
(void) sd_network_link_get_sip(info->ifindex, &sip);
|
(void) sd_network_link_get_sip(info->ifindex, &sip);
|
||||||
(void) sd_network_link_get_pop3_servers(info->ifindex, &pop3_server);
|
(void) sd_network_link_get_pop3_servers(info->ifindex, &pop3_server);
|
||||||
(void) sd_network_link_get_smtp_servers(info->ifindex, &smtp_server);
|
(void) sd_network_link_get_smtp_servers(info->ifindex, &smtp_server);
|
||||||
(void) sd_network_link_get_lpr_servers(info->ifindex, &lpr_server);
|
|
||||||
|
|
||||||
if (info->sd_device) {
|
if (info->sd_device) {
|
||||||
(void) sd_device_get_property_value(info->sd_device, "ID_NET_LINK_FILE", &link);
|
(void) sd_device_get_property_value(info->sd_device, "ID_NET_LINK_FILE", &link);
|
||||||
|
@ -1845,9 +1844,6 @@ static int link_status_one(
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
r = dump_list(table, "SMTP servers:", smtp_server);
|
r = dump_list(table, "SMTP servers:", smtp_server);
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
r = dump_list(table, "LPR servers:", lpr_server);
|
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
r = dump_ifindexes(table, "Carrier Bound To:", carrier_bound_to);
|
r = dump_ifindexes(table, "Carrier Bound To:", carrier_bound_to);
|
||||||
|
|
|
@ -127,11 +127,6 @@ static int link_push_uplink_to_dhcp_server(
|
||||||
lease_condition = link->network->dhcp_use_sip;
|
lease_condition = link->network->dhcp_use_sip;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SD_DHCP_LEASE_LPR_SERVERS:
|
|
||||||
servers = link->network->lpr;
|
|
||||||
lease_condition = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
assert_not_reached("Unknown DHCP lease info item");
|
assert_not_reached("Unknown DHCP lease info item");
|
||||||
}
|
}
|
||||||
|
@ -243,11 +238,6 @@ int dhcp4_server_configure(Link *link) {
|
||||||
link->network->dhcp_server_smtp,
|
link->network->dhcp_server_smtp,
|
||||||
link->network->n_dhcp_server_smtp,
|
link->network->n_dhcp_server_smtp,
|
||||||
},
|
},
|
||||||
[SD_DHCP_LEASE_LPR_SERVERS] = {
|
|
||||||
true,
|
|
||||||
link->network->dhcp_server_lpr,
|
|
||||||
link->network->n_dhcp_server_lpr,
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
assert_cc(ELEMENTSOF(configs) == _SD_DHCP_LEASE_INFO_MAX);
|
assert_cc(ELEMENTSOF(configs) == _SD_DHCP_LEASE_INFO_MAX);
|
||||||
|
|
||||||
|
@ -464,23 +454,3 @@ int config_parse_dhcp_server_smtp_servers(
|
||||||
&n->dhcp_server_smtp, &n->n_dhcp_server_smtp);
|
&n->dhcp_server_smtp, &n->n_dhcp_server_smtp);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int config_parse_dhcp_server_lpr_servers(
|
|
||||||
const char *unit,
|
|
||||||
const char *filename,
|
|
||||||
unsigned line,
|
|
||||||
const char *section,
|
|
||||||
unsigned section_line,
|
|
||||||
const char *lvalue,
|
|
||||||
int ltype,
|
|
||||||
const char *rvalue,
|
|
||||||
void *data,
|
|
||||||
void *userdata) {
|
|
||||||
|
|
||||||
Network *n = data;
|
|
||||||
|
|
||||||
return config_parse_dhcp_lease_server_list(unit, filename, line,
|
|
||||||
lvalue, rvalue,
|
|
||||||
&n->dhcp_server_lpr, &n->n_dhcp_server_lpr);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -14,4 +14,3 @@ CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_server_ntp);
|
||||||
CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_server_sip);
|
CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_server_sip);
|
||||||
CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_server_pop3_servers);
|
CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_server_pop3_servers);
|
||||||
CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_server_smtp_servers);
|
CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_server_smtp_servers);
|
||||||
CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_server_lpr_servers);
|
|
||||||
|
|
|
@ -3951,9 +3951,9 @@ static void link_save_dns(FILE *f, struct in_addr_data *dns, unsigned n_dns, boo
|
||||||
}
|
}
|
||||||
|
|
||||||
int link_save(Link *link) {
|
int link_save(Link *link) {
|
||||||
const char *admin_state, *oper_state, *carrier_state, *address_state;
|
|
||||||
_cleanup_free_ char *temp_path = NULL;
|
_cleanup_free_ char *temp_path = NULL;
|
||||||
_cleanup_fclose_ FILE *f = NULL;
|
_cleanup_fclose_ FILE *f = NULL;
|
||||||
|
const char *admin_state, *oper_state, *carrier_state, *address_state;
|
||||||
Address *a;
|
Address *a;
|
||||||
Route *route;
|
Route *route;
|
||||||
Iterator i;
|
Iterator i;
|
||||||
|
@ -4112,12 +4112,6 @@ int link_save(Link *link) {
|
||||||
space = false;
|
space = false;
|
||||||
fputstrv(f, link->network->smtp, NULL, &space);
|
fputstrv(f, link->network->smtp, NULL, &space);
|
||||||
|
|
||||||
fputc('\n', f);
|
|
||||||
|
|
||||||
fputs("LPR_SERVERS=", f);
|
|
||||||
space = false;
|
|
||||||
fputstrv(f, link->network->lpr, NULL, &space);
|
|
||||||
|
|
||||||
if (link->dhcp_lease) {
|
if (link->dhcp_lease) {
|
||||||
const struct in_addr *addresses;
|
const struct in_addr *addresses;
|
||||||
|
|
||||||
|
@ -4136,15 +4130,6 @@ int link_save(Link *link) {
|
||||||
space = true;
|
space = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (link->dhcp_lease) {
|
|
||||||
const struct in_addr *addresses;
|
|
||||||
|
|
||||||
r = sd_dhcp_lease_get_lpr_servers(link->dhcp_lease, &addresses);
|
|
||||||
if (r > 0)
|
|
||||||
if (serialize_in_addrs(f, addresses, r, space, in4_addr_is_non_local) > 0)
|
|
||||||
space = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (link->network->dhcp6_use_ntp && dhcp6_lease) {
|
if (link->network->dhcp6_use_ntp && dhcp6_lease) {
|
||||||
struct in6_addr *in6_addrs;
|
struct in6_addr *in6_addrs;
|
||||||
char **hosts;
|
char **hosts;
|
||||||
|
|
|
@ -1495,7 +1495,7 @@ static int ordered_set_put_in4_addrv(OrderedSet *s,
|
||||||
|
|
||||||
static int manager_save(Manager *m) {
|
static int manager_save(Manager *m) {
|
||||||
_cleanup_ordered_set_free_free_ OrderedSet *dns = NULL, *ntp = NULL, *sip = NULL, *pop3 = NULL,
|
_cleanup_ordered_set_free_free_ OrderedSet *dns = NULL, *ntp = NULL, *sip = NULL, *pop3 = NULL,
|
||||||
*smtp = NULL, *lpr = NULL, *search_domains = NULL, *route_domains = NULL;
|
*smtp = NULL, *search_domains = NULL, *route_domains = NULL;
|
||||||
const char *operstate_str, *carrier_state_str, *address_state_str;
|
const char *operstate_str, *carrier_state_str, *address_state_str;
|
||||||
LinkOperationalState operstate = LINK_OPERSTATE_OFF;
|
LinkOperationalState operstate = LINK_OPERSTATE_OFF;
|
||||||
LinkCarrierState carrier_state = LINK_CARRIER_STATE_OFF;
|
LinkCarrierState carrier_state = LINK_CARRIER_STATE_OFF;
|
||||||
|
@ -1532,10 +1532,6 @@ static int manager_save(Manager *m) {
|
||||||
if (!smtp)
|
if (!smtp)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
lpr = ordered_set_new(&string_hash_ops);
|
|
||||||
if (!lpr)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
search_domains = ordered_set_new(&dns_name_hash_ops);
|
search_domains = ordered_set_new(&dns_name_hash_ops);
|
||||||
if (!search_domains)
|
if (!search_domains)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -1627,14 +1623,6 @@ static int manager_save(Manager *m) {
|
||||||
} else if (r < 0 && r != -ENODATA)
|
} else if (r < 0 && r != -ENODATA)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
r = sd_dhcp_lease_get_lpr_servers(link->dhcp_lease, &addresses);
|
|
||||||
if (r > 0) {
|
|
||||||
r = ordered_set_put_in4_addrv(lpr, addresses, r, in4_addr_is_non_local);
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
} else if (r < 0 && r != -ENODATA)
|
|
||||||
return r;
|
|
||||||
|
|
||||||
if (link->network->dhcp_use_domains != DHCP_USE_DOMAINS_NO) {
|
if (link->network->dhcp_use_domains != DHCP_USE_DOMAINS_NO) {
|
||||||
const char *domainname;
|
const char *domainname;
|
||||||
char **domains = NULL;
|
char **domains = NULL;
|
||||||
|
@ -1688,7 +1676,6 @@ static int manager_save(Manager *m) {
|
||||||
ordered_set_print(f, "SIP=", sip);
|
ordered_set_print(f, "SIP=", sip);
|
||||||
ordered_set_print(f, "POP3_SERVERS=", pop3);
|
ordered_set_print(f, "POP3_SERVERS=", pop3);
|
||||||
ordered_set_print(f, "SMTP_SERVERS=", smtp);
|
ordered_set_print(f, "SMTP_SERVERS=", smtp);
|
||||||
ordered_set_print(f, "LPR_SERVERS=", lpr);
|
|
||||||
ordered_set_print(f, "DOMAINS=", search_domains);
|
ordered_set_print(f, "DOMAINS=", search_domains);
|
||||||
ordered_set_print(f, "ROUTE_DOMAINS=", route_domains);
|
ordered_set_print(f, "ROUTE_DOMAINS=", route_domains);
|
||||||
|
|
||||||
|
|
|
@ -212,7 +212,6 @@ DHCPServer.EmitSIP, config_parse_bool,
|
||||||
DHCPServer.SIP, config_parse_dhcp_server_sip, 0, 0
|
DHCPServer.SIP, config_parse_dhcp_server_sip, 0, 0
|
||||||
DHCPServer.POP3Servers, config_parse_dhcp_server_pop3_servers, 0, 0
|
DHCPServer.POP3Servers, config_parse_dhcp_server_pop3_servers, 0, 0
|
||||||
DHCPServer.SMTPServers, config_parse_dhcp_server_smtp_servers, 0, 0
|
DHCPServer.SMTPServers, config_parse_dhcp_server_smtp_servers, 0, 0
|
||||||
DHCPServer.LPRServers, config_parse_dhcp_server_lpr_servers, 0, 0
|
|
||||||
DHCPServer.EmitRouter, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_router)
|
DHCPServer.EmitRouter, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_router)
|
||||||
DHCPServer.EmitTimezone, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_timezone)
|
DHCPServer.EmitTimezone, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_timezone)
|
||||||
DHCPServer.Timezone, config_parse_timezone, 0, offsetof(Network, dhcp_server_timezone)
|
DHCPServer.Timezone, config_parse_timezone, 0, offsetof(Network, dhcp_server_timezone)
|
||||||
|
|
|
@ -155,9 +155,6 @@ struct Network {
|
||||||
struct in_addr *dhcp_server_smtp;
|
struct in_addr *dhcp_server_smtp;
|
||||||
unsigned n_dhcp_server_smtp;
|
unsigned n_dhcp_server_smtp;
|
||||||
|
|
||||||
struct in_addr *dhcp_server_lpr;
|
|
||||||
unsigned n_dhcp_server_lpr;
|
|
||||||
|
|
||||||
bool dhcp_server_emit_router;
|
bool dhcp_server_emit_router;
|
||||||
bool dhcp_server_emit_timezone;
|
bool dhcp_server_emit_timezone;
|
||||||
char *dhcp_server_timezone;
|
char *dhcp_server_timezone;
|
||||||
|
@ -315,7 +312,6 @@ struct Network {
|
||||||
char **sip;
|
char **sip;
|
||||||
char **pop3;
|
char **pop3;
|
||||||
char **smtp;
|
char **smtp;
|
||||||
char **lpr;
|
|
||||||
char **bind_carrier;
|
char **bind_carrier;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,6 @@ static const char* const dhcp_lease_info_table[_SD_DHCP_LEASE_INFO_MAX] = {
|
||||||
[SD_DHCP_LEASE_SIP_SERVERS] = "SIP servers",
|
[SD_DHCP_LEASE_SIP_SERVERS] = "SIP servers",
|
||||||
[SD_DHCP_LEASE_POP3_SERVERS] = "POP3 servers",
|
[SD_DHCP_LEASE_POP3_SERVERS] = "POP3 servers",
|
||||||
[SD_DHCP_LEASE_SMTP_SERVERS] = "SMTP servers",
|
[SD_DHCP_LEASE_SMTP_SERVERS] = "SMTP servers",
|
||||||
[SD_DHCP_LEASE_LPR_SERVERS] = "LPR servers",
|
|
||||||
};
|
};
|
||||||
|
|
||||||
DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(address_family, AddressFamily, ADDRESS_FAMILY_YES);
|
DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(address_family, AddressFamily, ADDRESS_FAMILY_YES);
|
||||||
|
|
|
@ -2974,10 +2974,13 @@ static int inner_child(
|
||||||
arg_uid_range,
|
arg_uid_range,
|
||||||
arg_selinux_apifs_context,
|
arg_selinux_apifs_context,
|
||||||
true);
|
true);
|
||||||
} else
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
} else {
|
||||||
r = mount_systemd_cgroup_writable("", arg_unified_cgroup_hierarchy);
|
r = mount_systemd_cgroup_writable("", arg_unified_cgroup_hierarchy);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
r = setup_boot_id();
|
r = setup_boot_id();
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
|
@ -4820,58 +4823,6 @@ static int initialize_rlimits(void) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cant_be_in_netns(void) {
|
|
||||||
union sockaddr_union sa = {
|
|
||||||
.un = {
|
|
||||||
.sun_family = AF_UNIX,
|
|
||||||
.sun_path = "/run/udev/control",
|
|
||||||
},
|
|
||||||
};
|
|
||||||
char udev_path[STRLEN("/proc//ns/net") + DECIMAL_STR_MAX(pid_t)];
|
|
||||||
_cleanup_free_ char *udev_ns = NULL, *our_ns = NULL;
|
|
||||||
_cleanup_close_ int fd = -1;
|
|
||||||
struct ucred ucred;
|
|
||||||
int r;
|
|
||||||
|
|
||||||
/* Check if we are in the same netns as udev. If we aren't, then device monitoring (and thus waiting
|
|
||||||
* for loopback block devices) won't work, and we will hang. Detect this case and exit early with a
|
|
||||||
* nice message. */
|
|
||||||
|
|
||||||
if (!arg_image) /* only matters if --image= us used, i.e. we actually need to use loopback devices */
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
fd = socket(AF_UNIX, SOCK_SEQPACKET|SOCK_NONBLOCK|SOCK_CLOEXEC, 0);
|
|
||||||
if (fd < 0)
|
|
||||||
return log_error_errno(errno, "Failed to allocate udev control socket: %m");
|
|
||||||
|
|
||||||
if (connect(fd, &sa.un, SOCKADDR_UN_LEN(sa.un)) < 0) {
|
|
||||||
|
|
||||||
if (errno == ENOENT || ERRNO_IS_DISCONNECT(errno))
|
|
||||||
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
|
|
||||||
"Sorry, but --image= requires access to the host's /run/ hierarchy, since we need access to udev.");
|
|
||||||
|
|
||||||
return log_error_errno(errno, "Failed to connect socket to udev control socket: %m");
|
|
||||||
}
|
|
||||||
|
|
||||||
r = getpeercred(fd, &ucred);
|
|
||||||
if (r < 0)
|
|
||||||
return log_error_errno(r, "Failed to determine peer of udev control socket: %m");
|
|
||||||
|
|
||||||
xsprintf(udev_path, "/proc/" PID_FMT "/ns/net", ucred.pid);
|
|
||||||
r = readlink_malloc(udev_path, &udev_ns);
|
|
||||||
if (r < 0)
|
|
||||||
return log_error_errno(r, "Failed to read network namespace of udev: %m");
|
|
||||||
|
|
||||||
r = readlink_malloc("/proc/self/ns/net", &our_ns);
|
|
||||||
if (r < 0)
|
|
||||||
return log_error_errno(r, "Failed to read our own network namespace: %m");
|
|
||||||
|
|
||||||
if (!streq(our_ns, udev_ns))
|
|
||||||
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
|
|
||||||
"Sorry, but --image= is only supported in the main network namespace, since we need access to udev/AF_NETLINK.");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int run(int argc, char *argv[]) {
|
static int run(int argc, char *argv[]) {
|
||||||
bool secondary = false, remove_directory = false, remove_image = false,
|
bool secondary = false, remove_directory = false, remove_image = false,
|
||||||
veth_created = false, remove_tmprootdir = false;
|
veth_created = false, remove_tmprootdir = false;
|
||||||
|
@ -4898,10 +4849,6 @@ static int run(int argc, char *argv[]) {
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
goto finish;
|
goto finish;
|
||||||
|
|
||||||
r = cant_be_in_netns();
|
|
||||||
if (r < 0)
|
|
||||||
goto finish;
|
|
||||||
|
|
||||||
r = initialize_rlimits();
|
r = initialize_rlimits();
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
goto finish;
|
goto finish;
|
||||||
|
|
|
@ -1144,11 +1144,7 @@ static int start_transient_service(
|
||||||
assert_not_reached("Can't allocate tty via ssh");
|
assert_not_reached("Can't allocate tty via ssh");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Optionally, wait for the start job to complete. If we are supposed to read the service's stdin
|
if (!arg_no_block) {
|
||||||
* lets skip this however, because we should start that already when the start job is running, and
|
|
||||||
* there's little point in waiting for the start job to complete in that case anyway, as we'll wait
|
|
||||||
* for EOF anyway, which is going to be much later. */
|
|
||||||
if (!arg_no_block && arg_stdio == ARG_STDIO_NONE) {
|
|
||||||
r = bus_wait_for_jobs_new(bus, &w);
|
r = bus_wait_for_jobs_new(bus, &w);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_error_errno(r, "Could not watch jobs: %m");
|
return log_error_errno(r, "Could not watch jobs: %m");
|
||||||
|
|
|
@ -23,7 +23,7 @@ struct acpi_table_header {
|
||||||
uint32_t oem_revision;
|
uint32_t oem_revision;
|
||||||
char asl_compiler_id[4];
|
char asl_compiler_id[4];
|
||||||
uint32_t asl_compiler_revision;
|
uint32_t asl_compiler_revision;
|
||||||
} _packed_;
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
ACPI_FPDT_TYPE_BOOT = 0,
|
ACPI_FPDT_TYPE_BOOT = 0,
|
||||||
|
@ -36,12 +36,12 @@ struct acpi_fpdt_header {
|
||||||
uint8_t revision;
|
uint8_t revision;
|
||||||
uint8_t reserved[4];
|
uint8_t reserved[4];
|
||||||
uint64_t ptr;
|
uint64_t ptr;
|
||||||
} _packed_;
|
};
|
||||||
|
|
||||||
struct acpi_fpdt_boot_header {
|
struct acpi_fpdt_boot_header {
|
||||||
char signature[4];
|
char signature[4];
|
||||||
uint32_t length;
|
uint32_t length;
|
||||||
} _packed_;
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
ACPI_FPDT_S3PERF_RESUME_REC = 0,
|
ACPI_FPDT_S3PERF_RESUME_REC = 0,
|
||||||
|
@ -59,7 +59,7 @@ struct acpi_fpdt_boot {
|
||||||
uint64_t startup_start;
|
uint64_t startup_start;
|
||||||
uint64_t exit_services_entry;
|
uint64_t exit_services_entry;
|
||||||
uint64_t exit_services_exit;
|
uint64_t exit_services_exit;
|
||||||
} _packed;
|
};
|
||||||
|
|
||||||
int acpi_get_boot_usec(usec_t *loader_start, usec_t *loader_exit) {
|
int acpi_get_boot_usec(usec_t *loader_start, usec_t *loader_exit) {
|
||||||
_cleanup_free_ char *buf = NULL;
|
_cleanup_free_ char *buf = NULL;
|
||||||
|
|
|
@ -91,7 +91,6 @@ static void bus_wait_for_units_clear(BusWaitForUnits *d) {
|
||||||
while ((item = hashmap_first(d->items))) {
|
while ((item = hashmap_first(d->items))) {
|
||||||
d->current = item;
|
d->current = item;
|
||||||
|
|
||||||
if (item->unit_callback)
|
|
||||||
item->unit_callback(d, item->bus_path, false, item->userdata);
|
item->unit_callback(d, item->bus_path, false, item->userdata);
|
||||||
wait_for_item_free(item);
|
wait_for_item_free(item);
|
||||||
}
|
}
|
||||||
|
|
|
@ -410,7 +410,7 @@ static int output_units_list(const UnitInfo *unit_infos, unsigned c) {
|
||||||
if (arg_full)
|
if (arg_full)
|
||||||
table_set_width(table, 0);
|
table_set_width(table, 0);
|
||||||
|
|
||||||
for (u = unit_infos; unit_infos && u < unit_infos + c; u++) {
|
for (u = unit_infos; u < unit_infos + c; u++) {
|
||||||
_cleanup_free_ char *j = NULL;
|
_cleanup_free_ char *j = NULL;
|
||||||
const char *on_underline = "", *on_loaded = "", *on_active = "";
|
const char *on_underline = "", *on_loaded = "", *on_active = "";
|
||||||
const char *on_circle = "", *id;
|
const char *on_circle = "", *id;
|
||||||
|
|
|
@ -48,7 +48,6 @@ enum {
|
||||||
SD_DHCP_OPTION_TIME_OFFSET = 2,
|
SD_DHCP_OPTION_TIME_OFFSET = 2,
|
||||||
SD_DHCP_OPTION_ROUTER = 3,
|
SD_DHCP_OPTION_ROUTER = 3,
|
||||||
SD_DHCP_OPTION_DOMAIN_NAME_SERVER = 6,
|
SD_DHCP_OPTION_DOMAIN_NAME_SERVER = 6,
|
||||||
SD_DHCP_OPTION_LPR_SERVER = 9,
|
|
||||||
SD_DHCP_OPTION_HOST_NAME = 12,
|
SD_DHCP_OPTION_HOST_NAME = 12,
|
||||||
SD_DHCP_OPTION_BOOT_FILE_SIZE = 13,
|
SD_DHCP_OPTION_BOOT_FILE_SIZE = 13,
|
||||||
SD_DHCP_OPTION_DOMAIN_NAME = 15,
|
SD_DHCP_OPTION_DOMAIN_NAME = 15,
|
||||||
|
|
|
@ -39,7 +39,6 @@ typedef enum sd_dhcp_lease_info {
|
||||||
SD_DHCP_LEASE_SIP_SERVERS,
|
SD_DHCP_LEASE_SIP_SERVERS,
|
||||||
SD_DHCP_LEASE_POP3_SERVERS,
|
SD_DHCP_LEASE_POP3_SERVERS,
|
||||||
SD_DHCP_LEASE_SMTP_SERVERS,
|
SD_DHCP_LEASE_SMTP_SERVERS,
|
||||||
SD_DHCP_LEASE_LPR_SERVERS,
|
|
||||||
_SD_DHCP_LEASE_INFO_MAX,
|
_SD_DHCP_LEASE_INFO_MAX,
|
||||||
} sd_dhcp_lease_info;
|
} sd_dhcp_lease_info;
|
||||||
|
|
||||||
|
@ -58,7 +57,6 @@ int sd_dhcp_lease_get_ntp(sd_dhcp_lease *lease, const struct in_addr **addr);
|
||||||
int sd_dhcp_lease_get_sip(sd_dhcp_lease *lease, const struct in_addr **addr);
|
int sd_dhcp_lease_get_sip(sd_dhcp_lease *lease, const struct in_addr **addr);
|
||||||
int sd_dhcp_lease_get_pop3_server(sd_dhcp_lease *lease, const struct in_addr **addr);
|
int sd_dhcp_lease_get_pop3_server(sd_dhcp_lease *lease, const struct in_addr **addr);
|
||||||
int sd_dhcp_lease_get_smtp_server(sd_dhcp_lease *lease, const struct in_addr **addr);
|
int sd_dhcp_lease_get_smtp_server(sd_dhcp_lease *lease, const struct in_addr **addr);
|
||||||
int sd_dhcp_lease_get_lpr_servers(sd_dhcp_lease *lease, const struct in_addr **addr);
|
|
||||||
int sd_dhcp_lease_get_mtu(sd_dhcp_lease *lease, uint16_t *mtu);
|
int sd_dhcp_lease_get_mtu(sd_dhcp_lease *lease, uint16_t *mtu);
|
||||||
int sd_dhcp_lease_get_domainname(sd_dhcp_lease *lease, const char **domainname);
|
int sd_dhcp_lease_get_domainname(sd_dhcp_lease *lease, const char **domainname);
|
||||||
int sd_dhcp_lease_get_search_domains(sd_dhcp_lease *lease, char ***domains);
|
int sd_dhcp_lease_get_search_domains(sd_dhcp_lease *lease, char ***domains);
|
||||||
|
|
|
@ -56,7 +56,6 @@ int sd_dhcp_server_set_servers(
|
||||||
const struct in_addr addresses[],
|
const struct in_addr addresses[],
|
||||||
unsigned n_addresses);
|
unsigned n_addresses);
|
||||||
|
|
||||||
int sd_dhcp_server_set_lpr(sd_dhcp_server *server, const struct in_addr lpr[], unsigned n);
|
|
||||||
int sd_dhcp_server_set_dns(sd_dhcp_server *server, const struct in_addr dns[], unsigned n);
|
int sd_dhcp_server_set_dns(sd_dhcp_server *server, const struct in_addr dns[], unsigned n);
|
||||||
int sd_dhcp_server_set_ntp(sd_dhcp_server *server, const struct in_addr ntp[], unsigned n);
|
int sd_dhcp_server_set_ntp(sd_dhcp_server *server, const struct in_addr ntp[], unsigned n);
|
||||||
int sd_dhcp_server_set_sip(sd_dhcp_server *server, const struct in_addr sip[], unsigned n);
|
int sd_dhcp_server_set_sip(sd_dhcp_server *server, const struct in_addr sip[], unsigned n);
|
||||||
|
|
|
@ -173,9 +173,6 @@ int sd_network_link_get_pop3_servers(int ifindex, char ***pop3);
|
||||||
/* Get the SMTP servers for a given link. */
|
/* Get the SMTP servers for a given link. */
|
||||||
int sd_network_link_get_smtp_servers(int ifindex, char ***smtp);
|
int sd_network_link_get_smtp_servers(int ifindex, char ***smtp);
|
||||||
|
|
||||||
/* Get the LPR servers for a given link. */
|
|
||||||
int sd_network_link_get_lpr_servers(int ifindex, char ***lpr);
|
|
||||||
|
|
||||||
/* Get whether this link shall be used as 'default route' for DNS queries */
|
/* Get whether this link shall be used as 'default route' for DNS queries */
|
||||||
int sd_network_link_get_dns_default_route(int ifindex);
|
int sd_network_link_get_dns_default_route(int ifindex);
|
||||||
|
|
||||||
|
|
|
@ -278,7 +278,6 @@ EmitSIP=
|
||||||
SIP=
|
SIP=
|
||||||
POP3Servers=
|
POP3Servers=
|
||||||
SMTPServers=
|
SMTPServers=
|
||||||
LPRServers=
|
|
||||||
EmitRouter=
|
EmitRouter=
|
||||||
MaxLeaseTimeSec=
|
MaxLeaseTimeSec=
|
||||||
DefaultLeaseTimeSec=
|
DefaultLeaseTimeSec=
|
||||||
|
|
|
@ -27,5 +27,5 @@ ExecStart=test %h = /root
|
||||||
ExecStart=sh -c 'test %s = /bin/sh'
|
ExecStart=sh -c 'test %s = /bin/sh'
|
||||||
ExecStart=sh -c 'test %m = $$(cat /etc/machine-id)'
|
ExecStart=sh -c 'test %m = $$(cat /etc/machine-id)'
|
||||||
ExecStart=sh -c 'test %b = $$(cat /proc/sys/kernel/random/boot_id | sed -e 's/-//g')'
|
ExecStart=sh -c 'test %b = $$(cat /proc/sys/kernel/random/boot_id | sed -e 's/-//g')'
|
||||||
ExecStart=sh -c 'test %H = $$(uname -n)'
|
ExecStart=sh -c 'test %H = $$(hostname)'
|
||||||
ExecStart=sh -c 'test %v = $$(uname -r)'
|
ExecStart=sh -c 'test %v = $$(uname -r)'
|
||||||
|
|
|
@ -25,5 +25,5 @@ ExecStart=test %h = /root
|
||||||
ExecStart=sh -c 'test %s = /bin/sh'
|
ExecStart=sh -c 'test %s = /bin/sh'
|
||||||
ExecStart=sh -c 'test %m = $$(cat /etc/machine-id)'
|
ExecStart=sh -c 'test %m = $$(cat /etc/machine-id)'
|
||||||
ExecStart=sh -c 'test %b = $$(cat /proc/sys/kernel/random/boot_id | sed -e 's/-//g')'
|
ExecStart=sh -c 'test %b = $$(cat /proc/sys/kernel/random/boot_id | sed -e 's/-//g')'
|
||||||
ExecStart=sh -c 'test %H = $$(uname -n)'
|
ExecStart=sh -c 'test %H = $$(hostname)'
|
||||||
ExecStart=sh -c 'test %v = $$(uname -r)'
|
ExecStart=sh -c 'test %v = $$(uname -r)'
|
||||||
|
|
|
@ -106,7 +106,4 @@ systemctl kill --signal=SIGKILL systemd-journald
|
||||||
sleep 3
|
sleep 3
|
||||||
[[ ! -f "/i-lose-my-logs" ]]
|
[[ ! -f "/i-lose-my-logs" ]]
|
||||||
|
|
||||||
# https://github.com/systemd/systemd/issues/15528
|
|
||||||
journalctl --follow --file=/var/log/journal/*/* | head -n1 || [[ $? -eq 1 ]]
|
|
||||||
|
|
||||||
touch /testok
|
touch /testok
|
||||||
|
|
Loading…
Reference in New Issue