Diff between de4786090f85ee2cfbfdc8882fd5712b96ee5127 and 3467bb836d1ede20f993c0a449d0be7e251f7e48

Changed Files

File Additions Deletions Status
obexd/src/obex.c +11 -0 modified

Full Patch

diff --git a/obexd/src/obex.c b/obexd/src/obex.c
index 788bffc..be79a77 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
@@ -864,6 +864,17 @@ static void cmd_put(GObex *obex, GObexPacket *req, gpointer user_data)
 		return;
 	}
 
+	/* OPP session don't require CONNECT, in which case just call connect
+	 * callback to register the transfer.
+	 */
+	if (!os->service_data && os->service->service == OBEX_OPP) {
+		os->service_data = os->service->connect(os, &err);
+		if (err < 0) {
+			os_set_response(os, err);
+			return;
+		}
+	}
+
 	parse_type(os, req);
 
 	if (os->driver == NULL) {