From 0b309d6ee433d55b7499d7bbd447494366ef1316 Mon Sep 17 00:00:00 2001 From: Jackson Fan Date: Tue, 21 Jul 2009 03:46:37 +0800 Subject: Improve Obex compatibility Handle headers with excessive whilespace Send correct reponse code when client abort onPut --- obex/javax/obex/ObexHelper.java | 5 +++++ obex/javax/obex/ServerSession.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'obex') diff --git a/obex/javax/obex/ObexHelper.java b/obex/javax/obex/ObexHelper.java index f569595..1b66662 100644 --- a/obex/javax/obex/ObexHelper.java +++ b/obex/javax/obex/ObexHelper.java @@ -897,6 +897,11 @@ public final class ObexHelper { if (lower < 0) { lower += 256; } + // If upper and lower both equal 0, it should be the end of string. + // Ignore left bytes from array to avoid potential issues + if (upper == 0 && lower == 0) { + return new String(c, 0, i); + } c[i] = (char)((upper << 8) | lower); } diff --git a/obex/javax/obex/ServerSession.java b/obex/javax/obex/ServerSession.java index 423d5a7..675272d 100644 --- a/obex/javax/obex/ServerSession.java +++ b/obex/javax/obex/ServerSession.java @@ -168,7 +168,7 @@ public final class ServerSession extends ObexSession implements Runnable { } else { response = validateResponseCode(mListener.onPut(op)); } - if (response != ResponseCodes.OBEX_HTTP_OK) { + if (response != ResponseCodes.OBEX_HTTP_OK && !op.isAborted) { op.sendReply(response); } else if (!op.isAborted) { // wait for the final bit -- cgit v1.1