Diff between 0e85627119d17a320baea67a563ab07d213f3a0d and f68dc7bd5a9894ec86de9ff9e236f617301ab147

Changed Files

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

Full Patch

diff --git a/obexd/client/session.c b/obexd/client/session.c
index 06c8673..f6d11d6 100644
--- a/obexd/client/session.c
+++ b/obexd/client/session.c
@@ -87,6 +87,13 @@ struct setpath_data {
 	void *user_data;
 };
 
+struct file_data {
+	char *srcname;
+	char *destname;
+	session_callback_t func;
+	void *user_data;
+};
+
 struct obc_session {
 	guint id;
 	int refcount;
@@ -189,6 +196,15 @@ static void setpath_data_free(void *process_data)
 	g_free(data);
 }
 
+static void file_data_free(void *process_data)
+{
+	struct file_data *data = process_data;
+
+	g_free(data->srcname);
+	g_free(data->destname);
+	g_free(data);
+}
+
 static void session_free(struct obc_session *session)
 {
 	DBG("%p", session);
@@ -1028,6 +1044,17 @@ done:
 	session_process_queue(session);
 }
 
+static void file_op_complete(struct obc_session *session,
+						struct obc_transfer *transfer,
+						GError *err, void *user_data)
+{
+	struct pending_request *p = user_data;
+	struct file_data *data = p->data;
+
+	if (data->func)
+		data->func(session, NULL, err, data->user_data);
+}
+
 guint obc_session_mkdir(struct obc_session *session, const char *folder,
 				session_callback_t func, void *user_data,
 				GError **err)