summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgreg@kroah.com <greg@kroah.com>2004-03-24 21:18:36 -0800
committerGreg KH <gregkh@suse.de>2005-04-26 21:35:11 -0700
commitb528cd49203c64cf117868b5a5907cb11d934bbb (patch)
treee5ecd020b8e4d16adcb5e6f779b1f8b51ba519b7
parenteddf1bca24d49055aa409315fd218561005fba07 (diff)
[PATCH] first cut at standalone udev_selinux program.
Will not work, need to finish working on this on a system with selinux installed...
-rw-r--r--udev_selinux.c43
1 files changed, 41 insertions, 2 deletions
diff --git a/udev_selinux.c b/udev_selinux.c
index 3728fd0b50..723af9a02f 100644
--- a/udev_selinux.c
+++ b/udev_selinux.c
@@ -8,10 +8,23 @@
#include <selinux/selinux.h>
#include "udev.h"
-#include "udev_version.h"
-#include "udev_selinux.h"
+#include "udev_lib.h"
#include "logging.h"
+#ifdef LOG
+unsigned char logname[LOGNAME_SIZE];
+void log_message(int level, const char *format, ...)
+{
+ va_list args;
+
+ if (!udev_log)
+ return;
+
+ va_start(args, format);
+ vsyslog(level, format, args);
+ va_end(args);
+}
+#endif
void selinux_add_node(char *filename)
{
@@ -32,3 +45,29 @@ void selinux_add_node(char *filename)
}
}
+int main(int argc, char *argv[], char *envp[])
+{
+ char *action;
+ char *devpath;
+ char *devnode;
+ int retval = 0;
+
+ init_logging("udev_selinux");
+
+ action = get_action();
+ if (!action) {
+ dbg("no action?");
+ goto exit;
+ }
+ devnode = get_devnode();
+ if (!devnode) {
+ dbg("no devnode?");
+ goto exit;
+ }
+
+ if (strcmp(action, "add") == 0)
+ selinux_add_node(devnode);
+
+exit:
+ return retval;
+}