From ebf7f236a457a80ca474384e0d9244b7c4ad51ab Mon Sep 17 00:00:00 2001 From: Luiz Augusto Von Dentz Date: Thu, 29 Apr 2010 16:18:56 +0300 Subject: [PATCH] obexd: Fix mimetype driver selection not fallback to general default --- obexd/src/obex.c | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/obexd/src/obex.c b/obexd/src/obex.c index dbde5bd49..cb4779406 100644 --- a/obexd/src/obex.c +++ b/obexd/src/obex.c @@ -375,12 +375,20 @@ static void cmd_get(struct obex_session *os, obex_t *obex, obex_object_t *obj) } if (!os->driver) { - os->driver = obex_mime_type_driver_find(os->service->target, NULL, NULL, 0); + /* Fallback to target default */ + os->driver = obex_mime_type_driver_find(os->service->target, + NULL, NULL, 0); if (!os->driver) { - error("No driver found"); - OBEX_ObjectSetRsp(obj, OBEX_RSP_NOT_IMPLEMENTED, - OBEX_RSP_NOT_IMPLEMENTED); - return; + /* Fallback to general default */ + os->driver = obex_mime_type_driver_find(NULL, + NULL, NULL, 0); + if (!os->driver) { + error("No driver found"); + OBEX_ObjectSetRsp(obj, + OBEX_RSP_NOT_IMPLEMENTED, + OBEX_RSP_NOT_IMPLEMENTED); + return; + } } } @@ -759,13 +767,20 @@ static gboolean check_put(obex_t *obex, obex_object_t *obj) OBEX_ObjectReParseHeaders(obex, obj); if (!os->driver) { + /* Fallback to target default */ os->driver = obex_mime_type_driver_find(os->service->target, - NULL, NULL, 0); + NULL, NULL, 0); if (!os->driver) { - error("No driver found"); - OBEX_ObjectSetRsp(obj, OBEX_RSP_NOT_IMPLEMENTED, - OBEX_RSP_NOT_IMPLEMENTED); - return FALSE; + /* Fallback to general default */ + os->driver = obex_mime_type_driver_find(NULL, + NULL, NULL, 0); + if (!os->driver) { + error("No driver found"); + OBEX_ObjectSetRsp(obj, + OBEX_RSP_NOT_IMPLEMENTED, + OBEX_RSP_NOT_IMPLEMENTED); + return FALSE; + } } } -- 2.47.3