forked from pool/systemd
Marcus Meissner
28dd57258d
- Update to release 204: + systemd-nspawn creates etc/resolv.conf in container if needed. + systemd-nspawn will store metadata about container in container cgroup including its root directory. + cgroup hierarchy has been reworked, all objects are now suffxed (with .session for user sessions, .user for users, .nspawn for containers). All cgroup names are now escaped to preven collision of object names. + systemctl list-dependencies gained --plain, --reverse, --after and --before switches. + systemd-inhibit shows processes name taking inhibitor lock. + nss-myhostname will now resolve "localhost" implicitly. + .include is not allowed recursively anymore and only in unit files. Drop-in files should be favored in most cases. + systemd-analyze gained "critical-chain" command, to get slowest chain of units run during boot-up. + systemd-nspawn@.service has been added to easily run nspawn container for system services. Just start "systemd-nspawn@foobar.service" and container from /var/lib/container/foobar" will be booted. + systemd-cgls has new --machine parameter to list processes from one container. + ConditionSecurity= can now check for apparmor and SMACK. + /etc/systemd/sleep.conf has been introduced to configure which kernel operation will be execute when "suspend", "hibernate" or "hybrid-sleep" is requrested. It allow new kernel "freeze" state to be used too. (This setting won't have any effect if pm-utils is installed). + ENV{SYSTEMD_WANTS} in udev rules will now implicitly escape passed argument if applicable. OBS-URL: https://build.opensuse.org/request/show/176957 OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=388
107 lines
3.6 KiB
Diff
107 lines
3.6 KiB
Diff
From: Ludwig Nussel <ludwig.nussel@suse.de>
|
|
Date: Fri, 20 May 2011 15:38:46 +0200
|
|
Subject: optionally warn if nss-myhostname is called
|
|
|
|
---
|
|
configure.ac | 11 +++++++++++
|
|
src/nss-myhostname/nss-myhostname.c | 32 ++++++++++++++++++++++++++++++++
|
|
2 files changed, 43 insertions(+)
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
|
index e1278e8..06eb98d 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -725,6 +725,17 @@ if test "x$enable_myhostname" != "xno"; then
|
|
fi
|
|
AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"])
|
|
|
|
+if test "x$have_myhostname" != "xno"; then
|
|
+ AC_MSG_CHECKING([log warning messages for nss-myhostname])
|
|
+ AC_ARG_WITH(nss-my-hostname-warning, AS_HELP_STRING([--with-nss-my-hostname-warning], [log warning to syslog when nss-myhostname is called (default=no)]),[],[with_nss_my_hostname_warning=no])
|
|
+ AC_MSG_RESULT([$with_nss_my_hostname_warning])
|
|
+
|
|
+ if test x$with_nss_my_hostname_warning != xno; then
|
|
+ AC_CHECK_HEADERS([syslog.h])
|
|
+ AC_DEFINE([LOG_NSS_MY_HOSTNAME_WARNING],[1],[whether to log warning message for nss-myhostname])
|
|
+ fi
|
|
+fi
|
|
+
|
|
# ------------------------------------------------------------------------------
|
|
AC_ARG_WITH(firmware-path,
|
|
AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]],
|
|
diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c
|
|
index e97d4e5..a2a6de8 100644
|
|
--- a/src/nss-myhostname/nss-myhostname.c
|
|
+++ b/src/nss-myhostname/nss-myhostname.c
|
|
@@ -29,6 +29,9 @@
|
|
#include <net/if.h>
|
|
#include <stdlib.h>
|
|
#include <arpa/inet.h>
|
|
+#ifdef LOG_NSS_MY_HOSTNAME_WARNING
|
|
+#include <syslog.h>
|
|
+#endif
|
|
|
|
#include "ifconf.h"
|
|
#include "macro.h"
|
|
@@ -47,6 +50,10 @@
|
|
#define LOCALADDRESS_IPV6 &in6addr_loopback
|
|
#define LOOPBACK_INTERFACE "lo"
|
|
|
|
+#ifdef LOG_NSS_MY_HOSTNAME_WARNING
|
|
+static void warn(const char* hn);
|
|
+#endif
|
|
+
|
|
enum nss_status _nss_myhostname_gethostbyname4_r(
|
|
const char *name,
|
|
struct gaih_addrtuple **pat,
|
|
@@ -129,6 +136,9 @@ enum nss_status _nss_myhostname_gethostbyname4_r(
|
|
return NSS_STATUS_NOTFOUND;
|
|
}
|
|
|
|
+#ifdef LOG_NSS_MY_HOSTNAME_WARNING
|
|
+ warn(hn);
|
|
+#endif
|
|
/* If this fails, n_addresses is 0. Which is fine */
|
|
ifconf_acquire_addresses(&addresses, &n_addresses);
|
|
|
|
@@ -382,6 +392,9 @@ enum nss_status _nss_myhostname_gethostbyname3_r(
|
|
local_address_ipv4 = LOCALADDRESS_IPV4;
|
|
}
|
|
|
|
+#ifdef LOG_NSS_MY_HOSTNAME_WARNING
|
|
+ warn(hn);
|
|
+#endif
|
|
return fill_in_hostent(
|
|
canonical, additional,
|
|
af,
|
|
@@ -509,6 +522,9 @@ found:
|
|
canonical = hn;
|
|
}
|
|
|
|
+#ifdef LOG_NSS_MY_HOSTNAME_WARNING
|
|
+ warn(hn);
|
|
+#endif
|
|
return fill_in_hostent(
|
|
canonical, additional,
|
|
af,
|
|
@@ -537,3 +553,19 @@ enum nss_status _nss_myhostname_gethostbyaddr_r(
|
|
errnop, h_errnop,
|
|
NULL);
|
|
}
|
|
+
|
|
+#ifdef LOG_NSS_MY_HOSTNAME_WARNING
|
|
+static void warn(const char* hn) {
|
|
+ if (strstr(program_invocation_short_name, "nscd")) {
|
|
+ syslog(LOG_WARNING,
|
|
+ "Some application tried to resolve hostname \"%s\" which is not in DNS. Stop nscd to find out which one.\n",
|
|
+ hn);
|
|
+ } else {
|
|
+ syslog(LOG_WARNING,
|
|
+ "%s(%u) tried to resolve hostname \"%s\" which is not in DNS. This might be the reason for the delays you experience.\n",
|
|
+ program_invocation_short_name,
|
|
+ getpid(),
|
|
+ hn);
|
|
+ }
|
|
+}
|
|
+#endif
|