Compare commits

..

No commits in common. "3b355677b8cce5217a1a7ed532fbe0e7d0d822d8" and "df46dbca92f7197cd3c6c8ae6e67560683b6dc0d" have entirely different histories.

25 changed files with 220 additions and 269 deletions

View File

@ -122,8 +122,8 @@
<term><varname>Type=</varname></term> <term><varname>Type=</varname></term>
<listitem> <listitem>
<para>A whitespace-separated list of shell-style globs matching the device type, as exposed by <para>A whitespace-separated list of shell-style globs matching the device type, as exposed by
<command>networkctl status</command>. If the list is prefixed with a "!", the test is inverted. the udev property <literal>DEVTYPE</literal>. If the list is prefixed with a "!", the test is
</para> inverted.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -2519,7 +2519,7 @@
<varlistentry> <varlistentry>
<term><varname>PacketLimit=</varname></term> <term><varname>PacketLimit=</varname></term>
<listitem> <listitem>
<para>Specifies the hard limit on the queue size in number of packets. When this limit is reached, incoming packets are <para>Specifies the hard lmit on the queue size in number of packets. When this limit is reached, incoming packets are
dropped. An unsigned integer ranges 0 to 4294967294. Defaults to unset and kernel's default is used.</para> dropped. An unsigned integer ranges 0 to 4294967294. Defaults to unset and kernel's default is used.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: systemd master\n" "Project-Id-Version: systemd master\n"
"Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n" "Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n"
"POT-Creation-Date: 2020-02-29 15:12+0000\n" "POT-Creation-Date: 2020-01-30 15:31+0000\n"
"PO-Revision-Date: 2020-03-01 13:58+0100\n" "PO-Revision-Date: 2020-02-03 16:18+0100\n"
"Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n" "Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n"
"Language-Team: Czech\n" "Language-Team: Czech\n"
"Language: cs\n" "Language: cs\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n" "|| n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.3\n" "X-Generator: Poedit 2.2.4\n"
#: src/core/org.freedesktop.systemd1.policy.in:22 #: src/core/org.freedesktop.systemd1.policy.in:22
msgid "Send passphrase back to system" msgid "Send passphrase back to system"
@ -115,8 +115,7 @@ msgid "Change password of a home area"
msgstr "Změnit heslo domovského adresáře" msgstr "Změnit heslo domovského adresáře"
#: src/home/org.freedesktop.home1.policy:64 #: src/home/org.freedesktop.home1.policy:64
msgid "" msgid "Authentication is required to change the password of a user's home area."
"Authentication is required to change the password of a user's home area."
msgstr "Pro změnu hesla domovského adresáře uživatele je vyžadováno ověření." msgstr "Pro změnu hesla domovského adresáře uživatele je vyžadováno ověření."
#: src/hostname/org.freedesktop.hostname1.policy:20 #: src/hostname/org.freedesktop.hostname1.policy:20
@ -324,10 +323,11 @@ msgid "Flush device to seat attachments"
msgstr "Odstranit přiřazení zařízení ke stanovištím" msgstr "Odstranit přiřazení zařízení ke stanovištím"
#: src/login/org.freedesktop.login1.policy:149 #: src/login/org.freedesktop.login1.policy:149
msgid "Authentication is required to reset how devices are attached to seats." msgid ""
"Authentication is required to reset how devices are attached to seats."
msgstr "" msgstr ""
"Pro resetování způsobu jak jsou zařízení přiřazována ke stanovištím je " "Pro reset způsobu jak jsou zařízení přiřazována ke stanovištím je vyžadováno "
"vyžadováno ověření." "ověření."
#: src/login/org.freedesktop.login1.policy:158 #: src/login/org.freedesktop.login1.policy:158
msgid "Power off the system" msgid "Power off the system"
@ -355,8 +355,8 @@ msgstr "Vypnout systém, i když aplikace požádala o zákaz vypnutí"
#: src/login/org.freedesktop.login1.policy:181 #: src/login/org.freedesktop.login1.policy:181
msgid "" msgid ""
"Authentication is required to power off the system while an application is " "Authentication is required to power off the system while an application "
"inhibiting this." "is inhibiting this."
msgstr "" msgstr ""
"Pro vypnutí systému, když aplikace požádala o zákaz vypnutí je vyžadováno " "Pro vypnutí systému, když aplikace požádala o zákaz vypnutí je vyžadováno "
"ověření." "ověření."
@ -375,8 +375,8 @@ msgstr "Restartovat systém, i když jsou přihlášeni další uživatelé"
#: src/login/org.freedesktop.login1.policy:203 #: src/login/org.freedesktop.login1.policy:203
msgid "" msgid ""
"Authentication is required to reboot the system while other users are logged " "Authentication is required to reboot the system while other users are "
"in." "logged in."
msgstr "" msgstr ""
"Pro restartování systému, když jsou přihlášeni další uživatelé je vyžadováno " "Pro restartování systému, když jsou přihlášeni další uživatelé je vyžadováno "
"ověření." "ověření."
@ -387,8 +387,8 @@ msgstr "Restartovat systém, i když aplikace požádala o zákaz restartu"
#: src/login/org.freedesktop.login1.policy:214 #: src/login/org.freedesktop.login1.policy:214
msgid "" msgid ""
"Authentication is required to reboot the system while an application is " "Authentication is required to reboot the system while an application "
"inhibiting this." "is inhibiting this."
msgstr "" msgstr ""
"Pro restartování systému, když aplikace požádala o zákaz restartu je " "Pro restartování systému, když aplikace požádala o zákaz restartu je "
"vyžadováno ověření." "vyžadováno ověření."
@ -407,8 +407,8 @@ msgstr "Zastavit systém, i když jsou přihlášeni další uživatelé"
#: src/login/org.freedesktop.login1.policy:236 #: src/login/org.freedesktop.login1.policy:236
msgid "" msgid ""
"Authentication is required to halt the system while other users are logged " "Authentication is required to halt the system while other users are "
"in." "logged in."
msgstr "" msgstr ""
"Pro zastavení systému, když jsou přihlášeni další uživatelé je vyžadováno " "Pro zastavení systému, když jsou přihlášeni další uživatelé je vyžadováno "
"ověření." "ověření."
@ -419,8 +419,8 @@ msgstr "Zastavit systém, i když aplikace požádala o zákaz zastavení"
#: src/login/org.freedesktop.login1.policy:247 #: src/login/org.freedesktop.login1.policy:247
msgid "" msgid ""
"Authentication is required to halt the system while an application is " "Authentication is required to halt the system while an application asked "
"inhibiting this." "to inhibit it."
msgstr "" msgstr ""
"Pro zastavení systému, když aplikace požádala o zákaz zastavení je " "Pro zastavení systému, když aplikace požádala o zákaz zastavení je "
"vyžadováno ověření." "vyžadováno ověření."
@ -451,8 +451,8 @@ msgstr "Uspat systém, i když aplikace požádala o zákaz uspání"
#: src/login/org.freedesktop.login1.policy:279 #: src/login/org.freedesktop.login1.policy:279
msgid "" msgid ""
"Authentication is required to suspend the system while an application is " "Authentication is required to suspend the system while an application "
"inhibiting this." "is inhibiting this."
msgstr "" msgstr ""
"Pro uspání systému, když aplikace požádala o zákaz uspání je vyžadováno " "Pro uspání systému, když aplikace požádala o zákaz uspání je vyžadováno "
"ověření." "ověření."
@ -483,8 +483,8 @@ msgstr "Hibernovat systém, i když aplikace požádala o zákaz hibernace"
#: src/login/org.freedesktop.login1.policy:311 #: src/login/org.freedesktop.login1.policy:311
msgid "" msgid ""
"Authentication is required to hibernate the system while an application is " "Authentication is required to hibernate the system while an application "
"inhibiting this." "is inhibiting this."
msgstr "" msgstr ""
"Pro hibernaci systému, když aplikace požádala o zákaz hibernace je " "Pro hibernaci systému, když aplikace požádala o zákaz hibernace je "
"vyžadováno ověření." "vyžadováno ověření."
@ -494,7 +494,8 @@ msgid "Manage active sessions, users and seats"
msgstr "Spravovat aktivní sezení, uživatele a stanoviště" msgstr "Spravovat aktivní sezení, uživatele a stanoviště"
#: src/login/org.freedesktop.login1.policy:322 #: src/login/org.freedesktop.login1.policy:322
msgid "Authentication is required to manage active sessions, users and seats." msgid ""
"Authentication is required to manage active sessions, users and seats."
msgstr "" msgstr ""
"Pro správu aktivních sezení, uživatelů a stanovišť je vyžadováno ověření." "Pro správu aktivních sezení, uživatelů a stanovišť je vyžadováno ověření."
@ -853,40 +854,43 @@ msgid ""
"shall be enabled." "shall be enabled."
msgstr "Pro kontrolu synchronizace času ze sítě je vyžadováno ověření." msgstr "Pro kontrolu synchronizace času ze sítě je vyžadováno ověření."
#: src/core/dbus-unit.c:356 #: src/core/dbus-unit.c:355
msgid "Authentication is required to start '$(unit)'." msgid "Authentication is required to start '$(unit)'."
msgstr "Pro spuštění „$(unit)” je vyžadováno ověření." msgstr "Pro spuštění „$(unit)” je vyžadováno ověření."
#: src/core/dbus-unit.c:357 #: src/core/dbus-unit.c:356
msgid "Authentication is required to stop '$(unit)'." msgid "Authentication is required to stop '$(unit)'."
msgstr "Pro vypnutí „$(unit)” je vyžadováno ověření." msgstr "Pro vypnutí „$(unit)” je vyžadováno ověření."
#: src/core/dbus-unit.c:358 #: src/core/dbus-unit.c:357
msgid "Authentication is required to reload '$(unit)'." msgid "Authentication is required to reload '$(unit)'."
msgstr "Pro opětovné načtení „$(unit)” je vyžadováno ověření." msgstr "Pro opětovné načtení „$(unit)” je vyžadováno ověření."
#: src/core/dbus-unit.c:359 src/core/dbus-unit.c:360 #: src/core/dbus-unit.c:358 src/core/dbus-unit.c:359
msgid "Authentication is required to restart '$(unit)'." msgid "Authentication is required to restart '$(unit)'."
msgstr "Pro restart „$(unit)” je vyžadováno ověření." msgstr "Pro restart „$(unit)” je vyžadováno ověření."
#: src/core/dbus-unit.c:532 #: src/core/dbus-unit.c:531
msgid "" msgid ""
"Authentication is required to send a UNIX signal to the processes of " "Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'." "'$(unit)'."
msgstr "Pro odeslání UNIX signálu procesům „$(unit)” je vyžadováno ověření." msgstr "Pro odeslání UNIX signálu procesům „$(unit)” je vyžadováno ověření."
#: src/core/dbus-unit.c:563 #: src/core/dbus-unit.c:562
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'." msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr "Pro resetování chybného stavu „$(unit)” je vyžadováno ověření." msgstr "Pro resetování chybného stavu „$(unit)” je vyžadováno ověření."
#: src/core/dbus-unit.c:596 #: src/core/dbus-unit.c:595
msgid "Authentication is required to set properties on '$(unit)'." msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Pro nastavení vlastností na „$(unit)” je vyžadováno ověření." msgstr "Pro nastavení vlastností na „$(unit)” je vyžadováno ověření."
#: src/core/dbus-unit.c:705 #: src/core/dbus-unit.c:704
msgid "" msgid ""
"Authentication is required to delete files and directories associated with " "Authentication is required to delete files and directories associated with "
"'$(unit)'." "'$(unit)'."
msgstr "" msgstr ""
"Pro odstranění souborů nebo adresářů souvisejících s „$(unit)” je vyžadováno " "Pro odstranění souborů nebo adresářů souvisejících s „$(unit)” je vyžadováno "
"ověření." "ověření."
#~ msgid "Authentication is required to kill '$(unit)'."
#~ msgstr "Pro ukončení „$(unit)” je vyžadováno ověření."

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: systemd\n" "Project-Id-Version: systemd\n"
"Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n" "Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n"
"POT-Creation-Date: 2020-02-29 15:12+0000\n" "POT-Creation-Date: 2020-01-30 15:31+0000\n"
"PO-Revision-Date: 2020-03-01 14:45+0100\n" "PO-Revision-Date: 2020-02-02 13:20+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n" "Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n"
"Language: pl\n" "Language: pl\n"
@ -84,8 +84,7 @@ msgstr "Usunięcie przestrzeni domowej"
#: src/home/org.freedesktop.home1.policy:24 #: src/home/org.freedesktop.home1.policy:24
msgid "Authentication is required to remove a user's home area." msgid "Authentication is required to remove a user's home area."
msgstr "" msgstr "Wymagane jest uwierzytelnienie, aby usunąć przestrzeń domową użytkownika."
"Wymagane jest uwierzytelnienie, aby usunąć przestrzeń domową użytkownika."
#: src/home/org.freedesktop.home1.policy:33 #: src/home/org.freedesktop.home1.policy:33
msgid "Check credentials of a home area" msgid "Check credentials of a home area"
@ -105,8 +104,7 @@ msgstr "Aktualizacja przestrzeni domowej"
#: src/home/org.freedesktop.home1.policy:44 #: src/home/org.freedesktop.home1.policy:44
msgid "Authentication is required to update a user's home area." msgid "Authentication is required to update a user's home area."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby zaktualizować przestrzeń domową " "Wymagane jest uwierzytelnienie, aby zaktualizować przestrzeń domową użytkownika."
"użytkownika."
#: src/home/org.freedesktop.home1.policy:53 #: src/home/org.freedesktop.home1.policy:53
msgid "Resize a home area" msgid "Resize a home area"
@ -123,8 +121,7 @@ msgid "Change password of a home area"
msgstr "Zmiana hasła przestrzeni domowej" msgstr "Zmiana hasła przestrzeni domowej"
#: src/home/org.freedesktop.home1.policy:64 #: src/home/org.freedesktop.home1.policy:64
msgid "" msgid "Authentication is required to change the password of a user's home area."
"Authentication is required to change the password of a user's home area."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby zmienić hasło przestrzeni domowej " "Wymagane jest uwierzytelnienie, aby zmienić hasło przestrzeni domowej "
"użytkownika." "użytkownika."
@ -342,7 +339,8 @@ msgid "Flush device to seat attachments"
msgstr "Usunięcie podłączenia urządzeń do stanowisk" msgstr "Usunięcie podłączenia urządzeń do stanowisk"
#: src/login/org.freedesktop.login1.policy:149 #: src/login/org.freedesktop.login1.policy:149
msgid "Authentication is required to reset how devices are attached to seats." msgid ""
"Authentication is required to reset how devices are attached to seats."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby ponownie ustawić sposób podłączenia " "Wymagane jest uwierzytelnienie, aby ponownie ustawić sposób podłączenia "
"urządzeń do stanowisk." "urządzeń do stanowisk."
@ -373,11 +371,10 @@ msgstr "Wyłączenie systemu, kiedy program je wstrzymuje"
#: src/login/org.freedesktop.login1.policy:181 #: src/login/org.freedesktop.login1.policy:181
msgid "" msgid ""
"Authentication is required to power off the system while an application is " "Authentication is required to power off the system while an application "
"inhibiting this." "is inhibiting this."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby wyłączyć system, kiedy program to " "Wymagane jest uwierzytelnienie, aby wyłączyć system, kiedy program to wstrzymuje."
"wstrzymuje."
#: src/login/org.freedesktop.login1.policy:191 #: src/login/org.freedesktop.login1.policy:191
msgid "Reboot the system" msgid "Reboot the system"
@ -393,8 +390,8 @@ msgstr "Ponowne uruchomienie systemu, kiedy są zalogowani inni użytkownicy"
#: src/login/org.freedesktop.login1.policy:203 #: src/login/org.freedesktop.login1.policy:203
msgid "" msgid ""
"Authentication is required to reboot the system while other users are logged " "Authentication is required to reboot the system while other users are "
"in." "logged in."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby ponownie uruchomić system, kiedy są " "Wymagane jest uwierzytelnienie, aby ponownie uruchomić system, kiedy są "
"zalogowani inni użytkownicy." "zalogowani inni użytkownicy."
@ -405,8 +402,8 @@ msgstr "Ponowne uruchomienie systemu, kiedy program je wstrzymuje"
#: src/login/org.freedesktop.login1.policy:214 #: src/login/org.freedesktop.login1.policy:214
msgid "" msgid ""
"Authentication is required to reboot the system while an application is " "Authentication is required to reboot the system while an application "
"inhibiting this." "is inhibiting this."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby ponownie uruchomić system, kiedy program " "Wymagane jest uwierzytelnienie, aby ponownie uruchomić system, kiedy program "
"to wstrzymuje." "to wstrzymuje."
@ -425,8 +422,8 @@ msgstr "Zatrzymanie systemu, kiedy są zalogowani inni użytkownicy"
#: src/login/org.freedesktop.login1.policy:236 #: src/login/org.freedesktop.login1.policy:236
msgid "" msgid ""
"Authentication is required to halt the system while other users are logged " "Authentication is required to halt the system while other users are "
"in." "logged in."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby zatrzymać system, kiedy są zalogowani " "Wymagane jest uwierzytelnienie, aby zatrzymać system, kiedy są zalogowani "
"inni użytkownicy." "inni użytkownicy."
@ -437,11 +434,11 @@ msgstr "Zatrzymanie systemu, kiedy program je wstrzymuje"
#: src/login/org.freedesktop.login1.policy:247 #: src/login/org.freedesktop.login1.policy:247
msgid "" msgid ""
"Authentication is required to halt the system while an application is " "Authentication is required to halt the system while an application asked "
"inhibiting this." "to inhibit it."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby zatrzymać system, kiedy program to " "Wymagane jest uwierzytelnienie, aby zatrzymać system, kiedy program zażądał "
"wstrzymuje." "jego wstrzymania."
#: src/login/org.freedesktop.login1.policy:257 #: src/login/org.freedesktop.login1.policy:257
msgid "Suspend the system" msgid "Suspend the system"
@ -469,11 +466,10 @@ msgstr "Uśpienie systemu, kiedy program je wstrzymuje"
#: src/login/org.freedesktop.login1.policy:279 #: src/login/org.freedesktop.login1.policy:279
msgid "" msgid ""
"Authentication is required to suspend the system while an application is " "Authentication is required to suspend the system while an application "
"inhibiting this." "is inhibiting this."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby uśpić system, kiedy program to " "Wymagane jest uwierzytelnienie, aby uśpić system, kiedy program to wstrzymuje."
"wstrzymuje."
#: src/login/org.freedesktop.login1.policy:289 #: src/login/org.freedesktop.login1.policy:289
msgid "Hibernate the system" msgid "Hibernate the system"
@ -501,18 +497,19 @@ msgstr "Hibernacja systemu, kiedy program ją wstrzymuje"
#: src/login/org.freedesktop.login1.policy:311 #: src/login/org.freedesktop.login1.policy:311
msgid "" msgid ""
"Authentication is required to hibernate the system while an application is " "Authentication is required to hibernate the system while an application "
"inhibiting this." "is inhibiting this."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby zahibernować system, kiedy program to " "Wymagane jest uwierzytelnienie, aby zahibernować system, kiedy program "
"wstrzymuje." "to wstrzymuje."
#: src/login/org.freedesktop.login1.policy:321 #: src/login/org.freedesktop.login1.policy:321
msgid "Manage active sessions, users and seats" msgid "Manage active sessions, users and seats"
msgstr "Zarządzanie aktywnymi sesjami, użytkownikami i stanowiskami" msgstr "Zarządzanie aktywnymi sesjami, użytkownikami i stanowiskami"
#: src/login/org.freedesktop.login1.policy:322 #: src/login/org.freedesktop.login1.policy:322
msgid "Authentication is required to manage active sessions, users and seats." msgid ""
"Authentication is required to manage active sessions, users and seats."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby zarządzać aktywnymi sesjami, " "Wymagane jest uwierzytelnienie, aby zarządzać aktywnymi sesjami, "
"użytkownikami i stanowiskami." "użytkownikami i stanowiskami."
@ -896,25 +893,25 @@ msgstr ""
"Wymagane jest uwierzytelnienie, aby kontrolować, czy włączyć synchronizację " "Wymagane jest uwierzytelnienie, aby kontrolować, czy włączyć synchronizację "
"czasu przez sieć." "czasu przez sieć."
#: src/core/dbus-unit.c:356 #: src/core/dbus-unit.c:355
msgid "Authentication is required to start '$(unit)'." msgid "Authentication is required to start '$(unit)'."
msgstr "Wymagane jest uwierzytelnienie, aby uruchomić jednostkę „$(unit)”." msgstr "Wymagane jest uwierzytelnienie, aby uruchomić jednostkę „$(unit)”."
#: src/core/dbus-unit.c:357 #: src/core/dbus-unit.c:356
msgid "Authentication is required to stop '$(unit)'." msgid "Authentication is required to stop '$(unit)'."
msgstr "Wymagane jest uwierzytelnienie, aby zatrzymać jednostkę „$(unit)”." msgstr "Wymagane jest uwierzytelnienie, aby zatrzymać jednostkę „$(unit)”."
#: src/core/dbus-unit.c:358 #: src/core/dbus-unit.c:357
msgid "Authentication is required to reload '$(unit)'." msgid "Authentication is required to reload '$(unit)'."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby ponownie wczytać jednostkę „$(unit)”." "Wymagane jest uwierzytelnienie, aby ponownie wczytać jednostkę „$(unit)”."
#: src/core/dbus-unit.c:359 src/core/dbus-unit.c:360 #: src/core/dbus-unit.c:358 src/core/dbus-unit.c:359
msgid "Authentication is required to restart '$(unit)'." msgid "Authentication is required to restart '$(unit)'."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby ponownie uruchomić jednostkę „$(unit)”." "Wymagane jest uwierzytelnienie, aby ponownie uruchomić jednostkę „$(unit)”."
#: src/core/dbus-unit.c:532 #: src/core/dbus-unit.c:531
msgid "" msgid ""
"Authentication is required to send a UNIX signal to the processes of " "Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'." "'$(unit)'."
@ -922,18 +919,18 @@ msgstr ""
"Wymagane jest uwierzytelnienie, aby wysłać sygnał uniksowy do procesów " "Wymagane jest uwierzytelnienie, aby wysłać sygnał uniksowy do procesów "
"jednostki „$(unit)”." "jednostki „$(unit)”."
#: src/core/dbus-unit.c:563 #: src/core/dbus-unit.c:562
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'." msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby przywrócić stan „failed” (niepowodzenia) " "Wymagane jest uwierzytelnienie, aby przywrócić stan „failed” (niepowodzenia) "
"jednostki „$(unit)”." "jednostki „$(unit)”."
#: src/core/dbus-unit.c:596 #: src/core/dbus-unit.c:595
msgid "Authentication is required to set properties on '$(unit)'." msgid "Authentication is required to set properties on '$(unit)'."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby ustawić właściwości jednostki „$(unit)”." "Wymagane jest uwierzytelnienie, aby ustawić właściwości jednostki „$(unit)”."
#: src/core/dbus-unit.c:705 #: src/core/dbus-unit.c:704
msgid "" msgid ""
"Authentication is required to delete files and directories associated with " "Authentication is required to delete files and directories associated with "
"'$(unit)'." "'$(unit)'."

