diff --git a/obexd/client/main.c b/obexd/client/main.c
index 71afb40..89b6c65 100644
--- a/obexd/client/main.c
+++ b/obexd/client/main.c
DBusMessage *message;
gchar *sender;
gchar *agent;
+ char *filename;
GPtrArray *files;
};
shutdown_session(session);
dbus_message_unref(data->message);
dbus_connection_unref(data->connection);
+ g_free(data->filename);
g_free(data->sender);
g_free(data);
}
session_set_owner(session, data->sender, owner_exit);
- session_pull(session, "text/x-vcard", "/tmp/x.vcf",
+ session_pull(session, "text/x-vcard", data->filename,
pull_complete_callback, data);
return;
done:
dbus_message_unref(data->message);
dbus_connection_unref(data->connection);
+ g_free(data->filename);
g_free(data->sender);
g_free(data);
}
struct session_data *session;
struct send_data *data;
const char *source = NULL, *dest = NULL, *target = NULL;
+ const char *name = NULL;
uint8_t channel = 0;
dbus_message_iter_init(message, &iter);
return g_dbus_create_error(message,
"org.openobex.Error.InvalidArguments", NULL);
+ dbus_message_iter_next(&iter);
+
+ if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING)
+ return g_dbus_create_error(message,
+ "org.openobex.Error.InvalidArguments", NULL);
+
+ dbus_message_iter_get_basic(&iter, &name);
+
data = g_try_malloc0(sizeof(*data));
if (data == NULL)
return g_dbus_create_error(message,
data->connection = dbus_connection_ref(connection);
data->message = dbus_message_ref(message);
data->sender = g_strdup(dbus_message_get_sender(message));
+ data->filename = g_strdup(name);
session = session_create(source, dest, "OPP", channel,
pull_session_callback, data);
dbus_message_unref(data->message);
dbus_connection_unref(data->connection);
g_free(data->sender);
+ g_free(data->filename);
g_free(data);
return g_dbus_create_error(message, "org.openobex.Error.Failed", NULL);