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
}
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;