View File

@ -12,7 +12,7 @@
bool suitable_user_name(const char *name) { bool suitable_user_name(const char *name) {
/* Checks whether the specified name is suitable for management via homed. Note that client-side /* Checks whether the specified name is suitable for management via home aread. Note that client-side
* we usually validate with the simple valid_user_group_name(), while server-side we are a bit more * we usually validate with the simple valid_user_group_name(), while server-side we are a bit more
* restrictive, so that we can change the rules server-side without having to update things * restrictive, so that we can change the rules server-side without having to update things
* client-side too. */ * client-side too. */

View File

@ -8,7 +8,6 @@
#include "sd-ndisc.h" #include "sd-ndisc.h"
#include "alloc-util.h" #include "alloc-util.h"
#include "arphrd-list.h"
#include "condition.h" #include "condition.h"
#include "conf-parser.h" #include "conf-parser.h"
#include "device-util.h" #include "device-util.h"
@ -167,27 +166,6 @@ static const char *const wifi_iftype_table[NL80211_IFTYPE_MAX+1] = {
DEFINE_PRIVATE_STRING_TABLE_LOOKUP_TO_STRING(wifi_iftype, enum nl80211_iftype); DEFINE_PRIVATE_STRING_TABLE_LOOKUP_TO_STRING(wifi_iftype, enum nl80211_iftype);
char *link_get_type_string(unsigned short iftype, sd_device *device) {
const char *t, *devtype;
char *p;
if (device &&
sd_device_get_devtype(device, &devtype) >= 0 &&
!isempty(devtype))
return strdup(devtype);
t = arphrd_to_name(iftype);
if (!t)
return NULL;
p = strdup(t);
if (!p)
return NULL;
ascii_strlower(p);
return p;
}
bool net_match_config(Set *match_mac, bool net_match_config(Set *match_mac,
Set *match_permanent_mac, Set *match_permanent_mac,
char * const *match_paths, char * const *match_paths,
@ -198,7 +176,6 @@ bool net_match_config(Set *match_mac,
char * const *match_wifi_iftype, char * const *match_wifi_iftype,
char * const *match_ssid, char * const *match_ssid,
Set *match_bssid, Set *match_bssid,
unsigned short iftype,
sd_device *device, sd_device *device,
const struct ether_addr *dev_mac, const struct ether_addr *dev_mac,
const struct ether_addr *dev_permanent_mac, const struct ether_addr *dev_permanent_mac,
@ -208,14 +185,13 @@ bool net_match_config(Set *match_mac,
const char *ssid, const char *ssid,
const struct ether_addr *bssid) { const struct ether_addr *bssid) {
const char *dev_path = NULL, *dev_driver = NULL, *mac_str; const char *dev_path = NULL, *dev_driver = NULL, *dev_type = NULL, *mac_str;
_cleanup_free_ char *dev_type;
dev_type = link_get_type_string(iftype, device);
if (device) { if (device) {
(void) sd_device_get_property_value(device, "ID_PATH", &dev_path); (void) sd_device_get_property_value(device, "ID_PATH", &dev_path);
(void) sd_device_get_property_value(device, "ID_NET_DRIVER", &dev_driver); (void) sd_device_get_property_value(device, "ID_NET_DRIVER", &dev_driver);
(void) sd_device_get_devtype(device, &dev_type);
if (!dev_name) if (!dev_name)
(void) sd_device_get_sysname(device, &dev_name); (void) sd_device_get_sysname(device, &dev_name);
if (!dev_mac && if (!dev_mac &&

View File

@ -15,7 +15,6 @@
#define LINK_BRIDGE_PORT_PRIORITY_INVALID 128 #define LINK_BRIDGE_PORT_PRIORITY_INVALID 128
#define LINK_BRIDGE_PORT_PRIORITY_MAX 63 #define LINK_BRIDGE_PORT_PRIORITY_MAX 63
char *link_get_type_string(unsigned short iftype, sd_device *device);
bool net_match_config(Set *match_mac, bool net_match_config(Set *match_mac,
Set *match_permanent_mac, Set *match_permanent_mac,
char * const *match_path, char * const *match_path,
@ -26,7 +25,6 @@ bool net_match_config(Set *match_mac,
char * const *match_wifi_iftype, char * const *match_wifi_iftype,
char * const *match_ssid, char * const *match_ssid,
Set *match_bssid, Set *match_bssid,
unsigned short iftype,
sd_device *device, sd_device *device,
const struct ether_addr *dev_mac, const struct ether_addr *dev_mac,
const struct ether_addr *dev_permanent_mac, const struct ether_addr *dev_permanent_mac,

View File

@ -203,29 +203,6 @@ int rtnl_resolve_link_alternative_name(sd_netlink **rtnl, const char *name) {
return ret; return ret;
} }
int rtnl_get_link_iftype(sd_netlink **rtnl, int ifindex, unsigned short *ret) {
_cleanup_(sd_netlink_message_unrefp) sd_netlink_message *message = NULL, *reply = NULL;
int r;
if (!*rtnl) {
r = sd_netlink_open(rtnl);
if (r < 0)
return r;
}
r = sd_rtnl_message_new_link(*rtnl, &message, RTM_GETLINK, ifindex);
if (r < 0)
return r;
r = sd_netlink_call(*rtnl, message, 0, &reply);
if (r == -EINVAL)
return -ENODEV; /* The device does not exist */
if (r < 0)
return r;
return sd_rtnl_message_link_get_type(reply, ret);
}
int rtnl_message_new_synthetic_error(sd_netlink *rtnl, int error, uint32_t serial, sd_netlink_message **ret) { int rtnl_message_new_synthetic_error(sd_netlink *rtnl, int error, uint32_t serial, sd_netlink_message **ret) {
struct nlmsgerr *err; struct nlmsgerr *err;
int r; int r;

View File

@ -52,7 +52,6 @@ int rtnl_set_link_properties(sd_netlink **rtnl, int ifindex, const char *alias,
int rtnl_set_link_alternative_names(sd_netlink **rtnl, int ifindex, char * const *alternative_names); int rtnl_set_link_alternative_names(sd_netlink **rtnl, int ifindex, char * const *alternative_names);
int rtnl_set_link_alternative_names_by_ifname(sd_netlink **rtnl, const char *ifname, char * const *alternative_names); int rtnl_set_link_alternative_names_by_ifname(sd_netlink **rtnl, const char *ifname, char * const *alternative_names);
int rtnl_resolve_link_alternative_name(sd_netlink **rtnl, const char *name); int rtnl_resolve_link_alternative_name(sd_netlink **rtnl, const char *name);
int rtnl_get_link_iftype(sd_netlink **rtnl, int ifindex, unsigned short *ret);
int rtnl_log_parse_error(int r); int rtnl_log_parse_error(int r);
int rtnl_log_create_error(int r); int rtnl_log_create_error(int r);

View File

@ -16,6 +16,7 @@
#include "sd-network.h" #include "sd-network.h"
#include "alloc-util.h" #include "alloc-util.h"
#include "arphrd-list.h"
#include "bus-common-errors.h" #include "bus-common-errors.h"
#include "bus-error.h" #include "bus-error.h"
#include "bus-util.h" #include "bus-util.h"
@ -34,7 +35,6 @@
#include "macro.h" #include "macro.h"
#include "main-func.h" #include "main-func.h"
#include "netlink-util.h" #include "netlink-util.h"
#include "network-internal.h"
#include "pager.h" #include "pager.h"
#include "parse-util.h" #include "parse-util.h"
#include "pretty-print.h" #include "pretty-print.h"
@ -66,6 +66,27 @@ static bool arg_stats = false;
static bool arg_full = false; static bool arg_full = false;
static unsigned arg_lines = 10; static unsigned arg_lines = 10;
static char *link_get_type_string(unsigned short iftype, sd_device *d) {
const char *t, *devtype;
char *p;
if (d &&
sd_device_get_devtype(d, &devtype) >= 0 &&
!isempty(devtype))
return strdup(devtype);
t = arphrd_to_name(iftype);
if (!t)
return NULL;
p = strdup(t);
if (!p)
return NULL;
ascii_strlower(p);
return p;
}
static void operational_state_to_color(const char *name, const char *state, const char **on, const char **off) { static void operational_state_to_color(const char *name, const char *state, const char **on, const char **off) {
assert(on); assert(on);
assert(off); assert(off);

View File

@ -240,6 +240,9 @@ static int link_set_dhcp_routes(Link *link) {
if (!link->network) /* link went down while we configured the IP addresses? */ if (!link->network) /* link went down while we configured the IP addresses? */
return 0; return 0;
if (!link->network->dhcp_use_routes)
return 0;
if (!link_has_carrier(link) && !link->network->configure_without_carrier) if (!link_has_carrier(link) && !link->network->configure_without_carrier)
/* During configuring addresses, the link lost its carrier. As networkd is dropping /* During configuring addresses, the link lost its carrier. As networkd is dropping
* the addresses now, let's not configure the routes either. */ * the addresses now, let's not configure the routes either. */
@ -287,7 +290,6 @@ static int link_set_dhcp_routes(Link *link) {
} }
} }
if (link->network->dhcp_use_routes) {
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
_cleanup_(route_freep) Route *route = NULL; _cleanup_(route_freep) Route *route = NULL;
@ -320,7 +322,6 @@ static int link_set_dhcp_routes(Link *link) {
if (r < 0) if (r < 0)
return log_link_error_errno(link, r, "Could not set route: %m"); return log_link_error_errno(link, r, "Could not set route: %m");
} }
}
r = sd_dhcp_lease_get_router(link->dhcp_lease, &router); r = sd_dhcp_lease_get_router(link->dhcp_lease, &router);
if (IN_SET(r, 0, -ENODATA)) if (IN_SET(r, 0, -ENODATA))

View File

@ -3041,7 +3041,7 @@ static int link_reconfigure_internal(Link *link, sd_netlink_message *m, bool for
strv_free_and_replace(link->alternative_names, s); strv_free_and_replace(link->alternative_names, s);
} }
r = network_get(link->manager, link->iftype, link->sd_device, link->ifname, link->alternative_names, r = network_get(link->manager, link->sd_device, link->ifname, link->alternative_names,
&link->mac, &link->permanent_mac, link->wlan_iftype, link->ssid, &link->bssid, &network); &link->mac, &link->permanent_mac, link->wlan_iftype, link->ssid, &link->bssid, &network);
if (r == -ENOENT) { if (r == -ENOENT) {
link_enter_unmanaged(link); link_enter_unmanaged(link);
@ -3177,7 +3177,7 @@ static int link_initialized_and_synced(Link *link) {
if (r < 0) if (r < 0)
return r; return r;
r = network_get(link->manager, link->iftype, link->sd_device, link->ifname, link->alternative_names, r = network_get(link->manager, link->sd_device, link->ifname, link->alternative_names,
&link->mac, &link->permanent_mac, link->wlan_iftype, link->ssid, &link->bssid, &network); &link->mac, &link->permanent_mac, link->wlan_iftype, link->ssid, &link->bssid, &network);
if (r == -ENOENT) { if (r == -ENOENT) {
link_enter_unmanaged(link); link_enter_unmanaged(link);

View File

@ -730,7 +730,7 @@ int network_get_by_name(Manager *manager, const char *name, Network **ret) {
return 0; return 0;
} }
int network_get(Manager *manager, unsigned short iftype, sd_device *device, int network_get(Manager *manager, sd_device *device,
const char *ifname, char * const *alternative_names, const char *ifname, char * const *alternative_names,
const struct ether_addr *address, const struct ether_addr *permanent_address, const struct ether_addr *address, const struct ether_addr *permanent_address,
enum nl80211_iftype wlan_iftype, const char *ssid, const struct ether_addr *bssid, enum nl80211_iftype wlan_iftype, const char *ssid, const struct ether_addr *bssid,
@ -746,7 +746,7 @@ int network_get(Manager *manager, unsigned short iftype, sd_device *device,
network->match_path, network->match_driver, network->match_path, network->match_driver,
network->match_type, network->match_name, network->match_property, network->match_type, network->match_name, network->match_property,
network->match_wlan_iftype, network->match_ssid, network->match_bssid, network->match_wlan_iftype, network->match_ssid, network->match_bssid,
iftype, device, address, permanent_address, device, address, permanent_address,
ifname, alternative_names, wlan_iftype, ssid, bssid)) { ifname, alternative_names, wlan_iftype, ssid, bssid)) {
if (network->match_name && device) { if (network->match_name && device) {
const char *attr; const char *attr;

View File

@ -303,7 +303,7 @@ int network_load_one(Manager *manager, OrderedHashmap **networks, const char *fi
int network_verify(Network *network); int network_verify(Network *network);
int network_get_by_name(Manager *manager, const char *name, Network **ret); int network_get_by_name(Manager *manager, const char *name, Network **ret);
int network_get(Manager *manager, unsigned short iftype, sd_device *device, const char *ifname, char * const *alternative_names, int network_get(Manager *manager, sd_device *device, const char *ifname, char * const *alternative_names,
const struct ether_addr *mac, const struct ether_addr *permanent_mac, const struct ether_addr *mac, const struct ether_addr *permanent_mac,
enum nl80211_iftype wlan_iftype, const char *ssid, enum nl80211_iftype wlan_iftype, const char *ssid,
const struct ether_addr *bssid, Network **ret); const struct ether_addr *bssid, Network **ret);

View File

@ -126,7 +126,7 @@ static void test_network_get(Manager *manager, sd_device *loopback) {
/* Let's hope that the test machine does not have a .network file that applies to loopback device… /* Let's hope that the test machine does not have a .network file that applies to loopback device…
* But it is still possible, so let's allow that case too. */ * But it is still possible, so let's allow that case too. */
r = network_get(manager, 0, loopback, "lo", NULL, &mac, &mac, 0, NULL, NULL, &network); r = network_get(manager, loopback, "lo", NULL, &mac, &mac, 0, NULL, NULL, &network);
if (r == -ENOENT) if (r == -ENOENT)
/* The expected case */ /* The expected case */
assert_se(!network); assert_se(!network);

View File

@ -195,7 +195,7 @@ enum nss_status _nss_systemd_getgrnam_r(
if (!valid_user_group_name(name)) if (!valid_user_group_name(name))
return NSS_STATUS_NOTFOUND; return NSS_STATUS_NOTFOUND;
/* Synthesize records for root and nobody, in case they are missing from /etc/group */ /* Synthesize records for root and nobody, in case they are missing form /etc/group */
if (getenv_bool_secure("SYSTEMD_NSS_BYPASS_SYNTHETIC") <= 0) { if (getenv_bool_secure("SYSTEMD_NSS_BYPASS_SYNTHETIC") <= 0) {
if (streq(name, root_group.gr_name)) { if (streq(name, root_group.gr_name)) {

View File

@ -290,7 +290,7 @@ enum nss_status userdb_getgrgid(
*errnop = -r; *errnop = -r;
return NSS_STATUS_UNAVAIL; return NSS_STATUS_UNAVAIL;
} }
if (!r) if (r)
return NSS_STATUS_NOTFOUND; return NSS_STATUS_NOTFOUND;
r = groupdb_by_gid(gid, nss_glue_userdb_flags(), &g); r = groupdb_by_gid(gid, nss_glue_userdb_flags(), &g);

View File

@ -19,7 +19,6 @@
#include "io-util.h" #include "io-util.h"
#include "log.h" #include "log.h"
#include "main-func.h" #include "main-func.h"
#include "missing_random.h"
#include "missing_syscall.h" #include "missing_syscall.h"
#include "mkdir.h" #include "mkdir.h"
#include "parse-util.h" #include "parse-util.h"

View File

@ -1180,6 +1180,7 @@ int show_journal(
return log_error_errno(r, "Failed to skip previous: %m"); return log_error_errno(r, "Failed to skip previous: %m");
} }
for (;;) {
for (;;) { for (;;) {
usec_t usec; usec_t usec;
@ -1197,7 +1198,8 @@ int show_journal(
if (not_before > 0) { if (not_before > 0) {
r = sd_journal_get_monotonic_usec(j, &usec, NULL); r = sd_journal_get_monotonic_usec(j, &usec, NULL);
/* -ESTALE is returned if the timestamp is not from this boot */ /* -ESTALE is returned if the
timestamp is not from this boot */
if (r == -ESTALE) if (r == -ESTALE)
continue; continue;
else if (r < 0) else if (r < 0)
@ -1232,10 +1234,10 @@ int show_journal(
if (r > 0 && not_before < cutoff) { if (r > 0 && not_before < cutoff) {
maybe_print_begin_newline(f, &flags); maybe_print_begin_newline(f, &flags);
/* If we logged *something* and no permission error happened, than we can reliably /* If we logged *something* and no permission error happened, than we can
* emit the warning about rotation. If we didn't log anything and access errors * reliably emit the warning about rotation. If we didn't log anything and
* happened, emit hint about permissions. Otherwise, give a generic message, since we * access errors happened, emit hint about permissions. Otherwise, give a
* can't diagnose the issue. */ * generic message, since we can't diagnose the issue. */
bool noaccess = journal_access_blocked(j); bool noaccess = journal_access_blocked(j);
@ -1251,6 +1253,15 @@ int show_journal(
warn_cutoff = false; warn_cutoff = false;
} }
if (!(flags & OUTPUT_FOLLOW))
break;
r = sd_journal_wait(j, USEC_INFINITY);
if (r < 0)
return log_error_errno(r, "Failed to wait for journal: %m");
}
return 0; return 0;
} }

View File

@ -33,14 +33,15 @@ static inline bool OUTPUT_MODE_IS_JSON(OutputMode m) {
typedef enum OutputFlags { typedef enum OutputFlags {
OUTPUT_SHOW_ALL = 1 << 0, OUTPUT_SHOW_ALL = 1 << 0,
OUTPUT_WARN_CUTOFF = 1 << 1, OUTPUT_FOLLOW = 1 << 1,
OUTPUT_FULL_WIDTH = 1 << 2, OUTPUT_WARN_CUTOFF = 1 << 2,
OUTPUT_COLOR = 1 << 3, OUTPUT_FULL_WIDTH = 1 << 3,
OUTPUT_CATALOG = 1 << 4, OUTPUT_COLOR = 1 << 4,
OUTPUT_BEGIN_NEWLINE = 1 << 5, OUTPUT_CATALOG = 1 << 5,
OUTPUT_UTC = 1 << 6, OUTPUT_BEGIN_NEWLINE = 1 << 6,
OUTPUT_KERNEL_THREADS = 1 << 7, OUTPUT_UTC = 1 << 7,
OUTPUT_NO_HOSTNAME = 1 << 8, OUTPUT_KERNEL_THREADS = 1 << 8,
OUTPUT_NO_HOSTNAME = 1 << 9,
} OutputFlags; } OutputFlags;
JsonFormatFlags output_mode_to_json_format_flags(OutputMode m); JsonFormatFlags output_mode_to_json_format_flags(OutputMode m);

View File

@ -236,10 +236,9 @@ bool link_config_should_reload(link_config_ctx *ctx) {
int link_config_get(link_config_ctx *ctx, sd_device *device, link_config **ret) { int link_config_get(link_config_ctx *ctx, sd_device *device, link_config **ret) {
struct ether_addr permanent_mac = {}; struct ether_addr permanent_mac = {};
unsigned short iftype = 0;
link_config *link; link_config *link;
const char *name; const char *name;
int ifindex, r; int r;
assert(ctx); assert(ctx);
assert(device); assert(device);
@ -249,14 +248,6 @@ int link_config_get(link_config_ctx *ctx, sd_device *device, link_config **ret)
if (r < 0) if (r < 0)
return r; return r;
r = sd_device_get_ifindex(device, &ifindex);
if (r < 0)
return r;
r = rtnl_get_link_iftype(&ctx->rtnl, ifindex, &iftype);
if (r < 0)
return r;
r = ethtool_get_permanent_macaddr(&ctx->ethtool_fd, name, &permanent_mac); r = ethtool_get_permanent_macaddr(&ctx->ethtool_fd, name, &permanent_mac);
if (r < 0) if (r < 0)
log_device_debug_errno(device, r, "Failed to get permanent MAC address, ignoring: %m"); log_device_debug_errno(device, r, "Failed to get permanent MAC address, ignoring: %m");
@ -264,7 +255,7 @@ int link_config_get(link_config_ctx *ctx, sd_device *device, link_config **ret)
LIST_FOREACH(links, link, ctx->links) { LIST_FOREACH(links, link, ctx->links) {
if (net_match_config(link->match_mac, link->match_permanent_mac, link->match_path, link->match_driver, if (net_match_config(link->match_mac, link->match_permanent_mac, link->match_path, link->match_driver,
link->match_type, link->match_name, link->match_property, NULL, NULL, NULL, link->match_type, link->match_name, link->match_property, NULL, NULL, NULL,
iftype, device, NULL, &permanent_mac, NULL, NULL, 0, NULL, NULL)) { device, NULL, &permanent_mac, NULL, NULL, 0, NULL, NULL)) {
if (link->match_name && !strv_contains(link->match_name, "*")) { if (link->match_name && !strv_contains(link->match_name, "*")) {
unsigned name_assign_type = NET_NAME_UNKNOWN; unsigned name_assign_type = NET_NAME_UNKNOWN;

View File

@ -1,9 +0,0 @@
[Match]
Name=veth99
[Network]
DHCP=ipv4
IPv6AcceptRA=false
[DHCPv4]
UseRoutes=no

View File

@ -149,7 +149,6 @@ def expectedFailureIfAlternativeNameIsNotAvailable():
def f(func): def f(func):
call('ip link add dummy98 type dummy', stderr=subprocess.DEVNULL) call('ip link add dummy98 type dummy', stderr=subprocess.DEVNULL)
rc = call('ip link prop add dev dummy98 altname hogehogehogehogehoge', stderr=subprocess.DEVNULL) rc = call('ip link prop add dev dummy98 altname hogehogehogehogehoge', stderr=subprocess.DEVNULL)
call('ip link del dummy98', stderr=subprocess.DEVNULL)
if rc == 0: if rc == 0:
return func return func
else: else:
@ -2826,7 +2825,6 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
'dhcp-client-ipv4-dhcp-settings.network', 'dhcp-client-ipv4-dhcp-settings.network',
'dhcp-client-ipv4-only-ipv6-disabled.network', 'dhcp-client-ipv4-only-ipv6-disabled.network',
'dhcp-client-ipv4-only.network', 'dhcp-client-ipv4-only.network',
'dhcp-client-ipv4-use-routes-no.network',
'dhcp-client-ipv6-only.network', 'dhcp-client-ipv6-only.network',
'dhcp-client-ipv6-rapid-commit.network', 'dhcp-client-ipv6-rapid-commit.network',
'dhcp-client-keep-configuration-dhcp-on-stop.network', 'dhcp-client-keep-configuration-dhcp-on-stop.network',
@ -2931,20 +2929,6 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
self.assertRegex(output, r'192.168.5.7 proto dhcp scope link src 192.168.5.181 metric 1024') self.assertRegex(output, r'192.168.5.7 proto dhcp scope link src 192.168.5.181 metric 1024')
self.assertRegex(output, r'192.168.5.8 proto dhcp scope link src 192.168.5.181 metric 1024') self.assertRegex(output, r'192.168.5.8 proto dhcp scope link src 192.168.5.181 metric 1024')
def test_dhcp_client_ipv4_use_routes_no(self):
copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-ipv4-use-routes-no.network')
start_networkd()
self.wait_online(['veth-peer:carrier'])
start_dnsmasq(additional_options='--dhcp-option=option:dns-server,192.168.5.6,192.168.5.7', lease_time='2m')
self.wait_online(['veth99:routable', 'veth-peer:routable'])
output = check_output('ip route show dev veth99')
print(output)
self.assertNotRegex(output, r'192.168.5.5')
self.assertRegex(output, r'default via 192.168.5.1 proto dhcp src 192.168.5.181 metric 1024')
self.assertRegex(output, r'192.168.5.1 proto dhcp scope link src 192.168.5.181 metric 1024')
def test_dhcp_client_ipv4_ipv6(self): def test_dhcp_client_ipv4_ipv6(self):
copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-ipv6-only.network', copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-ipv6-only.network',
'dhcp-client-ipv4-only.network') 'dhcp-client-ipv4-only.network')

View File

@ -24,6 +24,7 @@ LockPersonality=yes
MemoryDenyWriteExecute=yes MemoryDenyWriteExecute=yes
NoNewPrivileges=yes NoNewPrivileges=yes
ProtectHostname=yes ProtectHostname=yes
ProtectKernelLogs=yes
RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6 RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6
RestrictRealtime=yes RestrictRealtime=yes
SystemCallArchitectures=native SystemCallArchitectures=native

View File

@ -14,7 +14,7 @@ Wants=modprobe@tun.service modprobe@loop.service modprobe@dm-mod.service
PartOf=machines.target PartOf=machines.target
Before=machines.target Before=machines.target
After=network.target systemd-resolved.service modprobe@tun.service modprobe@loop.service modprobe@dm-mod.service After=network.target systemd-resolved.service modprobe@tun.service modprobe@loop.service modprobe@dm-mod.service
RequiresMountsFor=/var/lib/machines/%i RequiresMountsFor=/var/lib/machines
[Service] [Service]
# Make sure the DeviceAllow= lines below can properly resolve the 'block-loop' expression (and others) # Make sure the DeviceAllow= lines below can properly resolve the 'block-loop' expression (and others)