Diff between d9586a86b4f846df791f14bcc9040e00ffc52fa9 and 0d00c0713f31faf6d0d4cbf9edcb17bba8cab78f

Changed Files

File Additions Deletions Status
obexd/src/obex.c +12 -3 modified

Full Patch

diff --git a/obexd/src/obex.c b/obexd/src/obex.c
index 3e68a62..0168f81 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
@@ -810,9 +810,18 @@ static void obex_event(obex_t *obex, obex_object_t *obj, gint mode,
 		}
 		break;
 	case OBEX_EV_STREAMAVAIL:
-		if (obex_read_stream(os, obex, obj) < 0) {
-			debug("error obex_read()");
-			OBEX_CancelRequest(obex, 1);
+		switch (obex_read_stream(os, obex, obj)) {
+		case 0:
+			break;
+		case -EPERM:
+			OBEX_ObjectSetRsp(obj,
+				OBEX_RSP_FORBIDDEN, OBEX_RSP_FORBIDDEN);
+			break;
+		default:
+			OBEX_ObjectSetRsp(obj,
+				OBEX_RSP_INTERNAL_SERVER_ERROR,
+				OBEX_RSP_INTERNAL_SERVER_ERROR);
+			break;
 		}
 
 		break;