Diff between 501fa35265d006dadfc4c6902d2845c0894a796c and 6b7b19c97220a040ee5fe3e9e77f08a43c9073fb

Changed Files

File Additions Deletions Status
obexd/client/ftp.c +18 -0 modified

Full Patch

diff --git a/obexd/client/ftp.c b/obexd/client/ftp.c
index 5550a01..159bf47 100644
--- a/obexd/client/ftp.c
+++ b/obexd/client/ftp.c
@@ -310,6 +310,24 @@ static DBusMessage *put_file(DBusConnection *connection,
 static DBusMessage *copy_file(DBusConnection *connection,
 				DBusMessage *message, void *user_data)
 {
+	struct ftp_data *ftp = user_data;
+	struct obc_session *session = ftp->session;
+	GwObex *obex = obc_session_get_obex(session);
+	const char *filename, *destname;
+	int err;
+
+	if (dbus_message_get_args(message, NULL,
+				DBUS_TYPE_STRING, &filename,
+				DBUS_TYPE_STRING, &destname,
+				DBUS_TYPE_INVALID) == FALSE)
+		return g_dbus_create_error(message,
+				"org.openobex.Error.InvalidArguments", NULL);
+
+	if (gw_obex_copy(obex, filename, destname, &err) == FALSE)
+		return g_dbus_create_error(message,
+				"org.openobex.Error.Failed",
+				"%s", OBEX_ResponseToString(err));
+
 	return dbus_message_new_method_return(message);
 }