Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP3:GA
pacemaker.8397
bug-1015264_pacemaker-libservices-refactor-DBus...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bug-1015264_pacemaker-libservices-refactor-DBus-code.patch of Package pacemaker.8397
commit 5d3f5470576c15426926e45a69f708382809996b Author: Ken Gaillot <kgaillot@redhat.com> Date: Fri Sep 2 11:04:56 2016 -0500 Refactor: libservices: bring DBus code closer to current standards Add a copyright and license notice, indent properly, and try to keep line lengths reasonable. diff --git a/lib/services/dbus.c b/lib/services/dbus.c index d36c73d..9ad3779 100644 --- a/lib/services/dbus.c +++ b/lib/services/dbus.c @@ -1,3 +1,10 @@ +/* + * Copyright (C) 2014-2016 Andrew Beekhof <andrew@beekhof.net> + * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. + */ + #include <crm_internal.h> #include <crm/crm.h> #include <crm/services.h> @@ -6,26 +13,28 @@ #define BUS_PROPERTY_IFACE "org.freedesktop.DBus.Properties" -struct db_getall_data -{ - char *name; - char *target; - char *object; - void *userdata; - void (*callback)(const char *name, const char *value, void *userdata); +struct db_getall_data { + char *name; + char *target; + char *object; + void *userdata; + void (*callback)(const char *name, const char *value, void *userdata); }; -static bool pcmk_dbus_error_check(DBusError *err, const char *prefix, const char *function, int line) +static bool +pcmk_dbus_error_check(DBusError *err, const char *prefix, const char *function, int line) { if (err && dbus_error_is_set(err)) { - do_crm_log_alias(LOG_ERR, __FILE__, function, line, "%s: DBus error '%s'", prefix, err->message); + do_crm_log_alias(LOG_ERR, __FILE__, function, line, + "%s: DBus error '%s'", prefix, err->message); dbus_error_free(err); return TRUE; } return FALSE; } -DBusConnection *pcmk_dbus_connect(void) +DBusConnection * +pcmk_dbus_connect(void) { DBusError err; DBusConnection *connection; @@ -42,12 +51,15 @@ DBusConnection *pcmk_dbus_connect(void) return connection; } -void pcmk_dbus_disconnect(DBusConnection *connection) +void +pcmk_dbus_disconnect(DBusConnection *connection) { + return; } bool -pcmk_dbus_find_error(const char *method, DBusPendingCall* pending, DBusMessage *reply, DBusError *ret) +pcmk_dbus_find_error(const char *method, DBusPendingCall* pending, + DBusMessage *reply, DBusError *ret) { DBusError error; @@ -110,7 +122,9 @@ pcmk_dbus_find_error(const char *method, DBusPendingCall* pending, DBusMessage * return FALSE; } -DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, DBusError *error, int timeout) +DBusMessage * +pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, + DBusError *error, int timeout) { const char *method = NULL; DBusMessage *reply = NULL; @@ -120,11 +134,12 @@ DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, D method = dbus_message_get_member (msg); if (timeout <= 0) { + /* DBUS_TIMEOUT_USE_DEFAULT (-1) tells DBus to use a sane default */ timeout = DBUS_TIMEOUT_USE_DEFAULT; } // send message and get a handle for a reply - if (!dbus_connection_send_with_reply (connection, msg, &pending, timeout/* -1 is default timeout, aka. DBUS_TIMEOUT_USE_DEFAULT */)) { + if (!dbus_connection_send_with_reply(connection, msg, &pending, timeout)) { if(error) { dbus_error_init(error); error->message = "Call to dbus_connection_send_with_reply() failed"; @@ -154,8 +169,10 @@ DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, D return reply; } -DBusPendingCall* pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, - void(*done)(DBusPendingCall *pending, void *user_data), void *user_data, int timeout) +DBusPendingCall * +pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, + void(*done)(DBusPendingCall *pending, void *user_data), + void *user_data, int timeout) { DBusError error; const char *method = NULL; @@ -169,11 +186,12 @@ DBusPendingCall* pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, if (timeout <= 0) { + /* DBUS_TIMEOUT_USE_DEFAULT (-1) tells DBus to use a sane default */ timeout = DBUS_TIMEOUT_USE_DEFAULT; } // send message and get a handle for a reply - if (!dbus_connection_send_with_reply (connection, msg, &pending, timeout/* -1 is default timeout, aka. DBUS_TIMEOUT_USE_DEFAULT */)) { + if (!dbus_connection_send_with_reply(connection, msg, &pending, timeout)) { crm_err("Send with reply failed for %s", method); return NULL; @@ -187,11 +205,11 @@ DBusPendingCall* pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, crm_info("DBus %s call completed too soon", method); if(done) { #if 0 - /* This sounds like a good idea, but allegedly it breaks things */ - done(pending, user_data); - pending = NULL; + /* This sounds like a good idea, but allegedly it breaks things */ + done(pending, user_data); + pending = NULL; #else - CRM_ASSERT(dbus_pending_call_set_notify(pending, done, user_data, NULL)); + CRM_ASSERT(dbus_pending_call_set_notify(pending, done, user_data, NULL)); #endif } @@ -201,7 +219,9 @@ DBusPendingCall* pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, return pending; } -bool pcmk_dbus_type_check(DBusMessage *msg, DBusMessageIter *field, int expected, const char *function, int line) +bool +pcmk_dbus_type_check(DBusMessage *msg, DBusMessageIter *field, int expected, + const char *function, int line) { int dtype = 0; DBusMessageIter lfield; @@ -340,25 +360,21 @@ pcmk_dbus_lookup_cb(DBusPendingCall *pending, void *user_data) } char * -pcmk_dbus_get_property( - DBusConnection *connection, const char *target, const char *obj, const gchar * iface, const char *name, - void (*callback)(const char *name, const char *value, void *userdata), void *userdata, DBusPendingCall **pending, - int timeout) +pcmk_dbus_get_property(DBusConnection *connection, const char *target, + const char *obj, const gchar * iface, const char *name, + void (*callback)(const char *name, const char *value, void *userdata), + void *userdata, DBusPendingCall **pending, int timeout) { DBusMessage *msg; const char *method = "GetAll"; char *output = NULL; - struct db_getall_data *query_data = NULL; - /* char *state = pcmk_dbus_get_property(systemd_proxy, BUS_NAME, unit, BUS_NAME ".Unit", "ActiveState"); */ - crm_debug("Calling: %s on %s", method, target); msg = dbus_message_new_method_call(target, // target for the method call obj, // object to call on BUS_PROPERTY_IFACE, // interface to call on method); // method name - if (NULL == msg) { crm_err("Call to %s failed: No message", method); return NULL; @@ -404,7 +420,10 @@ pcmk_dbus_get_property( return output; } -static void pcmk_dbus_connection_dispatch(DBusConnection *connection, DBusDispatchStatus new_status, void *data){ +static void +pcmk_dbus_connection_dispatch(DBusConnection *connection, + DBusDispatchStatus new_status, void *data) +{ crm_trace("status %d for %p", new_status, data); if (new_status == DBUS_DISPATCH_DATA_REMAINS){ dbus_connection_dispatch(connection); @@ -418,20 +437,20 @@ static void pcmk_dbus_connection_dispatch(DBusConnection *connection, DBusDispat /* Copied from dbus-watch.c */ static const char* -dbus_watch_flags_to_string (int flags) +dbus_watch_flags_to_string(int flags) { - const char *watch_type; - - if ((flags & DBUS_WATCH_READABLE) && - (flags & DBUS_WATCH_WRITABLE)) - watch_type = "readwrite"; - else if (flags & DBUS_WATCH_READABLE) - watch_type = "read"; - else if (flags & DBUS_WATCH_WRITABLE) - watch_type = "write"; - else - watch_type = "not read or write"; - return watch_type; + const char *watch_type; + + if ((flags & DBUS_WATCH_READABLE) && (flags & DBUS_WATCH_WRITABLE)) { + watch_type = "readwrite"; + } else if (flags & DBUS_WATCH_READABLE) { + watch_type = "read"; + } else if (flags & DBUS_WATCH_WRITABLE) { + watch_type = "write"; + } else { + watch_type = "not read or write"; + } + return watch_type; } static int @@ -456,11 +475,13 @@ pcmk_dbus_watch_dispatch(gpointer userdata) if(flags != dbus_watch_get_flags(watch)) { flags = dbus_watch_get_flags(watch); - crm_trace("Dispatched client %p: %s (%d)", client, dbus_watch_flags_to_string(flags), flags); + crm_trace("Dispatched client %p: %s (%d)", client, + dbus_watch_flags_to_string(flags), flags); } if(oom) { - crm_err("DBus encountered OOM while attempting to dispatch %p (%s)", client, dbus_watch_flags_to_string(flags)); + crm_err("DBus encountered OOM while attempting to dispatch %p (%s)", + client, dbus_watch_flags_to_string(flags)); } return 0; } @@ -479,7 +500,8 @@ struct mainloop_fd_callbacks pcmk_dbus_cb = { }; static dbus_bool_t -pcmk_dbus_watch_add(DBusWatch *watch, void *data){ +pcmk_dbus_watch_add(DBusWatch *watch, void *data) +{ int fd = dbus_watch_get_unix_fd(watch); mainloop_io_t *client = mainloop_add_fd( @@ -494,12 +516,14 @@ static void pcmk_dbus_watch_toggle(DBusWatch *watch, void *data) { mainloop_io_t *client = dbus_watch_get_data(watch); - crm_notice("DBus client %p is now %s", client, dbus_watch_get_enabled(watch)?"enabled":"disabled"); + crm_notice("DBus client %p is now %s", + client, (dbus_watch_get_enabled(watch)? "enabled" : "disabled")); } static void -pcmk_dbus_watch_remove(DBusWatch *watch, void *data){ +pcmk_dbus_watch_remove(DBusWatch *watch, void *data) +{ mainloop_io_t *client = dbus_watch_get_data(watch); crm_trace("Removed client %p (%p)", client, data); @@ -515,8 +539,10 @@ pcmk_dbus_timeout_dispatch(gpointer data) } static dbus_bool_t -pcmk_dbus_timeout_add(DBusTimeout *timeout, void *data){ - guint id = g_timeout_add(dbus_timeout_get_interval(timeout), pcmk_dbus_timeout_dispatch, timeout); +pcmk_dbus_timeout_add(DBusTimeout *timeout, void *data) +{ + guint id = g_timeout_add(dbus_timeout_get_interval(timeout), + pcmk_dbus_timeout_dispatch, timeout); crm_trace("Adding timeout %p (%d)", timeout, dbus_timeout_get_interval(timeout)); @@ -527,7 +553,8 @@ pcmk_dbus_timeout_add(DBusTimeout *timeout, void *data){ } static void -pcmk_dbus_timeout_remove(DBusTimeout *timeout, void *data){ +pcmk_dbus_timeout_remove(DBusTimeout *timeout, void *data) +{ void *vid = dbus_timeout_get_data(timeout); guint id = GPOINTER_TO_UINT(vid); @@ -540,7 +567,8 @@ pcmk_dbus_timeout_remove(DBusTimeout *timeout, void *data){ } static void -pcmk_dbus_timeout_toggle(DBusTimeout *timeout, void *data){ +pcmk_dbus_timeout_toggle(DBusTimeout *timeout, void *data) +{ bool enabled = dbus_timeout_get_enabled(timeout); crm_trace("Toggling timeout for %p to %s", timeout, enabled?"off":"on"); @@ -554,12 +582,16 @@ pcmk_dbus_timeout_toggle(DBusTimeout *timeout, void *data){ /* Inspired by http://www.kolej.mff.cuni.cz/~vesej3am/devel/dbus-select.c */ -void pcmk_dbus_connection_setup_with_select(DBusConnection *c){ - dbus_connection_set_exit_on_disconnect (c, FALSE); - dbus_connection_set_timeout_functions( - c, pcmk_dbus_timeout_add, pcmk_dbus_timeout_remove, pcmk_dbus_timeout_toggle, NULL, NULL); - dbus_connection_set_watch_functions(c, pcmk_dbus_watch_add, pcmk_dbus_watch_remove, pcmk_dbus_watch_toggle, NULL, NULL); - dbus_connection_set_dispatch_status_function(c, pcmk_dbus_connection_dispatch, NULL, NULL); - - pcmk_dbus_connection_dispatch(c, dbus_connection_get_dispatch_status(c), NULL); +void +pcmk_dbus_connection_setup_with_select(DBusConnection *c) +{ + dbus_connection_set_exit_on_disconnect(c, FALSE); + dbus_connection_set_timeout_functions(c, pcmk_dbus_timeout_add, + pcmk_dbus_timeout_remove, + pcmk_dbus_timeout_toggle, NULL, NULL); + dbus_connection_set_watch_functions(c, pcmk_dbus_watch_add, + pcmk_dbus_watch_remove, + pcmk_dbus_watch_toggle, NULL, NULL); + dbus_connection_set_dispatch_status_function(c, pcmk_dbus_connection_dispatch, NULL, NULL); + pcmk_dbus_connection_dispatch(c, dbus_connection_get_dispatch_status(c), NULL); }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor