Diff between 67006129b120e3529597fb991bc3434101999f23 and e3567941804af0864a131786f6cec1ee0687e6dc

Changed Files

File Additions Deletions Status
obexd/client/session.c +16 -0 modified

Full Patch

diff --git a/obexd/client/session.c b/obexd/client/session.c
index e0dc91b..47902fc 100644
--- a/obexd/client/session.c
+++ b/obexd/client/session.c
@@ -645,6 +645,22 @@ static GDBusMethodTable session_methods[] = {
 static DBusMessage *change_folder(DBusConnection *connection,
 				DBusMessage *message, void *user_data)
 {
+	struct session_data *session = user_data;
+	const char *folder;
+	int err;
+
+	if (dbus_message_get_args(message, NULL,
+				DBUS_TYPE_STRING, &folder,
+				DBUS_TYPE_INVALID) == FALSE)
+		return g_dbus_create_error(message,
+				"org.openobex.Error.InvalidArguments", NULL);
+
+	if (gw_obex_chdir(session->obex, folder, &err) == FALSE) {
+		return g_dbus_create_error(message,
+				"org.openobex.Error.Failed",
+				OBEX_ResponseToString(err));
+	}
+
 	return dbus_message_new_method_return(message);
 }