diff --git a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyCodecUtil.java b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyCodecUtil.java index 4dedeff9b6..41c64d2a8d 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyCodecUtil.java +++ b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyCodecUtil.java @@ -235,35 +235,6 @@ final class SpdyCodecUtil { 0x2c, 0x65, 0x6e, 0x71, 0x3d, 0x30, 0x2e // - e n q - 0 - }; - private static final String SPDY2_DICT_S = - "optionsgetheadpostputdeletetraceacceptaccept-charsetaccept-encodingaccept-" + - "languageauthorizationexpectfromhostif-modified-sinceif-matchif-none-matchi" + - "f-rangeif-unmodifiedsincemax-forwardsproxy-authorizationrangerefererteuser" + - "-agent10010120020120220320420520630030130230330430530630740040140240340440" + - "5406407408409410411412413414415416417500501502503504505accept-rangesageeta" + - "glocationproxy-authenticatepublicretry-afterservervarywarningwww-authentic" + - "ateallowcontent-basecontent-encodingcache-controlconnectiondatetrailertran" + - "sfer-encodingupgradeviawarningcontent-languagecontent-lengthcontent-locati" + - "oncontent-md5content-rangecontent-typeetagexpireslast-modifiedset-cookieMo" + - "ndayTuesdayWednesdayThursdayFridaySaturdaySundayJanFebMarAprMayJunJulAugSe" + - "pOctNovDecchunkedtext/htmlimage/pngimage/jpgimage/gifapplication/xmlapplic" + - "ation/xhtmltext/plainpublicmax-agecharset=iso-8859-1utf-8gzipdeflateHTTP/1" + - ".1statusversionurl "; - static final byte[] SPDY2_DICT; - static { - byte[] SPDY2_DICT_; - - try { - SPDY2_DICT_ = SPDY2_DICT_S.getBytes(CharsetUtil.US_ASCII); - // dictionary is null terminated - SPDY2_DICT_[SPDY2_DICT_.length - 1] = 0; - } catch (Exception e) { - SPDY2_DICT_ = new byte[1]; - } - - SPDY2_DICT = SPDY2_DICT_; - } - private SpdyCodecUtil() { } diff --git a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaderBlockJZlibEncoder.java b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaderBlockJZlibEncoder.java index e391c72ab4..a1b9f8a6e7 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaderBlockJZlibEncoder.java +++ b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaderBlockJZlibEncoder.java @@ -52,11 +52,7 @@ class SpdyHeaderBlockJZlibEncoder extends SpdyHeaderBlockRawEncoder { throw new CompressionException( "failed to initialize an SPDY header block deflater: " + resultCode); } else { - if (version.getVersion() < 3) { - resultCode = z.deflateSetDictionary(SPDY2_DICT, SPDY2_DICT.length); - } else { - resultCode = z.deflateSetDictionary(SPDY_DICT, SPDY_DICT.length); - } + resultCode = z.deflateSetDictionary(SPDY_DICT, SPDY_DICT.length); if (resultCode != JZlib.Z_OK) { throw new CompressionException( "failed to set the SPDY dictionary: " + resultCode); diff --git a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaderBlockZlibDecoder.java b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaderBlockZlibDecoder.java index 2e2fa34bb9..ab1464d11d 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaderBlockZlibDecoder.java +++ b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaderBlockZlibDecoder.java @@ -25,7 +25,6 @@ import static io.netty.handler.codec.spdy.SpdyCodecUtil.*; class SpdyHeaderBlockZlibDecoder extends SpdyHeaderBlockRawDecoder { - private final int version; private final byte[] out = new byte[8192]; private final Inflater decompressor = new Inflater(); @@ -33,7 +32,6 @@ class SpdyHeaderBlockZlibDecoder extends SpdyHeaderBlockRawDecoder { public SpdyHeaderBlockZlibDecoder(SpdyVersion version, int maxHeaderSize) { super(version, maxHeaderSize); - this.version = version.getVersion(); } @Override @@ -59,11 +57,7 @@ class SpdyHeaderBlockZlibDecoder extends SpdyHeaderBlockRawDecoder { try { int numBytes = decompressor.inflate(out); if (numBytes == 0 && decompressor.needsDictionary()) { - if (version < 3) { - decompressor.setDictionary(SPDY2_DICT); - } else { - decompressor.setDictionary(SPDY_DICT); - } + decompressor.setDictionary(SPDY_DICT); numBytes = decompressor.inflate(out); } if (frame != null) { diff --git a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaderBlockZlibEncoder.java b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaderBlockZlibEncoder.java index 56f52f6ea5..45ede14bae 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaderBlockZlibEncoder.java +++ b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaderBlockZlibEncoder.java @@ -37,11 +37,7 @@ class SpdyHeaderBlockZlibEncoder extends SpdyHeaderBlockRawEncoder { "compressionLevel: " + compressionLevel + " (expected: 0-9)"); } compressor = new Deflater(compressionLevel); - if (version.getVersion() < 3) { - compressor.setDictionary(SPDY2_DICT); - } else { - compressor.setDictionary(SPDY_DICT); - } + compressor.setDictionary(SPDY_DICT); } private void setInput(ByteBuf decompressed) { diff --git a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaders.java b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaders.java index 3e073370d2..aebaa08043 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaders.java +++ b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHeaders.java @@ -131,34 +131,6 @@ public abstract class SpdyHeaders implements Iterable> private HttpNames() { } } - /** - * SPDY/2 HTTP header names - */ - public static final class Spdy2HttpNames { - /** - * {@code "method"} - */ - public static final String METHOD = "method"; - /** - * {@code "scheme"} - */ - public static final String SCHEME = "scheme"; - /** - * {@code "status"} - */ - public static final String STATUS = "status"; - /** - * {@code "url"} - */ - public static final String URL = "url"; - /** - * {@code "version"} - */ - public static final String VERSION = "version"; - - private Spdy2HttpNames() { } - } - /** * Returns the header value with the specified header name. If there are * more than one header value for the specified header name, the first @@ -234,11 +206,7 @@ public abstract class SpdyHeaders implements Iterable> * Removes the HTTP method header. */ public static void removeMethod(int spdyVersion, SpdyHeadersFrame frame) { - if (spdyVersion < 3) { - frame.headers().remove(Spdy2HttpNames.METHOD); - } else { - frame.headers().remove(HttpNames.METHOD); - } + frame.headers().remove(HttpNames.METHOD); } /** @@ -246,11 +214,7 @@ public abstract class SpdyHeaders implements Iterable> */ public static HttpMethod getMethod(int spdyVersion, SpdyHeadersFrame frame) { try { - if (spdyVersion < 3) { - return HttpMethod.valueOf(frame.headers().get(Spdy2HttpNames.METHOD)); - } else { - return HttpMethod.valueOf(frame.headers().get(HttpNames.METHOD)); - } + return HttpMethod.valueOf(frame.headers().get(HttpNames.METHOD)); } catch (Exception e) { return null; } @@ -260,55 +224,35 @@ public abstract class SpdyHeaders implements Iterable> * Sets the HTTP method header. */ public static void setMethod(int spdyVersion, SpdyHeadersFrame frame, HttpMethod method) { - if (spdyVersion < 3) { - frame.headers().set(Spdy2HttpNames.METHOD, method.name()); - } else { - frame.headers().set(HttpNames.METHOD, method.name()); - } + frame.headers().set(HttpNames.METHOD, method.name()); } /** * Removes the URL scheme header. */ public static void removeScheme(int spdyVersion, SpdyHeadersFrame frame) { - if (spdyVersion < 2) { - frame.headers().remove(Spdy2HttpNames.SCHEME); - } else { - frame.headers().remove(HttpNames.SCHEME); - } + frame.headers().remove(HttpNames.SCHEME); } /** * Returns the value of the URL scheme header. */ public static String getScheme(int spdyVersion, SpdyHeadersFrame frame) { - if (spdyVersion < 3) { - return frame.headers().get(Spdy2HttpNames.SCHEME); - } else { - return frame.headers().get(HttpNames.SCHEME); - } + return frame.headers().get(HttpNames.SCHEME); } /** * Sets the URL scheme header. */ public static void setScheme(int spdyVersion, SpdyHeadersFrame frame, String scheme) { - if (spdyVersion < 3) { - frame.headers().set(Spdy2HttpNames.SCHEME, scheme); - } else { - frame.headers().set(HttpNames.SCHEME, scheme); - } + frame.headers().set(HttpNames.SCHEME, scheme); } /** * Removes the HTTP response status header. */ public static void removeStatus(int spdyVersion, SpdyHeadersFrame frame) { - if (spdyVersion < 3) { - frame.headers().remove(Spdy2HttpNames.STATUS); - } else { - frame.headers().remove(HttpNames.STATUS); - } + frame.headers().remove(HttpNames.STATUS); } /** @@ -316,12 +260,7 @@ public abstract class SpdyHeaders implements Iterable> */ public static HttpResponseStatus getStatus(int spdyVersion, SpdyHeadersFrame frame) { try { - String status; - if (spdyVersion < 3) { - status = frame.headers().get(Spdy2HttpNames.STATUS); - } else { - status = frame.headers().get(HttpNames.STATUS); - } + String status = frame.headers().get(HttpNames.STATUS); int space = status.indexOf(' '); if (space == -1) { return HttpResponseStatus.valueOf(Integer.parseInt(status)); @@ -344,55 +283,35 @@ public abstract class SpdyHeaders implements Iterable> * Sets the HTTP response status header. */ public static void setStatus(int spdyVersion, SpdyHeadersFrame frame, HttpResponseStatus status) { - if (spdyVersion < 3) { - frame.headers().set(Spdy2HttpNames.STATUS, status.toString()); - } else { - frame.headers().set(HttpNames.STATUS, status.toString()); - } + frame.headers().set(HttpNames.STATUS, status.toString()); } /** * Removes the URL path header. */ public static void removeUrl(int spdyVersion, SpdyHeadersFrame frame) { - if (spdyVersion < 3) { - frame.headers().remove(Spdy2HttpNames.URL); - } else { - frame.headers().remove(HttpNames.PATH); - } + frame.headers().remove(HttpNames.PATH); } /** * Returns the value of the URL path header. */ public static String getUrl(int spdyVersion, SpdyHeadersFrame frame) { - if (spdyVersion < 3) { - return frame.headers().get(Spdy2HttpNames.URL); - } else { - return frame.headers().get(HttpNames.PATH); - } + return frame.headers().get(HttpNames.PATH); } /** * Sets the URL path header. */ public static void setUrl(int spdyVersion, SpdyHeadersFrame frame, String path) { - if (spdyVersion < 3) { - frame.headers().set(Spdy2HttpNames.URL, path); - } else { - frame.headers().set(HttpNames.PATH, path); - } + frame.headers().set(HttpNames.PATH, path); } /** * Removes the HTTP version header. */ public static void removeVersion(int spdyVersion, SpdyHeadersFrame frame) { - if (spdyVersion < 3) { - frame.headers().remove(Spdy2HttpNames.VERSION); - } else { - frame.headers().remove(HttpNames.VERSION); - } + frame.headers().remove(HttpNames.VERSION); } /** @@ -400,11 +319,7 @@ public abstract class SpdyHeaders implements Iterable> */ public static HttpVersion getVersion(int spdyVersion, SpdyHeadersFrame frame) { try { - if (spdyVersion < 3) { - return HttpVersion.valueOf(frame.headers().get(Spdy2HttpNames.VERSION)); - } else { - return HttpVersion.valueOf(frame.headers().get(HttpNames.VERSION)); - } + return HttpVersion.valueOf(frame.headers().get(HttpNames.VERSION)); } catch (Exception e) { return null; } @@ -414,12 +329,9 @@ public abstract class SpdyHeaders implements Iterable> * Sets the HTTP version header. */ public static void setVersion(int spdyVersion, SpdyHeadersFrame frame, HttpVersion httpVersion) { - if (spdyVersion < 3) { - frame.headers().set(Spdy2HttpNames.VERSION, httpVersion.text()); - } else { - frame.headers().set(HttpNames.VERSION, httpVersion.text()); - } + frame.headers().set(HttpNames.VERSION, httpVersion.text()); } + @Override public Iterator> iterator() { return entries().iterator(); @@ -440,7 +352,7 @@ public abstract class SpdyHeaders implements Iterable> * @return the {@link List} of header values. An empty list if there is no * such header. */ - public abstract List getAll(String name); + public abstract List getAll(String name); /** * Returns all header names and values that this frame contains. @@ -448,13 +360,13 @@ public abstract class SpdyHeaders implements Iterable> * @return the {@link List} of the header name-value pairs. An empty list * if there is no header in this message. */ - public abstract List> entries(); + public abstract List> entries(); /** * Returns {@code true} if and only if there is a header with the specified * header name. */ - public abstract boolean contains(String name); + public abstract boolean contains(String name); /** * Returns the {@link Set} of all header names that this frame contains.