chiark / gitweb /
[PATCH] make udevsend binary even smaller
[elogind.git] / udev_dbus.c
index 57685163c537c832616978ed5bd478f8ab3e8c49..da633a31a1abe3718b984220b820f3b9081aa786 100644 (file)
@@ -1,7 +1,18 @@
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+#include <ctype.h>
+
 #define DBUS_API_SUBJECT_TO_CHANGE
 #include <dbus/dbus.h>
 
+#include "udev.h"
+#include "udev_version.h"
 #include "udev_dbus.h"
+#include "logging.h"
 
 
 /** variable for the connection the to system message bus or #NULL
@@ -12,46 +23,46 @@ static DBusConnection* sysbus_connection;
 /** Disconnect from the system message bus */
 void sysbus_disconnect(void)
 {
-        if (sysbus_connection == NULL)
-                return;
+       if (sysbus_connection == NULL)
+               return;
 
-        dbus_connection_disconnect(sysbus_connection);
-        sysbus_connection = NULL;
+       dbus_connection_disconnect(sysbus_connection);
+       sysbus_connection = NULL;
 }
 
 /** Connect to the system message bus */
 void sysbus_connect(void)
 {
-        DBusError error;
-
-        /* Connect to a well-known bus instance, the system bus */
-        dbus_error_init(&error);
-        sysbus_connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
-        if (sysbus_connection == NULL) {
-                dbg("cannot connect to system message bus, error %s: %s", 
-                    error.name, error.message);
-                dbus_error_free(&error);
-                return;
-        }
-
-        /*  Acquire the org.kernel.udev service such that listeners
-         *  know that the message is really from us and not from a
-         *  random attacker. See the file udev_sysbus_policy.conf for
-         *  details.
-         *
-         *  Note that a service can have multiple owners (though there
-         *  is a concept of a primary owner for reception of messages)
-         *  so no race is introduced if two copies of udev is running
-         *  at the same time.
-         */
-        dbus_bus_acquire_service(sysbus_connection, "org.kernel.udev", 0, 
-                                 &error);
-        if (dbus_error_is_set(&error)) {
-                printf("cannot acquire org.kernel.udev service, error %s: %s'",
-                       error.name, error.message);
-                sysbus_disconnect();
-                return;
-        }
+       DBusError error;
+
+       /* Connect to a well-known bus instance, the system bus */
+       dbus_error_init(&error);
+       sysbus_connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
+       if (sysbus_connection == NULL) {
+               dbg("cannot connect to system message bus, error %s: %s", 
+                   error.name, error.message);
+               dbus_error_free(&error);
+               return;
+       }
+
+       /*  Acquire the org.kernel.udev service such that listeners
+        *  know that the message is really from us and not from a
+        *  random attacker. See the file udev_sysbus_policy.conf for
+        *  details.
+        *
+        *  Note that a service can have multiple owners (though there
+        *  is a concept of a primary owner for reception of messages)
+        *  so no race is introduced if two copies of udev is running
+        *  at the same time.
+        */
+       dbus_bus_acquire_service(sysbus_connection, "org.kernel.udev", 0, 
+                                &error);
+       if (dbus_error_is_set(&error)) {
+               printf("cannot acquire org.kernel.udev service, error %s: %s'",
+                      error.name, error.message);
+               sysbus_disconnect();
+               return;
+       }
 }
 
 
@@ -62,31 +73,31 @@ void sysbus_connect(void)
  */
 void sysbus_send_create(struct udevice *dev, const char *path)
 {
-        char filename[255];
-        DBusMessage* message;
-        DBusMessageIter iter;
-
-        if (sysbus_connection == NULL)
-                return;
-
-        strncpy(filename, udev_root, sizeof(filename));
-        strncat(filename, dev->name, sizeof(filename));
-
-        /* object, interface, member */
-        message = dbus_message_new_signal("/org/kernel/udev/NodeMonitor", 
-                                          "org.kernel.udev.NodeMonitor",
-                                          "NodeCreated");
-        
-        dbus_message_iter_init(message, &iter);
-        dbus_message_iter_append_string(&iter, filename);
-        dbus_message_iter_append_string(&iter, path);
-
-        if ( !dbus_connection_send(sysbus_connection, message, NULL) )
-                dbg("error sending d-bus signal");
-
-        dbus_message_unref(message);
-        
-        dbus_connection_flush(sysbus_connection);
+       char filename[255];
+       DBusMessage* message;
+       DBusMessageIter iter;
+
+       if (sysbus_connection == NULL)
+               return;
+
+       strncpy(filename, udev_root, sizeof(filename));
+       strncat(filename, dev->name, sizeof(filename));
+
+       /* object, interface, member */
+       message = dbus_message_new_signal("/org/kernel/udev/NodeMonitor", 
+                                         "org.kernel.udev.NodeMonitor",
+                                         "NodeCreated");
+
+       dbus_message_iter_init(message, &iter);
+       dbus_message_iter_append_string(&iter, filename);
+       dbus_message_iter_append_string(&iter, path);
+
+       if ( !dbus_connection_send(sysbus_connection, message, NULL) )
+               dbg("error sending d-bus signal");
+
+       dbus_message_unref(message);
+
+       dbus_connection_flush(sysbus_connection);
 }
 
 /** Send out a signal that a device node is deleted
@@ -96,31 +107,29 @@ void sysbus_send_create(struct udevice *dev, const char *path)
  */
 void sysbus_send_remove(const char* name, const char *path)
 {
-        char filename[255];
-        DBusMessage* message;
-        DBusMessageIter iter;
-
-        if (sysbus_connection == NULL)
-                return;
-
-        strncpy(filename, udev_root, sizeof(filename));
-        strncat(filename, name, sizeof(filename));
-
-        /* object, interface, member */
-        message = dbus_message_new_signal("/org/kernel/udev/NodeMonitor", 
-                                          "org.kernel.udev.NodeMonitor",
-                                          "NodeDeleted");
-        
-        dbus_message_iter_init(message, &iter);
-        dbus_message_iter_append_string(&iter, filename);
-        dbus_message_iter_append_string(&iter, path);
-        
-        if ( !dbus_connection_send(sysbus_connection, message, NULL) )
-                dbg("error sending d-bus signal");
-        
-        dbus_message_unref(message);
-
-        dbus_connection_flush(sysbus_connection);
-}
+       char filename[255];
+       DBusMessage* message;
+       DBusMessageIter iter;
+
+       if (sysbus_connection == NULL)
+               return;
+
+       strncpy(filename, udev_root, sizeof(filename));
+       strncat(filename, name, sizeof(filename));
+
+       /* object, interface, member */
+       message = dbus_message_new_signal("/org/kernel/udev/NodeMonitor", 
+                                         "org.kernel.udev.NodeMonitor",
+                                         "NodeDeleted");
 
+       dbus_message_iter_init(message, &iter);
+       dbus_message_iter_append_string(&iter, filename);
+       dbus_message_iter_append_string(&iter, path);
 
+       if ( !dbus_connection_send(sysbus_connection, message, NULL) )
+               dbg("error sending d-bus signal");
+
+       dbus_message_unref(message);
+
+       dbus_connection_flush(sysbus_connection);
+}