config: clean up debugging messages, make failure to acquire name fatal
Bomb with FatalError when we can't acquire the bus and name. Clean up a bunch of debugging ErrorFs to be hidden behind #ifdef DEBUG.
This commit is contained in:
parent
866ca1f929
commit
4e37c07ba6
|
@ -60,6 +60,7 @@ configMessage(DBusConnection *connection, DBusMessage *message, void *closure)
|
|||
int deviceid = -1;
|
||||
DeviceIntPtr pDev = NULL;
|
||||
|
||||
#ifdef DEBUG
|
||||
ErrorF("[dbus] new message!\n");
|
||||
ErrorF(" source: %s\n", dbus_message_get_sender(message));
|
||||
ErrorF(" destination: %s\n", dbus_message_get_destination(message));
|
||||
|
@ -70,6 +71,7 @@ configMessage(DBusConnection *connection, DBusMessage *message, void *closure)
|
|||
ErrorF(" method call? %s\n", (dbus_message_get_type(message) ==
|
||||
DBUS_MESSAGE_TYPE_METHOD_CALL) ?
|
||||
"yes" : "no");
|
||||
#endif
|
||||
|
||||
dbus_error_init(&error);
|
||||
|
||||
|
@ -81,7 +83,9 @@ configMessage(DBusConnection *connection, DBusMessage *message, void *closure)
|
|||
return DBUS_HANDLER_RESULT_NEED_MEMORY; /* ?? */
|
||||
}
|
||||
if (strcmp(dbus_message_get_member(message), "add") == 0) {
|
||||
#ifdef DEBUG
|
||||
ErrorF(" we want to add a device!\n");
|
||||
#endif
|
||||
/* signature should be [ss][ss]... */
|
||||
while (dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_ARRAY) {
|
||||
option = (InputOption *)xcalloc(sizeof(InputOption), 1);
|
||||
|
@ -160,7 +164,9 @@ configMessage(DBusConnection *connection, DBusMessage *message, void *closure)
|
|||
return DBUS_HANDLER_RESULT_HANDLED;
|
||||
}
|
||||
else if (strcmp(dbus_message_get_member(message), "remove") == 0) {
|
||||
#ifdef DEBUG
|
||||
ErrorF(" we want to remove a device!\n");
|
||||
#endif
|
||||
if (!dbus_message_get_args(message, &error, DBUS_TYPE_INT32,
|
||||
&deviceid, DBUS_TYPE_INVALID)) {
|
||||
ErrorF("couldn't get args: %s %s\n", error.name, error.message);
|
||||
|
@ -172,7 +178,6 @@ configMessage(DBusConnection *connection, DBusMessage *message, void *closure)
|
|||
dbus_error_free(&error);
|
||||
return DBUS_HANDLER_RESULT_HANDLED;
|
||||
}
|
||||
ErrorF("pDev is %p\n", pDev);
|
||||
/* Call PIE here so we don't try to dereference a device that's
|
||||
* already been removed. Technically there's still a small race
|
||||
* here, so we should ensure that SIGIO is blocked. */
|
||||
|
@ -200,56 +205,56 @@ configInitialise()
|
|||
dbus_error_init(&error);
|
||||
bus = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
|
||||
if (!bus || dbus_error_is_set(&error)) {
|
||||
ErrorF("[dbus] some kind of error occurred: %s (%s)\n", error.name,
|
||||
error.message);
|
||||
dbus_error_free(&error);
|
||||
FatalError("[dbus] some kind of error occurred: %s (%s)\n", error.name,
|
||||
error.message);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!dbus_connection_get_unix_fd(bus, &configfd)) {
|
||||
ErrorF("[dbus] couldn't get fd for bus\n");
|
||||
dbus_connection_close(bus);
|
||||
configfd = -1;
|
||||
FatalError("[dbus] couldn't get fd for bus\n");
|
||||
return;
|
||||
}
|
||||
|
||||
snprintf(busname, sizeof(busname), "org.x.config.display%d", atoi(display));
|
||||
if (!dbus_bus_request_name(bus, busname, 0, &error) ||
|
||||
dbus_error_is_set(&error)) {
|
||||
ErrorF("[dbus] couldn't take over org.x.config: %s (%s)\n",
|
||||
error.name, error.message);
|
||||
dbus_error_free(&error);
|
||||
dbus_connection_close(bus);
|
||||
configfd = -1;
|
||||
FatalError("[dbus] couldn't take over org.x.config: %s (%s)\n",
|
||||
error.name, error.message);
|
||||
return;
|
||||
}
|
||||
|
||||
/* blocks until we get a reply. */
|
||||
dbus_bus_add_match(bus, MATCH_RULE, &error);
|
||||
if (dbus_error_is_set(&error)) {
|
||||
ErrorF("[dbus] couldn't match X.Org rule: %s (%s)\n", error.name,
|
||||
error.message);
|
||||
dbus_error_free(&error);
|
||||
dbus_bus_release_name(bus, busname, &error);
|
||||
dbus_connection_close(bus);
|
||||
configfd = -1;
|
||||
FatalError("[dbus] couldn't match X.Org rule: %s (%s)\n", error.name,
|
||||
error.message);
|
||||
return;
|
||||
}
|
||||
|
||||
vtable.message_function = configMessage;
|
||||
snprintf(busobject, sizeof(busobject), "/org/x/config/%d", atoi(display));
|
||||
if (!dbus_connection_register_object_path(bus, busobject, &vtable, NULL)) {
|
||||
ErrorF("[dbus] couldn't register object path\n");
|
||||
configfd = -1;
|
||||
dbus_bus_release_name(bus, busname, &error);
|
||||
dbus_bus_remove_match(bus, MATCH_RULE, &error);
|
||||
dbus_connection_close(bus);
|
||||
configfd = -1;
|
||||
FatalError("[dbus] couldn't register object path\n");
|
||||
return;
|
||||
}
|
||||
#ifdef DEBUG
|
||||
ErrorF("[dbus] registered object path %s\n", busobject);
|
||||
|
||||
ErrorF("[dbus] registered and listening\n");
|
||||
#endif
|
||||
|
||||
dbus_error_free(&error);
|
||||
|
||||
|
@ -265,7 +270,6 @@ configFini()
|
|||
|
||||
if (configConnection) {
|
||||
dbus_error_init(&error);
|
||||
ErrorF("configFini being called\n");
|
||||
dbus_bus_remove_match(configConnection, MATCH_RULE, &error);
|
||||
dbus_bus_release_name(configConnection, busname, &error);
|
||||
dbus_connection_close(configConnection);
|
||||
|
|
Loading…
Reference in New Issue
Block a user