chiark / gitweb /
pam_elogind compiling
[elogind.git] / src / libsystemd / sd-bus / test-bus-chat.c
index 1b9d98fa7559b6f5bc71b549bbbad2618604b4a7..7f49fe90fab2a255be6fb86d6246857df77eb874 100644 (file)
@@ -19,7 +19,6 @@
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
-#include <assert.h>
 #include <stdlib.h>
 #include <pthread.h>
 #include <unistd.h>
@@ -30,7 +29,6 @@
 #include "macro.h"
 
 #include "sd-bus.h"
-#include "bus-message.h"
 #include "bus-error.h"
 #include "bus-match.h"
 #include "bus-internal.h"
@@ -44,7 +42,7 @@ static int match_callback(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus
 static int object_callback(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
         int r;
 
-        assert(bus);
+        assert_se(bus);
 
         if (sd_bus_message_is_method_error(m, NULL))
                 return 0;
@@ -53,10 +51,8 @@ static int object_callback(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bu
                 log_info("Invoked Foobar() on %s", sd_bus_message_get_path(m));
 
                 r = sd_bus_reply_method_return(m, NULL);
-                if (r < 0) {
-                        log_error("Failed to send reply: %s", strerror(-r));
-                        return r;
-                }
+                if (r < 0)
+                        return log_error_errno(r, "Failed to send reply: %m");
 
                 return 1;
         }
@@ -70,23 +66,23 @@ static int server_init(sd_bus **_bus) {
         int r;
         const char *unique;
 
-        assert(_bus);
+        assert_se(_bus);
 
         r = sd_bus_open_user(&bus);
         if (r < 0) {
-                log_error("Failed to connect to user bus: %s", strerror(-r));
+                log_error_errno(r, "Failed to connect to user bus: %m");
                 goto fail;
         }
 
-        r = sd_bus_get_server_id(bus, &id);
+        r = sd_bus_get_bus_id(bus, &id);
         if (r < 0) {
-                log_error("Failed to get server ID: %s", strerror(-r));
+                log_error_errno(r, "Failed to get server ID: %m");
                 goto fail;
         }
 
         r = sd_bus_get_unique_name(bus, &unique);
         if (r < 0) {
-                log_error("Failed to get unique name: %s", strerror(-r));
+                log_error_errno(r, "Failed to get unique name: %m");
                 goto fail;
         }
 
@@ -96,25 +92,25 @@ static int server_init(sd_bus **_bus) {
 
         r = sd_bus_request_name(bus, "org.freedesktop.systemd.test", 0);
         if (r < 0) {
-                log_error("Failed to acquire name: %s", strerror(-r));
+                log_error_errno(r, "Failed to acquire name: %m");
                 goto fail;
         }
 
-        r = sd_bus_add_fallback(bus, "/foo/bar", object_callback, NULL);
+        r = sd_bus_add_fallback(bus, NULL, "/foo/bar", object_callback, NULL);
         if (r < 0) {
-                log_error("Failed to add object: %s", strerror(-r));
+                log_error_errno(r, "Failed to add object: %m");
                 goto fail;
         }
 
-        r = sd_bus_add_match(bus, "type='signal',interface='foo.bar',member='Notify'", match_callback, NULL);
+        r = sd_bus_add_match(bus, NULL, "type='signal',interface='foo.bar',member='Notify'", match_callback, NULL);
         if (r < 0) {
-                log_error("Failed to add match: %s", strerror(-r));
+                log_error_errno(r, "Failed to add match: %m");
                 goto fail;
         }
 
-        r = sd_bus_add_match(bus, "type='signal',interface='org.freedesktop.DBus',member='NameOwnerChanged'", match_callback, NULL);
+        r = sd_bus_add_match(bus, NULL, "type='signal',interface='org.freedesktop.DBus',member='NameOwnerChanged'", match_callback, NULL);
         if (r < 0) {
-                log_error("Failed to add match: %s", strerror(-r));
+                log_error_errno(r, "Failed to add match: %m");
                 goto fail;
         }
 
@@ -141,14 +137,14 @@ static int server(sd_bus *bus) {
 
                 r = sd_bus_process(bus, &m);
                 if (r < 0) {
-                        log_error("Failed to process requests: %s", strerror(-r));
+                        log_error_errno(r, "Failed to process requests: %m");
                         goto fail;
                 }
 
                 if (r == 0) {
                         r = sd_bus_wait(bus, (uint64_t) -1);
                         if (r < 0) {
-                                log_error("Failed to wait: %s", strerror(-r));
+                                log_error_errno(r, "Failed to wait: %m");
                                 goto fail;
                         }
 
@@ -160,9 +156,9 @@ static int server(sd_bus *bus) {
 
                 sd_bus_creds_get_pid(sd_bus_message_get_creds(m), &pid);
                 sd_bus_creds_get_selinux_context(sd_bus_message_get_creds(m), &label);
-                log_info("Got message! member=%s pid=%lu label=%s",
+                log_info("Got message! member=%s pid="PID_FMT" label=%s",
                          strna(sd_bus_message_get_member(m)),
-                         (unsigned long) pid,
+                         pid,
                          strna(label));
                 /* bus_message_dump(m); */
                 /* sd_bus_message_rewind(m, true); */
@@ -173,7 +169,7 @@ static int server(sd_bus *bus) {
 
                         r = sd_bus_message_read(m, "s", &hello);
                         if (r < 0) {
-                                log_error("Failed to get parameter: %s", strerror(-r));
+                                log_error_errno(r, "Failed to get parameter: %m");
                                 goto fail;
                         }
 
@@ -187,14 +183,14 @@ static int server(sd_bus *bus) {
 
                         r = sd_bus_reply_method_return(m, "s", lowercase);
                         if (r < 0) {
-                                log_error("Failed to send reply: %s", strerror(-r));
+                                log_error_errno(r, "Failed to send reply: %m");
                                 goto fail;
                         }
                 } else if (sd_bus_message_is_method_call(m, "org.freedesktop.systemd.test", "ExitClient1")) {
 
                         r = sd_bus_reply_method_return(m, NULL);
                         if (r < 0) {
-                                log_error("Failed to send reply: %s", strerror(-r));
+                                log_error_errno(r, "Failed to send reply: %m");
                                 goto fail;
                         }
 
@@ -203,7 +199,7 @@ static int server(sd_bus *bus) {
 
                         r = sd_bus_reply_method_return(m, NULL);
                         if (r < 0) {
-                                log_error("Failed to send reply: %s", strerror(-r));
+                                log_error_errno(r, "Failed to send reply: %m");
                                 goto fail;
                         }
 
@@ -214,7 +210,7 @@ static int server(sd_bus *bus) {
 
                         r = sd_bus_reply_method_return(m, NULL);
                         if (r < 0) {
-                                log_error("Failed to send reply: %s", strerror(-r));
+                                log_error_errno(r, "Failed to send reply: %m");
                                 goto fail;
                         }
 
@@ -224,21 +220,21 @@ static int server(sd_bus *bus) {
 
                         r = sd_bus_message_read(m, "h", &fd);
                         if (r < 0) {
-                                log_error("Failed to get parameter: %s", strerror(-r));
+                                log_error_errno(r, "Failed to get parameter: %m");
                                 goto fail;
                         }
 
                         log_info("Received fd=%d", fd);
 
                         if (write(fd, &x, 1) < 0) {
-                                log_error("Failed to write to fd: %m");
+                                log_error_errno(errno, "Failed to write to fd: %m");
                                 safe_close(fd);
                                 goto fail;
                         }
 
                         r = sd_bus_reply_method_return(m, NULL);
                         if (r < 0) {
-                                log_error("Failed to send reply: %s", strerror(-r));
+                                log_error_errno(r, "Failed to send reply: %m");
                                 goto fail;
                         }
 
@@ -248,7 +244,7 @@ static int server(sd_bus *bus) {
                                         m,
                                         &SD_BUS_ERROR_MAKE_CONST(SD_BUS_ERROR_UNKNOWN_METHOD, "Unknown method."));
                         if (r < 0) {
-                                log_error("Failed to send reply: %s", strerror(-r));
+                                log_error_errno(r, "Failed to send reply: %m");
                                 goto fail;
                         }
                 }
@@ -276,7 +272,7 @@ static void* client1(void*p) {
 
         r = sd_bus_open_user(&bus);
         if (r < 0) {
-                log_error("Failed to connect to user bus: %s", strerror(-r));
+                log_error_errno(r, "Failed to connect to user bus: %m");
                 goto finish;
         }
 
@@ -291,20 +287,20 @@ static void* client1(void*p) {
                         "s",
                         "HELLO");
         if (r < 0) {
-                log_error("Failed to issue method call: %s", strerror(-r));
+                log_error_errno(r, "Failed to issue method call: %m");
                 goto finish;
         }
 
         r = sd_bus_message_read(reply, "s", &hello);
         if (r < 0) {
-                log_error("Failed to get string: %s", strerror(-r));
+                log_error_errno(r, "Failed to get string: %m");
                 goto finish;
         }
 
-        assert(streq(hello, "hello"));
+        assert_se(streq(hello, "hello"));
 
         if (pipe2(pp, O_CLOEXEC|O_NONBLOCK) < 0) {
-                log_error("Failed to allocate pipe: %m");
+                log_error_errno(errno, "Failed to allocate pipe: %m");
                 r = -errno;
                 goto finish;
         }
@@ -322,7 +318,7 @@ static void* client1(void*p) {
                         "h",
                         pp[1]);
         if (r < 0) {
-                log_error("Failed to issue method call: %s", strerror(-r));
+                log_error_errno(r, "Failed to issue method call: %m");
                 goto finish;
         }
 
@@ -346,7 +342,7 @@ finish:
                                 "org.freedesktop.systemd.test",
                                 "ExitClient1");
                 if (r < 0)
-                        log_error("Failed to allocate method call: %s", strerror(-r));
+                        log_error_errno(r, "Failed to allocate method call: %m");
                 else
                         sd_bus_send(bus, q, NULL);
 
@@ -356,7 +352,7 @@ finish:
 
         sd_bus_error_free(&error);
 
-        close_pipe(pp);
+        safe_close_pair(pp);
 
         return INT_TO_PTR(r);
 }
@@ -380,7 +376,7 @@ static void* client2(void*p) {
 
         r = sd_bus_open_user(&bus);
         if (r < 0) {
-                log_error("Failed to connect to user bus: %s", strerror(-r));
+                log_error_errno(r, "Failed to connect to user bus: %m");
                 goto finish;
         }
 
@@ -392,7 +388,7 @@ static void* client2(void*p) {
                         "org.object.test",
                         "Foobar");
         if (r < 0) {
-                log_error("Failed to allocate method call: %s", strerror(-r));
+                log_error_errno(r, "Failed to allocate method call: %m");
                 goto finish;
         }
 
@@ -412,7 +408,7 @@ static void* client2(void*p) {
                         "foo.bar",
                         "Notify");
         if (r < 0) {
-                log_error("Failed to allocate signal: %s", strerror(-r));
+                log_error_errno(r, "Failed to allocate signal: %m");
                 goto finish;
         }
 
@@ -433,7 +429,7 @@ static void* client2(void*p) {
                         "org.freedesktop.DBus.Peer",
                         "GetMachineId");
         if (r < 0) {
-                log_error("Failed to allocate method call: %s", strerror(-r));
+                log_error_errno(r, "Failed to allocate method call: %m");
                 goto finish;
         }
 
@@ -445,7 +441,7 @@ static void* client2(void*p) {
 
         r = sd_bus_message_read(reply, "s", &mid);
         if (r < 0) {
-                log_error("Failed to parse machine ID: %s", strerror(-r));
+                log_error_errno(r, "Failed to parse machine ID: %m");
                 goto finish;
         }
 
@@ -462,7 +458,7 @@ static void* client2(void*p) {
                         "org.freedesktop.systemd.test",
                         "Slow");
         if (r < 0) {
-                log_error("Failed to allocate method call: %s", strerror(-r));
+                log_error_errno(r, "Failed to allocate method call: %m");
                 goto finish;
         }
 
@@ -486,11 +482,11 @@ static void* client2(void*p) {
                         "org.freedesktop.systemd.test",
                         "Slow");
         if (r < 0) {
-                log_error("Failed to allocate method call: %s", strerror(-r));
+                log_error_errno(r, "Failed to allocate method call: %m");
                 goto finish;
         }
 
-        r = sd_bus_call_async(bus, m, quit_callback, &quit, 200 * USEC_PER_MSEC, NULL);
+        r = sd_bus_call_async(bus, NULL, m, quit_callback, &quit, 200 * USEC_PER_MSEC);
         if (r < 0) {
                 log_info("Failed to issue method call: %s", bus_error_message(&error, -r));
                 goto finish;
@@ -499,13 +495,13 @@ static void* client2(void*p) {
         while (!quit) {
                 r = sd_bus_process(bus, NULL);
                 if (r < 0) {
-                        log_error("Failed to process requests: %s", strerror(-r));
+                        log_error_errno(r, "Failed to process requests: %m");
                         goto finish;
                 }
                 if (r == 0) {
                         r = sd_bus_wait(bus, (uint64_t) -1);
                         if (r < 0) {
-                                log_error("Failed to wait: %s", strerror(-r));
+                                log_error_errno(r, "Failed to wait: %m");
                                 goto finish;
                         }
                 }
@@ -525,7 +521,7 @@ finish:
                                 "org.freedesktop.systemd.test",
                                 "ExitClient2");
                 if (r < 0) {
-                        log_error("Failed to allocate method call: %s", strerror(-r));
+                        log_error_errno(r, "Failed to allocate method call: %m");
                         goto finish;
                 }