Diff between b5a360fbfab6d6a0a1096895ec63c0751c3b55de and f427608f898dea5c778b3a2c5a804f8a5b188d17

Changed Files

File Additions Deletions Status
obexd/client/session.c +10 -3 modified

Full Patch

diff --git a/obexd/client/session.c b/obexd/client/session.c
index c127974..c9df832 100644
--- a/obexd/client/session.c
+++ b/obexd/client/session.c
@@ -687,9 +687,16 @@ static void session_terminate_transfer(struct obc_session *session,
 
 	obc_session_remove_transfer(session, transfer);
 
-	if (session->pending)
-		session_request(session, session_prepare_put,
-				session->pending->data);
+	while (session->pending != NULL) {
+		struct obc_transfer *transfer = session->pending->data;
+		int err;
+
+		err = session_request(session, session_prepare_put, transfer);
+		if (err == 0)
+			break;
+
+		obc_session_remove_transfer(session, transfer);
+	}
 
 	obc_session_unref(session);
 }