static DBusMessage *add_service_record(DBusConnection *conn, DBusMessage *msg, void *data) { struct service_adapter *serv_adapter = data; DBusMessage *reply; const char *sender, *record; dbus_uint32_t handle; int err; if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &record, DBUS_TYPE_INVALID) == FALSE) return NULL; sender = dbus_message_get_sender(msg); err = add_xml_record(conn, sender, serv_adapter, record, &handle); if (err < 0) return btd_error_failed(msg, strerror(-err)); reply = dbus_message_new_method_return(msg); if (!reply) return NULL; dbus_message_append_args(reply, DBUS_TYPE_UINT32, &handle, DBUS_TYPE_INVALID); return reply; }
static DBusMessage *add_sdp_record(DBusConnection *conn, DBusMessage *msg, void *data) { const char *sender, *record; int err; debug("%s", __FUNCTION__); debug( "SDP: add_sdp_record conn=%p ", conn ); if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &record, DBUS_TYPE_INVALID) == FALSE) { error("SDP: error getting args"); return NULL; } debug( "SDP: add_sdp_record record=%s ", record ); sender = dbus_message_get_sender(msg); err = add_xml_record(conn, sender, record); if (err < 0) return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",strerror(err)); g_conn = dbus_connection_ref(conn); g_msg = dbus_message_ref(msg); return NULL; }