Loading core/java/android/net/http/CharArrayBuffers.javadeleted 100644 → 0 +0 −89 Original line number Original line Diff line number Diff line /* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.net.http; import org.apache.http.util.CharArrayBuffer; import org.apache.http.protocol.HTTP; /** * Utility methods for working on CharArrayBuffers. * * {@hide} */ class CharArrayBuffers { static final char uppercaseAddon = 'a' - 'A'; /** * Returns true if the buffer contains the given string. Ignores leading * whitespace and case. * * @param buffer to search * @param beginIndex index at which we should start * @param str to search for */ static boolean containsIgnoreCaseTrimmed(CharArrayBuffer buffer, int beginIndex, final String str) { int len = buffer.length(); char[] chars = buffer.buffer(); while (beginIndex < len && HTTP.isWhitespace(chars[beginIndex])) { beginIndex++; } int size = str.length(); boolean ok = len >= beginIndex + size; for (int j=0; ok && (j<size); j++) { char a = chars[beginIndex+j]; char b = str.charAt(j); if (a != b) { a = toLower(a); b = toLower(b); ok = a == b; } } return ok; } /** * Returns index of first occurence ch. Lower cases characters leading up * to first occurrence of ch. */ static int setLowercaseIndexOf(CharArrayBuffer buffer, final int ch) { int beginIndex = 0; int endIndex = buffer.length(); char[] chars = buffer.buffer(); for (int i = beginIndex; i < endIndex; i++) { char current = chars[i]; if (current == ch) { return i; } else if (current >= 'A' && current <= 'Z'){ // make lower case current += uppercaseAddon; chars[i] = current; } } return -1; } private static char toLower(char c) { if (c >= 'A' && c <= 'Z'){ c += uppercaseAddon; } return c; } } core/java/android/net/http/Headers.java +55 −4 Original line number Original line Diff line number Diff line Loading @@ -158,7 +158,7 @@ public final class Headers { } } public void parseHeader(CharArrayBuffer buffer) { public void parseHeader(CharArrayBuffer buffer) { int pos = CharArrayBuffers.setLowercaseIndexOf(buffer, ':'); int pos = setLowercaseIndexOf(buffer, ':'); if (pos == -1) { if (pos == -1) { return; return; } } Loading Loading @@ -459,12 +459,63 @@ public final class Headers { } } private void setConnectionType(CharArrayBuffer buffer, int pos) { private void setConnectionType(CharArrayBuffer buffer, int pos) { if (CharArrayBuffers.containsIgnoreCaseTrimmed( if (containsIgnoreCaseTrimmed(buffer, pos, HTTP.CONN_CLOSE)) { buffer, pos, HTTP.CONN_CLOSE)) { connectionType = CONN_CLOSE; connectionType = CONN_CLOSE; } else if (CharArrayBuffers.containsIgnoreCaseTrimmed( } else if (containsIgnoreCaseTrimmed( buffer, pos, HTTP.CONN_KEEP_ALIVE)) { buffer, pos, HTTP.CONN_KEEP_ALIVE)) { connectionType = CONN_KEEP_ALIVE; connectionType = CONN_KEEP_ALIVE; } } } } /** * Returns true if the buffer contains the given string. Ignores leading * whitespace and case. * * @param buffer to search * @param beginIndex index at which we should start * @param str to search for */ static boolean containsIgnoreCaseTrimmed(CharArrayBuffer buffer, int beginIndex, final String str) { int len = buffer.length(); char[] chars = buffer.buffer(); while (beginIndex < len && HTTP.isWhitespace(chars[beginIndex])) { beginIndex++; } int size = str.length(); boolean ok = len >= (beginIndex + size); for (int j=0; ok && (j < size); j++) { char a = chars[beginIndex + j]; char b = str.charAt(j); if (a != b) { a = Character.toLowerCase(a); b = Character.toLowerCase(b); ok = a == b; } } return true; } /** * Returns index of first occurence ch. Lower cases characters leading up * to first occurrence of ch. */ static int setLowercaseIndexOf(CharArrayBuffer buffer, final int ch) { int beginIndex = 0; int endIndex = buffer.length(); char[] chars = buffer.buffer(); for (int i = beginIndex; i < endIndex; i++) { char current = chars[i]; if (current == ch) { return i; } else { chars[i] = Character.toLowerCase(current); } } return -1; } } } core/java/android/net/http/X509TrustManagerExtensions.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -36,7 +36,7 @@ import javax.net.ssl.X509TrustManager; */ */ public class X509TrustManagerExtensions { public class X509TrustManagerExtensions { TrustManagerImpl mDelegate; final TrustManagerImpl mDelegate; /** /** * Constructs a new X509TrustManagerExtensions wrapper. * Constructs a new X509TrustManagerExtensions wrapper. Loading @@ -48,6 +48,7 @@ public class X509TrustManagerExtensions { if (tm instanceof TrustManagerImpl) { if (tm instanceof TrustManagerImpl) { mDelegate = (TrustManagerImpl) tm; mDelegate = (TrustManagerImpl) tm; } else { } else { mDelegate = null; throw new IllegalArgumentException("tm is an instance of " + tm.getClass().getName() + throw new IllegalArgumentException("tm is an instance of " + tm.getClass().getName() + " which is not a supported type of X509TrustManager"); " which is not a supported type of X509TrustManager"); } } Loading Loading
core/java/android/net/http/CharArrayBuffers.javadeleted 100644 → 0 +0 −89 Original line number Original line Diff line number Diff line /* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.net.http; import org.apache.http.util.CharArrayBuffer; import org.apache.http.protocol.HTTP; /** * Utility methods for working on CharArrayBuffers. * * {@hide} */ class CharArrayBuffers { static final char uppercaseAddon = 'a' - 'A'; /** * Returns true if the buffer contains the given string. Ignores leading * whitespace and case. * * @param buffer to search * @param beginIndex index at which we should start * @param str to search for */ static boolean containsIgnoreCaseTrimmed(CharArrayBuffer buffer, int beginIndex, final String str) { int len = buffer.length(); char[] chars = buffer.buffer(); while (beginIndex < len && HTTP.isWhitespace(chars[beginIndex])) { beginIndex++; } int size = str.length(); boolean ok = len >= beginIndex + size; for (int j=0; ok && (j<size); j++) { char a = chars[beginIndex+j]; char b = str.charAt(j); if (a != b) { a = toLower(a); b = toLower(b); ok = a == b; } } return ok; } /** * Returns index of first occurence ch. Lower cases characters leading up * to first occurrence of ch. */ static int setLowercaseIndexOf(CharArrayBuffer buffer, final int ch) { int beginIndex = 0; int endIndex = buffer.length(); char[] chars = buffer.buffer(); for (int i = beginIndex; i < endIndex; i++) { char current = chars[i]; if (current == ch) { return i; } else if (current >= 'A' && current <= 'Z'){ // make lower case current += uppercaseAddon; chars[i] = current; } } return -1; } private static char toLower(char c) { if (c >= 'A' && c <= 'Z'){ c += uppercaseAddon; } return c; } }
core/java/android/net/http/Headers.java +55 −4 Original line number Original line Diff line number Diff line Loading @@ -158,7 +158,7 @@ public final class Headers { } } public void parseHeader(CharArrayBuffer buffer) { public void parseHeader(CharArrayBuffer buffer) { int pos = CharArrayBuffers.setLowercaseIndexOf(buffer, ':'); int pos = setLowercaseIndexOf(buffer, ':'); if (pos == -1) { if (pos == -1) { return; return; } } Loading Loading @@ -459,12 +459,63 @@ public final class Headers { } } private void setConnectionType(CharArrayBuffer buffer, int pos) { private void setConnectionType(CharArrayBuffer buffer, int pos) { if (CharArrayBuffers.containsIgnoreCaseTrimmed( if (containsIgnoreCaseTrimmed(buffer, pos, HTTP.CONN_CLOSE)) { buffer, pos, HTTP.CONN_CLOSE)) { connectionType = CONN_CLOSE; connectionType = CONN_CLOSE; } else if (CharArrayBuffers.containsIgnoreCaseTrimmed( } else if (containsIgnoreCaseTrimmed( buffer, pos, HTTP.CONN_KEEP_ALIVE)) { buffer, pos, HTTP.CONN_KEEP_ALIVE)) { connectionType = CONN_KEEP_ALIVE; connectionType = CONN_KEEP_ALIVE; } } } } /** * Returns true if the buffer contains the given string. Ignores leading * whitespace and case. * * @param buffer to search * @param beginIndex index at which we should start * @param str to search for */ static boolean containsIgnoreCaseTrimmed(CharArrayBuffer buffer, int beginIndex, final String str) { int len = buffer.length(); char[] chars = buffer.buffer(); while (beginIndex < len && HTTP.isWhitespace(chars[beginIndex])) { beginIndex++; } int size = str.length(); boolean ok = len >= (beginIndex + size); for (int j=0; ok && (j < size); j++) { char a = chars[beginIndex + j]; char b = str.charAt(j); if (a != b) { a = Character.toLowerCase(a); b = Character.toLowerCase(b); ok = a == b; } } return true; } /** * Returns index of first occurence ch. Lower cases characters leading up * to first occurrence of ch. */ static int setLowercaseIndexOf(CharArrayBuffer buffer, final int ch) { int beginIndex = 0; int endIndex = buffer.length(); char[] chars = buffer.buffer(); for (int i = beginIndex; i < endIndex; i++) { char current = chars[i]; if (current == ch) { return i; } else { chars[i] = Character.toLowerCase(current); } } return -1; } } }
core/java/android/net/http/X509TrustManagerExtensions.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -36,7 +36,7 @@ import javax.net.ssl.X509TrustManager; */ */ public class X509TrustManagerExtensions { public class X509TrustManagerExtensions { TrustManagerImpl mDelegate; final TrustManagerImpl mDelegate; /** /** * Constructs a new X509TrustManagerExtensions wrapper. * Constructs a new X509TrustManagerExtensions wrapper. Loading @@ -48,6 +48,7 @@ public class X509TrustManagerExtensions { if (tm instanceof TrustManagerImpl) { if (tm instanceof TrustManagerImpl) { mDelegate = (TrustManagerImpl) tm; mDelegate = (TrustManagerImpl) tm; } else { } else { mDelegate = null; throw new IllegalArgumentException("tm is an instance of " + tm.getClass().getName() + throw new IllegalArgumentException("tm is an instance of " + tm.getClass().getName() + " which is not a supported type of X509TrustManager"); " which is not a supported type of X509TrustManager"); } } Loading