Пример #1
0
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;
}