static DBusMessage *ag_connect(DBusConnection *conn, DBusMessage *msg, void *data) { struct audio_device *au_dev = (struct audio_device *) data; struct gateway *gw = au_dev->gateway; int err; if (!gw->agent) return btd_error_agent_not_available(msg); err = get_records(au_dev); if (err < 0) return btd_error_failed(msg, strerror(-err)); gw->msg = dbus_message_ref(msg); return NULL; }
static DBusMessage *ag_connect(DBusConnection *conn, DBusMessage *msg, void *data) { struct audio_device *au_dev = (struct audio_device *) data; struct gateway *gw = au_dev->gateway; int err; if (gw->state == GATEWAY_STATE_CONNECTING) return btd_error_in_progress(msg); else if (gw->state > GATEWAY_STATE_CONNECTING) return btd_error_already_connected(msg); if (!gw->agent) return btd_error_agent_not_available(msg); err = get_records(au_dev); if (err < 0) return btd_error_failed(msg, strerror(-err)); gw->msg = dbus_message_ref(msg); return NULL; }