Remove 'get' prefix from all HTTP/SPDY messages
Motivation: Persuit for the consistency in method naming Modifications: - Remove the 'get' prefix from all HTTP/SPDY message classes - Fix some inspector warnings Result: Consistency Fixes #2594
This commit is contained in:
parent
30e22f5da3
commit
4a13f66e13
@ -15,13 +15,11 @@
|
||||
*/
|
||||
package io.netty.buffer;
|
||||
|
||||
import static io.netty.buffer.Unpooled.LITTLE_ENDIAN;
|
||||
import static io.netty.util.ReferenceCountUtil.releaseLater;
|
||||
import static org.junit.Assert.*;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import org.junit.Test;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* Tests sliced channel buffers
|
||||
|
@ -80,27 +80,27 @@ public final class ClientCookieEncoder {
|
||||
}
|
||||
|
||||
private static void encode(StringBuilder buf, Cookie c) {
|
||||
if (c.getVersion() >= 1) {
|
||||
if (c.version() >= 1) {
|
||||
add(buf, '$' + CookieHeaderNames.VERSION, 1);
|
||||
}
|
||||
|
||||
add(buf, c.getName(), c.getValue());
|
||||
add(buf, c.name(), c.value());
|
||||
|
||||
if (c.getPath() != null) {
|
||||
add(buf, '$' + CookieHeaderNames.PATH, c.getPath());
|
||||
if (c.path() != null) {
|
||||
add(buf, '$' + CookieHeaderNames.PATH, c.path());
|
||||
}
|
||||
|
||||
if (c.getDomain() != null) {
|
||||
add(buf, '$' + CookieHeaderNames.DOMAIN, c.getDomain());
|
||||
if (c.domain() != null) {
|
||||
add(buf, '$' + CookieHeaderNames.DOMAIN, c.domain());
|
||||
}
|
||||
|
||||
if (c.getVersion() >= 1) {
|
||||
if (!c.getPorts().isEmpty()) {
|
||||
if (c.version() >= 1) {
|
||||
if (!c.ports().isEmpty()) {
|
||||
buf.append('$');
|
||||
buf.append(CookieHeaderNames.PORT);
|
||||
buf.append((char) HttpConstants.EQUALS);
|
||||
buf.append((char) HttpConstants.DOUBLE_QUOTE);
|
||||
for (int port: c.getPorts()) {
|
||||
for (int port: c.ports()) {
|
||||
buf.append(port);
|
||||
buf.append((char) HttpConstants.COMMA);
|
||||
}
|
||||
|
@ -60,10 +60,16 @@ final class ComposedLastHttpContent implements LastHttpContent {
|
||||
}
|
||||
|
||||
@Override
|
||||
public DecoderResult getDecoderResult() {
|
||||
public DecoderResult decoderResult() {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public DecoderResult getDecoderResult() {
|
||||
return decoderResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDecoderResult(DecoderResult result) {
|
||||
this.result = result;
|
||||
|
@ -23,19 +23,31 @@ import java.util.Set;
|
||||
*/
|
||||
public interface Cookie extends Comparable<Cookie> {
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #name()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
String getName();
|
||||
|
||||
/**
|
||||
* Returns the name of this {@link Cookie}.
|
||||
*
|
||||
* @return The name of this {@link Cookie}
|
||||
*/
|
||||
String getName();
|
||||
String name();
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #value()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
String getValue();
|
||||
|
||||
/**
|
||||
* Returns the value of this {@link Cookie}.
|
||||
*
|
||||
* @return The value of this {@link Cookie}
|
||||
*/
|
||||
String getValue();
|
||||
String value();
|
||||
|
||||
/**
|
||||
* Sets the value of this {@link Cookie}.
|
||||
@ -44,12 +56,18 @@ public interface Cookie extends Comparable<Cookie> {
|
||||
*/
|
||||
void setValue(String value);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #domain()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
String getDomain();
|
||||
|
||||
/**
|
||||
* Returns the domain of this {@link Cookie}.
|
||||
*
|
||||
* @return The domain of this {@link Cookie}
|
||||
*/
|
||||
String getDomain();
|
||||
String domain();
|
||||
|
||||
/**
|
||||
* Sets the domain of this {@link Cookie}.
|
||||
@ -58,12 +76,18 @@ public interface Cookie extends Comparable<Cookie> {
|
||||
*/
|
||||
void setDomain(String domain);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #path()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
String getPath();
|
||||
|
||||
/**
|
||||
* Returns the path of this {@link Cookie}.
|
||||
*
|
||||
* @return The {@link Cookie}'s path
|
||||
*/
|
||||
String getPath();
|
||||
String path();
|
||||
|
||||
/**
|
||||
* Sets the path of this {@link Cookie}.
|
||||
@ -72,12 +96,18 @@ public interface Cookie extends Comparable<Cookie> {
|
||||
*/
|
||||
void setPath(String path);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #comment()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
String getComment();
|
||||
|
||||
/**
|
||||
* Returns the comment of this {@link Cookie}.
|
||||
*
|
||||
* @return The comment of this {@link Cookie}
|
||||
*/
|
||||
String getComment();
|
||||
String comment();
|
||||
|
||||
/**
|
||||
* Sets the comment of this {@link Cookie}.
|
||||
@ -86,12 +116,18 @@ public interface Cookie extends Comparable<Cookie> {
|
||||
*/
|
||||
void setComment(String comment);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #maxAge()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
long getMaxAge();
|
||||
|
||||
/**
|
||||
* Returns the maximum age of this {@link Cookie} in seconds or {@link Long#MIN_VALUE} if unspecified
|
||||
*
|
||||
* @return The maximum age of this {@link Cookie}
|
||||
*/
|
||||
long getMaxAge();
|
||||
long maxAge();
|
||||
|
||||
/**
|
||||
* Sets the maximum age of this {@link Cookie} in seconds.
|
||||
@ -104,12 +140,18 @@ public interface Cookie extends Comparable<Cookie> {
|
||||
*/
|
||||
void setMaxAge(long maxAge);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #version()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
int getVersion();
|
||||
|
||||
/**
|
||||
* Returns the version of this {@link Cookie}.
|
||||
*
|
||||
* @return The version of this {@link Cookie}
|
||||
*/
|
||||
int getVersion();
|
||||
int version();
|
||||
|
||||
/**
|
||||
* Sets the version of this {@link Cookie}.
|
||||
@ -153,12 +195,18 @@ public interface Cookie extends Comparable<Cookie> {
|
||||
*/
|
||||
void setHttpOnly(boolean httpOnly);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #commentUrl()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
String getCommentUrl();
|
||||
|
||||
/**
|
||||
* Returns the comment URL of this {@link Cookie}.
|
||||
*
|
||||
* @return The comment URL of this {@link Cookie}
|
||||
*/
|
||||
String getCommentUrl();
|
||||
String commentUrl();
|
||||
|
||||
/**
|
||||
* Sets the comment URL of this {@link Cookie}.
|
||||
@ -184,12 +232,18 @@ public interface Cookie extends Comparable<Cookie> {
|
||||
*/
|
||||
void setDiscard(boolean discard);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #ports()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
Set<Integer> getPorts();
|
||||
|
||||
/**
|
||||
* Returns the ports that this {@link Cookie} can be accessed on.
|
||||
*
|
||||
* @return The {@link Set} of ports that this {@link Cookie} can use
|
||||
*/
|
||||
Set<Integer> getPorts();
|
||||
Set<Integer> ports();
|
||||
|
||||
/**
|
||||
* Sets the ports that this {@link Cookie} can be accessed on.
|
||||
|
@ -78,12 +78,24 @@ public class DefaultCookie implements Cookie {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String getName() {
|
||||
return name();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String getValue() {
|
||||
return value();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String value() {
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -96,7 +108,13 @@ public class DefaultCookie implements Cookie {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String getDomain() {
|
||||
return domain();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String domain() {
|
||||
return domain;
|
||||
}
|
||||
|
||||
@ -106,7 +124,13 @@ public class DefaultCookie implements Cookie {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String getPath() {
|
||||
return path();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String path() {
|
||||
return path;
|
||||
}
|
||||
|
||||
@ -116,7 +140,13 @@ public class DefaultCookie implements Cookie {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String getComment() {
|
||||
return comment();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String comment() {
|
||||
return comment;
|
||||
}
|
||||
|
||||
@ -126,7 +156,13 @@ public class DefaultCookie implements Cookie {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String getCommentUrl() {
|
||||
return commentUrl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String commentUrl() {
|
||||
return commentUrl;
|
||||
}
|
||||
|
||||
@ -146,7 +182,13 @@ public class DefaultCookie implements Cookie {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public Set<Integer> getPorts() {
|
||||
return ports();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<Integer> ports() {
|
||||
if (unmodifiablePorts == null) {
|
||||
unmodifiablePorts = Collections.unmodifiableSet(ports);
|
||||
}
|
||||
@ -193,7 +235,13 @@ public class DefaultCookie implements Cookie {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public long getMaxAge() {
|
||||
return maxAge();
|
||||
}
|
||||
|
||||
@Override
|
||||
public long maxAge() {
|
||||
return maxAge;
|
||||
}
|
||||
|
||||
@ -203,7 +251,13 @@ public class DefaultCookie implements Cookie {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public int getVersion() {
|
||||
return version();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int version() {
|
||||
return version;
|
||||
}
|
||||
|
||||
@ -234,7 +288,7 @@ public class DefaultCookie implements Cookie {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return getName().hashCode();
|
||||
return name().hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -244,28 +298,28 @@ public class DefaultCookie implements Cookie {
|
||||
}
|
||||
|
||||
Cookie that = (Cookie) o;
|
||||
if (!getName().equalsIgnoreCase(that.getName())) {
|
||||
if (!name().equalsIgnoreCase(that.name())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getPath() == null) {
|
||||
if (that.getPath() != null) {
|
||||
if (path() == null) {
|
||||
if (that.path() != null) {
|
||||
return false;
|
||||
}
|
||||
} else if (that.getPath() == null) {
|
||||
} else if (that.path() == null) {
|
||||
return false;
|
||||
} else if (!getPath().equals(that.getPath())) {
|
||||
} else if (!path().equals(that.path())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getDomain() == null) {
|
||||
if (that.getDomain() != null) {
|
||||
if (domain() == null) {
|
||||
if (that.domain() != null) {
|
||||
return false;
|
||||
}
|
||||
} else if (that.getDomain() == null) {
|
||||
} else if (that.domain() == null) {
|
||||
return false;
|
||||
} else {
|
||||
return getDomain().equalsIgnoreCase(that.getDomain());
|
||||
return domain().equalsIgnoreCase(that.domain());
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -274,32 +328,32 @@ public class DefaultCookie implements Cookie {
|
||||
@Override
|
||||
public int compareTo(Cookie c) {
|
||||
int v;
|
||||
v = getName().compareToIgnoreCase(c.getName());
|
||||
v = name().compareToIgnoreCase(c.name());
|
||||
if (v != 0) {
|
||||
return v;
|
||||
}
|
||||
|
||||
if (getPath() == null) {
|
||||
if (c.getPath() != null) {
|
||||
if (path() == null) {
|
||||
if (c.path() != null) {
|
||||
return -1;
|
||||
}
|
||||
} else if (c.getPath() == null) {
|
||||
} else if (c.path() == null) {
|
||||
return 1;
|
||||
} else {
|
||||
v = getPath().compareTo(c.getPath());
|
||||
v = path().compareTo(c.path());
|
||||
if (v != 0) {
|
||||
return v;
|
||||
}
|
||||
}
|
||||
|
||||
if (getDomain() == null) {
|
||||
if (c.getDomain() != null) {
|
||||
if (domain() == null) {
|
||||
if (c.domain() != null) {
|
||||
return -1;
|
||||
}
|
||||
} else if (c.getDomain() == null) {
|
||||
} else if (c.domain() == null) {
|
||||
return 1;
|
||||
} else {
|
||||
v = getDomain().compareToIgnoreCase(c.getDomain());
|
||||
v = domain().compareToIgnoreCase(c.domain());
|
||||
return v;
|
||||
}
|
||||
|
||||
@ -309,24 +363,24 @@ public class DefaultCookie implements Cookie {
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder buf = new StringBuilder();
|
||||
buf.append(getName());
|
||||
buf.append(name());
|
||||
buf.append('=');
|
||||
buf.append(getValue());
|
||||
if (getDomain() != null) {
|
||||
buf.append(value());
|
||||
if (domain() != null) {
|
||||
buf.append(", domain=");
|
||||
buf.append(getDomain());
|
||||
buf.append(domain());
|
||||
}
|
||||
if (getPath() != null) {
|
||||
if (path() != null) {
|
||||
buf.append(", path=");
|
||||
buf.append(getPath());
|
||||
buf.append(path());
|
||||
}
|
||||
if (getComment() != null) {
|
||||
if (comment() != null) {
|
||||
buf.append(", comment=");
|
||||
buf.append(getComment());
|
||||
buf.append(comment());
|
||||
}
|
||||
if (getMaxAge() >= 0) {
|
||||
if (maxAge() >= 0) {
|
||||
buf.append(", maxAge=");
|
||||
buf.append(getMaxAge());
|
||||
buf.append(maxAge());
|
||||
buf.append('s');
|
||||
}
|
||||
if (isSecure()) {
|
||||
|
@ -103,7 +103,7 @@ public class DefaultFullHttpRequest extends DefaultHttpRequest implements FullHt
|
||||
@Override
|
||||
public FullHttpRequest copy() {
|
||||
DefaultFullHttpRequest copy = new DefaultFullHttpRequest(
|
||||
getProtocolVersion(), getMethod(), getUri(), content().copy(), validateHeaders);
|
||||
protocolVersion(), method(), uri(), content().copy(), validateHeaders);
|
||||
copy.headers().set(headers());
|
||||
copy.trailingHeaders().set(trailingHeaders());
|
||||
return copy;
|
||||
@ -112,7 +112,7 @@ public class DefaultFullHttpRequest extends DefaultHttpRequest implements FullHt
|
||||
@Override
|
||||
public FullHttpRequest duplicate() {
|
||||
DefaultFullHttpRequest duplicate = new DefaultFullHttpRequest(
|
||||
getProtocolVersion(), getMethod(), getUri(), content().duplicate(), validateHeaders);
|
||||
protocolVersion(), method(), uri(), content().duplicate(), validateHeaders);
|
||||
duplicate.headers().set(headers());
|
||||
duplicate.trailingHeaders().set(trailingHeaders());
|
||||
return duplicate;
|
||||
|
@ -99,7 +99,7 @@ public class DefaultFullHttpResponse extends DefaultHttpResponse implements Full
|
||||
@Override
|
||||
public FullHttpResponse copy() {
|
||||
DefaultFullHttpResponse copy = new DefaultFullHttpResponse(
|
||||
getProtocolVersion(), getStatus(), content().copy(), validateHeaders);
|
||||
protocolVersion(), status(), content().copy(), validateHeaders);
|
||||
copy.headers().set(headers());
|
||||
copy.trailingHeaders().set(trailingHeaders());
|
||||
return copy;
|
||||
@ -107,7 +107,7 @@ public class DefaultFullHttpResponse extends DefaultHttpResponse implements Full
|
||||
|
||||
@Override
|
||||
public FullHttpResponse duplicate() {
|
||||
DefaultFullHttpResponse duplicate = new DefaultFullHttpResponse(getProtocolVersion(), getStatus(),
|
||||
DefaultFullHttpResponse duplicate = new DefaultFullHttpResponse(protocolVersion(), status(),
|
||||
content().duplicate(), validateHeaders);
|
||||
duplicate.headers().set(headers());
|
||||
duplicate.trailingHeaders().set(trailingHeaders());
|
||||
|
@ -80,6 +80,6 @@ public class DefaultHttpContent extends DefaultHttpObject implements HttpContent
|
||||
@Override
|
||||
public String toString() {
|
||||
return StringUtil.simpleClassName(this) +
|
||||
"(data: " + content() + ", getDecoderResult: " + getDecoderResult() + ')';
|
||||
"(data: " + content() + ", decoderResult: " + decoderResult() + ')';
|
||||
}
|
||||
}
|
||||
|
@ -48,7 +48,13 @@ public abstract class DefaultHttpMessage extends DefaultHttpObject implements Ht
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public HttpVersion getProtocolVersion() {
|
||||
return protocolVersion();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpVersion protocolVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
@ -57,7 +63,7 @@ public abstract class DefaultHttpMessage extends DefaultHttpObject implements Ht
|
||||
StringBuilder buf = new StringBuilder();
|
||||
buf.append(StringUtil.simpleClassName(this));
|
||||
buf.append("(version: ");
|
||||
buf.append(getProtocolVersion().text());
|
||||
buf.append(protocolVersion().text());
|
||||
buf.append(", keepAlive: ");
|
||||
buf.append(HttpHeaders.isKeepAlive(this));
|
||||
buf.append(')');
|
||||
|
@ -26,6 +26,12 @@ public class DefaultHttpObject implements HttpObject {
|
||||
}
|
||||
|
||||
@Override
|
||||
public DecoderResult decoderResult() {
|
||||
return decoderResult;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public DecoderResult getDecoderResult() {
|
||||
return decoderResult;
|
||||
}
|
||||
|
@ -57,12 +57,24 @@ public class DefaultHttpRequest extends DefaultHttpMessage implements HttpReques
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public HttpMethod getMethod() {
|
||||
return method();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpMethod method() {
|
||||
return method;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String getUri() {
|
||||
return uri();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String uri() {
|
||||
return uri;
|
||||
}
|
||||
|
||||
@ -95,14 +107,14 @@ public class DefaultHttpRequest extends DefaultHttpMessage implements HttpReques
|
||||
StringBuilder buf = new StringBuilder();
|
||||
buf.append(StringUtil.simpleClassName(this));
|
||||
buf.append("(decodeResult: ");
|
||||
buf.append(getDecoderResult());
|
||||
buf.append(decoderResult());
|
||||
buf.append(')');
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append(getMethod().toString());
|
||||
buf.append(method());
|
||||
buf.append(' ');
|
||||
buf.append(getUri());
|
||||
buf.append(uri());
|
||||
buf.append(' ');
|
||||
buf.append(getProtocolVersion().text());
|
||||
buf.append(protocolVersion().text());
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
appendHeaders(buf);
|
||||
|
||||
|
@ -50,7 +50,13 @@ public class DefaultHttpResponse extends DefaultHttpMessage implements HttpRespo
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public HttpResponseStatus getStatus() {
|
||||
return status();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpResponseStatus status() {
|
||||
return status;
|
||||
}
|
||||
|
||||
@ -74,12 +80,12 @@ public class DefaultHttpResponse extends DefaultHttpMessage implements HttpRespo
|
||||
StringBuilder buf = new StringBuilder();
|
||||
buf.append(StringUtil.simpleClassName(this));
|
||||
buf.append("(decodeResult: ");
|
||||
buf.append(getDecoderResult());
|
||||
buf.append(decoderResult());
|
||||
buf.append(')');
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append(getProtocolVersion().text());
|
||||
buf.append(protocolVersion().text());
|
||||
buf.append(' ');
|
||||
buf.append(getStatus().toString());
|
||||
buf.append(status());
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
appendHeaders(buf);
|
||||
|
||||
|
@ -100,7 +100,7 @@ public final class HttpClientCodec
|
||||
protected void encode(
|
||||
ChannelHandlerContext ctx, Object msg, List<Object> out) throws Exception {
|
||||
if (msg instanceof HttpRequest && !done) {
|
||||
queue.offer(((HttpRequest) msg).getMethod());
|
||||
queue.offer(((HttpRequest) msg).method());
|
||||
}
|
||||
|
||||
super.encode(ctx, msg, out);
|
||||
@ -156,7 +156,7 @@ public final class HttpClientCodec
|
||||
|
||||
@Override
|
||||
protected boolean isContentAlwaysEmpty(HttpMessage msg) {
|
||||
final int statusCode = ((HttpResponse) msg).getStatus().code();
|
||||
final int statusCode = ((HttpResponse) msg).status().code();
|
||||
if (statusCode == 100) {
|
||||
// 100-continue response should be excluded from paired comparison.
|
||||
return true;
|
||||
|
@ -51,7 +51,7 @@ public abstract class HttpContentDecoder extends MessageToMessageDecoder<HttpObj
|
||||
|
||||
@Override
|
||||
protected void decode(ChannelHandlerContext ctx, HttpObject msg, List<Object> out) throws Exception {
|
||||
if (msg instanceof HttpResponse && ((HttpResponse) msg).getStatus().code() == 100) {
|
||||
if (msg instanceof HttpResponse && ((HttpResponse) msg).status().code() == 100) {
|
||||
|
||||
if (!(msg instanceof LastHttpContent)) {
|
||||
continueResponse = true;
|
||||
@ -184,8 +184,8 @@ public abstract class HttpContentDecoder extends MessageToMessageDecoder<HttpObj
|
||||
* @param contentEncoding the value of the {@code "Content-Encoding"} header
|
||||
* @return the expected content encoding of the new content
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
protected String getTargetContentEncoding(String contentEncoding) throws Exception {
|
||||
protected String getTargetContentEncoding(
|
||||
@SuppressWarnings("UnusedParameters") String contentEncoding) throws Exception {
|
||||
return HttpHeaders.Values.IDENTITY;
|
||||
}
|
||||
|
||||
|
@ -89,7 +89,7 @@ public abstract class HttpContentEncoder extends MessageToMessageCodec<HttpReque
|
||||
|
||||
final HttpResponse res = (HttpResponse) msg;
|
||||
|
||||
if (res.getStatus().code() == 100) {
|
||||
if (res.status().code() == 100) {
|
||||
if (isFull) {
|
||||
out.add(ReferenceCountUtil.retain(res));
|
||||
} else {
|
||||
@ -142,7 +142,7 @@ public abstract class HttpContentEncoder extends MessageToMessageCodec<HttpReque
|
||||
// Output the rewritten response.
|
||||
if (isFull) {
|
||||
// Convert full message into unfull one.
|
||||
HttpResponse newRes = new DefaultHttpResponse(res.getProtocolVersion(), res.getStatus());
|
||||
HttpResponse newRes = new DefaultHttpResponse(res.protocolVersion(), res.status());
|
||||
newRes.headers().set(res.headers());
|
||||
out.add(newRes);
|
||||
// Fall through to encode the content of the full response.
|
||||
|
@ -570,7 +570,7 @@ public abstract class HttpHeaders implements Iterable<Map.Entry<String, String>>
|
||||
return false;
|
||||
}
|
||||
|
||||
if (message.getProtocolVersion().isKeepAliveDefault()) {
|
||||
if (message.protocolVersion().isKeepAliveDefault()) {
|
||||
return !equalsIgnoreCase(CLOSE_ENTITY, connection);
|
||||
} else {
|
||||
return equalsIgnoreCase(KEEP_ALIVE_ENTITY, connection);
|
||||
@ -598,7 +598,7 @@ public abstract class HttpHeaders implements Iterable<Map.Entry<String, String>>
|
||||
*/
|
||||
public static void setKeepAlive(HttpMessage message, boolean keepAlive) {
|
||||
HttpHeaders h = message.headers();
|
||||
if (message.getProtocolVersion().isKeepAliveDefault()) {
|
||||
if (message.protocolVersion().isKeepAliveDefault()) {
|
||||
if (keepAlive) {
|
||||
h.remove(CONNECTION_ENTITY);
|
||||
} else {
|
||||
@ -1010,14 +1010,14 @@ public abstract class HttpHeaders implements Iterable<Map.Entry<String, String>>
|
||||
HttpHeaders h = message.headers();
|
||||
if (message instanceof HttpRequest) {
|
||||
HttpRequest req = (HttpRequest) message;
|
||||
if (HttpMethod.GET.equals(req.getMethod()) &&
|
||||
if (HttpMethod.GET.equals(req.method()) &&
|
||||
h.contains(SEC_WEBSOCKET_KEY1_ENTITY) &&
|
||||
h.contains(SEC_WEBSOCKET_KEY2_ENTITY)) {
|
||||
return 8;
|
||||
}
|
||||
} else if (message instanceof HttpResponse) {
|
||||
HttpResponse res = (HttpResponse) message;
|
||||
if (res.getStatus().code() == 101 &&
|
||||
if (res.status().code() == 101 &&
|
||||
h.contains(SEC_WEBSOCKET_ORIGIN_ENTITY) &&
|
||||
h.contains(SEC_WEBSOCKET_LOCATION_ENTITY)) {
|
||||
return 16;
|
||||
@ -1105,7 +1105,7 @@ public abstract class HttpHeaders implements Iterable<Map.Entry<String, String>>
|
||||
}
|
||||
|
||||
// It works only on HTTP/1.1 or later.
|
||||
if (message.getProtocolVersion().compareTo(HttpVersion.HTTP_1_1) < 0) {
|
||||
if (message.protocolVersion().compareTo(HttpVersion.HTTP_1_1) < 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -27,12 +27,16 @@ package io.netty.handler.codec.http;
|
||||
public interface HttpMessage extends HttpObject {
|
||||
|
||||
/**
|
||||
* Returns the protocol version of this {@link HttpMessage}
|
||||
*
|
||||
* @return The protocol version
|
||||
* @deprecated Use {@link #protocolVersion()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
HttpVersion getProtocolVersion();
|
||||
|
||||
/**
|
||||
* Returns the protocol version of this {@link HttpMessage}
|
||||
*/
|
||||
HttpVersion protocolVersion();
|
||||
|
||||
/**
|
||||
* Set the protocol version of this {@link HttpMessage}
|
||||
*/
|
||||
|
@ -18,10 +18,17 @@ package io.netty.handler.codec.http;
|
||||
import io.netty.handler.codec.DecoderResult;
|
||||
|
||||
public interface HttpObject {
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #getDecoderResult()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
DecoderResult getDecoderResult();
|
||||
|
||||
/**
|
||||
* Returns the result of decoding this message.
|
||||
*/
|
||||
DecoderResult getDecoderResult();
|
||||
DecoderResult decoderResult();
|
||||
|
||||
/**
|
||||
* Updates the result of decoding this message. This method is supposed to be invoked by {@link HttpObjectDecoder}.
|
||||
|
@ -136,7 +136,7 @@ public class HttpObjectAggregator extends MessageToMessageDecoder<HttpObject> {
|
||||
});
|
||||
}
|
||||
|
||||
if (!m.getDecoderResult().isSuccess()) {
|
||||
if (!m.decoderResult().isSuccess()) {
|
||||
removeTransferEncodingChunked(m);
|
||||
out.add(toFullMessage(m));
|
||||
this.currentMessage = null;
|
||||
@ -144,12 +144,12 @@ public class HttpObjectAggregator extends MessageToMessageDecoder<HttpObject> {
|
||||
}
|
||||
if (msg instanceof HttpRequest) {
|
||||
HttpRequest header = (HttpRequest) msg;
|
||||
this.currentMessage = currentMessage = new DefaultFullHttpRequest(header.getProtocolVersion(),
|
||||
header.getMethod(), header.getUri(), Unpooled.compositeBuffer(maxCumulationBufferComponents));
|
||||
this.currentMessage = currentMessage = new DefaultFullHttpRequest(header.protocolVersion(),
|
||||
header.method(), header.uri(), Unpooled.compositeBuffer(maxCumulationBufferComponents));
|
||||
} else if (msg instanceof HttpResponse) {
|
||||
HttpResponse header = (HttpResponse) msg;
|
||||
this.currentMessage = currentMessage = new DefaultFullHttpResponse(
|
||||
header.getProtocolVersion(), header.getStatus(),
|
||||
header.protocolVersion(), header.status(),
|
||||
Unpooled.compositeBuffer(maxCumulationBufferComponents));
|
||||
} else {
|
||||
throw new Error();
|
||||
@ -193,9 +193,9 @@ public class HttpObjectAggregator extends MessageToMessageDecoder<HttpObject> {
|
||||
}
|
||||
|
||||
final boolean last;
|
||||
if (!chunk.getDecoderResult().isSuccess()) {
|
||||
if (!chunk.decoderResult().isSuccess()) {
|
||||
currentMessage.setDecoderResult(
|
||||
DecoderResult.failure(chunk.getDecoderResult().cause()));
|
||||
DecoderResult.failure(chunk.decoderResult().cause()));
|
||||
last = true;
|
||||
} else {
|
||||
last = chunk instanceof LastHttpContent;
|
||||
@ -259,11 +259,11 @@ public class HttpObjectAggregator extends MessageToMessageDecoder<HttpObject> {
|
||||
if (msg instanceof HttpRequest) {
|
||||
HttpRequest req = (HttpRequest) msg;
|
||||
fullMsg = new DefaultFullHttpRequest(
|
||||
req.getProtocolVersion(), req.getMethod(), req.getUri(), Unpooled.EMPTY_BUFFER, false);
|
||||
req.protocolVersion(), req.method(), req.uri(), Unpooled.EMPTY_BUFFER, false);
|
||||
} else if (msg instanceof HttpResponse) {
|
||||
HttpResponse res = (HttpResponse) msg;
|
||||
fullMsg = new DefaultFullHttpResponse(
|
||||
res.getProtocolVersion(), res.getStatus(), Unpooled.EMPTY_BUFFER, false);
|
||||
res.protocolVersion(), res.status(), Unpooled.EMPTY_BUFFER, false);
|
||||
} else {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
|
@ -404,7 +404,7 @@ public abstract class HttpObjectDecoder extends ReplayingDecoder<HttpObjectDecod
|
||||
protected boolean isContentAlwaysEmpty(HttpMessage msg) {
|
||||
if (msg instanceof HttpResponse) {
|
||||
HttpResponse res = (HttpResponse) msg;
|
||||
int code = res.getStatus().code();
|
||||
int code = res.status().code();
|
||||
|
||||
// Correctly handle return codes of 1xx.
|
||||
//
|
||||
@ -430,7 +430,7 @@ public abstract class HttpObjectDecoder extends ReplayingDecoder<HttpObjectDecod
|
||||
contentLength = Long.MIN_VALUE;
|
||||
if (!isDecodingRequest()) {
|
||||
HttpResponse res = (HttpResponse) message;
|
||||
if (res != null && res.getStatus().code() == 101) {
|
||||
if (res != null && res.status().code() == 101) {
|
||||
checkpoint(State.UPGRADED);
|
||||
return;
|
||||
}
|
||||
|
@ -33,24 +33,36 @@ package io.netty.handler.codec.http;
|
||||
*/
|
||||
public interface HttpRequest extends HttpMessage {
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #method()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
HttpMethod getMethod();
|
||||
|
||||
/**
|
||||
* Returns the {@link HttpMethod} of this {@link HttpRequest}.
|
||||
*
|
||||
* @return The {@link HttpMethod} of this {@link HttpRequest}
|
||||
*/
|
||||
HttpMethod getMethod();
|
||||
HttpMethod method();
|
||||
|
||||
/**
|
||||
* Set the {@link HttpMethod} of this {@link HttpRequest}.
|
||||
*/
|
||||
HttpRequest setMethod(HttpMethod method);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #uri()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
String getUri();
|
||||
|
||||
/**
|
||||
* Returns the requested URI (or alternatively, path)
|
||||
*
|
||||
* @return The URI being requested
|
||||
*/
|
||||
String getUri();
|
||||
String uri();
|
||||
|
||||
/**
|
||||
* Set the requested URI (or alternatively, path)
|
||||
|
@ -35,12 +35,12 @@ public class HttpRequestEncoder extends HttpObjectEncoder<HttpRequest> {
|
||||
|
||||
@Override
|
||||
protected void encodeInitialLine(ByteBuf buf, HttpRequest request) throws Exception {
|
||||
request.getMethod().encode(buf);
|
||||
request.method().encode(buf);
|
||||
buf.writeByte(SP);
|
||||
|
||||
// Add / as absolute path if no is present.
|
||||
// See http://tools.ietf.org/html/rfc2616#section-5.1.2
|
||||
String uri = request.getUri();
|
||||
String uri = request.uri();
|
||||
|
||||
if (uri.length() == 0) {
|
||||
uri += SLASH;
|
||||
@ -57,7 +57,7 @@ public class HttpRequestEncoder extends HttpObjectEncoder<HttpRequest> {
|
||||
buf.writeBytes(uri.getBytes(CharsetUtil.UTF_8));
|
||||
|
||||
buf.writeByte(SP);
|
||||
request.getProtocolVersion().encode(buf);
|
||||
request.protocolVersion().encode(buf);
|
||||
buf.writeBytes(CRLF);
|
||||
}
|
||||
}
|
||||
|
@ -31,12 +31,18 @@ package io.netty.handler.codec.http;
|
||||
*/
|
||||
public interface HttpResponse extends HttpMessage {
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #status()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
HttpResponseStatus getStatus();
|
||||
|
||||
/**
|
||||
* Returns the status of this {@link HttpResponse}.
|
||||
*
|
||||
* @return The {@link HttpResponseStatus} of this {@link HttpResponse}
|
||||
*/
|
||||
HttpResponseStatus getStatus();
|
||||
HttpResponseStatus status();
|
||||
|
||||
/**
|
||||
* Set the status of this {@link HttpResponse}.
|
||||
|
@ -33,9 +33,9 @@ public class HttpResponseEncoder extends HttpObjectEncoder<HttpResponse> {
|
||||
|
||||
@Override
|
||||
protected void encodeInitialLine(ByteBuf buf, HttpResponse response) throws Exception {
|
||||
response.getProtocolVersion().encode(buf);
|
||||
response.protocolVersion().encode(buf);
|
||||
buf.writeByte(SP);
|
||||
response.getStatus().encode(buf);
|
||||
response.status().encode(buf);
|
||||
buf.writeBytes(CRLF);
|
||||
}
|
||||
}
|
||||
|
@ -50,6 +50,12 @@ public interface LastHttpContent extends HttpContent {
|
||||
}
|
||||
|
||||
@Override
|
||||
public DecoderResult decoderResult() {
|
||||
return DecoderResult.SUCCESS;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public DecoderResult getDecoderResult() {
|
||||
return DecoderResult.SUCCESS;
|
||||
}
|
||||
|
@ -301,9 +301,7 @@ public class QueryStringDecoder {
|
||||
* @throws IllegalArgumentException if the string contains a malformed
|
||||
* escape sequence.
|
||||
*/
|
||||
@SuppressWarnings("fallthrough")
|
||||
public static String decodeComponent(final String s,
|
||||
final Charset charset) {
|
||||
public static String decodeComponent(final String s, final Charset charset) {
|
||||
if (s == null) {
|
||||
return "";
|
||||
}
|
||||
|
@ -114,7 +114,7 @@ public class QueryStringEncoder {
|
||||
// TODO: Optimize me.
|
||||
try {
|
||||
return URLEncoder.encode(s, charset.name()).replace("+", "%20");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
} catch (UnsupportedEncodingException ignored) {
|
||||
throw new UnsupportedCharsetException(charset.name());
|
||||
}
|
||||
}
|
||||
|
@ -49,32 +49,32 @@ public final class ServerCookieEncoder {
|
||||
|
||||
StringBuilder buf = stringBuilder();
|
||||
|
||||
add(buf, cookie.getName(), cookie.getValue());
|
||||
add(buf, cookie.name(), cookie.value());
|
||||
|
||||
if (cookie.getMaxAge() != Long.MIN_VALUE) {
|
||||
if (cookie.getVersion() == 0) {
|
||||
if (cookie.maxAge() != Long.MIN_VALUE) {
|
||||
if (cookie.version() == 0) {
|
||||
addUnquoted(buf, CookieHeaderNames.EXPIRES,
|
||||
HttpHeaderDateFormat.get().format(
|
||||
new Date(System.currentTimeMillis() +
|
||||
cookie.getMaxAge() * 1000L)));
|
||||
cookie.maxAge() * 1000L)));
|
||||
} else {
|
||||
add(buf, CookieHeaderNames.MAX_AGE, cookie.getMaxAge());
|
||||
add(buf, CookieHeaderNames.MAX_AGE, cookie.maxAge());
|
||||
}
|
||||
}
|
||||
|
||||
if (cookie.getPath() != null) {
|
||||
if (cookie.getVersion() > 0) {
|
||||
add(buf, CookieHeaderNames.PATH, cookie.getPath());
|
||||
if (cookie.path() != null) {
|
||||
if (cookie.version() > 0) {
|
||||
add(buf, CookieHeaderNames.PATH, cookie.path());
|
||||
} else {
|
||||
addUnquoted(buf, CookieHeaderNames.PATH, cookie.getPath());
|
||||
addUnquoted(buf, CookieHeaderNames.PATH, cookie.path());
|
||||
}
|
||||
}
|
||||
|
||||
if (cookie.getDomain() != null) {
|
||||
if (cookie.getVersion() > 0) {
|
||||
add(buf, CookieHeaderNames.DOMAIN, cookie.getDomain());
|
||||
if (cookie.domain() != null) {
|
||||
if (cookie.version() > 0) {
|
||||
add(buf, CookieHeaderNames.DOMAIN, cookie.domain());
|
||||
} else {
|
||||
addUnquoted(buf, CookieHeaderNames.DOMAIN, cookie.getDomain());
|
||||
addUnquoted(buf, CookieHeaderNames.DOMAIN, cookie.domain());
|
||||
}
|
||||
}
|
||||
if (cookie.isSecure()) {
|
||||
@ -87,22 +87,22 @@ public final class ServerCookieEncoder {
|
||||
buf.append((char) HttpConstants.SEMICOLON);
|
||||
buf.append((char) HttpConstants.SP);
|
||||
}
|
||||
if (cookie.getVersion() >= 1) {
|
||||
if (cookie.getComment() != null) {
|
||||
add(buf, CookieHeaderNames.COMMENT, cookie.getComment());
|
||||
if (cookie.version() >= 1) {
|
||||
if (cookie.comment() != null) {
|
||||
add(buf, CookieHeaderNames.COMMENT, cookie.comment());
|
||||
}
|
||||
|
||||
add(buf, CookieHeaderNames.VERSION, 1);
|
||||
|
||||
if (cookie.getCommentUrl() != null) {
|
||||
addQuoted(buf, CookieHeaderNames.COMMENTURL, cookie.getCommentUrl());
|
||||
if (cookie.commentUrl() != null) {
|
||||
addQuoted(buf, CookieHeaderNames.COMMENTURL, cookie.commentUrl());
|
||||
}
|
||||
|
||||
if (!cookie.getPorts().isEmpty()) {
|
||||
if (!cookie.ports().isEmpty()) {
|
||||
buf.append(CookieHeaderNames.PORT);
|
||||
buf.append((char) HttpConstants.EQUALS);
|
||||
buf.append((char) HttpConstants.DOUBLE_QUOTE);
|
||||
for (int port: cookie.getPorts()) {
|
||||
for (int port: cookie.ports()) {
|
||||
buf.append(port);
|
||||
buf.append((char) HttpConstants.COMMA);
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ public class CorsHandler extends ChannelDuplexHandler {
|
||||
}
|
||||
|
||||
private void handlePreflight(final ChannelHandlerContext ctx, final HttpRequest request) {
|
||||
final HttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(), OK);
|
||||
final HttpResponse response = new DefaultFullHttpResponse(request.protocolVersion(), OK);
|
||||
if (setOrigin(response)) {
|
||||
setAllowMethods(response);
|
||||
setAllowHeaders(response);
|
||||
@ -153,7 +153,7 @@ public class CorsHandler extends ChannelDuplexHandler {
|
||||
|
||||
private static boolean isPreflightRequest(final HttpRequest request) {
|
||||
final HttpHeaders headers = request.headers();
|
||||
return request.getMethod().equals(OPTIONS) &&
|
||||
return request.method().equals(OPTIONS) &&
|
||||
headers.contains(ORIGIN) &&
|
||||
headers.contains(ACCESS_CONTROL_REQUEST_METHOD);
|
||||
}
|
||||
@ -197,7 +197,7 @@ public class CorsHandler extends ChannelDuplexHandler {
|
||||
}
|
||||
|
||||
private static void forbidden(final ChannelHandlerContext ctx, final HttpRequest request) {
|
||||
ctx.writeAndFlush(new DefaultFullHttpResponse(request.getProtocolVersion(), FORBIDDEN))
|
||||
ctx.writeAndFlush(new DefaultFullHttpResponse(request.protocolVersion(), FORBIDDEN))
|
||||
.addListener(ChannelFutureListener.CLOSE);
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,6 @@ final class CaseIgnoringComparator implements Comparator<String>, Serializable {
|
||||
return o1.compareToIgnoreCase(o2);
|
||||
}
|
||||
|
||||
@SuppressWarnings("MethodMayBeStatic")
|
||||
private Object readResolve() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
@ -188,7 +188,7 @@ public class HttpPostRequestEncoder implements ChunkedInput<HttpContent> {
|
||||
if (charset == null) {
|
||||
throw new NullPointerException("charset");
|
||||
}
|
||||
if (request.getMethod() != HttpMethod.POST) {
|
||||
if (request.method() != HttpMethod.POST) {
|
||||
throw new ErrorDataEncoderException("Cannot create a Encoder if not a POST");
|
||||
}
|
||||
this.request = request;
|
||||
@ -1116,17 +1116,32 @@ public class HttpPostRequestEncoder implements ChunkedInput<HttpContent> {
|
||||
|
||||
@Override
|
||||
public HttpMethod getMethod() {
|
||||
return request.getMethod();
|
||||
return request.method();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpMethod method() {
|
||||
return request.method();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUri() {
|
||||
return request.getUri();
|
||||
return request.uri();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String uri() {
|
||||
return request.uri();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpVersion getProtocolVersion() {
|
||||
return request.getProtocolVersion();
|
||||
return request.protocolVersion();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpVersion protocolVersion() {
|
||||
return request.protocolVersion();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1135,8 +1150,14 @@ public class HttpPostRequestEncoder implements ChunkedInput<HttpContent> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public DecoderResult decoderResult() {
|
||||
return request.decoderResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public DecoderResult getDecoderResult() {
|
||||
return request.getDecoderResult();
|
||||
return request.decoderResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -331,7 +331,7 @@ public class WebSocket08FrameDecoder extends ReplayingDecoder<WebSocket08FrameDe
|
||||
|
||||
// Check text for UTF8 correctness
|
||||
if (frameOpcode == OPCODE_TEXT ||
|
||||
(utf8Validator != null && utf8Validator.isChecking())) {
|
||||
utf8Validator != null && utf8Validator.isChecking()) {
|
||||
// Check UTF-8 correctness for this payload
|
||||
checkUTF8String(ctx, framePayload);
|
||||
|
||||
|
@ -191,8 +191,8 @@ public class WebSocketClientHandshaker00 extends WebSocketClientHandshaker {
|
||||
protected void verify(FullHttpResponse response) {
|
||||
final HttpResponseStatus status = new HttpResponseStatus(101, "WebSocket Protocol Handshake");
|
||||
|
||||
if (!response.getStatus().equals(status)) {
|
||||
throw new WebSocketHandshakeException("Invalid handshake response getStatus: " + response.getStatus());
|
||||
if (!response.status().equals(status)) {
|
||||
throw new WebSocketHandshakeException("Invalid handshake response getStatus: " + response.status());
|
||||
}
|
||||
|
||||
HttpHeaders headers = response.headers();
|
||||
|
@ -168,8 +168,8 @@ public class WebSocketClientHandshaker07 extends WebSocketClientHandshaker {
|
||||
final HttpResponseStatus status = HttpResponseStatus.SWITCHING_PROTOCOLS;
|
||||
final HttpHeaders headers = response.headers();
|
||||
|
||||
if (!response.getStatus().equals(status)) {
|
||||
throw new WebSocketHandshakeException("Invalid handshake response getStatus: " + response.getStatus());
|
||||
if (!response.status().equals(status)) {
|
||||
throw new WebSocketHandshakeException("Invalid handshake response getStatus: " + response.status());
|
||||
}
|
||||
|
||||
String upgrade = headers.get(Names.UPGRADE);
|
||||
|
@ -168,8 +168,8 @@ public class WebSocketClientHandshaker08 extends WebSocketClientHandshaker {
|
||||
final HttpResponseStatus status = HttpResponseStatus.SWITCHING_PROTOCOLS;
|
||||
final HttpHeaders headers = response.headers();
|
||||
|
||||
if (!response.getStatus().equals(status)) {
|
||||
throw new WebSocketHandshakeException("Invalid handshake response getStatus: " + response.getStatus());
|
||||
if (!response.status().equals(status)) {
|
||||
throw new WebSocketHandshakeException("Invalid handshake response getStatus: " + response.status());
|
||||
}
|
||||
|
||||
String upgrade = headers.get(Names.UPGRADE);
|
||||
|
@ -178,8 +178,8 @@ public class WebSocketClientHandshaker13 extends WebSocketClientHandshaker {
|
||||
final HttpResponseStatus status = HttpResponseStatus.SWITCHING_PROTOCOLS;
|
||||
final HttpHeaders headers = response.headers();
|
||||
|
||||
if (!response.getStatus().equals(status)) {
|
||||
throw new WebSocketHandshakeException("Invalid handshake response getStatus: " + response.getStatus());
|
||||
if (!response.status().equals(status)) {
|
||||
throw new WebSocketHandshakeException("Invalid handshake response getStatus: " + response.status());
|
||||
}
|
||||
|
||||
String upgrade = headers.get(Names.UPGRADE);
|
||||
|
@ -91,6 +91,6 @@ public final class WebSocketClientHandshakerFactory {
|
||||
webSocketURL, V00, subprotocol, customHeaders, maxFramePayloadLength);
|
||||
}
|
||||
|
||||
throw new WebSocketHandshakeException("Protocol version " + version.toString() + " not supported.");
|
||||
throw new WebSocketHandshakeException("Protocol version " + version + " not supported.");
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ import io.netty.handler.codec.http.FullHttpResponse;
|
||||
class WebSocketClientProtocolHandshakeHandler extends ChannelInboundHandlerAdapter {
|
||||
private final WebSocketClientHandshaker handshaker;
|
||||
|
||||
public WebSocketClientProtocolHandshakeHandler(WebSocketClientHandshaker handshaker) {
|
||||
WebSocketClientProtocolHandshakeHandler(WebSocketClientHandshaker handshaker) {
|
||||
this.handshaker = handshaker;
|
||||
}
|
||||
|
||||
|
@ -85,7 +85,7 @@ public class WebSocketServerProtocolHandler extends WebSocketProtocolHandler {
|
||||
this.websocketPath = websocketPath;
|
||||
this.subprotocols = subprotocols;
|
||||
this.allowExtensions = allowExtensions;
|
||||
this.maxFramePayloadLength = maxFrameSize;
|
||||
maxFramePayloadLength = maxFrameSize;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -48,14 +48,14 @@ class WebSocketServerProtocolHandshakeHandler
|
||||
this.websocketPath = websocketPath;
|
||||
this.subprotocols = subprotocols;
|
||||
this.allowExtensions = allowExtensions;
|
||||
this.maxFramePayloadSize = maxFrameSize;
|
||||
maxFramePayloadSize = maxFrameSize;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void channelRead(final ChannelHandlerContext ctx, Object msg) throws Exception {
|
||||
FullHttpRequest req = (FullHttpRequest) msg;
|
||||
try {
|
||||
if (req.getMethod() != GET) {
|
||||
if (req.method() != GET) {
|
||||
sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HTTP_1_1, FORBIDDEN));
|
||||
return;
|
||||
}
|
||||
@ -90,7 +90,7 @@ class WebSocketServerProtocolHandshakeHandler
|
||||
|
||||
private static void sendHttpResponse(ChannelHandlerContext ctx, HttpRequest req, HttpResponse res) {
|
||||
ChannelFuture f = ctx.channel().writeAndFlush(res);
|
||||
if (!isKeepAlive(req) || res.getStatus().code() != 200) {
|
||||
if (!isKeepAlive(req) || res.status().code() != 200) {
|
||||
f.addListener(ChannelFutureListener.CLOSE);
|
||||
}
|
||||
}
|
||||
|
@ -38,11 +38,11 @@ public class RtspRequestEncoder extends RtspObjectEncoder<HttpRequest> {
|
||||
@Override
|
||||
protected void encodeInitialLine(ByteBuf buf, HttpRequest request)
|
||||
throws Exception {
|
||||
encodeAscii(request.getMethod().toString(), buf);
|
||||
encodeAscii(request.method().toString(), buf);
|
||||
buf.writeByte(SP);
|
||||
buf.writeBytes(request.getUri().getBytes(CharsetUtil.UTF_8));
|
||||
buf.writeBytes(request.uri().getBytes(CharsetUtil.UTF_8));
|
||||
buf.writeByte(SP);
|
||||
encodeAscii(request.getProtocolVersion().toString(), buf);
|
||||
encodeAscii(request.protocolVersion().toString(), buf);
|
||||
buf.writeBytes(CRLF);
|
||||
}
|
||||
}
|
||||
|
@ -38,11 +38,11 @@ public class RtspResponseEncoder extends RtspObjectEncoder<HttpResponse> {
|
||||
@Override
|
||||
protected void encodeInitialLine(ByteBuf buf, HttpResponse response)
|
||||
throws Exception {
|
||||
encodeAscii(response.getProtocolVersion().toString(), buf);
|
||||
encodeAscii(response.protocolVersion().toString(), buf);
|
||||
buf.writeByte(SP);
|
||||
buf.writeBytes(String.valueOf(response.getStatus().code()).getBytes(CharsetUtil.US_ASCII));
|
||||
buf.writeBytes(String.valueOf(response.status().code()).getBytes(CharsetUtil.US_ASCII));
|
||||
buf.writeByte(SP);
|
||||
encodeAscii(String.valueOf(response.getStatus().reasonPhrase()), buf);
|
||||
encodeAscii(String.valueOf(response.status().reasonPhrase()), buf);
|
||||
buf.writeBytes(CRLF);
|
||||
}
|
||||
}
|
||||
|
@ -80,14 +80,14 @@ public class DefaultSpdyDataFrame extends DefaultSpdyStreamFrame implements Spdy
|
||||
|
||||
@Override
|
||||
public SpdyDataFrame copy() {
|
||||
SpdyDataFrame frame = new DefaultSpdyDataFrame(getStreamId(), content().copy());
|
||||
SpdyDataFrame frame = new DefaultSpdyDataFrame(streamId(), content().copy());
|
||||
frame.setLast(isLast());
|
||||
return frame;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpdyDataFrame duplicate() {
|
||||
SpdyDataFrame frame = new DefaultSpdyDataFrame(getStreamId(), content().duplicate());
|
||||
SpdyDataFrame frame = new DefaultSpdyDataFrame(streamId(), content().duplicate());
|
||||
frame.setLast(isLast());
|
||||
return frame;
|
||||
}
|
||||
@ -128,7 +128,7 @@ public class DefaultSpdyDataFrame extends DefaultSpdyStreamFrame implements Spdy
|
||||
buf.append(')');
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> Stream-ID = ");
|
||||
buf.append(getStreamId());
|
||||
buf.append(streamId());
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> Size = ");
|
||||
if (refCnt() == 0) {
|
||||
|
@ -56,7 +56,13 @@ public class DefaultSpdyGoAwayFrame implements SpdyGoAwayFrame {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public int getLastGoodStreamId() {
|
||||
return lastGoodStreamId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int lastGoodStreamId() {
|
||||
return lastGoodStreamId;
|
||||
}
|
||||
|
||||
@ -71,7 +77,13 @@ public class DefaultSpdyGoAwayFrame implements SpdyGoAwayFrame {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public SpdySessionStatus getStatus() {
|
||||
return status();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpdySessionStatus status() {
|
||||
return status;
|
||||
}
|
||||
|
||||
@ -87,10 +99,10 @@ public class DefaultSpdyGoAwayFrame implements SpdyGoAwayFrame {
|
||||
buf.append(StringUtil.simpleClassName(this));
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> Last-good-stream-ID = ");
|
||||
buf.append(getLastGoodStreamId());
|
||||
buf.append(lastGoodStreamId());
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> Status: ");
|
||||
buf.append(getStatus().toString());
|
||||
buf.append(status());
|
||||
return buf.toString();
|
||||
}
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ public class DefaultSpdyHeadersFrame extends DefaultSpdyStreamFrame
|
||||
buf.append(')');
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> Stream-ID = ");
|
||||
buf.append(getStreamId());
|
||||
buf.append(streamId());
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> Headers:");
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
|
@ -34,7 +34,13 @@ public class DefaultSpdyPingFrame implements SpdyPingFrame {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public int getId() {
|
||||
return id();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int id() {
|
||||
return id;
|
||||
}
|
||||
|
||||
@ -50,7 +56,7 @@ public class DefaultSpdyPingFrame implements SpdyPingFrame {
|
||||
buf.append(StringUtil.simpleClassName(this));
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> ID = ");
|
||||
buf.append(getId());
|
||||
buf.append(id());
|
||||
return buf.toString();
|
||||
}
|
||||
}
|
||||
|
@ -59,7 +59,13 @@ public class DefaultSpdyRstStreamFrame extends DefaultSpdyStreamFrame
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public SpdyStreamStatus getStatus() {
|
||||
return status();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpdyStreamStatus status() {
|
||||
return status;
|
||||
}
|
||||
|
||||
@ -75,10 +81,10 @@ public class DefaultSpdyRstStreamFrame extends DefaultSpdyStreamFrame
|
||||
buf.append(StringUtil.simpleClassName(this));
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> Stream-ID = ");
|
||||
buf.append(getStreamId());
|
||||
buf.append(streamId());
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> Status: ");
|
||||
buf.append(getStatus().toString());
|
||||
buf.append(status());
|
||||
return buf.toString();
|
||||
}
|
||||
}
|
||||
|
@ -30,7 +30,13 @@ public class DefaultSpdySettingsFrame implements SpdySettingsFrame {
|
||||
private final Map<Integer, Setting> settingsMap = new TreeMap<Integer, Setting>();
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public Set<Integer> getIds() {
|
||||
return ids();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<Integer> ids() {
|
||||
return settingsMap.keySet();
|
||||
}
|
||||
|
||||
@ -138,7 +144,7 @@ public class DefaultSpdySettingsFrame implements SpdySettingsFrame {
|
||||
for (Map.Entry<Integer, Setting> e: getSettings()) {
|
||||
Setting setting = e.getValue();
|
||||
buf.append("--> ");
|
||||
buf.append(e.getKey().toString());
|
||||
buf.append(e.getKey());
|
||||
buf.append(':');
|
||||
buf.append(setting.getValue());
|
||||
buf.append(" (persist value: ");
|
||||
|
@ -33,7 +33,13 @@ public abstract class DefaultSpdyStreamFrame implements SpdyStreamFrame {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public int getStreamId() {
|
||||
return streamId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int streamId() {
|
||||
return streamId;
|
||||
}
|
||||
|
||||
|
@ -59,7 +59,7 @@ public class DefaultSpdySynReplyFrame extends DefaultSpdyHeadersFrame
|
||||
buf.append(')');
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> Stream-ID = ");
|
||||
buf.append(getStreamId());
|
||||
buf.append(streamId());
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> Headers:");
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
|
@ -23,21 +23,20 @@ import io.netty.util.internal.StringUtil;
|
||||
public class DefaultSpdySynStreamFrame extends DefaultSpdyHeadersFrame
|
||||
implements SpdySynStreamFrame {
|
||||
|
||||
private int associatedToStreamId;
|
||||
private int associatedStreamId;
|
||||
private byte priority;
|
||||
private boolean unidirectional;
|
||||
|
||||
/**
|
||||
* Creates a new instance.
|
||||
*
|
||||
* @param streamId the Stream-ID of this frame
|
||||
* @param associatedToStreamId the Associated-To-Stream-ID of this frame
|
||||
* @param priority the priority of the stream
|
||||
* @param streamId the Stream-ID of this frame
|
||||
* @param associatedStreamId the Associated-To-Stream-ID of this frame
|
||||
* @param priority the priority of the stream
|
||||
*/
|
||||
public DefaultSpdySynStreamFrame(
|
||||
int streamId, int associatedToStreamId, byte priority) {
|
||||
public DefaultSpdySynStreamFrame(int streamId, int associatedStreamId, byte priority) {
|
||||
super(streamId);
|
||||
setAssociatedToStreamId(associatedToStreamId);
|
||||
setAssociatedStreamId(associatedStreamId);
|
||||
setPriority(priority);
|
||||
}
|
||||
|
||||
@ -60,23 +59,41 @@ public class DefaultSpdySynStreamFrame extends DefaultSpdyHeadersFrame
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public int getAssociatedToStreamId() {
|
||||
return associatedToStreamId;
|
||||
return associatedStreamId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int associatedStreamId() {
|
||||
return associatedStreamId;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public SpdySynStreamFrame setAssociatedToStreamId(int associatedToStreamId) {
|
||||
if (associatedToStreamId < 0) {
|
||||
return setAssociatedStreamId(associatedToStreamId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpdySynStreamFrame setAssociatedStreamId(int associatedStreamId) {
|
||||
if (associatedStreamId < 0) {
|
||||
throw new IllegalArgumentException(
|
||||
"Associated-To-Stream-ID cannot be negative: " +
|
||||
associatedToStreamId);
|
||||
associatedStreamId);
|
||||
}
|
||||
this.associatedToStreamId = associatedToStreamId;
|
||||
this.associatedStreamId = associatedStreamId;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public byte getPriority() {
|
||||
return priority();
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte priority() {
|
||||
return priority;
|
||||
}
|
||||
|
||||
@ -112,15 +129,15 @@ public class DefaultSpdySynStreamFrame extends DefaultSpdyHeadersFrame
|
||||
buf.append(')');
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> Stream-ID = ");
|
||||
buf.append(getStreamId());
|
||||
buf.append(streamId());
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
if (associatedToStreamId != 0) {
|
||||
if (associatedStreamId != 0) {
|
||||
buf.append("--> Associated-To-Stream-ID = ");
|
||||
buf.append(getAssociatedToStreamId());
|
||||
buf.append(associatedStreamId());
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
}
|
||||
buf.append("--> Priority = ");
|
||||
buf.append(getPriority());
|
||||
buf.append(priority());
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> Headers:");
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
|
@ -37,7 +37,13 @@ public class DefaultSpdyWindowUpdateFrame implements SpdyWindowUpdateFrame {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public int getStreamId() {
|
||||
return streamId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int streamId() {
|
||||
return streamId;
|
||||
}
|
||||
|
||||
@ -52,7 +58,13 @@ public class DefaultSpdyWindowUpdateFrame implements SpdyWindowUpdateFrame {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public int getDeltaWindowSize() {
|
||||
return deltaWindowSize();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deltaWindowSize() {
|
||||
return deltaWindowSize;
|
||||
}
|
||||
|
||||
@ -73,10 +85,10 @@ public class DefaultSpdyWindowUpdateFrame implements SpdyWindowUpdateFrame {
|
||||
buf.append(StringUtil.simpleClassName(this));
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> Stream-ID = ");
|
||||
buf.append(getStreamId());
|
||||
buf.append(streamId());
|
||||
buf.append(StringUtil.NEWLINE);
|
||||
buf.append("--> Delta-Window-Size = ");
|
||||
buf.append(getDeltaWindowSize());
|
||||
buf.append(deltaWindowSize());
|
||||
return buf.toString();
|
||||
}
|
||||
}
|
||||
|
@ -140,7 +140,7 @@ public class SpdyFrameCodec extends ByteToMessageDecoder
|
||||
SpdyDataFrame spdyDataFrame = (SpdyDataFrame) msg;
|
||||
frame = spdyFrameEncoder.encodeDataFrame(
|
||||
ctx.alloc(),
|
||||
spdyDataFrame.getStreamId(),
|
||||
spdyDataFrame.streamId(),
|
||||
spdyDataFrame.isLast(),
|
||||
spdyDataFrame.content()
|
||||
);
|
||||
@ -154,9 +154,9 @@ public class SpdyFrameCodec extends ByteToMessageDecoder
|
||||
try {
|
||||
frame = spdyFrameEncoder.encodeSynStreamFrame(
|
||||
ctx.alloc(),
|
||||
spdySynStreamFrame.getStreamId(),
|
||||
spdySynStreamFrame.getAssociatedToStreamId(),
|
||||
spdySynStreamFrame.getPriority(),
|
||||
spdySynStreamFrame.streamId(),
|
||||
spdySynStreamFrame.associatedStreamId(),
|
||||
spdySynStreamFrame.priority(),
|
||||
spdySynStreamFrame.isLast(),
|
||||
spdySynStreamFrame.isUnidirectional(),
|
||||
headerBlock
|
||||
@ -173,7 +173,7 @@ public class SpdyFrameCodec extends ByteToMessageDecoder
|
||||
try {
|
||||
frame = spdyFrameEncoder.encodeSynReplyFrame(
|
||||
ctx.alloc(),
|
||||
spdySynReplyFrame.getStreamId(),
|
||||
spdySynReplyFrame.streamId(),
|
||||
spdySynReplyFrame.isLast(),
|
||||
headerBlock
|
||||
);
|
||||
@ -187,8 +187,8 @@ public class SpdyFrameCodec extends ByteToMessageDecoder
|
||||
SpdyRstStreamFrame spdyRstStreamFrame = (SpdyRstStreamFrame) msg;
|
||||
frame = spdyFrameEncoder.encodeRstStreamFrame(
|
||||
ctx.alloc(),
|
||||
spdyRstStreamFrame.getStreamId(),
|
||||
spdyRstStreamFrame.getStatus().getCode()
|
||||
spdyRstStreamFrame.streamId(),
|
||||
spdyRstStreamFrame.status().code()
|
||||
);
|
||||
ctx.write(frame, promise);
|
||||
|
||||
@ -206,7 +206,7 @@ public class SpdyFrameCodec extends ByteToMessageDecoder
|
||||
SpdyPingFrame spdyPingFrame = (SpdyPingFrame) msg;
|
||||
frame = spdyFrameEncoder.encodePingFrame(
|
||||
ctx.alloc(),
|
||||
spdyPingFrame.getId()
|
||||
spdyPingFrame.id()
|
||||
);
|
||||
ctx.write(frame, promise);
|
||||
|
||||
@ -215,8 +215,8 @@ public class SpdyFrameCodec extends ByteToMessageDecoder
|
||||
SpdyGoAwayFrame spdyGoAwayFrame = (SpdyGoAwayFrame) msg;
|
||||
frame = spdyFrameEncoder.encodeGoAwayFrame(
|
||||
ctx.alloc(),
|
||||
spdyGoAwayFrame.getLastGoodStreamId(),
|
||||
spdyGoAwayFrame.getStatus().getCode()
|
||||
spdyGoAwayFrame.lastGoodStreamId(),
|
||||
spdyGoAwayFrame.status().code()
|
||||
);
|
||||
ctx.write(frame, promise);
|
||||
|
||||
@ -227,7 +227,7 @@ public class SpdyFrameCodec extends ByteToMessageDecoder
|
||||
try {
|
||||
frame = spdyFrameEncoder.encodeHeadersFrame(
|
||||
ctx.alloc(),
|
||||
spdyHeadersFrame.getStreamId(),
|
||||
spdyHeadersFrame.streamId(),
|
||||
spdyHeadersFrame.isLast(),
|
||||
headerBlock
|
||||
);
|
||||
@ -241,8 +241,8 @@ public class SpdyFrameCodec extends ByteToMessageDecoder
|
||||
SpdyWindowUpdateFrame spdyWindowUpdateFrame = (SpdyWindowUpdateFrame) msg;
|
||||
frame = spdyFrameEncoder.encodeWindowUpdateFrame(
|
||||
ctx.alloc(),
|
||||
spdyWindowUpdateFrame.getStreamId(),
|
||||
spdyWindowUpdateFrame.getDeltaWindowSize()
|
||||
spdyWindowUpdateFrame.streamId(),
|
||||
spdyWindowUpdateFrame.deltaWindowSize()
|
||||
);
|
||||
ctx.write(frame, promise);
|
||||
} else {
|
||||
|
@ -97,7 +97,7 @@ public class SpdyFrameEncoder {
|
||||
}
|
||||
|
||||
public ByteBuf encodeSettingsFrame(ByteBufAllocator allocator, SpdySettingsFrame spdySettingsFrame) {
|
||||
Set<Integer> ids = spdySettingsFrame.getIds();
|
||||
Set<Integer> ids = spdySettingsFrame.ids();
|
||||
int numSettings = ids.size();
|
||||
|
||||
byte flags = spdySettingsFrame.clearPreviouslyPersistedSettings() ?
|
||||
|
@ -20,10 +20,16 @@ package io.netty.handler.codec.spdy;
|
||||
*/
|
||||
public interface SpdyGoAwayFrame extends SpdyFrame {
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #lastGoodStreamId()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
int getLastGoodStreamId();
|
||||
|
||||
/**
|
||||
* Returns the Last-good-stream-ID of this frame.
|
||||
*/
|
||||
int getLastGoodStreamId();
|
||||
int lastGoodStreamId();
|
||||
|
||||
/**
|
||||
* Sets the Last-good-stream-ID of this frame. The Last-good-stream-ID
|
||||
@ -31,10 +37,16 @@ public interface SpdyGoAwayFrame extends SpdyFrame {
|
||||
*/
|
||||
SpdyGoAwayFrame setLastGoodStreamId(int lastGoodStreamId);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #status()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
SpdySessionStatus getStatus();
|
||||
|
||||
/**
|
||||
* Returns the status of this frame.
|
||||
*/
|
||||
SpdySessionStatus getStatus();
|
||||
SpdySessionStatus status();
|
||||
|
||||
/**
|
||||
* Sets the status of this frame.
|
||||
|
@ -51,7 +51,7 @@ public class SpdyHeaderBlockRawDecoder extends SpdyHeaderBlockDecoder {
|
||||
throw new NullPointerException("spdyVersion");
|
||||
}
|
||||
this.maxHeaderSize = maxHeaderSize;
|
||||
this.state = State.READ_NUM_HEADERS;
|
||||
state = State.READ_NUM_HEADERS;
|
||||
}
|
||||
|
||||
private static int readLengthField(ByteBuf buffer) {
|
||||
|
@ -79,14 +79,14 @@ final class SpdyHeaderBlockZlibDecoder extends SpdyHeaderBlockRawDecoder {
|
||||
if (numBytes == 0 && decompressor.needsDictionary()) {
|
||||
try {
|
||||
decompressor.setDictionary(SPDY_DICT);
|
||||
} catch (IllegalArgumentException e) {
|
||||
} catch (IllegalArgumentException ignored) {
|
||||
throw INVALID_HEADER_BLOCK;
|
||||
}
|
||||
numBytes = decompressor.inflate(out, off, decompressed.writableBytes());
|
||||
}
|
||||
if (frame != null) {
|
||||
decompressed.writerIndex(decompressed.writerIndex() + numBytes);
|
||||
super.decodeHeaderBlock(decompressed, frame);
|
||||
decodeHeaderBlock(decompressed, frame);
|
||||
decompressed.discardReadBytes();
|
||||
}
|
||||
|
||||
|
@ -96,11 +96,11 @@ public class SpdyHttpDecoder extends MessageToMessageDecoder<SpdyFrame> {
|
||||
|
||||
// HTTP requests/responses are mapped one-to-one to SPDY streams.
|
||||
SpdySynStreamFrame spdySynStreamFrame = (SpdySynStreamFrame) msg;
|
||||
int streamId = spdySynStreamFrame.getStreamId();
|
||||
int streamId = spdySynStreamFrame.streamId();
|
||||
|
||||
if (SpdyCodecUtil.isServerId(streamId)) {
|
||||
// SYN_STREAM frames initiated by the server are pushed resources
|
||||
int associatedToStreamId = spdySynStreamFrame.getAssociatedToStreamId();
|
||||
int associatedToStreamId = spdySynStreamFrame.associatedStreamId();
|
||||
|
||||
// If a client receives a SYN_STREAM with an Associated-To-Stream-ID of 0
|
||||
// it must reply with a RST_STREAM with error code INVALID_STREAM
|
||||
@ -138,7 +138,7 @@ public class SpdyHttpDecoder extends MessageToMessageDecoder<SpdyFrame> {
|
||||
// Set the Stream-ID, Associated-To-Stream-ID, Priority, and URL as headers
|
||||
SpdyHttpHeaders.setStreamId(httpResponseWithEntity, streamId);
|
||||
SpdyHttpHeaders.setAssociatedToStreamId(httpResponseWithEntity, associatedToStreamId);
|
||||
SpdyHttpHeaders.setPriority(httpResponseWithEntity, spdySynStreamFrame.getPriority());
|
||||
SpdyHttpHeaders.setPriority(httpResponseWithEntity, spdySynStreamFrame.priority());
|
||||
SpdyHttpHeaders.setUrl(httpResponseWithEntity, URL);
|
||||
|
||||
if (spdySynStreamFrame.isLast()) {
|
||||
@ -196,7 +196,7 @@ public class SpdyHttpDecoder extends MessageToMessageDecoder<SpdyFrame> {
|
||||
} else if (msg instanceof SpdySynReplyFrame) {
|
||||
|
||||
SpdySynReplyFrame spdySynReplyFrame = (SpdySynReplyFrame) msg;
|
||||
int streamId = spdySynReplyFrame.getStreamId();
|
||||
int streamId = spdySynReplyFrame.streamId();
|
||||
|
||||
// If a client receives a SYN_REPLY with a truncated header block,
|
||||
// reply with a RST_STREAM frame with error code INTERNAL_ERROR.
|
||||
@ -231,7 +231,7 @@ public class SpdyHttpDecoder extends MessageToMessageDecoder<SpdyFrame> {
|
||||
} else if (msg instanceof SpdyHeadersFrame) {
|
||||
|
||||
SpdyHeadersFrame spdyHeadersFrame = (SpdyHeadersFrame) msg;
|
||||
int streamId = spdyHeadersFrame.getStreamId();
|
||||
int streamId = spdyHeadersFrame.streamId();
|
||||
FullHttpMessage fullHttpMessage = getMessage(streamId);
|
||||
|
||||
// If message is not in map discard HEADERS frame.
|
||||
@ -255,7 +255,7 @@ public class SpdyHttpDecoder extends MessageToMessageDecoder<SpdyFrame> {
|
||||
} else if (msg instanceof SpdyDataFrame) {
|
||||
|
||||
SpdyDataFrame spdyDataFrame = (SpdyDataFrame) msg;
|
||||
int streamId = spdyDataFrame.getStreamId();
|
||||
int streamId = spdyDataFrame.streamId();
|
||||
FullHttpMessage fullHttpMessage = getMessage(streamId);
|
||||
|
||||
// If message is not in map discard Data Frame.
|
||||
@ -283,7 +283,7 @@ public class SpdyHttpDecoder extends MessageToMessageDecoder<SpdyFrame> {
|
||||
} else if (msg instanceof SpdyRstStreamFrame) {
|
||||
|
||||
SpdyRstStreamFrame spdyRstStreamFrame = (SpdyRstStreamFrame) msg;
|
||||
int streamId = spdyRstStreamFrame.getStreamId();
|
||||
int streamId = spdyRstStreamFrame.streamId();
|
||||
removeMessage(streamId);
|
||||
}
|
||||
}
|
||||
|
@ -229,15 +229,15 @@ public class SpdyHttpEncoder extends MessageToMessageEncoder<HttpObject> {
|
||||
// Unfold the first line of the message into name/value pairs
|
||||
if (httpMessage instanceof FullHttpRequest) {
|
||||
HttpRequest httpRequest = (HttpRequest) httpMessage;
|
||||
SpdyHeaders.setMethod(spdyVersion, spdySynStreamFrame, httpRequest.getMethod());
|
||||
SpdyHeaders.setUrl(spdyVersion, spdySynStreamFrame, httpRequest.getUri());
|
||||
SpdyHeaders.setVersion(spdyVersion, spdySynStreamFrame, httpMessage.getProtocolVersion());
|
||||
SpdyHeaders.setMethod(spdyVersion, spdySynStreamFrame, httpRequest.method());
|
||||
SpdyHeaders.setUrl(spdyVersion, spdySynStreamFrame, httpRequest.uri());
|
||||
SpdyHeaders.setVersion(spdyVersion, spdySynStreamFrame, httpMessage.protocolVersion());
|
||||
}
|
||||
if (httpMessage instanceof HttpResponse) {
|
||||
HttpResponse httpResponse = (HttpResponse) httpMessage;
|
||||
SpdyHeaders.setStatus(spdyVersion, spdySynStreamFrame, httpResponse.getStatus());
|
||||
SpdyHeaders.setStatus(spdyVersion, spdySynStreamFrame, httpResponse.status());
|
||||
SpdyHeaders.setUrl(spdyVersion, spdySynStreamFrame, URL);
|
||||
SpdyHeaders.setVersion(spdyVersion, spdySynStreamFrame, httpMessage.getProtocolVersion());
|
||||
SpdyHeaders.setVersion(spdyVersion, spdySynStreamFrame, httpMessage.protocolVersion());
|
||||
spdySynStreamFrame.setUnidirectional(true);
|
||||
}
|
||||
|
||||
@ -258,7 +258,7 @@ public class SpdyHttpEncoder extends MessageToMessageEncoder<HttpObject> {
|
||||
for (Map.Entry<String, String> entry: httpMessage.headers()) {
|
||||
spdySynStreamFrame.headers().add(entry.getKey(), entry.getValue());
|
||||
}
|
||||
currentStreamId = spdySynStreamFrame.getStreamId();
|
||||
currentStreamId = spdySynStreamFrame.streamId();
|
||||
spdySynStreamFrame.setLast(isLast(httpMessage));
|
||||
|
||||
return spdySynStreamFrame;
|
||||
@ -280,8 +280,8 @@ public class SpdyHttpEncoder extends MessageToMessageEncoder<HttpObject> {
|
||||
SpdySynReplyFrame spdySynReplyFrame = new DefaultSpdySynReplyFrame(streamID);
|
||||
|
||||
// Unfold the first line of the response into name/value pairs
|
||||
SpdyHeaders.setStatus(spdyVersion, spdySynReplyFrame, httpResponse.getStatus());
|
||||
SpdyHeaders.setVersion(spdyVersion, spdySynReplyFrame, httpResponse.getProtocolVersion());
|
||||
SpdyHeaders.setStatus(spdyVersion, spdySynReplyFrame, httpResponse.status());
|
||||
SpdyHeaders.setVersion(spdyVersion, spdySynReplyFrame, httpResponse.protocolVersion());
|
||||
|
||||
// Transfer the remaining HTTP headers
|
||||
for (Map.Entry<String, String> entry: httpResponse.headers()) {
|
||||
|
@ -59,7 +59,7 @@ public class SpdyHttpResponseStreamIdHandler extends
|
||||
ids.add(SpdyHttpHeaders.getStreamId((HttpMessage) msg));
|
||||
}
|
||||
} else if (msg instanceof SpdyRstStreamFrame) {
|
||||
ids.remove(((SpdyRstStreamFrame) msg).getStreamId());
|
||||
ids.remove(((SpdyRstStreamFrame) msg).streamId());
|
||||
}
|
||||
|
||||
out.add(ReferenceCountUtil.retain(msg));
|
||||
|
@ -20,10 +20,16 @@ package io.netty.handler.codec.spdy;
|
||||
*/
|
||||
public interface SpdyPingFrame extends SpdyFrame {
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #id()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
int getId();
|
||||
|
||||
/**
|
||||
* Returns the ID of this frame.
|
||||
*/
|
||||
int getId();
|
||||
int id();
|
||||
|
||||
/**
|
||||
* Sets the ID of this frame.
|
||||
|
@ -20,10 +20,16 @@ package io.netty.handler.codec.spdy;
|
||||
*/
|
||||
public interface SpdyRstStreamFrame extends SpdyStreamFrame {
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #status()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
SpdyStreamStatus getStatus();
|
||||
|
||||
/**
|
||||
* Returns the status of this frame.
|
||||
*/
|
||||
SpdyStreamStatus getStatus();
|
||||
SpdyStreamStatus status();
|
||||
|
||||
/**
|
||||
* Sets the status of this frame.
|
||||
|
@ -37,7 +37,7 @@ final class SpdySession {
|
||||
private final AtomicInteger sendWindowSize;
|
||||
private final AtomicInteger receiveWindowSize;
|
||||
|
||||
public SpdySession(int sendWindowSize, int receiveWindowSize) {
|
||||
SpdySession(int sendWindowSize, int receiveWindowSize) {
|
||||
this.sendWindowSize = new AtomicInteger(sendWindowSize);
|
||||
this.receiveWindowSize = new AtomicInteger(receiveWindowSize);
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ import io.netty.util.internal.EmptyArrays;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import static io.netty.handler.codec.spdy.SpdyCodecUtil.SPDY_SESSION_STREAM_ID;
|
||||
import static io.netty.handler.codec.spdy.SpdyCodecUtil.*;
|
||||
|
||||
/**
|
||||
* Manages streams within a SPDY session.
|
||||
@ -121,7 +121,7 @@ public class SpdySessionHandler
|
||||
* a RST_STREAM frame with the getStatus PROTOCOL_ERROR.
|
||||
*/
|
||||
SpdyDataFrame spdyDataFrame = (SpdyDataFrame) msg;
|
||||
int streamId = spdyDataFrame.getStreamId();
|
||||
int streamId = spdyDataFrame.streamId();
|
||||
|
||||
int deltaWindowSize = -1 * spdyDataFrame.content().readableBytes();
|
||||
int newSessionWindowSize =
|
||||
@ -230,7 +230,7 @@ public class SpdySessionHandler
|
||||
*/
|
||||
|
||||
SpdySynStreamFrame spdySynStreamFrame = (SpdySynStreamFrame) msg;
|
||||
int streamId = spdySynStreamFrame.getStreamId();
|
||||
int streamId = spdySynStreamFrame.streamId();
|
||||
|
||||
// Check if we received a valid SYN_STREAM frame
|
||||
if (spdySynStreamFrame.isInvalid() ||
|
||||
@ -247,7 +247,7 @@ public class SpdySessionHandler
|
||||
}
|
||||
|
||||
// Try to accept the stream
|
||||
byte priority = spdySynStreamFrame.getPriority();
|
||||
byte priority = spdySynStreamFrame.priority();
|
||||
boolean remoteSideClosed = spdySynStreamFrame.isLast();
|
||||
boolean localSideClosed = spdySynStreamFrame.isUnidirectional();
|
||||
if (!acceptStream(streamId, priority, remoteSideClosed, localSideClosed)) {
|
||||
@ -265,7 +265,7 @@ public class SpdySessionHandler
|
||||
*/
|
||||
|
||||
SpdySynReplyFrame spdySynReplyFrame = (SpdySynReplyFrame) msg;
|
||||
int streamId = spdySynReplyFrame.getStreamId();
|
||||
int streamId = spdySynReplyFrame.streamId();
|
||||
|
||||
// Check if we received a valid SYN_REPLY frame
|
||||
if (spdySynReplyFrame.isInvalid() ||
|
||||
@ -300,7 +300,7 @@ public class SpdySessionHandler
|
||||
*/
|
||||
|
||||
SpdyRstStreamFrame spdyRstStreamFrame = (SpdyRstStreamFrame) msg;
|
||||
removeStream(spdyRstStreamFrame.getStreamId(), ctx.newSucceededFuture());
|
||||
removeStream(spdyRstStreamFrame.streamId(), ctx.newSucceededFuture());
|
||||
|
||||
} else if (msg instanceof SpdySettingsFrame) {
|
||||
|
||||
@ -346,7 +346,7 @@ public class SpdySessionHandler
|
||||
|
||||
SpdyPingFrame spdyPingFrame = (SpdyPingFrame) msg;
|
||||
|
||||
if (isRemoteInitiatedId(spdyPingFrame.getId())) {
|
||||
if (isRemoteInitiatedId(spdyPingFrame.id())) {
|
||||
ctx.writeAndFlush(spdyPingFrame);
|
||||
return;
|
||||
}
|
||||
@ -364,7 +364,7 @@ public class SpdySessionHandler
|
||||
} else if (msg instanceof SpdyHeadersFrame) {
|
||||
|
||||
SpdyHeadersFrame spdyHeadersFrame = (SpdyHeadersFrame) msg;
|
||||
int streamId = spdyHeadersFrame.getStreamId();
|
||||
int streamId = spdyHeadersFrame.streamId();
|
||||
|
||||
// Check if we received a valid HEADERS frame
|
||||
if (spdyHeadersFrame.isInvalid()) {
|
||||
@ -395,8 +395,8 @@ public class SpdySessionHandler
|
||||
*/
|
||||
|
||||
SpdyWindowUpdateFrame spdyWindowUpdateFrame = (SpdyWindowUpdateFrame) msg;
|
||||
int streamId = spdyWindowUpdateFrame.getStreamId();
|
||||
int deltaWindowSize = spdyWindowUpdateFrame.getDeltaWindowSize();
|
||||
int streamId = spdyWindowUpdateFrame.streamId();
|
||||
int deltaWindowSize = spdyWindowUpdateFrame.deltaWindowSize();
|
||||
|
||||
// Ignore frames for half-closed streams
|
||||
if (streamId != SPDY_SESSION_STREAM_ID && spdySession.isLocalSideClosed(streamId)) {
|
||||
@ -463,7 +463,7 @@ public class SpdySessionHandler
|
||||
if (msg instanceof SpdyDataFrame) {
|
||||
|
||||
SpdyDataFrame spdyDataFrame = (SpdyDataFrame) msg;
|
||||
int streamId = spdyDataFrame.getStreamId();
|
||||
int streamId = spdyDataFrame.streamId();
|
||||
|
||||
// Frames must not be sent on half-closed streams
|
||||
if (spdySession.isLocalSideClosed(streamId)) {
|
||||
@ -546,14 +546,14 @@ public class SpdySessionHandler
|
||||
} else if (msg instanceof SpdySynStreamFrame) {
|
||||
|
||||
SpdySynStreamFrame spdySynStreamFrame = (SpdySynStreamFrame) msg;
|
||||
int streamId = spdySynStreamFrame.getStreamId();
|
||||
int streamId = spdySynStreamFrame.streamId();
|
||||
|
||||
if (isRemoteInitiatedId(streamId)) {
|
||||
promise.setFailure(PROTOCOL_EXCEPTION);
|
||||
return;
|
||||
}
|
||||
|
||||
byte priority = spdySynStreamFrame.getPriority();
|
||||
byte priority = spdySynStreamFrame.priority();
|
||||
boolean remoteSideClosed = spdySynStreamFrame.isUnidirectional();
|
||||
boolean localSideClosed = spdySynStreamFrame.isLast();
|
||||
if (!acceptStream(streamId, priority, remoteSideClosed, localSideClosed)) {
|
||||
@ -564,7 +564,7 @@ public class SpdySessionHandler
|
||||
} else if (msg instanceof SpdySynReplyFrame) {
|
||||
|
||||
SpdySynReplyFrame spdySynReplyFrame = (SpdySynReplyFrame) msg;
|
||||
int streamId = spdySynReplyFrame.getStreamId();
|
||||
int streamId = spdySynReplyFrame.streamId();
|
||||
|
||||
// Frames must not be sent on half-closed streams
|
||||
if (!isRemoteInitiatedId(streamId) || spdySession.isLocalSideClosed(streamId)) {
|
||||
@ -580,7 +580,7 @@ public class SpdySessionHandler
|
||||
} else if (msg instanceof SpdyRstStreamFrame) {
|
||||
|
||||
SpdyRstStreamFrame spdyRstStreamFrame = (SpdyRstStreamFrame) msg;
|
||||
removeStream(spdyRstStreamFrame.getStreamId(), promise);
|
||||
removeStream(spdyRstStreamFrame.streamId(), promise);
|
||||
|
||||
} else if (msg instanceof SpdySettingsFrame) {
|
||||
|
||||
@ -616,9 +616,9 @@ public class SpdySessionHandler
|
||||
} else if (msg instanceof SpdyPingFrame) {
|
||||
|
||||
SpdyPingFrame spdyPingFrame = (SpdyPingFrame) msg;
|
||||
if (isRemoteInitiatedId(spdyPingFrame.getId())) {
|
||||
if (isRemoteInitiatedId(spdyPingFrame.id())) {
|
||||
ctx.fireExceptionCaught(new IllegalArgumentException(
|
||||
"invalid PING ID: " + spdyPingFrame.getId()));
|
||||
"invalid PING ID: " + spdyPingFrame.id()));
|
||||
return;
|
||||
}
|
||||
pings.getAndIncrement();
|
||||
@ -633,7 +633,7 @@ public class SpdySessionHandler
|
||||
} else if (msg instanceof SpdyHeadersFrame) {
|
||||
|
||||
SpdyHeadersFrame spdyHeadersFrame = (SpdyHeadersFrame) msg;
|
||||
int streamId = spdyHeadersFrame.getStreamId();
|
||||
int streamId = spdyHeadersFrame.streamId();
|
||||
|
||||
// Frames must not be sent on half-closed streams
|
||||
if (spdySession.isLocalSideClosed(streamId)) {
|
||||
@ -699,7 +699,7 @@ public class SpdySessionHandler
|
||||
*/
|
||||
|
||||
private boolean isRemoteInitiatedId(int id) {
|
||||
boolean serverId = SpdyCodecUtil.isServerId(id);
|
||||
boolean serverId = isServerId(id);
|
||||
return server && !serverId || !server && serverId;
|
||||
}
|
||||
|
||||
@ -775,7 +775,7 @@ public class SpdySessionHandler
|
||||
|
||||
SpdyDataFrame spdyDataFrame = pendingWrite.spdyDataFrame;
|
||||
int dataFrameSize = spdyDataFrame.content().readableBytes();
|
||||
int writeStreamId = spdyDataFrame.getStreamId();
|
||||
int writeStreamId = spdyDataFrame.streamId();
|
||||
if (streamId == SPDY_SESSION_STREAM_ID) {
|
||||
newWindowSize = Math.min(newWindowSize, spdySession.getSendWindowSize(writeStreamId));
|
||||
}
|
||||
|
@ -73,23 +73,39 @@ public class SpdySessionStatus implements Comparable<SpdySessionStatus> {
|
||||
this.statusPhrase = statusPhrase;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #code()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public int getCode() {
|
||||
return code();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the code of this status.
|
||||
*/
|
||||
public int getCode() {
|
||||
public int code() {
|
||||
return code;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #statusPhrase()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public String getStatusPhrase() {
|
||||
return statusPhrase();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the status phrase of this status.
|
||||
*/
|
||||
public String getStatusPhrase() {
|
||||
public String statusPhrase() {
|
||||
return statusPhrase;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return getCode();
|
||||
return code();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -98,16 +114,16 @@ public class SpdySessionStatus implements Comparable<SpdySessionStatus> {
|
||||
return false;
|
||||
}
|
||||
|
||||
return getCode() == ((SpdySessionStatus) o).getCode();
|
||||
return code() == ((SpdySessionStatus) o).code();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getStatusPhrase();
|
||||
return statusPhrase();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(SpdySessionStatus o) {
|
||||
return getCode() - o.getCode();
|
||||
return code() - o.code();
|
||||
}
|
||||
}
|
||||
|
@ -32,11 +32,17 @@ public interface SpdySettingsFrame extends SpdyFrame {
|
||||
int SETTINGS_INITIAL_WINDOW_SIZE = 7;
|
||||
int SETTINGS_CLIENT_CERTIFICATE_VECTOR_SIZE = 8;
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #ids()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
Set<Integer> getIds();
|
||||
|
||||
/**
|
||||
* Returns a {@code Set} of the setting IDs.
|
||||
* The set's iterator will return the IDs in ascending order.
|
||||
*/
|
||||
Set<Integer> getIds();
|
||||
Set<Integer> ids();
|
||||
|
||||
/**
|
||||
* Returns {@code true} if the setting ID has a value.
|
||||
|
@ -20,10 +20,16 @@ package io.netty.handler.codec.spdy;
|
||||
*/
|
||||
public interface SpdyStreamFrame extends SpdyFrame {
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #streamId()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
int getStreamId();
|
||||
|
||||
/**
|
||||
* Returns the Stream-ID of this frame.
|
||||
*/
|
||||
int getStreamId();
|
||||
int streamId();
|
||||
|
||||
/**
|
||||
* Sets the Stream-ID of this frame. The Stream-ID must be positive.
|
||||
|
@ -147,23 +147,39 @@ public class SpdyStreamStatus implements Comparable<SpdyStreamStatus> {
|
||||
this.statusPhrase = statusPhrase;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #code()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public int getCode() {
|
||||
return code();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the code of this status.
|
||||
*/
|
||||
public int getCode() {
|
||||
public int code() {
|
||||
return code;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #statusPhrase()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public String getStatusPhrase() {
|
||||
return statusPhrase();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the status phrase of this status.
|
||||
*/
|
||||
public String getStatusPhrase() {
|
||||
public String statusPhrase() {
|
||||
return statusPhrase;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return getCode();
|
||||
return code();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -172,16 +188,16 @@ public class SpdyStreamStatus implements Comparable<SpdyStreamStatus> {
|
||||
return false;
|
||||
}
|
||||
|
||||
return getCode() == ((SpdyStreamStatus) o).getCode();
|
||||
return code() == ((SpdyStreamStatus) o).code();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getStatusPhrase();
|
||||
return statusPhrase();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(SpdyStreamStatus o) {
|
||||
return getCode() - o.getCode();
|
||||
return code() - o.code();
|
||||
}
|
||||
}
|
||||
|
@ -20,21 +20,39 @@ package io.netty.handler.codec.spdy;
|
||||
*/
|
||||
public interface SpdySynStreamFrame extends SpdyHeadersFrame {
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #associatedStreamId()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
int getAssociatedToStreamId();
|
||||
|
||||
/**
|
||||
* Returns the Associated-To-Stream-ID of this frame.
|
||||
*/
|
||||
int getAssociatedToStreamId();
|
||||
int associatedStreamId();
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #setAssociatedStreamId(int)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
SpdySynStreamFrame setAssociatedToStreamId(int associatedToStreamId);
|
||||
|
||||
/**
|
||||
* Sets the Associated-To-Stream-ID of this frame.
|
||||
* The Associated-To-Stream-ID cannot be negative.
|
||||
*/
|
||||
SpdySynStreamFrame setAssociatedToStreamId(int associatedToStreamId);
|
||||
SpdySynStreamFrame setAssociatedStreamId(int associatedStreamId);
|
||||
|
||||
/**
|
||||
* Use {@link #priority()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
byte getPriority();
|
||||
|
||||
/**
|
||||
* Returns the priority of the stream.
|
||||
*/
|
||||
byte getPriority();
|
||||
byte priority();
|
||||
|
||||
/**
|
||||
* Sets the priority of the stream.
|
||||
|
@ -21,7 +21,7 @@ public enum SpdyVersion {
|
||||
private final int version;
|
||||
private final int minorVersion;
|
||||
|
||||
private SpdyVersion(int version, int minorVersion) {
|
||||
SpdyVersion(int version, int minorVersion) {
|
||||
this.version = version;
|
||||
this.minorVersion = minorVersion;
|
||||
}
|
||||
|
@ -20,20 +20,32 @@ package io.netty.handler.codec.spdy;
|
||||
*/
|
||||
public interface SpdyWindowUpdateFrame extends SpdyFrame {
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #streamId()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
int getStreamId();
|
||||
|
||||
/**
|
||||
* Returns the Stream-ID of this frame.
|
||||
*/
|
||||
int getStreamId();
|
||||
int streamId();
|
||||
|
||||
/**
|
||||
* Sets the Stream-ID of this frame. The Stream-ID cannot be negative.
|
||||
*/
|
||||
SpdyWindowUpdateFrame setStreamId(int streamID);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #deltaWindowSize()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
int getDeltaWindowSize();
|
||||
|
||||
/**
|
||||
* Returns the Delta-Window-Size of this frame.
|
||||
*/
|
||||
int getDeltaWindowSize();
|
||||
int deltaWindowSize();
|
||||
|
||||
/**
|
||||
* Sets the Delta-Window-Size of this frame.
|
||||
|
@ -15,7 +15,7 @@
|
||||
*/
|
||||
package io.netty.handler.codec.http;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
@ -23,7 +23,7 @@ import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import org.junit.Test;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
public class CookieDecoderTest {
|
||||
@Test
|
||||
@ -36,27 +36,27 @@ public class CookieDecoderTest {
|
||||
assertEquals(1, cookies.size());
|
||||
Cookie cookie = cookies.iterator().next();
|
||||
assertNotNull(cookie);
|
||||
assertEquals("myValue", cookie.getValue());
|
||||
assertNull(cookie.getComment());
|
||||
assertNull(cookie.getCommentUrl());
|
||||
assertEquals(".adomainsomewhere", cookie.getDomain());
|
||||
assertEquals("myValue", cookie.value());
|
||||
assertNull(cookie.comment());
|
||||
assertNull(cookie.commentUrl());
|
||||
assertEquals(".adomainsomewhere", cookie.domain());
|
||||
assertFalse(cookie.isDiscard());
|
||||
|
||||
boolean fail = true;
|
||||
for (int i = 40; i <= 60; i ++) {
|
||||
if (cookie.getMaxAge() == i) {
|
||||
if (cookie.maxAge() == i) {
|
||||
fail = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (fail) {
|
||||
fail("expected: 50, actual: " + cookie.getMaxAge());
|
||||
fail("expected: 50, actual: " + cookie.maxAge());
|
||||
}
|
||||
|
||||
assertEquals("/apathsomewhere", cookie.getPath());
|
||||
assertTrue(cookie.getPorts().isEmpty());
|
||||
assertEquals("/apathsomewhere", cookie.path());
|
||||
assertTrue(cookie.ports().isEmpty());
|
||||
assertTrue(cookie.isSecure());
|
||||
assertEquals(0, cookie.getVersion());
|
||||
assertEquals(0, cookie.version());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -68,16 +68,16 @@ public class CookieDecoderTest {
|
||||
assertEquals(1, cookies.size());
|
||||
Cookie cookie = cookies.iterator().next();
|
||||
assertNotNull(cookie);
|
||||
assertEquals("myValue", cookie.getValue());
|
||||
assertNull(cookie.getComment());
|
||||
assertNull(cookie.getCommentUrl());
|
||||
assertEquals(".adomainsomewhere", cookie.getDomain());
|
||||
assertEquals("myValue", cookie.value());
|
||||
assertNull(cookie.comment());
|
||||
assertNull(cookie.commentUrl());
|
||||
assertEquals(".adomainsomewhere", cookie.domain());
|
||||
assertFalse(cookie.isDiscard());
|
||||
assertEquals(50, cookie.getMaxAge());
|
||||
assertEquals("/apathsomewhere", cookie.getPath());
|
||||
assertTrue(cookie.getPorts().isEmpty());
|
||||
assertEquals(50, cookie.maxAge());
|
||||
assertEquals("/apathsomewhere", cookie.path());
|
||||
assertTrue(cookie.ports().isEmpty());
|
||||
assertTrue(cookie.isSecure());
|
||||
assertEquals(0, cookie.getVersion());
|
||||
assertEquals(0, cookie.version());
|
||||
}
|
||||
@Test
|
||||
public void testDecodingSingleCookieV1() {
|
||||
@ -86,17 +86,17 @@ public class CookieDecoderTest {
|
||||
Set<Cookie> cookies = CookieDecoder.decode(cookieString);
|
||||
assertEquals(1, cookies.size());
|
||||
Cookie cookie = cookies.iterator().next();
|
||||
assertEquals("myValue", cookie.getValue());
|
||||
assertEquals("myValue", cookie.value());
|
||||
assertNotNull(cookie);
|
||||
assertEquals("this is a comment", cookie.getComment());
|
||||
assertNull(cookie.getCommentUrl());
|
||||
assertEquals(".adomainsomewhere", cookie.getDomain());
|
||||
assertEquals("this is a comment", cookie.comment());
|
||||
assertNull(cookie.commentUrl());
|
||||
assertEquals(".adomainsomewhere", cookie.domain());
|
||||
assertFalse(cookie.isDiscard());
|
||||
assertEquals(50, cookie.getMaxAge());
|
||||
assertEquals("/apathsomewhere", cookie.getPath());
|
||||
assertTrue(cookie.getPorts().isEmpty());
|
||||
assertEquals(50, cookie.maxAge());
|
||||
assertEquals("/apathsomewhere", cookie.path());
|
||||
assertTrue(cookie.ports().isEmpty());
|
||||
assertTrue(cookie.isSecure());
|
||||
assertEquals(1, cookie.getVersion());
|
||||
assertEquals(1, cookie.version());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -108,16 +108,16 @@ public class CookieDecoderTest {
|
||||
assertEquals(1, cookies.size());
|
||||
Cookie cookie = cookies.iterator().next();
|
||||
assertNotNull(cookie);
|
||||
assertEquals("myValue", cookie.getValue());
|
||||
assertEquals("this is a comment", cookie.getComment());
|
||||
assertNull(cookie.getCommentUrl());
|
||||
assertEquals(".adomainsomewhere", cookie.getDomain());
|
||||
assertEquals("myValue", cookie.value());
|
||||
assertEquals("this is a comment", cookie.comment());
|
||||
assertNull(cookie.commentUrl());
|
||||
assertEquals(".adomainsomewhere", cookie.domain());
|
||||
assertFalse(cookie.isDiscard());
|
||||
assertEquals(50, cookie.getMaxAge());
|
||||
assertEquals("/apathsomewhere", cookie.getPath());
|
||||
assertTrue(cookie.getPorts().isEmpty());
|
||||
assertEquals(50, cookie.maxAge());
|
||||
assertEquals("/apathsomewhere", cookie.path());
|
||||
assertTrue(cookie.ports().isEmpty());
|
||||
assertTrue(cookie.isSecure());
|
||||
assertEquals(1, cookie.getVersion());
|
||||
assertEquals(1, cookie.version());
|
||||
}
|
||||
@Test
|
||||
public void testDecodingSingleCookieV2() {
|
||||
@ -128,18 +128,18 @@ public class CookieDecoderTest {
|
||||
assertEquals(1, cookies.size());
|
||||
Cookie cookie = cookies.iterator().next();
|
||||
assertNotNull(cookie);
|
||||
assertEquals("myValue", cookie.getValue());
|
||||
assertEquals("this is a comment", cookie.getComment());
|
||||
assertEquals("http://aurl.com", cookie.getCommentUrl());
|
||||
assertEquals(".adomainsomewhere", cookie.getDomain());
|
||||
assertEquals("myValue", cookie.value());
|
||||
assertEquals("this is a comment", cookie.comment());
|
||||
assertEquals("http://aurl.com", cookie.commentUrl());
|
||||
assertEquals(".adomainsomewhere", cookie.domain());
|
||||
assertTrue(cookie.isDiscard());
|
||||
assertEquals(50, cookie.getMaxAge());
|
||||
assertEquals("/apathsomewhere", cookie.getPath());
|
||||
assertEquals(2, cookie.getPorts().size());
|
||||
assertTrue(cookie.getPorts().contains(80));
|
||||
assertTrue(cookie.getPorts().contains(8080));
|
||||
assertEquals(50, cookie.maxAge());
|
||||
assertEquals("/apathsomewhere", cookie.path());
|
||||
assertEquals(2, cookie.ports().size());
|
||||
assertTrue(cookie.ports().contains(80));
|
||||
assertTrue(cookie.ports().contains(8080));
|
||||
assertTrue(cookie.isSecure());
|
||||
assertEquals(2, cookie.getVersion());
|
||||
assertEquals(2, cookie.version());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -157,42 +157,42 @@ public class CookieDecoderTest {
|
||||
Iterator<Cookie> it = cookies.iterator();
|
||||
Cookie cookie = it.next();
|
||||
assertNotNull(cookie);
|
||||
assertEquals("myValue", cookie.getValue());
|
||||
assertEquals("this is a comment", cookie.getComment());
|
||||
assertEquals("http://aurl.com", cookie.getCommentUrl());
|
||||
assertEquals(".adomainsomewhere", cookie.getDomain());
|
||||
assertEquals("myValue", cookie.value());
|
||||
assertEquals("this is a comment", cookie.comment());
|
||||
assertEquals("http://aurl.com", cookie.commentUrl());
|
||||
assertEquals(".adomainsomewhere", cookie.domain());
|
||||
assertTrue(cookie.isDiscard());
|
||||
assertEquals(50, cookie.getMaxAge());
|
||||
assertEquals("/apathsomewhere", cookie.getPath());
|
||||
assertEquals(2, cookie.getPorts().size());
|
||||
assertTrue(cookie.getPorts().contains(80));
|
||||
assertTrue(cookie.getPorts().contains(8080));
|
||||
assertEquals(50, cookie.maxAge());
|
||||
assertEquals("/apathsomewhere", cookie.path());
|
||||
assertEquals(2, cookie.ports().size());
|
||||
assertTrue(cookie.ports().contains(80));
|
||||
assertTrue(cookie.ports().contains(8080));
|
||||
assertTrue(cookie.isSecure());
|
||||
assertEquals(2, cookie.getVersion());
|
||||
assertEquals(2, cookie.version());
|
||||
cookie = it.next();
|
||||
assertNotNull(cookie);
|
||||
assertEquals("myValue2", cookie.getValue());
|
||||
assertEquals("this is another comment", cookie.getComment());
|
||||
assertEquals("http://anotherurl.com", cookie.getCommentUrl());
|
||||
assertEquals(".anotherdomainsomewhere", cookie.getDomain());
|
||||
assertEquals("myValue2", cookie.value());
|
||||
assertEquals("this is another comment", cookie.comment());
|
||||
assertEquals("http://anotherurl.com", cookie.commentUrl());
|
||||
assertEquals(".anotherdomainsomewhere", cookie.domain());
|
||||
assertFalse(cookie.isDiscard());
|
||||
assertEquals(0, cookie.getMaxAge());
|
||||
assertEquals("/anotherpathsomewhere", cookie.getPath());
|
||||
assertTrue(cookie.getPorts().isEmpty());
|
||||
assertEquals(0, cookie.maxAge());
|
||||
assertEquals("/anotherpathsomewhere", cookie.path());
|
||||
assertTrue(cookie.ports().isEmpty());
|
||||
assertFalse(cookie.isSecure());
|
||||
assertEquals(2, cookie.getVersion());
|
||||
assertEquals(2, cookie.version());
|
||||
cookie = it.next();
|
||||
assertNotNull(cookie);
|
||||
assertEquals("myValue3", cookie.getValue());
|
||||
assertNull(cookie.getComment());
|
||||
assertNull(cookie.getCommentUrl());
|
||||
assertNull(cookie.getDomain());
|
||||
assertEquals("myValue3", cookie.value());
|
||||
assertNull(cookie.comment());
|
||||
assertNull(cookie.commentUrl());
|
||||
assertNull(cookie.domain());
|
||||
assertFalse(cookie.isDiscard());
|
||||
assertEquals(0, cookie.getMaxAge());
|
||||
assertNull(cookie.getPath());
|
||||
assertTrue(cookie.getPorts().isEmpty());
|
||||
assertEquals(0, cookie.maxAge());
|
||||
assertNull(cookie.path());
|
||||
assertTrue(cookie.ports().isEmpty());
|
||||
assertFalse(cookie.isSecure());
|
||||
assertEquals(2, cookie.getVersion());
|
||||
assertEquals(2, cookie.version());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -206,26 +206,26 @@ public class CookieDecoderTest {
|
||||
Cookie c;
|
||||
|
||||
c = it.next();
|
||||
assertEquals(1, c.getVersion());
|
||||
assertEquals("Part_Number", c.getName());
|
||||
assertEquals("Rocket_Launcher_0001", c.getValue());
|
||||
assertEquals("/acme", c.getPath());
|
||||
assertNull(c.getComment());
|
||||
assertNull(c.getCommentUrl());
|
||||
assertNull(c.getDomain());
|
||||
assertTrue(c.getPorts().isEmpty());
|
||||
assertEquals(Long.MIN_VALUE, c.getMaxAge());
|
||||
assertEquals(1, c.version());
|
||||
assertEquals("Part_Number", c.name());
|
||||
assertEquals("Rocket_Launcher_0001", c.value());
|
||||
assertEquals("/acme", c.path());
|
||||
assertNull(c.comment());
|
||||
assertNull(c.commentUrl());
|
||||
assertNull(c.domain());
|
||||
assertTrue(c.ports().isEmpty());
|
||||
assertEquals(Long.MIN_VALUE, c.maxAge());
|
||||
|
||||
c = it.next();
|
||||
assertEquals(1, c.getVersion());
|
||||
assertEquals("Part_Number", c.getName());
|
||||
assertEquals("Riding_Rocket_0023", c.getValue());
|
||||
assertEquals("/acme/ammo", c.getPath());
|
||||
assertNull(c.getComment());
|
||||
assertNull(c.getCommentUrl());
|
||||
assertNull(c.getDomain());
|
||||
assertTrue(c.getPorts().isEmpty());
|
||||
assertEquals(Long.MIN_VALUE, c.getMaxAge());
|
||||
assertEquals(1, c.version());
|
||||
assertEquals("Part_Number", c.name());
|
||||
assertEquals("Riding_Rocket_0023", c.value());
|
||||
assertEquals("/acme/ammo", c.path());
|
||||
assertNull(c.comment());
|
||||
assertNull(c.commentUrl());
|
||||
assertNull(c.domain());
|
||||
assertTrue(c.ports().isEmpty());
|
||||
assertEquals(Long.MIN_VALUE, c.maxAge());
|
||||
|
||||
assertFalse(it.hasNext());
|
||||
}
|
||||
@ -242,27 +242,27 @@ public class CookieDecoderTest {
|
||||
|
||||
assertTrue(it.hasNext());
|
||||
c = it.next();
|
||||
assertEquals(1, c.getVersion());
|
||||
assertEquals("session_id", c.getName());
|
||||
assertEquals("1234", c.getValue());
|
||||
assertNull(c.getPath());
|
||||
assertNull(c.getComment());
|
||||
assertNull(c.getCommentUrl());
|
||||
assertNull(c.getDomain());
|
||||
assertTrue(c.getPorts().isEmpty());
|
||||
assertEquals(Long.MIN_VALUE, c.getMaxAge());
|
||||
assertEquals(1, c.version());
|
||||
assertEquals("session_id", c.name());
|
||||
assertEquals("1234", c.value());
|
||||
assertNull(c.path());
|
||||
assertNull(c.comment());
|
||||
assertNull(c.commentUrl());
|
||||
assertNull(c.domain());
|
||||
assertTrue(c.ports().isEmpty());
|
||||
assertEquals(Long.MIN_VALUE, c.maxAge());
|
||||
|
||||
assertTrue(it.hasNext());
|
||||
c = it.next();
|
||||
assertEquals(1, c.getVersion());
|
||||
assertEquals("session_id", c.getName());
|
||||
assertEquals("1111", c.getValue());
|
||||
assertEquals(".cracker.edu", c.getDomain());
|
||||
assertNull(c.getPath());
|
||||
assertNull(c.getComment());
|
||||
assertNull(c.getCommentUrl());
|
||||
assertTrue(c.getPorts().isEmpty());
|
||||
assertEquals(Long.MIN_VALUE, c.getMaxAge());
|
||||
assertEquals(1, c.version());
|
||||
assertEquals("session_id", c.name());
|
||||
assertEquals("1111", c.value());
|
||||
assertEquals(".cracker.edu", c.domain());
|
||||
assertNull(c.path());
|
||||
assertNull(c.comment());
|
||||
assertNull(c.commentUrl());
|
||||
assertTrue(c.ports().isEmpty());
|
||||
assertEquals(Long.MIN_VALUE, c.maxAge());
|
||||
|
||||
assertFalse(it.hasNext());
|
||||
}
|
||||
@ -284,36 +284,36 @@ public class CookieDecoderTest {
|
||||
Cookie c;
|
||||
|
||||
c = it.next();
|
||||
assertEquals("a", c.getName());
|
||||
assertEquals("", c.getValue());
|
||||
assertEquals("a", c.name());
|
||||
assertEquals("", c.value());
|
||||
|
||||
c = it.next();
|
||||
assertEquals("b", c.getName());
|
||||
assertEquals("1", c.getValue());
|
||||
assertEquals("b", c.name());
|
||||
assertEquals("1", c.value());
|
||||
|
||||
c = it.next();
|
||||
assertEquals("c", c.getName());
|
||||
assertEquals("\"1\"2\"", c.getValue());
|
||||
assertEquals("c", c.name());
|
||||
assertEquals("\"1\"2\"", c.value());
|
||||
|
||||
c = it.next();
|
||||
assertEquals("d", c.getName());
|
||||
assertEquals("1\"2\"3", c.getValue());
|
||||
assertEquals("d", c.name());
|
||||
assertEquals("1\"2\"3", c.value());
|
||||
|
||||
c = it.next();
|
||||
assertEquals("e", c.getName());
|
||||
assertEquals("\"\"", c.getValue());
|
||||
assertEquals("e", c.name());
|
||||
assertEquals("\"\"", c.value());
|
||||
|
||||
c = it.next();
|
||||
assertEquals("f", c.getName());
|
||||
assertEquals("1\"\"2", c.getValue());
|
||||
assertEquals("f", c.name());
|
||||
assertEquals("1\"\"2", c.value());
|
||||
|
||||
c = it.next();
|
||||
assertEquals("g", c.getName());
|
||||
assertEquals("\\", c.getValue());
|
||||
assertEquals("g", c.name());
|
||||
assertEquals("\\", c.value());
|
||||
|
||||
c = it.next();
|
||||
assertEquals("h", c.getName());
|
||||
assertEquals("';,\\x", c.getValue());
|
||||
assertEquals("h", c.name());
|
||||
assertEquals("';,\\x", c.value());
|
||||
|
||||
assertFalse(it.hasNext());
|
||||
}
|
||||
@ -332,30 +332,30 @@ public class CookieDecoderTest {
|
||||
Cookie c;
|
||||
|
||||
c = it.next();
|
||||
assertEquals("__utma", c.getName());
|
||||
assertEquals("48461872.1094088325.1258140131.1258140131.1258140131.1", c.getValue());
|
||||
assertEquals("__utma", c.name());
|
||||
assertEquals("48461872.1094088325.1258140131.1258140131.1258140131.1", c.value());
|
||||
|
||||
c = it.next();
|
||||
assertEquals("__utmb", c.getName());
|
||||
assertEquals("48461872.13.10.1258140131", c.getValue());
|
||||
assertEquals("__utmb", c.name());
|
||||
assertEquals("48461872.13.10.1258140131", c.value());
|
||||
|
||||
c = it.next();
|
||||
assertEquals("__utmc", c.getName());
|
||||
assertEquals("48461872", c.getValue());
|
||||
assertEquals("__utmc", c.name());
|
||||
assertEquals("48461872", c.value());
|
||||
|
||||
c = it.next();
|
||||
assertEquals("__utmz", c.getName());
|
||||
assertEquals("__utmz", c.name());
|
||||
assertEquals("48461872.1258140131.1.1.utmcsr=overstock.com|" +
|
||||
"utmccn=(referral)|utmcmd=referral|utmcct=/Home-Garden/Furniture/Clearance,/clearance,/32/dept.html",
|
||||
c.getValue());
|
||||
c.value());
|
||||
|
||||
c = it.next();
|
||||
assertEquals("ARPT", c.getName());
|
||||
assertEquals("LWUKQPSWRTUN04CKKJI", c.getValue());
|
||||
assertEquals("ARPT", c.name());
|
||||
assertEquals("LWUKQPSWRTUN04CKKJI", c.value());
|
||||
|
||||
c = it.next();
|
||||
assertEquals("kw-2E343B92-B097-442c-BFA5-BE371E0325A2", c.getName());
|
||||
assertEquals("unfinished furniture", c.getValue());
|
||||
assertEquals("kw-2E343B92-B097-442c-BFA5-BE371E0325A2", c.name());
|
||||
assertEquals("unfinished furniture", c.value());
|
||||
|
||||
assertFalse(it.hasNext());
|
||||
}
|
||||
@ -371,7 +371,7 @@ public class CookieDecoderTest {
|
||||
Set<Cookie> cookies = CookieDecoder.decode(source);
|
||||
|
||||
Cookie c = cookies.iterator().next();
|
||||
assertTrue(Math.abs(expectedMaxAge - c.getMaxAge()) < 2);
|
||||
assertTrue(Math.abs(expectedMaxAge - c.maxAge()) < 2);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -382,7 +382,7 @@ public class CookieDecoderTest {
|
||||
Set<Cookie> cookies = CookieDecoder.decode(source);
|
||||
|
||||
Cookie c = cookies.iterator().next();
|
||||
assertEquals("timeZoneName=(GMT+04:00) Moscow, St. Petersburg, Volgograd&promocode=®ion=BE", c.getValue());
|
||||
assertEquals("timeZoneName=(GMT+04:00) Moscow, St. Petersburg, Volgograd&promocode=®ion=BE", c.value());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -390,9 +390,9 @@ public class CookieDecoderTest {
|
||||
String src = "path=; expires=Mon, 01-Jan-1990 00:00:00 GMT; path=/; domain=.www.google.com";
|
||||
Set<Cookie> cookies = CookieDecoder.decode(src);
|
||||
Cookie c = cookies.iterator().next();
|
||||
assertEquals("path", c.getName());
|
||||
assertEquals("", c.getValue());
|
||||
assertEquals("/", c.getPath());
|
||||
assertEquals("path", c.name());
|
||||
assertEquals("", c.value());
|
||||
assertEquals("/", c.path());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -400,8 +400,8 @@ public class CookieDecoderTest {
|
||||
String src = "HTTPOnly=";
|
||||
Set<Cookie> cookies = CookieDecoder.decode(src);
|
||||
Cookie c = cookies.iterator().next();
|
||||
assertEquals("HTTPOnly", c.getName());
|
||||
assertEquals("", c.getValue());
|
||||
assertEquals("HTTPOnly", c.name());
|
||||
assertEquals("", c.value());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -410,11 +410,11 @@ public class CookieDecoderTest {
|
||||
Set<Cookie> cookies = CookieDecoder.decode(src);
|
||||
Iterator<Cookie> i = cookies.iterator();
|
||||
Cookie c = i.next();
|
||||
assertEquals("A", c.getName());
|
||||
assertEquals("v=1&lg=en-US,it-IT,it&intl=it&np=1", c.getValue());
|
||||
assertEquals("A", c.name());
|
||||
assertEquals("v=1&lg=en-US,it-IT,it&intl=it&np=1", c.value());
|
||||
c = i.next();
|
||||
assertEquals("T", c.getName());
|
||||
assertEquals("z=E", c.getValue());
|
||||
assertEquals("T", c.name());
|
||||
assertEquals("z=E", c.value());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -468,7 +468,7 @@ public class CookieDecoderTest {
|
||||
Set<Cookie> cookies = CookieDecoder.decode("bh=\"" + longValue + "\";");
|
||||
assertEquals(1, cookies.size());
|
||||
Cookie c = cookies.iterator().next();
|
||||
assertEquals("bh", c.getName());
|
||||
assertEquals(longValue, c.getValue());
|
||||
assertEquals("bh", c.name());
|
||||
assertEquals(longValue, c.value());
|
||||
}
|
||||
}
|
||||
|
@ -99,10 +99,9 @@ public class HttpChunkedInputTest {
|
||||
HttpContent httpContent = (HttpContent) ch.readOutbound();
|
||||
if (httpContent == null) {
|
||||
break;
|
||||
} else {
|
||||
if (lastHttpContent != null) {
|
||||
assertTrue("Chunk must be DefaultHttpContent", lastHttpContent instanceof DefaultHttpContent);
|
||||
}
|
||||
}
|
||||
if (lastHttpContent != null) {
|
||||
assertTrue("Chunk must be DefaultHttpContent", lastHttpContent instanceof DefaultHttpContent);
|
||||
}
|
||||
|
||||
ByteBuf buffer = httpContent.content();
|
||||
|
@ -35,7 +35,7 @@ public class HttpInvalidMessageTest {
|
||||
EmbeddedChannel ch = new EmbeddedChannel(new HttpRequestDecoder());
|
||||
ch.writeInbound(Unpooled.copiedBuffer("GET / HTTP/1.0 with extra\r\n", CharsetUtil.UTF_8));
|
||||
HttpRequest req = (HttpRequest) ch.readInbound();
|
||||
DecoderResult dr = req.getDecoderResult();
|
||||
DecoderResult dr = req.decoderResult();
|
||||
assertFalse(dr.isSuccess());
|
||||
assertTrue(dr.isFailure());
|
||||
ensureInboundTrafficDiscarded(ch);
|
||||
@ -49,11 +49,11 @@ public class HttpInvalidMessageTest {
|
||||
ch.writeInbound(Unpooled.copiedBuffer("Bad=Name: Bad Value\r\n", CharsetUtil.UTF_8));
|
||||
ch.writeInbound(Unpooled.copiedBuffer("\r\n", CharsetUtil.UTF_8));
|
||||
HttpRequest req = (HttpRequest) ch.readInbound();
|
||||
DecoderResult dr = req.getDecoderResult();
|
||||
DecoderResult dr = req.decoderResult();
|
||||
assertFalse(dr.isSuccess());
|
||||
assertTrue(dr.isFailure());
|
||||
assertEquals("Good Value", req.headers().get("Good_Name"));
|
||||
assertEquals("/maybe-something", req.getUri());
|
||||
assertEquals("/maybe-something", req.uri());
|
||||
ensureInboundTrafficDiscarded(ch);
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ public class HttpInvalidMessageTest {
|
||||
EmbeddedChannel ch = new EmbeddedChannel(new HttpResponseDecoder());
|
||||
ch.writeInbound(Unpooled.copiedBuffer("HTTP/1.0 BAD_CODE Bad Server\r\n", CharsetUtil.UTF_8));
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
DecoderResult dr = res.getDecoderResult();
|
||||
DecoderResult dr = res.decoderResult();
|
||||
assertFalse(dr.isSuccess());
|
||||
assertTrue(dr.isFailure());
|
||||
ensureInboundTrafficDiscarded(ch);
|
||||
@ -76,10 +76,10 @@ public class HttpInvalidMessageTest {
|
||||
ch.writeInbound(Unpooled.copiedBuffer("Bad=Name: Bad Value\r\n", CharsetUtil.UTF_8));
|
||||
ch.writeInbound(Unpooled.copiedBuffer("\r\n", CharsetUtil.UTF_8));
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
DecoderResult dr = res.getDecoderResult();
|
||||
DecoderResult dr = res.decoderResult();
|
||||
assertFalse(dr.isSuccess());
|
||||
assertTrue(dr.isFailure());
|
||||
assertEquals("Maybe OK", res.getStatus().reasonPhrase());
|
||||
assertEquals("Maybe OK", res.status().reasonPhrase());
|
||||
assertEquals("Good Value", res.headers().get("Good_Name"));
|
||||
ensureInboundTrafficDiscarded(ch);
|
||||
}
|
||||
@ -92,10 +92,10 @@ public class HttpInvalidMessageTest {
|
||||
ch.writeInbound(Unpooled.copiedBuffer("BAD_LENGTH\r\n", CharsetUtil.UTF_8));
|
||||
|
||||
HttpRequest req = (HttpRequest) ch.readInbound();
|
||||
assertTrue(req.getDecoderResult().isSuccess());
|
||||
assertTrue(req.decoderResult().isSuccess());
|
||||
|
||||
LastHttpContent chunk = (LastHttpContent) ch.readInbound();
|
||||
DecoderResult dr = chunk.getDecoderResult();
|
||||
DecoderResult dr = chunk.decoderResult();
|
||||
assertFalse(dr.isSuccess());
|
||||
assertTrue(dr.isFailure());
|
||||
ensureInboundTrafficDiscarded(ch);
|
||||
|
@ -35,8 +35,8 @@ public class HttpResponseDecoderTest {
|
||||
CharsetUtil.US_ASCII));
|
||||
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.getStatus(), is(HttpResponseStatus.OK));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.status(), is(HttpResponseStatus.OK));
|
||||
|
||||
byte[] data = new byte[64];
|
||||
for (int i = 0; i < data.length; i++) {
|
||||
@ -77,8 +77,8 @@ public class HttpResponseDecoderTest {
|
||||
Unpooled.copiedBuffer("HTTP/1.1 200 OK\r\nTransfer-Encoding: chunked\r\n\r\n", CharsetUtil.US_ASCII));
|
||||
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.getStatus(), is(HttpResponseStatus.OK));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.status(), is(HttpResponseStatus.OK));
|
||||
|
||||
byte[] data = new byte[64];
|
||||
for (int i = 0; i < data.length; i++) {
|
||||
@ -126,8 +126,8 @@ public class HttpResponseDecoderTest {
|
||||
|
||||
// Read the response headers.
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.getStatus(), is(HttpResponseStatus.OK));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.status(), is(HttpResponseStatus.OK));
|
||||
assertThat(ch.readInbound(), is(nullValue()));
|
||||
|
||||
// Close the connection without sending anything.
|
||||
@ -151,8 +151,8 @@ public class HttpResponseDecoderTest {
|
||||
|
||||
// Read the response headers.
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.getStatus(), is(HttpResponseStatus.OK));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.status(), is(HttpResponseStatus.OK));
|
||||
|
||||
// Read the partial content.
|
||||
HttpContent content = (HttpContent) ch.readInbound();
|
||||
@ -182,8 +182,8 @@ public class HttpResponseDecoderTest {
|
||||
|
||||
// Read the response headers.
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.getStatus(), is(HttpResponseStatus.OK));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.status(), is(HttpResponseStatus.OK));
|
||||
assertThat(res.headers().get(Names.TRANSFER_ENCODING), is("chunked"));
|
||||
assertThat(ch.readInbound(), is(nullValue()));
|
||||
|
||||
@ -203,8 +203,8 @@ public class HttpResponseDecoderTest {
|
||||
|
||||
// Read the response headers.
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.getStatus(), is(HttpResponseStatus.OK));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.status(), is(HttpResponseStatus.OK));
|
||||
assertThat(res.headers().get(Names.TRANSFER_ENCODING), is("chunked"));
|
||||
|
||||
// Read the partial content.
|
||||
@ -228,8 +228,8 @@ public class HttpResponseDecoderTest {
|
||||
ch.writeInbound(Unpooled.copiedBuffer("HTTP/1.1 200 OK\r\n\r\n", CharsetUtil.US_ASCII));
|
||||
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.getStatus(), is(HttpResponseStatus.OK));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.status(), is(HttpResponseStatus.OK));
|
||||
assertThat(ch.readInbound(), is(nullValue()));
|
||||
|
||||
assertThat(ch.finish(), is(true));
|
||||
@ -247,8 +247,8 @@ public class HttpResponseDecoderTest {
|
||||
ch.writeInbound(Unpooled.copiedBuffer("HTTP/1.1 200 OK\r\n\r\n", CharsetUtil.US_ASCII));
|
||||
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.getStatus(), is(HttpResponseStatus.OK));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.status(), is(HttpResponseStatus.OK));
|
||||
assertThat(ch.readInbound(), is(nullValue()));
|
||||
|
||||
ch.writeInbound(Unpooled.wrappedBuffer(new byte[1024]));
|
||||
@ -279,8 +279,8 @@ public class HttpResponseDecoderTest {
|
||||
CharsetUtil.US_ASCII));
|
||||
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.getStatus(), is(HttpResponseStatus.OK));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.status(), is(HttpResponseStatus.OK));
|
||||
|
||||
LastHttpContent lastContent = (LastHttpContent) ch.readInbound();
|
||||
assertThat(lastContent.content().isReadable(), is(false));
|
||||
@ -329,8 +329,8 @@ public class HttpResponseDecoderTest {
|
||||
|
||||
ch.writeInbound(Unpooled.wrappedBuffer(content, headerLength, content.length - headerLength));
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.getStatus(), is(HttpResponseStatus.OK));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.status(), is(HttpResponseStatus.OK));
|
||||
|
||||
LastHttpContent lastContent = (LastHttpContent) ch.readInbound();
|
||||
assertThat(lastContent.content().isReadable(), is(false));
|
||||
@ -362,8 +362,8 @@ public class HttpResponseDecoderTest {
|
||||
ch.writeInbound(Unpooled.wrappedBuffer(data, 5, data.length / 2));
|
||||
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.getStatus(), is(HttpResponseStatus.OK));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.status(), is(HttpResponseStatus.OK));
|
||||
|
||||
HttpContent firstContent = (HttpContent) ch.readInbound();
|
||||
assertThat(firstContent.content().readableBytes(), is(5));
|
||||
@ -410,8 +410,8 @@ public class HttpResponseDecoderTest {
|
||||
ch.writeInbound(Unpooled.wrappedBuffer(data, 5, data.length / 2));
|
||||
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.getStatus(), is(HttpResponseStatus.OK));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.status(), is(HttpResponseStatus.OK));
|
||||
|
||||
HttpContent firstContent = (HttpContent) ch.readInbound();
|
||||
assertThat(firstContent.content().readableBytes(), is(5));
|
||||
@ -440,8 +440,8 @@ public class HttpResponseDecoderTest {
|
||||
ch.writeInbound(Unpooled.wrappedBuffer(data));
|
||||
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.getStatus(), is(HttpResponseStatus.SWITCHING_PROTOCOLS));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.status(), is(HttpResponseStatus.SWITCHING_PROTOCOLS));
|
||||
HttpContent content = (HttpContent) ch.readInbound();
|
||||
assertThat(content.content().readableBytes(), is(16));
|
||||
content.release();
|
||||
@ -467,8 +467,8 @@ public class HttpResponseDecoderTest {
|
||||
ch.writeInbound(Unpooled.wrappedBuffer(data, otherData));
|
||||
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.getStatus(), is(HttpResponseStatus.SWITCHING_PROTOCOLS));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_1));
|
||||
assertThat(res.status(), is(HttpResponseStatus.SWITCHING_PROTOCOLS));
|
||||
HttpContent content = (HttpContent) ch.readInbound();
|
||||
assertThat(content.content().readableBytes(), is(16));
|
||||
content.release();
|
||||
@ -495,10 +495,10 @@ public class HttpResponseDecoderTest {
|
||||
|
||||
// Garbage input should generate the 999 Unknown response.
|
||||
HttpResponse res = (HttpResponse) ch.readInbound();
|
||||
assertThat(res.getProtocolVersion(), sameInstance(HttpVersion.HTTP_1_0));
|
||||
assertThat(res.getStatus().code(), is(999));
|
||||
assertThat(res.getDecoderResult().isFailure(), is(true));
|
||||
assertThat(res.getDecoderResult().isFinished(), is(true));
|
||||
assertThat(res.protocolVersion(), sameInstance(HttpVersion.HTTP_1_0));
|
||||
assertThat(res.status().code(), is(999));
|
||||
assertThat(res.decoderResult().isFailure(), is(true));
|
||||
assertThat(res.decoderResult().isFinished(), is(true));
|
||||
assertThat(ch.readInbound(), is(nullValue()));
|
||||
|
||||
// More garbage should not generate anything (i.e. the decoder discards anything beyond this point.)
|
||||
@ -527,7 +527,7 @@ public class HttpResponseDecoderTest {
|
||||
|
||||
// Ensure that the decoder generates the last chunk with correct decoder result.
|
||||
LastHttpContent invalidChunk = (LastHttpContent) channel.readInbound();
|
||||
assertThat(invalidChunk.getDecoderResult().isFailure(), is(true));
|
||||
assertThat(invalidChunk.decoderResult().isFailure(), is(true));
|
||||
invalidChunk.release();
|
||||
|
||||
// And no more messages should be produced by the decoder.
|
||||
|
@ -218,14 +218,14 @@ public class CorsHandlerTest {
|
||||
public void simpleRequestShortCurcuit() {
|
||||
final CorsConfig config = CorsConfig.withOrigin("http://localhost:8080").shortCurcuit().build();
|
||||
final HttpResponse response = simpleRequest(config, "http://localhost:7777");
|
||||
assertThat(response.getStatus(), is(FORBIDDEN));
|
||||
assertThat(response.status(), is(FORBIDDEN));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void simpleRequestNoShortCurcuit() {
|
||||
final CorsConfig config = CorsConfig.withOrigin("http://localhost:8080").build();
|
||||
final HttpResponse response = simpleRequest(config, "http://localhost:7777");
|
||||
assertThat(response.getStatus(), is(OK));
|
||||
assertThat(response.status(), is(OK));
|
||||
assertThat(response.headers().get(ACCESS_CONTROL_ALLOW_ORIGIN), is(nullValue()));
|
||||
}
|
||||
|
||||
@ -233,7 +233,7 @@ public class CorsHandlerTest {
|
||||
public void shortCurcuitNonCorsRequest() {
|
||||
final CorsConfig config = CorsConfig.withOrigin("https://localhost").shortCurcuit().build();
|
||||
final HttpResponse response = simpleRequest(config, null);
|
||||
assertThat(response.getStatus(), is(OK));
|
||||
assertThat(response.status(), is(OK));
|
||||
assertThat(response.headers().get(ACCESS_CONTROL_ALLOW_ORIGIN), is(nullValue()));
|
||||
}
|
||||
|
||||
@ -269,7 +269,7 @@ public class CorsHandlerTest {
|
||||
final EmbeddedChannel channel = new EmbeddedChannel(new CorsHandler(config));
|
||||
final FullHttpRequest httpRequest = createHttpRequest(OPTIONS);
|
||||
httpRequest.headers().set(ORIGIN, origin);
|
||||
httpRequest.headers().set(ACCESS_CONTROL_REQUEST_METHOD, httpRequest.getMethod().toString());
|
||||
httpRequest.headers().set(ACCESS_CONTROL_REQUEST_METHOD, httpRequest.method().toString());
|
||||
httpRequest.headers().set(ACCESS_CONTROL_REQUEST_HEADERS, requestHeaders);
|
||||
channel.writeInbound(httpRequest);
|
||||
return (HttpResponse) channel.readOutbound();
|
||||
|
@ -54,7 +54,7 @@ public class WebSocketServerProtocolHandlerTest {
|
||||
EmbeddedChannel ch = createChannel(new MockOutboundHandler());
|
||||
ChannelHandlerContext handshakerCtx = ch.pipeline().context(WebSocketServerProtocolHandshakeHandler.class);
|
||||
writeUpgradeRequest(ch);
|
||||
assertEquals(SWITCHING_PROTOCOLS, ReferenceCountUtil.releaseLater(responses.remove()).getStatus());
|
||||
assertEquals(SWITCHING_PROTOCOLS, ReferenceCountUtil.releaseLater(responses.remove()).status());
|
||||
assertNotNull(WebSocketServerProtocolHandler.getHandshaker(handshakerCtx));
|
||||
}
|
||||
|
||||
@ -63,10 +63,10 @@ public class WebSocketServerProtocolHandlerTest {
|
||||
EmbeddedChannel ch = createChannel();
|
||||
|
||||
writeUpgradeRequest(ch);
|
||||
assertEquals(SWITCHING_PROTOCOLS, ReferenceCountUtil.releaseLater(responses.remove()).getStatus());
|
||||
assertEquals(SWITCHING_PROTOCOLS, ReferenceCountUtil.releaseLater(responses.remove()).status());
|
||||
|
||||
ch.writeInbound(new DefaultFullHttpRequest(HTTP_1_1, HttpMethod.GET, "/test"));
|
||||
assertEquals(FORBIDDEN, ReferenceCountUtil.releaseLater(responses.remove()).getStatus());
|
||||
assertEquals(FORBIDDEN, ReferenceCountUtil.releaseLater(responses.remove()).status());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -83,7 +83,7 @@ public class WebSocketServerProtocolHandlerTest {
|
||||
ch.writeInbound(httpRequestWithEntity);
|
||||
|
||||
FullHttpResponse response = ReferenceCountUtil.releaseLater(responses.remove());
|
||||
assertEquals(BAD_REQUEST, response.getStatus());
|
||||
assertEquals(BAD_REQUEST, response.status());
|
||||
assertEquals("not a WebSocket handshake request: missing upgrade", getResponseMessage(response));
|
||||
}
|
||||
|
||||
@ -102,7 +102,7 @@ public class WebSocketServerProtocolHandlerTest {
|
||||
ch.writeInbound(httpRequest);
|
||||
|
||||
FullHttpResponse response = ReferenceCountUtil.releaseLater(responses.remove());
|
||||
assertEquals(BAD_REQUEST, response.getStatus());
|
||||
assertEquals(BAD_REQUEST, response.status());
|
||||
assertEquals("not a WebSocket request: missing key", getResponseMessage(response));
|
||||
}
|
||||
|
||||
|
@ -371,7 +371,7 @@ public class SpdyFrameDecoderTest {
|
||||
encodeControlFrameHeader(buf, type, flags, length);
|
||||
buf.writeInt(streamId | 0x80000000); // should ignore reserved bit
|
||||
buf.writeInt(associatedToStreamId | 0x80000000); // should ignore reserved bit
|
||||
buf.writeByte((priority << 5) | 0x1F); // should ignore reserved bits
|
||||
buf.writeByte(priority << 5 | 0x1F); // should ignore reserved bits
|
||||
buf.writeByte(0xFF); // should ignore reserved bits
|
||||
|
||||
delegate.readSynStreamFrame(streamId, associatedToStreamId, priority, false, false);
|
||||
|
@ -43,7 +43,7 @@ public class SpdySessionHandlerTest {
|
||||
assertNotNull(msg);
|
||||
assertTrue(msg instanceof SpdyDataFrame);
|
||||
SpdyDataFrame spdyDataFrame = (SpdyDataFrame) msg;
|
||||
assertEquals(streamId, spdyDataFrame.getStreamId());
|
||||
assertEquals(streamId, spdyDataFrame.streamId());
|
||||
assertEquals(last, spdyDataFrame.isLast());
|
||||
}
|
||||
|
||||
@ -57,29 +57,29 @@ public class SpdySessionHandlerTest {
|
||||
assertNotNull(msg);
|
||||
assertTrue(msg instanceof SpdyRstStreamFrame);
|
||||
SpdyRstStreamFrame spdyRstStreamFrame = (SpdyRstStreamFrame) msg;
|
||||
assertEquals(streamId, spdyRstStreamFrame.getStreamId());
|
||||
assertEquals(status, spdyRstStreamFrame.getStatus());
|
||||
assertEquals(streamId, spdyRstStreamFrame.streamId());
|
||||
assertEquals(status, spdyRstStreamFrame.status());
|
||||
}
|
||||
|
||||
private static void assertPing(Object msg, int id) {
|
||||
assertNotNull(msg);
|
||||
assertTrue(msg instanceof SpdyPingFrame);
|
||||
SpdyPingFrame spdyPingFrame = (SpdyPingFrame) msg;
|
||||
assertEquals(id, spdyPingFrame.getId());
|
||||
assertEquals(id, spdyPingFrame.id());
|
||||
}
|
||||
|
||||
private static void assertGoAway(Object msg, int lastGoodStreamId) {
|
||||
assertNotNull(msg);
|
||||
assertTrue(msg instanceof SpdyGoAwayFrame);
|
||||
SpdyGoAwayFrame spdyGoAwayFrame = (SpdyGoAwayFrame) msg;
|
||||
assertEquals(lastGoodStreamId, spdyGoAwayFrame.getLastGoodStreamId());
|
||||
assertEquals(lastGoodStreamId, spdyGoAwayFrame.lastGoodStreamId());
|
||||
}
|
||||
|
||||
private static void assertHeaders(Object msg, int streamId, boolean last, SpdyHeaders headers) {
|
||||
assertNotNull(msg);
|
||||
assertTrue(msg instanceof SpdyHeadersFrame);
|
||||
SpdyHeadersFrame spdyHeadersFrame = (SpdyHeadersFrame) msg;
|
||||
assertEquals(streamId, spdyHeadersFrame.getStreamId());
|
||||
assertEquals(streamId, spdyHeadersFrame.streamId());
|
||||
assertEquals(last, spdyHeadersFrame.isLast());
|
||||
for (String name: headers.names()) {
|
||||
List<String> expectedValues = headers.getAll(name);
|
||||
@ -158,7 +158,7 @@ public class SpdySessionHandlerTest {
|
||||
assertNull(sessionHandler.readOutbound());
|
||||
|
||||
// Check if session handler rejects HEADERS for closed streams
|
||||
int testStreamId = spdyDataFrame.getStreamId();
|
||||
int testStreamId = spdyDataFrame.streamId();
|
||||
sessionHandler.writeInbound(spdyDataFrame);
|
||||
assertDataFrame(sessionHandler.readOutbound(), testStreamId, spdyDataFrame.isLast());
|
||||
assertNull(sessionHandler.readOutbound());
|
||||
@ -223,7 +223,7 @@ public class SpdySessionHandlerTest {
|
||||
|
||||
// Check if session handler returns identical local PINGs
|
||||
sessionHandler.writeInbound(localPingFrame);
|
||||
assertPing(sessionHandler.readOutbound(), localPingFrame.getId());
|
||||
assertPing(sessionHandler.readOutbound(), localPingFrame.id());
|
||||
assertNull(sessionHandler.readOutbound());
|
||||
|
||||
// Check if session handler ignores un-initiated remote PINGs
|
||||
@ -335,11 +335,11 @@ public class SpdySessionHandlerTest {
|
||||
new DefaultSpdySynStreamFrame(streamId, 0, (byte) 0);
|
||||
spdySynStreamFrame.setLast(true);
|
||||
ctx.writeAndFlush(spdySynStreamFrame);
|
||||
spdySynStreamFrame.setStreamId(spdySynStreamFrame.getStreamId() + 2);
|
||||
spdySynStreamFrame.setStreamId(spdySynStreamFrame.streamId() + 2);
|
||||
ctx.writeAndFlush(spdySynStreamFrame);
|
||||
spdySynStreamFrame.setStreamId(spdySynStreamFrame.getStreamId() + 2);
|
||||
spdySynStreamFrame.setStreamId(spdySynStreamFrame.streamId() + 2);
|
||||
ctx.writeAndFlush(spdySynStreamFrame);
|
||||
spdySynStreamFrame.setStreamId(spdySynStreamFrame.getStreamId() + 2);
|
||||
spdySynStreamFrame.setStreamId(spdySynStreamFrame.streamId() + 2);
|
||||
ctx.writeAndFlush(spdySynStreamFrame);
|
||||
|
||||
// Limit the number of concurrent streams to 1
|
||||
@ -354,7 +354,7 @@ public class SpdySessionHandlerTest {
|
||||
|
||||
SpdySynStreamFrame spdySynStreamFrame = (SpdySynStreamFrame) msg;
|
||||
if (!spdySynStreamFrame.isUnidirectional()) {
|
||||
int streamId = spdySynStreamFrame.getStreamId();
|
||||
int streamId = spdySynStreamFrame.streamId();
|
||||
SpdySynReplyFrame spdySynReplyFrame = new DefaultSpdySynReplyFrame(streamId);
|
||||
spdySynReplyFrame.setLast(spdySynStreamFrame.isLast());
|
||||
for (Map.Entry<String, String> entry: spdySynStreamFrame.headers()) {
|
||||
|
@ -117,12 +117,12 @@ public class HttpStaticFileServerHandler extends SimpleChannelInboundHandler<Ful
|
||||
return;
|
||||
}
|
||||
|
||||
if (request.getMethod() != GET) {
|
||||
if (request.method() != GET) {
|
||||
sendError(ctx, METHOD_NOT_ALLOWED);
|
||||
return;
|
||||
}
|
||||
|
||||
final String uri = request.getUri();
|
||||
final String uri = request.uri();
|
||||
final String path = sanitizeUri(uri);
|
||||
if (path == null) {
|
||||
sendError(ctx, FORBIDDEN);
|
||||
|
@ -31,8 +31,8 @@ public class HttpSnoopClientHandler extends SimpleChannelInboundHandler<HttpObje
|
||||
if (msg instanceof HttpResponse) {
|
||||
HttpResponse response = (HttpResponse) msg;
|
||||
|
||||
System.err.println("STATUS: " + response.getStatus());
|
||||
System.err.println("VERSION: " + response.getProtocolVersion());
|
||||
System.err.println("STATUS: " + response.status());
|
||||
System.err.println("VERSION: " + response.protocolVersion());
|
||||
System.err.println();
|
||||
|
||||
if (!response.headers().isEmpty()) {
|
||||
|
@ -68,9 +68,9 @@ public class HttpSnoopServerHandler extends SimpleChannelInboundHandler<Object>
|
||||
buf.append("WELCOME TO THE WILD WILD WEB SERVER\r\n");
|
||||
buf.append("===================================\r\n");
|
||||
|
||||
buf.append("VERSION: ").append(request.getProtocolVersion()).append("\r\n");
|
||||
buf.append("VERSION: ").append(request.protocolVersion()).append("\r\n");
|
||||
buf.append("HOSTNAME: ").append(getHost(request, "unknown")).append("\r\n");
|
||||
buf.append("REQUEST_URI: ").append(request.getUri()).append("\r\n\r\n");
|
||||
buf.append("REQUEST_URI: ").append(request.uri()).append("\r\n\r\n");
|
||||
|
||||
HttpHeaders headers = request.headers();
|
||||
if (!headers.isEmpty()) {
|
||||
@ -82,7 +82,7 @@ public class HttpSnoopServerHandler extends SimpleChannelInboundHandler<Object>
|
||||
buf.append("\r\n");
|
||||
}
|
||||
|
||||
QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.getUri());
|
||||
QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.uri());
|
||||
Map<String, List<String>> params = queryStringDecoder.parameters();
|
||||
if (!params.isEmpty()) {
|
||||
for (Entry<String, List<String>> p: params.entrySet()) {
|
||||
|
@ -36,8 +36,8 @@ public class HttpUploadClientHandler extends SimpleChannelInboundHandler<HttpObj
|
||||
if (msg instanceof HttpResponse) {
|
||||
HttpResponse response = (HttpResponse) msg;
|
||||
|
||||
System.err.println("STATUS: " + response.getStatus());
|
||||
System.err.println("VERSION: " + response.getProtocolVersion());
|
||||
System.err.println("STATUS: " + response.status());
|
||||
System.err.println("VERSION: " + response.protocolVersion());
|
||||
|
||||
if (!response.headers().isEmpty()) {
|
||||
for (String name : response.headers().names()) {
|
||||
@ -47,7 +47,7 @@ public class HttpUploadClientHandler extends SimpleChannelInboundHandler<HttpObj
|
||||
}
|
||||
}
|
||||
|
||||
if (response.getStatus().code() == 200 && HttpHeaders.isTransferEncodingChunked(response)) {
|
||||
if (response.status().code() == 200 && HttpHeaders.isTransferEncodingChunked(response)) {
|
||||
readingChunks = true;
|
||||
System.err.println("CHUNKED CONTENT {");
|
||||
} else {
|
||||
|
@ -27,6 +27,7 @@ import io.netty.handler.codec.http.DefaultFullHttpResponse;
|
||||
import io.netty.handler.codec.http.FullHttpResponse;
|
||||
import io.netty.handler.codec.http.HttpContent;
|
||||
import io.netty.handler.codec.http.HttpHeaders;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpObject;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.HttpResponseStatus;
|
||||
@ -96,7 +97,7 @@ public class HttpUploadServerHandler extends SimpleChannelInboundHandler<HttpObj
|
||||
public void channelRead0(ChannelHandlerContext ctx, HttpObject msg) throws Exception {
|
||||
if (msg instanceof HttpRequest) {
|
||||
HttpRequest request = this.request = (HttpRequest) msg;
|
||||
URI uri = new URI(request.getUri());
|
||||
URI uri = new URI(request.uri());
|
||||
if (!uri.getPath().startsWith("/form")) {
|
||||
// Write Menu
|
||||
writeMenu(ctx);
|
||||
@ -106,9 +107,9 @@ public class HttpUploadServerHandler extends SimpleChannelInboundHandler<HttpObj
|
||||
responseContent.append("WELCOME TO THE WILD WILD WEB SERVER\r\n");
|
||||
responseContent.append("===================================\r\n");
|
||||
|
||||
responseContent.append("VERSION: " + request.getProtocolVersion().text() + "\r\n");
|
||||
responseContent.append("VERSION: " + request.protocolVersion().text() + "\r\n");
|
||||
|
||||
responseContent.append("REQUEST_URI: " + request.getUri() + "\r\n\r\n");
|
||||
responseContent.append("REQUEST_URI: " + request.uri() + "\r\n\r\n");
|
||||
responseContent.append("\r\n\r\n");
|
||||
|
||||
// new getMethod
|
||||
@ -130,7 +131,7 @@ public class HttpUploadServerHandler extends SimpleChannelInboundHandler<HttpObj
|
||||
}
|
||||
responseContent.append("\r\n\r\n");
|
||||
|
||||
QueryStringDecoder decoderQuery = new QueryStringDecoder(request.getUri());
|
||||
QueryStringDecoder decoderQuery = new QueryStringDecoder(request.uri());
|
||||
Map<String, List<String>> uriAttributes = decoderQuery.parameters();
|
||||
for (Entry<String, List<String>> attr: uriAttributes.entrySet()) {
|
||||
for (String attrVal: attr.getValue()) {
|
||||
@ -139,7 +140,14 @@ public class HttpUploadServerHandler extends SimpleChannelInboundHandler<HttpObj
|
||||
}
|
||||
responseContent.append("\r\n\r\n");
|
||||
|
||||
// if GET Method: should not try to create a HttpPostRequestDecoder
|
||||
if (request.method().equals(HttpMethod.GET)) {
|
||||
// GET Method: should not try to create a HttpPostRequestDecoder
|
||||
// So stop here
|
||||
responseContent.append("\r\n\r\nEND OF GET CONTENT\r\n");
|
||||
writeResponse(ctx.channel());
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
decoder = new HttpPostRequestDecoder(factory, request);
|
||||
} catch (ErrorDataDecoderException e1) {
|
||||
@ -285,7 +293,7 @@ public class HttpUploadServerHandler extends SimpleChannelInboundHandler<HttpObj
|
||||
|
||||
// Decide whether to close the connection or not.
|
||||
boolean close = HttpHeaders.Values.CLOSE.equalsIgnoreCase(request.headers().get(CONNECTION))
|
||||
|| request.getProtocolVersion().equals(HttpVersion.HTTP_1_0)
|
||||
|| request.protocolVersion().equals(HttpVersion.HTTP_1_0)
|
||||
&& !HttpHeaders.Values.KEEP_ALIVE.equalsIgnoreCase(request.headers().get(CONNECTION));
|
||||
|
||||
// Build the response object.
|
||||
|
@ -91,7 +91,7 @@ public class WebSocketClientHandler extends SimpleChannelInboundHandler<Object>
|
||||
if (msg instanceof FullHttpResponse) {
|
||||
FullHttpResponse response = (FullHttpResponse) msg;
|
||||
throw new IllegalStateException(
|
||||
"Unexpected FullHttpResponse (getStatus=" + response.getStatus() +
|
||||
"Unexpected FullHttpResponse (getStatus=" + response.status() +
|
||||
", content=" + response.content().toString(CharsetUtil.UTF_8) + ')');
|
||||
}
|
||||
|
||||
|
@ -70,13 +70,13 @@ public class WebSocketServerHandler extends SimpleChannelInboundHandler<Object>
|
||||
}
|
||||
|
||||
// Allow only GET methods.
|
||||
if (req.getMethod() != GET) {
|
||||
if (req.method() != GET) {
|
||||
sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HTTP_1_1, FORBIDDEN));
|
||||
return;
|
||||
}
|
||||
|
||||
// Send the demo page and favicon.ico
|
||||
if ("/".equals(req.getUri())) {
|
||||
if ("/".equals(req.uri())) {
|
||||
ByteBuf content = WebSocketServerIndexPage.getContent(getWebSocketLocation(req));
|
||||
FullHttpResponse res = new DefaultFullHttpResponse(HTTP_1_1, OK, content);
|
||||
|
||||
@ -86,7 +86,7 @@ public class WebSocketServerHandler extends SimpleChannelInboundHandler<Object>
|
||||
sendHttpResponse(ctx, req, res);
|
||||
return;
|
||||
}
|
||||
if ("/favicon.ico".equals(req.getUri())) {
|
||||
if ("/favicon.ico".equals(req.uri())) {
|
||||
FullHttpResponse res = new DefaultFullHttpResponse(HTTP_1_1, NOT_FOUND);
|
||||
sendHttpResponse(ctx, req, res);
|
||||
return;
|
||||
@ -128,8 +128,8 @@ public class WebSocketServerHandler extends SimpleChannelInboundHandler<Object>
|
||||
private static void sendHttpResponse(
|
||||
ChannelHandlerContext ctx, FullHttpRequest req, FullHttpResponse res) {
|
||||
// Generate an error page if response getStatus code is not OK (200).
|
||||
if (res.getStatus().code() != 200) {
|
||||
ByteBuf buf = Unpooled.copiedBuffer(res.getStatus().toString(), CharsetUtil.UTF_8);
|
||||
if (res.status().code() != 200) {
|
||||
ByteBuf buf = Unpooled.copiedBuffer(res.status().toString(), CharsetUtil.UTF_8);
|
||||
res.content().writeBytes(buf);
|
||||
buf.release();
|
||||
setContentLength(res, res.content().readableBytes());
|
||||
@ -137,7 +137,7 @@ public class WebSocketServerHandler extends SimpleChannelInboundHandler<Object>
|
||||
|
||||
// Send the response and close the connection if necessary.
|
||||
ChannelFuture f = ctx.channel().writeAndFlush(res);
|
||||
if (!isKeepAlive(req) || res.getStatus().code() != 200) {
|
||||
if (!isKeepAlive(req) || res.status().code() != 200) {
|
||||
f.addListener(ChannelFutureListener.CLOSE);
|
||||
}
|
||||
}
|
||||
|
@ -42,8 +42,8 @@ public class HttpResponseClientHandler extends SimpleChannelInboundHandler<HttpO
|
||||
if (msg instanceof HttpResponse) {
|
||||
HttpResponse response = (HttpResponse) msg;
|
||||
|
||||
System.out.println("STATUS: " + response.getStatus());
|
||||
System.out.println("VERSION: " + response.getProtocolVersion());
|
||||
System.out.println("STATUS: " + response.status());
|
||||
System.out.println("VERSION: " + response.protocolVersion());
|
||||
System.out.println();
|
||||
|
||||
if (!response.headers().isEmpty()) {
|
||||
|
@ -17,10 +17,8 @@ package io.netty.testsuite.transport.socket;
|
||||
|
||||
import io.netty.bootstrap.Bootstrap;
|
||||
import io.netty.bootstrap.ServerBootstrap;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundHandlerAdapter;
|
||||
import io.netty.util.ReferenceCountUtil;
|
||||
@ -32,9 +30,7 @@ import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotEquals;
|
||||
import static org.junit.Assert.fail;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
public class SocketAutoReadTest extends AbstractSocketTest {
|
||||
private static final Random random = new Random();
|
||||
|
@ -80,7 +80,7 @@ public class AutobahnServerHandler extends ChannelInboundHandlerAdapter {
|
||||
}
|
||||
|
||||
// Allow only GET methods.
|
||||
if (req.getMethod() != GET) {
|
||||
if (req.method() != GET) {
|
||||
sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HTTP_1_1, FORBIDDEN));
|
||||
req.release();
|
||||
return;
|
||||
@ -125,9 +125,9 @@ public class AutobahnServerHandler extends ChannelInboundHandlerAdapter {
|
||||
|
||||
private static void sendHttpResponse(
|
||||
ChannelHandlerContext ctx, FullHttpRequest req, FullHttpResponse res) {
|
||||
// Generate an error page if response getStatus code is not OK (200).
|
||||
if (res.getStatus().code() != 200) {
|
||||
ByteBuf buf = Unpooled.copiedBuffer(res.getStatus().toString(), CharsetUtil.UTF_8);
|
||||
// Generate an error page if response status code is not OK (200).
|
||||
if (res.status().code() != 200) {
|
||||
ByteBuf buf = Unpooled.copiedBuffer(res.status().toString(), CharsetUtil.UTF_8);
|
||||
res.content().writeBytes(buf);
|
||||
buf.release();
|
||||
setContentLength(res, res.content().readableBytes());
|
||||
@ -135,7 +135,7 @@ public class AutobahnServerHandler extends ChannelInboundHandlerAdapter {
|
||||
|
||||
// Send the response and close the connection if necessary.
|
||||
ChannelFuture f = ctx.channel().writeAndFlush(res);
|
||||
if (!isKeepAlive(req) || res.getStatus().code() != 200) {
|
||||
if (!isKeepAlive(req) || res.status().code() != 200) {
|
||||
f.addListener(ChannelFutureListener.CLOSE);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user