summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--etc/udev/udev.conf.in3
-rw-r--r--logging.h6
-rw-r--r--udev.h3
-rw-r--r--udev_config.c5
5 files changed, 18 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 97c6ca63bd..ebcb2815c8 100644
--- a/Makefile
+++ b/Makefile
@@ -239,6 +239,7 @@ udev_version.h:
@echo \#define UDEV_CONFIG_FILE \"$(configdir)\udev.conf\" >> $@
@echo \#define UDEV_RULES_FILE \"$(configdir)\udev.rules\" >> $@
@echo \#define UDEV_PERMISSION_FILE \"$(configdir)\udev.permissions\" >> $@
+ @echo \#define UDEV_LOG_DEFAULT \"yes\" >> $@
@echo \#define UDEV_BIN \"$(DESTDIR)$(sbindir)/udev\" >> $@
@echo \#define UDEVD_BIN \"$(DESTDIR)$(sbindir)/udevd\" >> $@
diff --git a/etc/udev/udev.conf.in b/etc/udev/udev.conf.in
index f9a60ab3c8..3e73bedbf5 100644
--- a/etc/udev/udev.conf.in
+++ b/etc/udev/udev.conf.in
@@ -29,3 +29,6 @@ default_owner="root"
# explicit match in the permissions file
default_group="root"
+# udev_log - set to "yes" if you want logging, else "no"
+udev_log="yes"
+
diff --git a/logging.h b/logging.h
index 485209adf3..5ae228b139 100644
--- a/logging.h
+++ b/logging.h
@@ -34,6 +34,9 @@
#include <unistd.h>
#include <syslog.h>
+#include "udev.h"
+#include "udev_version.h"
+
#undef info
#define info(format, arg...) \
do { \
@@ -63,6 +66,9 @@ static inline void log_message (int level, const char *format, ...)
{
va_list args;
+ if (0 != strncmp(udev_log_str, UDEV_LOG_DEFAULT, BOOL_SIZE))
+ return;
+
va_start(args, format);
vsyslog(level, format, args);
va_end(args);
diff --git a/udev.h b/udev.h
index f854a183d3..8b3f305d34 100644
--- a/udev.h
+++ b/udev.h
@@ -32,6 +32,8 @@
#define OWNER_SIZE 30
#define GROUP_SIZE 30
#define MODE_SIZE 8
+#define BOOL_SIZE 5 /* 'yes', 'no' and possibly 'true' or 'false'
+ in future */
struct udevice {
char name[NAME_SIZE];
@@ -72,5 +74,6 @@ extern char udev_rules_filename[PATH_MAX+NAME_MAX];
extern char default_mode_str[MODE_SIZE];
extern char default_owner_str[OWNER_SIZE];
extern char default_group_str[GROUP_SIZE];
+extern char udev_log_str[BOOL_SIZE];
#endif
diff --git a/udev_config.c b/udev_config.c
index 6d39d294e1..ec38272bc5 100644
--- a/udev_config.c
+++ b/udev_config.c
@@ -48,6 +48,7 @@ char udev_config_filename[PATH_MAX+NAME_MAX];
char default_mode_str[MODE_SIZE];
char default_owner_str[OWNER_SIZE];
char default_group_str[GROUP_SIZE];
+char udev_log_str[BOOL_SIZE];
static void init_variables(void)
@@ -60,6 +61,7 @@ static void init_variables(void)
strfieldcpy(udev_config_filename, UDEV_CONFIG_FILE);
strfieldcpy(udev_rules_filename, UDEV_RULES_FILE);
strfieldcpy(udev_permissions_filename, UDEV_PERMISSION_FILE);
+ strfieldcpy(udev_log_str, UDEV_LOG_DEFAULT);
}
#define set_var(_name, _var) \
@@ -156,6 +158,7 @@ static int parse_config_file(void)
set_var("default_mode", default_mode_str);
set_var("default_owner", default_owner_str);
set_var("default_group", default_group_str);
+ set_var("udev_log", udev_log_str);
}
dbg_parse("%s:%d:%Zd: error parsing '%s'", udev_config_filename,
lineno, temp - line, temp);
@@ -191,6 +194,7 @@ static void get_dirs(void)
dbg_parse("udev_db_filename = %s", udev_db_filename);
dbg_parse("udev_rules_filename = %s", udev_rules_filename);
dbg_parse("udev_permissions_filename = %s", udev_permissions_filename);
+ dbg_parse("udev_log_str = %s", udev_log_str);
parse_config_file();
dbg_parse("udev_root = %s", udev_root);
@@ -198,6 +202,7 @@ static void get_dirs(void)
dbg_parse("udev_db_filename = %s", udev_db_filename);
dbg_parse("udev_rules_filename = %s", udev_rules_filename);
dbg_parse("udev_permissions_filename = %s", udev_permissions_filename);
+ dbg_parse("udev_log_str = %s", udev_log_str);
}
void udev_init_config(void)