mirror of
https://github.com/systemd/systemd
synced 2026-03-26 00:34:53 +01:00
Compare commits
8 Commits
66dc9b4634
...
f95d1ef5fa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f95d1ef5fa | ||
|
|
7acedf31e6 | ||
|
|
d4e30ad1fb | ||
|
|
a353fda224 | ||
|
|
180c5116b3 | ||
|
|
3333350a0e | ||
|
|
72964d047a | ||
|
|
cfd760b6a7 |
@ -866,7 +866,7 @@ SocketBindDeny=any
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>This option can appear multiple times, in which case the network interface names are merged. If the
|
<para>This option can appear multiple times, in which case the network interface names are merged. If the
|
||||||
empty string is assigned the set is reset, all prior assigments will have not effect.
|
empty string is assigned the set is reset, all prior assignments will have not effect.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>If you specify both types of this option (i.e. allow-listing and deny-listing), the first encountered
|
<para>If you specify both types of this option (i.e. allow-listing and deny-listing), the first encountered
|
||||||
|
|||||||
@ -31,3 +31,4 @@ pa
|
|||||||
kab
|
kab
|
||||||
si
|
si
|
||||||
nl
|
nl
|
||||||
|
fi
|
||||||
|
|||||||
849
po/fi.po
Normal file
849
po/fi.po
Normal file
@ -0,0 +1,849 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the systemd package.
|
||||||
|
# Jan Kuparinen <copper_fin@hotmail.com>, 2021.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: systemd\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2021-01-08 17:48+0100\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: Automatically generated\n"
|
||||||
|
"Language-Team: none\n"
|
||||||
|
"Language: fi\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: src/core/org.freedesktop.systemd1.policy.in:22
|
||||||
|
msgid "Send passphrase back to system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/org.freedesktop.systemd1.policy.in:23
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to send the entered passphrase back to the system."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/org.freedesktop.systemd1.policy.in:33
|
||||||
|
msgid "Manage system services or other units"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/org.freedesktop.systemd1.policy.in:34
|
||||||
|
msgid "Authentication is required to manage system services or other units."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/org.freedesktop.systemd1.policy.in:43
|
||||||
|
msgid "Manage system service or unit files"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/org.freedesktop.systemd1.policy.in:44
|
||||||
|
msgid "Authentication is required to manage system service or unit files."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/org.freedesktop.systemd1.policy.in:54
|
||||||
|
msgid "Set or unset system and service manager environment variables"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/org.freedesktop.systemd1.policy.in:55
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to set or unset system and service manager "
|
||||||
|
"environment variables."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/org.freedesktop.systemd1.policy.in:64
|
||||||
|
msgid "Reload the systemd state"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/org.freedesktop.systemd1.policy.in:65
|
||||||
|
msgid "Authentication is required to reload the systemd state."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/home/org.freedesktop.home1.policy:13
|
||||||
|
msgid "Create a home area"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/home/org.freedesktop.home1.policy:14
|
||||||
|
msgid "Authentication is required to create a user's home area."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/home/org.freedesktop.home1.policy:23
|
||||||
|
msgid "Remove a home area"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/home/org.freedesktop.home1.policy:24
|
||||||
|
msgid "Authentication is required to remove a user's home area."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/home/org.freedesktop.home1.policy:33
|
||||||
|
msgid "Check credentials of a home area"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/home/org.freedesktop.home1.policy:34
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to check credentials against a user's home area."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/home/org.freedesktop.home1.policy:43
|
||||||
|
msgid "Update a home area"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/home/org.freedesktop.home1.policy:44
|
||||||
|
msgid "Authentication is required to update a user's home area."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/home/org.freedesktop.home1.policy:53
|
||||||
|
msgid "Resize a home area"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/home/org.freedesktop.home1.policy:54
|
||||||
|
msgid "Authentication is required to resize a user's home area."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/home/org.freedesktop.home1.policy:63
|
||||||
|
msgid "Change password of a home area"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/home/org.freedesktop.home1.policy:64
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to change the password of a user's home area."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/hostname/org.freedesktop.hostname1.policy:20
|
||||||
|
msgid "Set hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/hostname/org.freedesktop.hostname1.policy:21
|
||||||
|
msgid "Authentication is required to set the local hostname."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/hostname/org.freedesktop.hostname1.policy:30
|
||||||
|
msgid "Set static hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/hostname/org.freedesktop.hostname1.policy:31
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to set the statically configured local hostname, "
|
||||||
|
"as well as the pretty hostname."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/hostname/org.freedesktop.hostname1.policy:41
|
||||||
|
msgid "Set machine information"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/hostname/org.freedesktop.hostname1.policy:42
|
||||||
|
msgid "Authentication is required to set local machine information."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/hostname/org.freedesktop.hostname1.policy:51
|
||||||
|
msgid "Get product UUID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/hostname/org.freedesktop.hostname1.policy:52
|
||||||
|
msgid "Authentication is required to get product UUID."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/import/org.freedesktop.import1.policy:22
|
||||||
|
msgid "Import a VM or container image"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/import/org.freedesktop.import1.policy:23
|
||||||
|
msgid "Authentication is required to import a VM or container image"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/import/org.freedesktop.import1.policy:32
|
||||||
|
msgid "Export a VM or container image"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/import/org.freedesktop.import1.policy:33
|
||||||
|
msgid "Authentication is required to export a VM or container image"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/import/org.freedesktop.import1.policy:42
|
||||||
|
msgid "Download a VM or container image"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/import/org.freedesktop.import1.policy:43
|
||||||
|
msgid "Authentication is required to download a VM or container image"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/locale/org.freedesktop.locale1.policy:22
|
||||||
|
msgid "Set system locale"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/locale/org.freedesktop.locale1.policy:23
|
||||||
|
msgid "Authentication is required to set the system locale."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/locale/org.freedesktop.locale1.policy:33
|
||||||
|
msgid "Set system keyboard settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/locale/org.freedesktop.locale1.policy:34
|
||||||
|
msgid "Authentication is required to set the system keyboard settings."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:22
|
||||||
|
msgid "Allow applications to inhibit system shutdown"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:23
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required for an application to inhibit system shutdown."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:33
|
||||||
|
msgid "Allow applications to delay system shutdown"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:34
|
||||||
|
msgid "Authentication is required for an application to delay system shutdown."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:44
|
||||||
|
msgid "Allow applications to inhibit system sleep"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:45
|
||||||
|
msgid "Authentication is required for an application to inhibit system sleep."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:55
|
||||||
|
msgid "Allow applications to delay system sleep"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:56
|
||||||
|
msgid "Authentication is required for an application to delay system sleep."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:65
|
||||||
|
msgid "Allow applications to inhibit automatic system suspend"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:66
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required for an application to inhibit automatic system "
|
||||||
|
"suspend."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:75
|
||||||
|
msgid "Allow applications to inhibit system handling of the power key"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:76
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required for an application to inhibit system handling of "
|
||||||
|
"the power key."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:86
|
||||||
|
msgid "Allow applications to inhibit system handling of the suspend key"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:87
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required for an application to inhibit system handling of "
|
||||||
|
"the suspend key."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:97
|
||||||
|
msgid "Allow applications to inhibit system handling of the hibernate key"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:98
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required for an application to inhibit system handling of "
|
||||||
|
"the hibernate key."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:107
|
||||||
|
msgid "Allow applications to inhibit system handling of the lid switch"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:108
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required for an application to inhibit system handling of "
|
||||||
|
"the lid switch."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:117
|
||||||
|
msgid "Allow applications to inhibit system handling of the reboot key"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:118
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required for an application to inhibit system handling of "
|
||||||
|
"the reboot key."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:128
|
||||||
|
msgid "Allow non-logged-in user to run programs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:129
|
||||||
|
msgid "Explicit request is required to run programs as a non-logged-in user."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:138
|
||||||
|
msgid "Allow non-logged-in users to run programs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:139
|
||||||
|
msgid "Authentication is required to run programs as a non-logged-in user."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:148
|
||||||
|
msgid "Allow attaching devices to seats"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:149
|
||||||
|
msgid "Authentication is required to attach a device to a seat."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:159
|
||||||
|
msgid "Flush device to seat attachments"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:160
|
||||||
|
msgid "Authentication is required to reset how devices are attached to seats."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:169
|
||||||
|
msgid "Power off the system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:170
|
||||||
|
msgid "Authentication is required to power off the system."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:180
|
||||||
|
msgid "Power off the system while other users are logged in"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:181
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to power off the system while other users are "
|
||||||
|
"logged in."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:191
|
||||||
|
msgid "Power off the system while an application is inhibiting this"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:192
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to power off the system while an application is "
|
||||||
|
"inhibiting this."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:202
|
||||||
|
msgid "Reboot the system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:203
|
||||||
|
msgid "Authentication is required to reboot the system."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:213
|
||||||
|
msgid "Reboot the system while other users are logged in"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:214
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to reboot the system while other users are logged "
|
||||||
|
"in."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:224
|
||||||
|
msgid "Reboot the system while an application is inhibiting this"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:225
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to reboot the system while an application is "
|
||||||
|
"inhibiting this."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:235
|
||||||
|
msgid "Halt the system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:236
|
||||||
|
msgid "Authentication is required to halt the system."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:246
|
||||||
|
msgid "Halt the system while other users are logged in"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:247
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to halt the system while other users are logged "
|
||||||
|
"in."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:257
|
||||||
|
msgid "Halt the system while an application is inhibiting this"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:258
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to halt the system while an application is "
|
||||||
|
"inhibiting this."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:268
|
||||||
|
msgid "Suspend the system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:269
|
||||||
|
msgid "Authentication is required to suspend the system."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:278
|
||||||
|
msgid "Suspend the system while other users are logged in"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:279
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to suspend the system while other users are "
|
||||||
|
"logged in."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:289
|
||||||
|
msgid "Suspend the system while an application is inhibiting this"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:290
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to suspend the system while an application is "
|
||||||
|
"inhibiting this."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:300
|
||||||
|
msgid "Hibernate the system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:301
|
||||||
|
msgid "Authentication is required to hibernate the system."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:310
|
||||||
|
msgid "Hibernate the system while other users are logged in"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:311
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to hibernate the system while other users are "
|
||||||
|
"logged in."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:321
|
||||||
|
msgid "Hibernate the system while an application is inhibiting this"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:322
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to hibernate the system while an application is "
|
||||||
|
"inhibiting this."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:332
|
||||||
|
msgid "Manage active sessions, users and seats"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:333
|
||||||
|
msgid "Authentication is required to manage active sessions, users and seats."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:342
|
||||||
|
msgid "Lock or unlock active sessions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:343
|
||||||
|
msgid "Authentication is required to lock or unlock active sessions."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:352
|
||||||
|
msgid "Set the reboot \"reason\" in the kernel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:353
|
||||||
|
msgid "Authentication is required to set the reboot \"reason\" in the kernel."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:363
|
||||||
|
msgid "Indicate to the firmware to boot to setup interface"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:364
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to indicate to the firmware to boot to setup "
|
||||||
|
"interface."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: 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:375
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to indicate to the boot loader to boot to the "
|
||||||
|
"boot loader menu."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: 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:386
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to indicate to the boot loader to boot into a "
|
||||||
|
"specific boot loader entry."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:396
|
||||||
|
msgid "Set a wall message"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:397
|
||||||
|
msgid "Authentication is required to set a wall message"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:406
|
||||||
|
msgid "Change Session"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/login/org.freedesktop.login1.policy:407
|
||||||
|
msgid "Authentication is required to change the virtual terminal."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:22
|
||||||
|
msgid "Log into a local container"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:23
|
||||||
|
msgid "Authentication is required to log into a local container."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:32
|
||||||
|
msgid "Log into the local host"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:33
|
||||||
|
msgid "Authentication is required to log into the local host."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:42
|
||||||
|
msgid "Acquire a shell in a local container"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:43
|
||||||
|
msgid "Authentication is required to acquire a shell in a local container."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:53
|
||||||
|
msgid "Acquire a shell on the local host"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:54
|
||||||
|
msgid "Authentication is required to acquire a shell on the local host."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:64
|
||||||
|
msgid "Acquire a pseudo TTY in a local container"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:65
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to acquire a pseudo TTY in a local container."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:74
|
||||||
|
msgid "Acquire a pseudo TTY on the local host"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:75
|
||||||
|
msgid "Authentication is required to acquire a pseudo TTY on the local host."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:84
|
||||||
|
msgid "Manage local virtual machines and containers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:85
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to manage local virtual machines and containers."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:95
|
||||||
|
msgid "Manage local virtual machine and container images"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/machine/org.freedesktop.machine1.policy:96
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to manage local virtual machine and container "
|
||||||
|
"images."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:22
|
||||||
|
msgid "Set NTP servers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:23
|
||||||
|
msgid "Authentication is required to set NTP servers."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:33
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:44
|
||||||
|
msgid "Set DNS servers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:34
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:45
|
||||||
|
msgid "Authentication is required to set DNS servers."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:44
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:55
|
||||||
|
msgid "Set domains"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:45
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:56
|
||||||
|
msgid "Authentication is required to set domains."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:55
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:66
|
||||||
|
msgid "Set default route"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:56
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:67
|
||||||
|
msgid "Authentication is required to set default route."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:66
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:77
|
||||||
|
msgid "Enable/disable LLMNR"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:67
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:78
|
||||||
|
msgid "Authentication is required to enable or disable LLMNR."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:77
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:88
|
||||||
|
msgid "Enable/disable multicast DNS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:78
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:89
|
||||||
|
msgid "Authentication is required to enable or disable multicast DNS."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:88
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:99
|
||||||
|
msgid "Enable/disable DNS over TLS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:89
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:100
|
||||||
|
msgid "Authentication is required to enable or disable DNS over TLS."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:99
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:110
|
||||||
|
msgid "Enable/disable DNSSEC"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:100
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:111
|
||||||
|
msgid "Authentication is required to enable or disable DNSSEC."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:110
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:121
|
||||||
|
msgid "Set DNSSEC Negative Trust Anchors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:111
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:122
|
||||||
|
msgid "Authentication is required to set DNSSEC Negative Trust Anchors."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:121
|
||||||
|
msgid "Revert NTP settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:122
|
||||||
|
msgid "Authentication is required to reset NTP settings."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:132
|
||||||
|
msgid "Revert DNS settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:133
|
||||||
|
msgid "Authentication is required to reset DNS settings."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:143
|
||||||
|
msgid "DHCP server sends force renew message"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:144
|
||||||
|
msgid "Authentication is required to send force renew message."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:154
|
||||||
|
msgid "Renew dynamic addresses"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:155
|
||||||
|
msgid "Authentication is required to renew dynamic addresses."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:165
|
||||||
|
msgid "Reload network settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:166
|
||||||
|
msgid "Authentication is required to reload network settings."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:176
|
||||||
|
msgid "Reconfigure network interface"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/network/org.freedesktop.network1.policy:177
|
||||||
|
msgid "Authentication is required to reconfigure network interface."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/portable/org.freedesktop.portable1.policy:13
|
||||||
|
msgid "Inspect a portable service image"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/portable/org.freedesktop.portable1.policy:14
|
||||||
|
msgid "Authentication is required to inspect a portable service image."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/portable/org.freedesktop.portable1.policy:23
|
||||||
|
msgid "Attach or detach a portable service image"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/portable/org.freedesktop.portable1.policy:24
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to attach or detach a portable service image."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/portable/org.freedesktop.portable1.policy:34
|
||||||
|
msgid "Delete or modify portable service image"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/portable/org.freedesktop.portable1.policy:35
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to delete or modify a portable service image."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:22
|
||||||
|
msgid "Register a DNS-SD service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:23
|
||||||
|
msgid "Authentication is required to register a DNS-SD service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:33
|
||||||
|
msgid "Unregister a DNS-SD service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:34
|
||||||
|
msgid "Authentication is required to unregister a DNS-SD service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:132
|
||||||
|
msgid "Revert name resolution settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/resolve/org.freedesktop.resolve1.policy:133
|
||||||
|
msgid "Authentication is required to reset name resolution settings."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/timedate/org.freedesktop.timedate1.policy:22
|
||||||
|
msgid "Set system time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/timedate/org.freedesktop.timedate1.policy:23
|
||||||
|
msgid "Authentication is required to set the system time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/timedate/org.freedesktop.timedate1.policy:33
|
||||||
|
msgid "Set system timezone"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/timedate/org.freedesktop.timedate1.policy:34
|
||||||
|
msgid "Authentication is required to set the system timezone."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/timedate/org.freedesktop.timedate1.policy:43
|
||||||
|
msgid "Set RTC to local timezone or UTC"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/timedate/org.freedesktop.timedate1.policy:44
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to control whether the RTC stores the local or "
|
||||||
|
"UTC time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/timedate/org.freedesktop.timedate1.policy:53
|
||||||
|
msgid "Turn network time synchronization on or off"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/timedate/org.freedesktop.timedate1.policy:54
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to control whether network time synchronization "
|
||||||
|
"shall be enabled."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/dbus-unit.c:359
|
||||||
|
msgid "Authentication is required to start '$(unit)'."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/dbus-unit.c:360
|
||||||
|
msgid "Authentication is required to stop '$(unit)'."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/dbus-unit.c:361
|
||||||
|
msgid "Authentication is required to reload '$(unit)'."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/dbus-unit.c:362 src/core/dbus-unit.c:363
|
||||||
|
msgid "Authentication is required to restart '$(unit)'."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/dbus-unit.c:535
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to send a UNIX signal to the processes of "
|
||||||
|
"'$(unit)'."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/dbus-unit.c:566
|
||||||
|
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/dbus-unit.c:599
|
||||||
|
msgid "Authentication is required to set properties on '$(unit)'."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/dbus-unit.c:708
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to delete files and directories associated with "
|
||||||
|
"'$(unit)'."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/core/dbus-unit.c:757
|
||||||
|
msgid ""
|
||||||
|
"Authentication is required to freeze or thaw the processes of '$(unit)' unit."
|
||||||
|
msgstr ""
|
||||||
@ -202,7 +202,7 @@ foreach item : in_files
|
|||||||
output: file,
|
output: file,
|
||||||
command : [meson_render_jinja2, config_h, '@INPUT@'],
|
command : [meson_render_jinja2, config_h, '@INPUT@'],
|
||||||
capture : true,
|
capture : true,
|
||||||
install : dir != 'no',
|
install : (dir == pkgsysconfdir and install_sysconfdir_samples) or (dir != pkgsysconfdir and dir != 'no'),
|
||||||
install_dir : dir)
|
install_dir : dir)
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
|
|||||||
@ -66,7 +66,7 @@ _public_ int cryptsetup_token_open_pin(
|
|||||||
* (alternatively: name is set to null, flags contains CRYPT_ACTIVATE_ALLOW_UNBOUND_KEY
|
* (alternatively: name is set to null, flags contains CRYPT_ACTIVATE_ALLOW_UNBOUND_KEY
|
||||||
* and token is assigned to at least single keyslot).
|
* and token is assigned to at least single keyslot).
|
||||||
*
|
*
|
||||||
* - if plugin defines validate funtion (see cryptsetup_token_validate below) it must have
|
* - if plugin defines validate function (see cryptsetup_token_validate below) it must have
|
||||||
* passed the check (aka return 0)
|
* passed the check (aka return 0)
|
||||||
*/
|
*/
|
||||||
_public_ int cryptsetup_token_open(
|
_public_ int cryptsetup_token_open(
|
||||||
|
|||||||
@ -54,7 +54,7 @@ _public_ int cryptsetup_token_open_pin(
|
|||||||
* (alternatively: name is set to null, flags contains CRYPT_ACTIVATE_ALLOW_UNBOUND_KEY
|
* (alternatively: name is set to null, flags contains CRYPT_ACTIVATE_ALLOW_UNBOUND_KEY
|
||||||
* and token is assigned to at least single keyslot).
|
* and token is assigned to at least single keyslot).
|
||||||
*
|
*
|
||||||
* - if plugin defines validate funtion (see cryptsetup_token_validate below) it must have
|
* - if plugin defines validate function (see cryptsetup_token_validate below) it must have
|
||||||
* passed the check (aka return 0)
|
* passed the check (aka return 0)
|
||||||
*/
|
*/
|
||||||
_public_ int cryptsetup_token_open(
|
_public_ int cryptsetup_token_open(
|
||||||
|
|||||||
@ -67,7 +67,7 @@ pam_systemd_c = files('pam_systemd.c')
|
|||||||
|
|
||||||
enable_logind = conf.get('ENABLE_LOGIND') == 1
|
enable_logind = conf.get('ENABLE_LOGIND') == 1
|
||||||
in_files = [
|
in_files = [
|
||||||
['logind.conf', pkgsysconfdir, enable_logind],
|
['logind.conf', pkgsysconfdir, enable_logind and install_sysconfdir_samples],
|
||||||
['70-uaccess.rules', udevrulesdir, enable_logind and conf.get('HAVE_ACL') == 1],
|
['70-uaccess.rules', udevrulesdir, enable_logind and conf.get('HAVE_ACL') == 1],
|
||||||
['71-seat.rules', udevrulesdir, enable_logind],
|
['71-seat.rules', udevrulesdir, enable_logind],
|
||||||
['73-seat-late.rules', udevrulesdir, enable_logind],
|
['73-seat-late.rules', udevrulesdir, enable_logind],
|
||||||
|
|||||||
@ -793,12 +793,7 @@ static bool nexthop_is_ready_to_configure(Link *link, const NextHop *nexthop) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nexthop->onlink <= 0 &&
|
return gateway_is_ready(link, nexthop->onlink, nexthop->family, &nexthop->gw);
|
||||||
in_addr_is_set(nexthop->family, &nexthop->gw) &&
|
|
||||||
!manager_address_is_reachable(link->manager, nexthop->family, &nexthop->gw))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int request_process_nexthop(Request *req) {
|
int request_process_nexthop(Request *req) {
|
||||||
|
|||||||
@ -750,6 +750,8 @@ static bool prefix_route_address_is_reachable(const Address *a, int family, cons
|
|||||||
|
|
||||||
if (a->family != family)
|
if (a->family != family)
|
||||||
return false;
|
return false;
|
||||||
|
if (!address_is_ready(a))
|
||||||
|
return false;
|
||||||
if (FLAGS_SET(a->flags, IFA_F_NOPREFIXROUTE))
|
if (FLAGS_SET(a->flags, IFA_F_NOPREFIXROUTE))
|
||||||
return false;
|
return false;
|
||||||
if (in_addr_is_set(a->family, &a->in_addr_peer))
|
if (in_addr_is_set(a->family, &a->in_addr_peer))
|
||||||
@ -763,15 +765,14 @@ static bool prefix_route_address_is_reachable(const Address *a, int family, cons
|
|||||||
FAMILY_ADDRESS_SIZE(family) * 8) > 0;
|
FAMILY_ADDRESS_SIZE(family) * 8) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool manager_address_is_reachable(Manager *manager, int family, const union in_addr_union *address) {
|
static bool link_address_is_reachable(Link *link, int family, const union in_addr_union *address) {
|
||||||
Link *link;
|
Route *route;
|
||||||
|
|
||||||
assert(manager);
|
assert(link);
|
||||||
|
assert(link->manager);
|
||||||
assert(IN_SET(family, AF_INET, AF_INET6));
|
assert(IN_SET(family, AF_INET, AF_INET6));
|
||||||
assert(address);
|
assert(address);
|
||||||
|
|
||||||
HASHMAP_FOREACH(link, manager->links_by_index) {
|
|
||||||
Route *route;
|
|
||||||
|
|
||||||
SET_FOREACH(route, link->routes)
|
SET_FOREACH(route, link->routes)
|
||||||
if (route_address_is_reachable(route, family, address))
|
if (route_address_is_reachable(route, family, address))
|
||||||
@ -779,12 +780,10 @@ bool manager_address_is_reachable(Manager *manager, int family, const union in_a
|
|||||||
SET_FOREACH(route, link->routes_foreign)
|
SET_FOREACH(route, link->routes_foreign)
|
||||||
if (route_address_is_reachable(route, family, address))
|
if (route_address_is_reachable(route, family, address))
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
|
|
||||||
/* If we do not manage foreign routes, then there may exist a prefix route we do not know,
|
/* If we do not manage foreign routes, then there may exist a prefix route we do not know,
|
||||||
* which was created on configuring an address. Hence, also check the addresses. */
|
* which was created on configuring an address. Hence, also check the addresses. */
|
||||||
if (!manager->manage_foreign_routes)
|
if (!link->manager->manage_foreign_routes) {
|
||||||
HASHMAP_FOREACH(link, manager->links_by_index) {
|
|
||||||
Address *a;
|
Address *a;
|
||||||
|
|
||||||
SET_FOREACH(a, link->addresses)
|
SET_FOREACH(a, link->addresses)
|
||||||
@ -1689,6 +1688,22 @@ int link_request_static_routes(Link *link, bool only_ipv4) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool gateway_is_ready(Link *link, int onlink, int family, const union in_addr_union *gw) {
|
||||||
|
assert(link);
|
||||||
|
assert(gw);
|
||||||
|
|
||||||
|
if (onlink > 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (!in_addr_is_set(family, gw))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (family == AF_INET6 && in6_addr_is_link_local(&gw->in6))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return link_address_is_reachable(link, family, gw);
|
||||||
|
}
|
||||||
|
|
||||||
static int route_is_ready_to_configure(const Route *route, Link *link) {
|
static int route_is_ready_to_configure(const Route *route, Link *link) {
|
||||||
MultipathRoute *m;
|
MultipathRoute *m;
|
||||||
NextHop *nh = NULL;
|
NextHop *nh = NULL;
|
||||||
@ -1732,19 +1747,13 @@ static int route_is_ready_to_configure(const Route *route, Link *link) {
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (route->gateway_onlink <= 0 &&
|
if (!gateway_is_ready(link, route->gateway_onlink, route->gw_family, &route->gw))
|
||||||
in_addr_is_set(route->gw_family, &route->gw) > 0 &&
|
|
||||||
!manager_address_is_reachable(link->manager, route->gw_family, &route->gw))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
ORDERED_SET_FOREACH(m, route->multipath_routes) {
|
ORDERED_SET_FOREACH(m, route->multipath_routes) {
|
||||||
union in_addr_union a = m->gateway.address;
|
union in_addr_union a = m->gateway.address;
|
||||||
Link *l = NULL;
|
Link *l = NULL;
|
||||||
|
|
||||||
if (route->gateway_onlink <= 0 &&
|
|
||||||
!manager_address_is_reachable(link->manager, m->gateway.family, &a))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (m->ifname) {
|
if (m->ifname) {
|
||||||
if (link_get_by_name(link->manager, m->ifname, &l) < 0)
|
if (link_get_by_name(link->manager, m->ifname, &l) < 0)
|
||||||
return false;
|
return false;
|
||||||
@ -1756,6 +1765,9 @@ static int route_is_ready_to_configure(const Route *route, Link *link) {
|
|||||||
}
|
}
|
||||||
if (l && !link_is_ready_to_configure(l, true))
|
if (l && !link_is_ready_to_configure(l, true))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (!gateway_is_ready(l ?: link, route->gateway_onlink, m->gateway.family, &a))
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@ -78,8 +78,8 @@ int route_configure_handler_internal(sd_netlink *rtnl, sd_netlink_message *m, Li
|
|||||||
int route_remove(const Route *route, Manager *manager, Link *link);
|
int route_remove(const Route *route, Manager *manager, Link *link);
|
||||||
|
|
||||||
int link_has_route(Link *link, const Route *route);
|
int link_has_route(Link *link, const Route *route);
|
||||||
bool manager_address_is_reachable(Manager *manager, int family, const union in_addr_union *address);
|
|
||||||
int manager_find_uplink(Manager *m, int family, Link *exclude, Link **ret);
|
int manager_find_uplink(Manager *m, int family, Link *exclude, Link **ret);
|
||||||
|
bool gateway_is_ready(Link *link, int onlink, int family, const union in_addr_union *gw);
|
||||||
|
|
||||||
int link_drop_routes(Link *link);
|
int link_drop_routes(Link *link);
|
||||||
int link_drop_foreign_routes(Link *link);
|
int link_drop_foreign_routes(Link *link);
|
||||||
|
|||||||
@ -38,6 +38,10 @@ Id=7
|
|||||||
Family=ipv6
|
Family=ipv6
|
||||||
Blackhole=yes
|
Blackhole=yes
|
||||||
|
|
||||||
|
[NextHop]
|
||||||
|
Id=8
|
||||||
|
Gateway=fe80::222:4dff:ff:ff:ff:ff
|
||||||
|
|
||||||
[NextHop]
|
[NextHop]
|
||||||
Gateway=192.168.5.2
|
Gateway=192.168.5.2
|
||||||
|
|
||||||
|
|||||||
@ -17,6 +17,10 @@ Destination=2001:1234:5:9fff:ff:ff:ff:ff/128
|
|||||||
[Route]
|
[Route]
|
||||||
Gateway=2001:1234:5:8fff:ff:ff:ff:ff
|
Gateway=2001:1234:5:8fff:ff:ff:ff:ff
|
||||||
|
|
||||||
|
[Route]
|
||||||
|
Destination=2001:1234:5:afff:ff:ff:ff:ff/128
|
||||||
|
Gateway=fe80::222:4dff:ff:ff:ff:ff
|
||||||
|
|
||||||
[Route]
|
[Route]
|
||||||
Destination=149.10.124.64
|
Destination=149.10.124.64
|
||||||
Scope=link
|
Scope=link
|
||||||
|
|||||||
@ -2337,6 +2337,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
|
|||||||
print(output)
|
print(output)
|
||||||
self.assertIn('2001:1234:5:8fff:ff:ff:ff:ff proto static', output)
|
self.assertIn('2001:1234:5:8fff:ff:ff:ff:ff proto static', output)
|
||||||
self.assertIn('2001:1234:5:8f63::1 proto kernel', output)
|
self.assertIn('2001:1234:5:8f63::1 proto kernel', output)
|
||||||
|
self.assertIn('2001:1234:5:afff:ff:ff:ff:ff via fe80:0:222:4dff:ff:ff:ff:ff proto static', output)
|
||||||
|
|
||||||
print('### ip -6 route show default')
|
print('### ip -6 route show default')
|
||||||
output = check_output('ip -6 route show default')
|
output = check_output('ip -6 route show default')
|
||||||
@ -2985,6 +2986,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
|
|||||||
self.assertIn('id 3 dev veth99', output)
|
self.assertIn('id 3 dev veth99', output)
|
||||||
self.assertIn('id 4 dev veth99', output)
|
self.assertIn('id 4 dev veth99', output)
|
||||||
self.assertRegex(output, 'id 5 via 192.168.10.1 dev veth99 .*onlink')
|
self.assertRegex(output, 'id 5 via 192.168.10.1 dev veth99 .*onlink')
|
||||||
|
self.assertIn('id 8 via fe80:0:222:4dff:ff:ff:ff:ff dev veth99', output)
|
||||||
self.assertRegex(output, r'id [0-9]* via 192.168.5.2 dev veth99')
|
self.assertRegex(output, r'id [0-9]* via 192.168.5.2 dev veth99')
|
||||||
|
|
||||||
output = check_output('ip nexthop list dev dummy98')
|
output = check_output('ip nexthop list dev dummy98')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user