Fix parameter namings + some more
This commit is contained in:
parent
369574078b
commit
bcc088b3d7
@ -824,8 +824,8 @@ public class HttpHeaders {
|
|||||||
return hash % BUCKET_SIZE;
|
return hash % BUCKET_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
private final Entry[] entries = new Entry[BUCKET_SIZE];
|
private final HeaderEntry[] entries = new HeaderEntry[BUCKET_SIZE];
|
||||||
private final Entry head = new Entry(-1, null, null);
|
private final HeaderEntry head = new HeaderEntry(-1, null, null);
|
||||||
|
|
||||||
HttpHeaders() {
|
HttpHeaders() {
|
||||||
head.before = head.after = head;
|
head.before = head.after = head;
|
||||||
@ -846,9 +846,9 @@ public class HttpHeaders {
|
|||||||
|
|
||||||
private void addHeader0(int h, int i, final String name, final String value) {
|
private void addHeader0(int h, int i, final String name, final String value) {
|
||||||
// Update the hash table.
|
// Update the hash table.
|
||||||
Entry e = entries[i];
|
HeaderEntry e = entries[i];
|
||||||
Entry newEntry;
|
HeaderEntry newEntry;
|
||||||
entries[i] = newEntry = new Entry(h, name, value);
|
entries[i] = newEntry = new HeaderEntry(h, name, value);
|
||||||
newEntry.next = e;
|
newEntry.next = e;
|
||||||
|
|
||||||
// Update the linked list.
|
// Update the linked list.
|
||||||
@ -865,7 +865,7 @@ public class HttpHeaders {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void removeHeader0(int h, int i, String name) {
|
private void removeHeader0(int h, int i, String name) {
|
||||||
Entry e = entries[i];
|
HeaderEntry e = entries[i];
|
||||||
if (e == null) {
|
if (e == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -873,7 +873,7 @@ public class HttpHeaders {
|
|||||||
for (;;) {
|
for (;;) {
|
||||||
if (e.hash == h && eq(name, e.key)) {
|
if (e.hash == h && eq(name, e.key)) {
|
||||||
e.remove();
|
e.remove();
|
||||||
Entry next = e.next;
|
HeaderEntry next = e.next;
|
||||||
if (next != null) {
|
if (next != null) {
|
||||||
entries[i] = next;
|
entries[i] = next;
|
||||||
e = next;
|
e = next;
|
||||||
@ -887,7 +887,7 @@ public class HttpHeaders {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
Entry next = e.next;
|
HeaderEntry next = e.next;
|
||||||
if (next == null) {
|
if (next == null) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -945,7 +945,7 @@ public class HttpHeaders {
|
|||||||
|
|
||||||
int h = hash(name);
|
int h = hash(name);
|
||||||
int i = index(h);
|
int i = index(h);
|
||||||
Entry e = entries[i];
|
HeaderEntry e = entries[i];
|
||||||
while (e != null) {
|
while (e != null) {
|
||||||
if (e.hash == h && eq(name, e.key)) {
|
if (e.hash == h && eq(name, e.key)) {
|
||||||
return e.value;
|
return e.value;
|
||||||
@ -965,7 +965,7 @@ public class HttpHeaders {
|
|||||||
|
|
||||||
int h = hash(name);
|
int h = hash(name);
|
||||||
int i = index(h);
|
int i = index(h);
|
||||||
Entry e = entries[i];
|
HeaderEntry e = entries[i];
|
||||||
while (e != null) {
|
while (e != null) {
|
||||||
if (e.hash == h && eq(name, e.key)) {
|
if (e.hash == h && eq(name, e.key)) {
|
||||||
values.addFirst(e.value);
|
values.addFirst(e.value);
|
||||||
@ -979,7 +979,7 @@ public class HttpHeaders {
|
|||||||
List<Map.Entry<String, String>> all =
|
List<Map.Entry<String, String>> all =
|
||||||
new LinkedList<Map.Entry<String, String>>();
|
new LinkedList<Map.Entry<String, String>>();
|
||||||
|
|
||||||
Entry e = head.after;
|
HeaderEntry e = head.after;
|
||||||
while (e != head) {
|
while (e != head) {
|
||||||
all.add(e);
|
all.add(e);
|
||||||
e = e.after;
|
e = e.after;
|
||||||
@ -995,7 +995,7 @@ public class HttpHeaders {
|
|||||||
Set<String> names =
|
Set<String> names =
|
||||||
new TreeSet<String>(CaseIgnoringComparator.INSTANCE);
|
new TreeSet<String>(CaseIgnoringComparator.INSTANCE);
|
||||||
|
|
||||||
Entry e = head.after;
|
HeaderEntry e = head.after;
|
||||||
while (e != head) {
|
while (e != head) {
|
||||||
names.add(e.key);
|
names.add(e.key);
|
||||||
e = e.after;
|
e = e.after;
|
||||||
@ -1010,14 +1010,14 @@ public class HttpHeaders {
|
|||||||
return value.toString();
|
return value.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final class Entry implements Map.Entry<String, String> {
|
private static final class HeaderEntry implements Map.Entry<String, String> {
|
||||||
final int hash;
|
final int hash;
|
||||||
final String key;
|
final String key;
|
||||||
String value;
|
String value;
|
||||||
Entry next;
|
HeaderEntry next;
|
||||||
Entry before, after;
|
HeaderEntry before, after;
|
||||||
|
|
||||||
Entry(int hash, String key, String value) {
|
HeaderEntry(int hash, String key, String value) {
|
||||||
this.hash = hash;
|
this.hash = hash;
|
||||||
this.key = key;
|
this.key = key;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
@ -1028,7 +1028,7 @@ public class HttpHeaders {
|
|||||||
after.before = before;
|
after.before = before;
|
||||||
}
|
}
|
||||||
|
|
||||||
void addBefore(Entry e) {
|
void addBefore(HeaderEntry e) {
|
||||||
after = e;
|
after = e;
|
||||||
before = e.before;
|
before = e.before;
|
||||||
before.after = this;
|
before.after = this;
|
||||||
|
@ -87,12 +87,12 @@ public class DiskAttribute extends AbstractDiskHttpData implements Attribute {
|
|||||||
return getName().equalsIgnoreCase(attribute.getName());
|
return getName().equalsIgnoreCase(attribute.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(InterfaceHttpData arg0) {
|
public int compareTo(InterfaceHttpData o) {
|
||||||
if (!(arg0 instanceof Attribute)) {
|
if (!(o instanceof Attribute)) {
|
||||||
throw new ClassCastException("Cannot compare " + getHttpDataType() +
|
throw new ClassCastException("Cannot compare " + getHttpDataType() +
|
||||||
" with " + arg0.getHttpDataType());
|
" with " + o.getHttpDataType());
|
||||||
}
|
}
|
||||||
return compareTo((Attribute) arg0);
|
return compareTo((Attribute) o);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(Attribute o) {
|
public int compareTo(Attribute o) {
|
||||||
|
@ -75,12 +75,12 @@ public class DiskFileUpload extends AbstractDiskHttpData implements FileUpload {
|
|||||||
return getName().equalsIgnoreCase(attribute.getName());
|
return getName().equalsIgnoreCase(attribute.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(InterfaceHttpData arg0) {
|
public int compareTo(InterfaceHttpData o) {
|
||||||
if (!(arg0 instanceof FileUpload)) {
|
if (!(o instanceof FileUpload)) {
|
||||||
throw new ClassCastException("Cannot compare " + getHttpDataType() +
|
throw new ClassCastException("Cannot compare " + getHttpDataType() +
|
||||||
" with " + arg0.getHttpDataType());
|
" with " + o.getHttpDataType());
|
||||||
}
|
}
|
||||||
return compareTo((FileUpload) arg0);
|
return compareTo((FileUpload) o);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(FileUpload o) {
|
public int compareTo(FileUpload o) {
|
||||||
|
@ -68,12 +68,12 @@ public class InternalAttribute implements InterfaceHttpData {
|
|||||||
return getName().equalsIgnoreCase(attribute.getName());
|
return getName().equalsIgnoreCase(attribute.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(InterfaceHttpData arg0) {
|
public int compareTo(InterfaceHttpData o) {
|
||||||
if (!(arg0 instanceof InternalAttribute)) {
|
if (!(o instanceof InternalAttribute)) {
|
||||||
throw new ClassCastException("Cannot compare " + getHttpDataType() +
|
throw new ClassCastException("Cannot compare " + getHttpDataType() +
|
||||||
" with " + arg0.getHttpDataType());
|
" with " + o.getHttpDataType());
|
||||||
}
|
}
|
||||||
return compareTo((InternalAttribute) arg0);
|
return compareTo((InternalAttribute) o);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(InternalAttribute o) {
|
public int compareTo(InternalAttribute o) {
|
||||||
|
@ -15,10 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
package org.jboss.netty.handler.codec.http.multipart;
|
package org.jboss.netty.handler.codec.http.multipart;
|
||||||
|
|
||||||
import java.nio.charset.Charset;
|
|
||||||
|
|
||||||
import org.jboss.netty.handler.codec.http.HttpHeaders;
|
import org.jboss.netty.handler.codec.http.HttpHeaders;
|
||||||
|
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default FileUpload implementation that stores file into memory.<br><br>
|
* Default FileUpload implementation that stores file into memory.<br><br>
|
||||||
*
|
*
|
||||||
@ -69,12 +69,12 @@ public class MemoryFileUpload extends AbstractMemoryHttpData implements FileUplo
|
|||||||
return getName().equalsIgnoreCase(attribute.getName());
|
return getName().equalsIgnoreCase(attribute.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(InterfaceHttpData arg0) {
|
public int compareTo(InterfaceHttpData o) {
|
||||||
if (!(arg0 instanceof FileUpload)) {
|
if (!(o instanceof FileUpload)) {
|
||||||
throw new ClassCastException("Cannot compare " + getHttpDataType() +
|
throw new ClassCastException("Cannot compare " + getHttpDataType() +
|
||||||
" with " + arg0.getHttpDataType());
|
" with " + o.getHttpDataType());
|
||||||
}
|
}
|
||||||
return compareTo((FileUpload) arg0);
|
return compareTo((FileUpload) o);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(FileUpload o) {
|
public int compareTo(FileUpload o) {
|
||||||
|
@ -37,13 +37,13 @@ public class DefaultSpdySettingsFrame implements SpdySettingsFrame {
|
|||||||
return settingsMap.keySet();
|
return settingsMap.keySet();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSet(int ID) {
|
public boolean isSet(int id) {
|
||||||
Integer key = ID;
|
Integer key = id;
|
||||||
return settingsMap.containsKey(key);
|
return settingsMap.containsKey(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getValue(int ID) {
|
public int getValue(int id) {
|
||||||
Integer key = ID;
|
Integer key = id;
|
||||||
if (settingsMap.containsKey(key)) {
|
if (settingsMap.containsKey(key)) {
|
||||||
return settingsMap.get(key).getValue();
|
return settingsMap.get(key).getValue();
|
||||||
} else {
|
} else {
|
||||||
@ -51,15 +51,15 @@ public class DefaultSpdySettingsFrame implements SpdySettingsFrame {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setValue(int ID, int value) {
|
public void setValue(int id, int value) {
|
||||||
setValue(ID, value, false, false);
|
setValue(id, value, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setValue(int ID, int value, boolean persistValue, boolean persisted) {
|
public void setValue(int id, int value, boolean persistValue, boolean persisted) {
|
||||||
if (ID <= 0 || ID > SpdyCodecUtil.SPDY_SETTINGS_MAX_ID) {
|
if (id <= 0 || id > SpdyCodecUtil.SPDY_SETTINGS_MAX_ID) {
|
||||||
throw new IllegalArgumentException("Setting ID is not valid: " + ID);
|
throw new IllegalArgumentException("Setting ID is not valid: " + id);
|
||||||
}
|
}
|
||||||
Integer key = ID;
|
Integer key = id;
|
||||||
if (settingsMap.containsKey(key)) {
|
if (settingsMap.containsKey(key)) {
|
||||||
Setting setting = settingsMap.get(key);
|
Setting setting = settingsMap.get(key);
|
||||||
setting.setValue(value);
|
setting.setValue(value);
|
||||||
@ -70,19 +70,19 @@ public class DefaultSpdySettingsFrame implements SpdySettingsFrame {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeValue(int ID) {
|
public void removeValue(int id) {
|
||||||
Integer key = ID;
|
Integer key = id;
|
||||||
if (settingsMap.containsKey(key)) {
|
if (settingsMap.containsKey(key)) {
|
||||||
settingsMap.remove(key);
|
settingsMap.remove(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean persistValue(int ID) {
|
public boolean persistValue(int id) {
|
||||||
return isPersistValue(ID);
|
return isPersistValue(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPersistValue(int ID) {
|
public boolean isPersistValue(int id) {
|
||||||
Integer key = ID;
|
Integer key = id;
|
||||||
if (settingsMap.containsKey(key)) {
|
if (settingsMap.containsKey(key)) {
|
||||||
return settingsMap.get(key).isPersist();
|
return settingsMap.get(key).isPersist();
|
||||||
} else {
|
} else {
|
||||||
@ -90,15 +90,15 @@ public class DefaultSpdySettingsFrame implements SpdySettingsFrame {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPersistValue(int ID, boolean persistValue) {
|
public void setPersistValue(int id, boolean persistValue) {
|
||||||
Integer key = ID;
|
Integer key = id;
|
||||||
if (settingsMap.containsKey(key)) {
|
if (settingsMap.containsKey(key)) {
|
||||||
settingsMap.get(key).setPersist(persistValue);
|
settingsMap.get(key).setPersist(persistValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPersisted(int ID) {
|
public boolean isPersisted(int id) {
|
||||||
Integer key = ID;
|
Integer key = id;
|
||||||
if (settingsMap.containsKey(key)) {
|
if (settingsMap.containsKey(key)) {
|
||||||
return settingsMap.get(key).isPersisted();
|
return settingsMap.get(key).isPersisted();
|
||||||
} else {
|
} else {
|
||||||
@ -106,8 +106,8 @@ public class DefaultSpdySettingsFrame implements SpdySettingsFrame {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPersisted(int ID, boolean persisted) {
|
public void setPersisted(int id, boolean persisted) {
|
||||||
Integer key = ID;
|
Integer key = id;
|
||||||
if (settingsMap.containsKey(key)) {
|
if (settingsMap.containsKey(key)) {
|
||||||
settingsMap.get(key).setPersisted(persisted);
|
settingsMap.get(key).setPersisted(persisted);
|
||||||
}
|
}
|
||||||
|
@ -15,16 +15,16 @@
|
|||||||
*/
|
*/
|
||||||
package org.jboss.netty.handler.codec.spdy;
|
package org.jboss.netty.handler.codec.spdy;
|
||||||
|
|
||||||
|
import org.jboss.netty.handler.codec.http.HttpMethod;
|
||||||
|
import org.jboss.netty.handler.codec.http.HttpResponseStatus;
|
||||||
|
import org.jboss.netty.handler.codec.http.HttpVersion;
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
import org.jboss.netty.handler.codec.http.HttpMethod;
|
|
||||||
import org.jboss.netty.handler.codec.http.HttpResponseStatus;
|
|
||||||
import org.jboss.netty.handler.codec.http.HttpVersion;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides the constants for the standard SPDY HTTP header names and commonly
|
* Provides the constants for the standard SPDY HTTP header names and commonly
|
||||||
* used utility methods that access a {@link SpdyHeaderBlock}.
|
* used utility methods that access a {@link SpdyHeaderBlock}.
|
||||||
@ -529,8 +529,8 @@ public class SpdyHeaders {
|
|||||||
return hash % BUCKET_SIZE;
|
return hash % BUCKET_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
private final Entry[] entries = new Entry[BUCKET_SIZE];
|
private final HeaderEntry[] entries = new HeaderEntry[BUCKET_SIZE];
|
||||||
private final Entry head = new Entry(-1, null, null);
|
private final HeaderEntry head = new HeaderEntry(-1, null, null);
|
||||||
|
|
||||||
SpdyHeaders() {
|
SpdyHeaders() {
|
||||||
head.before = head.after = head;
|
head.before = head.after = head;
|
||||||
@ -548,9 +548,9 @@ public class SpdyHeaders {
|
|||||||
|
|
||||||
private void addHeader0(int h, int i, final String name, final String value) {
|
private void addHeader0(int h, int i, final String name, final String value) {
|
||||||
// Update the hash table.
|
// Update the hash table.
|
||||||
Entry e = entries[i];
|
HeaderEntry e = entries[i];
|
||||||
Entry newEntry;
|
HeaderEntry newEntry;
|
||||||
entries[i] = newEntry = new Entry(h, name, value);
|
entries[i] = newEntry = new HeaderEntry(h, name, value);
|
||||||
newEntry.next = e;
|
newEntry.next = e;
|
||||||
|
|
||||||
// Update the linked list.
|
// Update the linked list.
|
||||||
@ -568,7 +568,7 @@ public class SpdyHeaders {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void removeHeader0(int h, int i, String name) {
|
private void removeHeader0(int h, int i, String name) {
|
||||||
Entry e = entries[i];
|
HeaderEntry e = entries[i];
|
||||||
if (e == null) {
|
if (e == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -576,7 +576,7 @@ public class SpdyHeaders {
|
|||||||
for (;;) {
|
for (;;) {
|
||||||
if (e.hash == h && eq(name, e.key)) {
|
if (e.hash == h && eq(name, e.key)) {
|
||||||
e.remove();
|
e.remove();
|
||||||
Entry next = e.next;
|
HeaderEntry next = e.next;
|
||||||
if (next != null) {
|
if (next != null) {
|
||||||
entries[i] = next;
|
entries[i] = next;
|
||||||
e = next;
|
e = next;
|
||||||
@ -590,7 +590,7 @@ public class SpdyHeaders {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
Entry next = e.next;
|
HeaderEntry next = e.next;
|
||||||
if (next == null) {
|
if (next == null) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -650,7 +650,7 @@ public class SpdyHeaders {
|
|||||||
|
|
||||||
int h = hash(name);
|
int h = hash(name);
|
||||||
int i = index(h);
|
int i = index(h);
|
||||||
Entry e = entries[i];
|
HeaderEntry e = entries[i];
|
||||||
while (e != null) {
|
while (e != null) {
|
||||||
if (e.hash == h && eq(name, e.key)) {
|
if (e.hash == h && eq(name, e.key)) {
|
||||||
return e.value;
|
return e.value;
|
||||||
@ -670,7 +670,7 @@ public class SpdyHeaders {
|
|||||||
|
|
||||||
int h = hash(name);
|
int h = hash(name);
|
||||||
int i = index(h);
|
int i = index(h);
|
||||||
Entry e = entries[i];
|
HeaderEntry e = entries[i];
|
||||||
while (e != null) {
|
while (e != null) {
|
||||||
if (e.hash == h && eq(name, e.key)) {
|
if (e.hash == h && eq(name, e.key)) {
|
||||||
values.addFirst(e.value);
|
values.addFirst(e.value);
|
||||||
@ -684,7 +684,7 @@ public class SpdyHeaders {
|
|||||||
List<Map.Entry<String, String>> all =
|
List<Map.Entry<String, String>> all =
|
||||||
new LinkedList<Map.Entry<String, String>>();
|
new LinkedList<Map.Entry<String, String>>();
|
||||||
|
|
||||||
Entry e = head.after;
|
HeaderEntry e = head.after;
|
||||||
while (e != head) {
|
while (e != head) {
|
||||||
all.add(e);
|
all.add(e);
|
||||||
e = e.after;
|
e = e.after;
|
||||||
@ -699,7 +699,7 @@ public class SpdyHeaders {
|
|||||||
Set<String> getHeaderNames() {
|
Set<String> getHeaderNames() {
|
||||||
Set<String> names = new TreeSet<String>();
|
Set<String> names = new TreeSet<String>();
|
||||||
|
|
||||||
Entry e = head.after;
|
HeaderEntry e = head.after;
|
||||||
while (e != head) {
|
while (e != head) {
|
||||||
names.add(e.key);
|
names.add(e.key);
|
||||||
e = e.after;
|
e = e.after;
|
||||||
@ -714,14 +714,14 @@ public class SpdyHeaders {
|
|||||||
return value.toString();
|
return value.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final class Entry implements Map.Entry<String, String> {
|
private static final class HeaderEntry implements Map.Entry<String, String> {
|
||||||
final int hash;
|
final int hash;
|
||||||
final String key;
|
final String key;
|
||||||
String value;
|
String value;
|
||||||
Entry next;
|
HeaderEntry next;
|
||||||
Entry before, after;
|
HeaderEntry before, after;
|
||||||
|
|
||||||
Entry(int hash, String key, String value) {
|
HeaderEntry(int hash, String key, String value) {
|
||||||
this.hash = hash;
|
this.hash = hash;
|
||||||
this.key = key;
|
this.key = key;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
@ -732,7 +732,7 @@ public class SpdyHeaders {
|
|||||||
after.before = before;
|
after.before = before;
|
||||||
}
|
}
|
||||||
|
|
||||||
void addBefore(Entry e) {
|
void addBefore(HeaderEntry e) {
|
||||||
after = e;
|
after = e;
|
||||||
before = e.before;
|
before = e.before;
|
||||||
before.after = this;
|
before.after = this;
|
||||||
|
@ -15,12 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.jboss.netty.handler.codec.spdy;
|
package org.jboss.netty.handler.codec.spdy;
|
||||||
|
|
||||||
import static org.jboss.netty.handler.codec.spdy.SpdyCodecUtil.*;
|
|
||||||
|
|
||||||
import java.net.SocketAddress;
|
|
||||||
import java.nio.channels.ClosedChannelException;
|
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
|
||||||
|
|
||||||
import org.jboss.netty.channel.Channel;
|
import org.jboss.netty.channel.Channel;
|
||||||
import org.jboss.netty.channel.ChannelDownstreamHandler;
|
import org.jboss.netty.channel.ChannelDownstreamHandler;
|
||||||
import org.jboss.netty.channel.ChannelEvent;
|
import org.jboss.netty.channel.ChannelEvent;
|
||||||
@ -33,6 +27,12 @@ import org.jboss.netty.channel.ExceptionEvent;
|
|||||||
import org.jboss.netty.channel.MessageEvent;
|
import org.jboss.netty.channel.MessageEvent;
|
||||||
import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
|
import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
|
||||||
|
|
||||||
|
import java.net.SocketAddress;
|
||||||
|
import java.nio.channels.ClosedChannelException;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
|
import static org.jboss.netty.handler.codec.spdy.SpdyCodecUtil.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manages streams within a SPDY session.
|
* Manages streams within a SPDY session.
|
||||||
*/
|
*/
|
||||||
@ -678,8 +678,8 @@ public class SpdySessionHandler extends SimpleChannelUpstreamHandler
|
|||||||
* Helper functions
|
* Helper functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private boolean isRemoteInitiatedID(int ID) {
|
private boolean isRemoteInitiatedID(int id) {
|
||||||
boolean serverID = isServerId(ID);
|
boolean serverID = isServerId(id);
|
||||||
return server && !serverID || !server && serverID;
|
return server && !serverID || !server && serverID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,19 +46,19 @@ public interface SpdySettingsFrame {
|
|||||||
/**
|
/**
|
||||||
* Returns {@code true} if the setting ID has a value.
|
* Returns {@code true} if the setting ID has a value.
|
||||||
*/
|
*/
|
||||||
boolean isSet(int ID);
|
boolean isSet(int id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the value of the setting ID.
|
* Returns the value of the setting ID.
|
||||||
* Returns -1 if the setting ID is not set.
|
* Returns -1 if the setting ID is not set.
|
||||||
*/
|
*/
|
||||||
int getValue(int ID);
|
int getValue(int id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value of the setting ID.
|
* Sets the value of the setting ID.
|
||||||
* The ID must be positive and cannot exceed 16777215.
|
* The ID must be positive and cannot exceed 16777215.
|
||||||
*/
|
*/
|
||||||
void setValue(int ID, int value);
|
void setValue(int id, int value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value of the setting ID.
|
* Sets the value of the setting ID.
|
||||||
@ -66,45 +66,45 @@ public interface SpdySettingsFrame {
|
|||||||
* Sets if the setting is persisted (should only be set by the client).
|
* Sets if the setting is persisted (should only be set by the client).
|
||||||
* The ID must be positive and cannot exceed 16777215.
|
* The ID must be positive and cannot exceed 16777215.
|
||||||
*/
|
*/
|
||||||
void setValue(int ID, int value, boolean persistVal, boolean persisted);
|
void setValue(int id, int value, boolean persistVal, boolean persisted);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes the value of the setting ID.
|
* Removes the value of the setting ID.
|
||||||
* Removes all persistance information for the setting.
|
* Removes all persistance information for the setting.
|
||||||
*/
|
*/
|
||||||
void removeValue(int ID);
|
void removeValue(int id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated Use {@link #isPersistValue(int)} instead.
|
* @deprecated Use {@link #isPersistValue(int)} instead.
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
boolean persistValue(int ID);
|
boolean persistValue(int id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns {@code true} if this setting should be persisted.
|
* Returns {@code true} if this setting should be persisted.
|
||||||
* Returns {@code false} if this setting should not be persisted
|
* Returns {@code false} if this setting should not be persisted
|
||||||
* or if the setting ID has no value.
|
* or if the setting ID has no value.
|
||||||
*/
|
*/
|
||||||
boolean isPersistValue(int ID);
|
boolean isPersistValue(int id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets if this setting should be persisted.
|
* Sets if this setting should be persisted.
|
||||||
* Has no effect if the setting ID has no value.
|
* Has no effect if the setting ID has no value.
|
||||||
*/
|
*/
|
||||||
void setPersistValue(int ID, boolean persistValue);
|
void setPersistValue(int id, boolean persistValue);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns {@code true} if this setting is persisted.
|
* Returns {@code true} if this setting is persisted.
|
||||||
* Returns {@code false} if this setting should not be persisted
|
* Returns {@code false} if this setting should not be persisted
|
||||||
* or if the setting ID has no value.
|
* or if the setting ID has no value.
|
||||||
*/
|
*/
|
||||||
boolean isPersisted(int ID);
|
boolean isPersisted(int id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets if this setting is persisted.
|
* Sets if this setting is persisted.
|
||||||
* Has no effect if the setting ID has no value.
|
* Has no effect if the setting ID has no value.
|
||||||
*/
|
*/
|
||||||
void setPersisted(int ID, boolean persisted);
|
void setPersisted(int id, boolean persisted);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns {@code true} if previously persisted settings should be cleared.
|
* Returns {@code true} if previously persisted settings should be cleared.
|
||||||
|
@ -137,11 +137,11 @@ public abstract class CIDR implements Comparable<CIDR> {
|
|||||||
public abstract boolean contains(InetAddress inetAddress);
|
public abstract boolean contains(InetAddress inetAddress);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object arg0) {
|
public boolean equals(Object o) {
|
||||||
if (!(arg0 instanceof CIDR)) {
|
if (!(o instanceof CIDR)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return compareTo((CIDR) arg0) == 0;
|
return compareTo((CIDR) o) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -97,16 +97,16 @@ public class CIDR4 extends CIDR {
|
|||||||
* Given an IPv4 baseAddress length, return the block length. I.e., a
|
* Given an IPv4 baseAddress length, return the block length. I.e., a
|
||||||
* baseAddress length of 24 will return 256.
|
* baseAddress length of 24 will return 256.
|
||||||
*/
|
*/
|
||||||
private static int ipv4PrefixLengthToLength(int prefix_length) {
|
private static int ipv4PrefixLengthToLength(int prefixLength) {
|
||||||
return 1 << 32 - prefix_length;
|
return 1 << 32 - prefixLength;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a baseAddress length, return a netmask. I.e, a baseAddress length
|
* Given a baseAddress length, return a netmask. I.e, a baseAddress length
|
||||||
* of 24 will return 0xFFFFFF00.
|
* of 24 will return 0xFFFFFF00.
|
||||||
*/
|
*/
|
||||||
private static int ipv4PrefixLengthToMask(int prefix_length) {
|
private static int ipv4PrefixLengthToMask(int prefixLength) {
|
||||||
return ~((1 << 32 - prefix_length) - 1);
|
return ~((1 << 32 - prefixLength) - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -349,13 +349,13 @@ public abstract class AbstractTrafficShapingHandler extends
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void messageReceived(ChannelHandlerContext arg0, MessageEvent arg1)
|
public void messageReceived(ChannelHandlerContext ctx, MessageEvent evt)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
try {
|
try {
|
||||||
long curtime = System.currentTimeMillis();
|
long curtime = System.currentTimeMillis();
|
||||||
long size = objectSizeEstimator.estimateSize(arg1.getMessage());
|
long size = objectSizeEstimator.estimateSize(evt.getMessage());
|
||||||
if (trafficCounter != null) {
|
if (trafficCounter != null) {
|
||||||
trafficCounter.bytesRecvFlowControl(arg0, size);
|
trafficCounter.bytesRecvFlowControl(ctx, size);
|
||||||
if (readLimit == 0) {
|
if (readLimit == 0) {
|
||||||
// no action
|
// no action
|
||||||
return;
|
return;
|
||||||
@ -366,7 +366,7 @@ public abstract class AbstractTrafficShapingHandler extends
|
|||||||
trafficCounter.getLastTime(), curtime);
|
trafficCounter.getLastTime(), curtime);
|
||||||
if (wait >= MINIMAL_WAIT) { // At least 10ms seems a minimal
|
if (wait >= MINIMAL_WAIT) { // At least 10ms seems a minimal
|
||||||
// time in order to
|
// time in order to
|
||||||
Channel channel = arg0.getChannel();
|
Channel channel = ctx.getChannel();
|
||||||
// try to limit the traffic
|
// try to limit the traffic
|
||||||
if (channel != null && channel.isConnected()) {
|
if (channel != null && channel.isConnected()) {
|
||||||
// Channel version
|
// Channel version
|
||||||
@ -379,12 +379,12 @@ public abstract class AbstractTrafficShapingHandler extends
|
|||||||
Thread.sleep(wait);
|
Thread.sleep(wait);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (arg0.getAttachment() == null) {
|
if (ctx.getAttachment() == null) {
|
||||||
// readSuspended = true;
|
// readSuspended = true;
|
||||||
arg0.setAttachment(Boolean.TRUE);
|
ctx.setAttachment(Boolean.TRUE);
|
||||||
channel.setReadable(false);
|
channel.setReadable(false);
|
||||||
// logger.warn("Read will wakeup after "+wait+" ms "+this);
|
// logger.warn("Read will wakeup after "+wait+" ms "+this);
|
||||||
TimerTask timerTask = new ReopenReadTimerTask(arg0);
|
TimerTask timerTask = new ReopenReadTimerTask(ctx);
|
||||||
timeout = timer.newTimeout(timerTask, wait,
|
timeout = timer.newTimeout(timerTask, wait,
|
||||||
TimeUnit.MILLISECONDS);
|
TimeUnit.MILLISECONDS);
|
||||||
} else {
|
} else {
|
||||||
@ -408,16 +408,16 @@ public abstract class AbstractTrafficShapingHandler extends
|
|||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
// The message is then just passed to the next handler
|
// The message is then just passed to the next handler
|
||||||
super.messageReceived(arg0, arg1);
|
super.messageReceived(ctx, evt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeRequested(ChannelHandlerContext arg0, MessageEvent arg1)
|
public void writeRequested(ChannelHandlerContext ctx, MessageEvent evt)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
try {
|
try {
|
||||||
long curtime = System.currentTimeMillis();
|
long curtime = System.currentTimeMillis();
|
||||||
long size = objectSizeEstimator.estimateSize(arg1.getMessage());
|
long size = objectSizeEstimator.estimateSize(evt.getMessage());
|
||||||
if (trafficCounter != null) {
|
if (trafficCounter != null) {
|
||||||
trafficCounter.bytesWriteFlowControl(size);
|
trafficCounter.bytesWriteFlowControl(size);
|
||||||
if (writeLimit == 0) {
|
if (writeLimit == 0) {
|
||||||
@ -438,7 +438,7 @@ public abstract class AbstractTrafficShapingHandler extends
|
|||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
// The message is then just passed to the next handler
|
// The message is then just passed to the next handler
|
||||||
super.writeRequested(arg0, arg1);
|
super.writeRequested(ctx, evt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
|
@ -49,6 +49,7 @@ package org.jboss.netty.util.internal.jzlib;
|
|||||||
|
|
||||||
import org.jboss.netty.util.internal.jzlib.JZlib.WrapperType;
|
import org.jboss.netty.util.internal.jzlib.JZlib.WrapperType;
|
||||||
|
|
||||||
|
@SuppressWarnings("MethodParameterNamingConvention")
|
||||||
final class Deflate {
|
final class Deflate {
|
||||||
|
|
||||||
private static final class Config {
|
private static final class Config {
|
||||||
|
@ -47,6 +47,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
*/
|
*/
|
||||||
package org.jboss.netty.util.internal.jzlib;
|
package org.jboss.netty.util.internal.jzlib;
|
||||||
|
|
||||||
|
@SuppressWarnings("MethodParameterNamingConvention")
|
||||||
final class InfCodes {
|
final class InfCodes {
|
||||||
|
|
||||||
private static final int[] inflate_mask = { 0x00000000, 0x00000001,
|
private static final int[] inflate_mask = { 0x00000000, 0x00000001,
|
||||||
|
@ -15,21 +15,20 @@
|
|||||||
*/
|
*/
|
||||||
package org.jboss.netty.handler.codec.spdy;
|
package org.jboss.netty.handler.codec.spdy;
|
||||||
|
|
||||||
import static org.jboss.netty.handler.codec.spdy.SpdyCodecUtil.*;
|
|
||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.jboss.netty.channel.ChannelHandlerContext;
|
import org.jboss.netty.channel.ChannelHandlerContext;
|
||||||
import org.jboss.netty.channel.ChannelStateEvent;
|
import org.jboss.netty.channel.ChannelStateEvent;
|
||||||
import org.jboss.netty.channel.Channels;
|
import org.jboss.netty.channel.Channels;
|
||||||
import org.jboss.netty.channel.MessageEvent;
|
import org.jboss.netty.channel.MessageEvent;
|
||||||
import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
|
import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
|
||||||
import org.jboss.netty.handler.codec.embedder.DecoderEmbedder;
|
import org.jboss.netty.handler.codec.embedder.DecoderEmbedder;
|
||||||
import org.junit.Assert;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static org.jboss.netty.handler.codec.spdy.SpdyCodecUtil.*;
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
public class SpdySessionHandlerTest {
|
public class SpdySessionHandlerTest {
|
||||||
|
|
||||||
private static final int closeSignal = SPDY_SETTINGS_MAX_ID;
|
private static final int closeSignal = SPDY_SETTINGS_MAX_ID;
|
||||||
@ -43,25 +42,25 @@ public class SpdySessionHandlerTest {
|
|||||||
for (String name: expected.getHeaderNames()) {
|
for (String name: expected.getHeaderNames()) {
|
||||||
List<String> expectedValues = expected.getHeaders(name);
|
List<String> expectedValues = expected.getHeaders(name);
|
||||||
List<String> receivedValues = received.getHeaders(name);
|
List<String> receivedValues = received.getHeaders(name);
|
||||||
Assert.assertTrue(receivedValues.containsAll(expectedValues));
|
assertTrue(receivedValues.containsAll(expectedValues));
|
||||||
receivedValues.removeAll(expectedValues);
|
receivedValues.removeAll(expectedValues);
|
||||||
Assert.assertTrue(receivedValues.isEmpty());
|
assertTrue(receivedValues.isEmpty());
|
||||||
received.removeHeader(name);
|
received.removeHeader(name);
|
||||||
}
|
}
|
||||||
Assert.assertTrue(received.getHeaders().isEmpty());
|
assertTrue(received.getHeaders().isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void assertDataFrame(Object msg, int streamID, boolean last) {
|
private static void assertDataFrame(Object msg, int streamID, boolean last) {
|
||||||
Assert.assertNotNull(msg);
|
assertNotNull(msg);
|
||||||
Assert.assertTrue(msg instanceof SpdyDataFrame);
|
assertTrue(msg instanceof SpdyDataFrame);
|
||||||
SpdyDataFrame spdyDataFrame = (SpdyDataFrame) msg;
|
SpdyDataFrame spdyDataFrame = (SpdyDataFrame) msg;
|
||||||
assertEquals(spdyDataFrame.getStreamId(), streamID);
|
assertEquals(spdyDataFrame.getStreamId(), streamID);
|
||||||
assertEquals(spdyDataFrame.isLast(), last);
|
assertEquals(spdyDataFrame.isLast(), last);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void assertSynReply(Object msg, int streamID, boolean last, SpdyHeaderBlock headers) {
|
private static void assertSynReply(Object msg, int streamID, boolean last, SpdyHeaderBlock headers) {
|
||||||
Assert.assertNotNull(msg);
|
assertNotNull(msg);
|
||||||
Assert.assertTrue(msg instanceof SpdySynReplyFrame);
|
assertTrue(msg instanceof SpdySynReplyFrame);
|
||||||
SpdySynReplyFrame spdySynReplyFrame = (SpdySynReplyFrame) msg;
|
SpdySynReplyFrame spdySynReplyFrame = (SpdySynReplyFrame) msg;
|
||||||
assertEquals(spdySynReplyFrame.getStreamId(), streamID);
|
assertEquals(spdySynReplyFrame.getStreamId(), streamID);
|
||||||
assertEquals(spdySynReplyFrame.isLast(), last);
|
assertEquals(spdySynReplyFrame.isLast(), last);
|
||||||
@ -69,36 +68,36 @@ public class SpdySessionHandlerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void assertRstStream(Object msg, int streamID, SpdyStreamStatus status) {
|
private static void assertRstStream(Object msg, int streamID, SpdyStreamStatus status) {
|
||||||
Assert.assertNotNull(msg);
|
assertNotNull(msg);
|
||||||
Assert.assertTrue(msg instanceof SpdyRstStreamFrame);
|
assertTrue(msg instanceof SpdyRstStreamFrame);
|
||||||
SpdyRstStreamFrame spdyRstStreamFrame = (SpdyRstStreamFrame) msg;
|
SpdyRstStreamFrame spdyRstStreamFrame = (SpdyRstStreamFrame) msg;
|
||||||
assertEquals(spdyRstStreamFrame.getStreamId(), streamID);
|
assertEquals(spdyRstStreamFrame.getStreamId(), streamID);
|
||||||
assertEquals(spdyRstStreamFrame.getStatus(), status);
|
assertEquals(spdyRstStreamFrame.getStatus(), status);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void assertPing(Object msg, int ID) {
|
private static void assertPing(Object msg, int id) {
|
||||||
Assert.assertNotNull(msg);
|
assertNotNull(msg);
|
||||||
Assert.assertTrue(msg instanceof SpdyPingFrame);
|
assertTrue(msg instanceof SpdyPingFrame);
|
||||||
SpdyPingFrame spdyPingFrame = (SpdyPingFrame) msg;
|
SpdyPingFrame spdyPingFrame = (SpdyPingFrame) msg;
|
||||||
assertEquals(spdyPingFrame.getId(), ID);
|
assertEquals(spdyPingFrame.getId(), id);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void assertGoAway(Object msg, int lastGoodStreamID) {
|
private static void assertGoAway(Object msg, int lastGoodStreamID) {
|
||||||
Assert.assertNotNull(msg);
|
assertNotNull(msg);
|
||||||
Assert.assertTrue(msg instanceof SpdyGoAwayFrame);
|
assertTrue(msg instanceof SpdyGoAwayFrame);
|
||||||
SpdyGoAwayFrame spdyGoAwayFrame = (SpdyGoAwayFrame) msg;
|
SpdyGoAwayFrame spdyGoAwayFrame = (SpdyGoAwayFrame) msg;
|
||||||
assertEquals(spdyGoAwayFrame.getLastGoodStreamId(), lastGoodStreamID);
|
assertEquals(spdyGoAwayFrame.getLastGoodStreamId(), lastGoodStreamID);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void assertHeaders(Object msg, int streamID, SpdyHeaderBlock headers) {
|
private static void assertHeaders(Object msg, int streamID, SpdyHeaderBlock headers) {
|
||||||
Assert.assertNotNull(msg);
|
assertNotNull(msg);
|
||||||
Assert.assertTrue(msg instanceof SpdyHeadersFrame);
|
assertTrue(msg instanceof SpdyHeadersFrame);
|
||||||
SpdyHeadersFrame spdyHeadersFrame = (SpdyHeadersFrame) msg;
|
SpdyHeadersFrame spdyHeadersFrame = (SpdyHeadersFrame) msg;
|
||||||
assertEquals(spdyHeadersFrame.getStreamId(), streamID);
|
assertEquals(spdyHeadersFrame.getStreamId(), streamID);
|
||||||
assertHeaderBlock(spdyHeadersFrame, headers);
|
assertHeaderBlock(spdyHeadersFrame, headers);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void testSpdySessionHandler(int version, boolean server) {
|
private static void testSpdySessionHandler(int version, boolean server) {
|
||||||
DecoderEmbedder<Object> sessionHandler =
|
DecoderEmbedder<Object> sessionHandler =
|
||||||
new DecoderEmbedder<Object>(
|
new DecoderEmbedder<Object>(
|
||||||
new SpdySessionHandler(version, server), new EchoHandler(closeSignal, server));
|
new SpdySessionHandler(version, server), new EchoHandler(closeSignal, server));
|
||||||
@ -121,34 +120,34 @@ public class SpdySessionHandlerTest {
|
|||||||
// a data frame for a Stream-ID that is not open
|
// a data frame for a Stream-ID that is not open
|
||||||
sessionHandler.offer(new DefaultSpdyDataFrame(localStreamID));
|
sessionHandler.offer(new DefaultSpdyDataFrame(localStreamID));
|
||||||
assertRstStream(sessionHandler.poll(), localStreamID, SpdyStreamStatus.INVALID_STREAM);
|
assertRstStream(sessionHandler.poll(), localStreamID, SpdyStreamStatus.INVALID_STREAM);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
|
|
||||||
// Check if session handler returns PROTOCOL_ERROR if it receives
|
// Check if session handler returns PROTOCOL_ERROR if it receives
|
||||||
// a data frame for a Stream-ID before receiving a SYN_REPLY frame
|
// a data frame for a Stream-ID before receiving a SYN_REPLY frame
|
||||||
sessionHandler.offer(new DefaultSpdyDataFrame(remoteStreamID));
|
sessionHandler.offer(new DefaultSpdyDataFrame(remoteStreamID));
|
||||||
assertRstStream(sessionHandler.poll(), remoteStreamID, SpdyStreamStatus.PROTOCOL_ERROR);
|
assertRstStream(sessionHandler.poll(), remoteStreamID, SpdyStreamStatus.PROTOCOL_ERROR);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
remoteStreamID += 2;
|
remoteStreamID += 2;
|
||||||
|
|
||||||
// Check if session handler returns PROTOCOL_ERROR if it receives
|
// Check if session handler returns PROTOCOL_ERROR if it receives
|
||||||
// multiple SYN_REPLY frames for the same active Stream-ID
|
// multiple SYN_REPLY frames for the same active Stream-ID
|
||||||
sessionHandler.offer(new DefaultSpdySynReplyFrame(remoteStreamID));
|
sessionHandler.offer(new DefaultSpdySynReplyFrame(remoteStreamID));
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
sessionHandler.offer(new DefaultSpdySynReplyFrame(remoteStreamID));
|
sessionHandler.offer(new DefaultSpdySynReplyFrame(remoteStreamID));
|
||||||
assertRstStream(sessionHandler.poll(), remoteStreamID, SpdyStreamStatus.STREAM_IN_USE);
|
assertRstStream(sessionHandler.poll(), remoteStreamID, SpdyStreamStatus.STREAM_IN_USE);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
remoteStreamID += 2;
|
remoteStreamID += 2;
|
||||||
|
|
||||||
// Check if frame codec correctly compresses/uncompresses headers
|
// Check if frame codec correctly compresses/uncompresses headers
|
||||||
sessionHandler.offer(spdySynStreamFrame);
|
sessionHandler.offer(spdySynStreamFrame);
|
||||||
assertSynReply(sessionHandler.poll(), localStreamID, false, spdySynStreamFrame);
|
assertSynReply(sessionHandler.poll(), localStreamID, false, spdySynStreamFrame);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
SpdyHeadersFrame spdyHeadersFrame = new DefaultSpdyHeadersFrame(localStreamID);
|
SpdyHeadersFrame spdyHeadersFrame = new DefaultSpdyHeadersFrame(localStreamID);
|
||||||
spdyHeadersFrame.addHeader("HEADER","test1");
|
spdyHeadersFrame.addHeader("HEADER","test1");
|
||||||
spdyHeadersFrame.addHeader("HEADER","test2");
|
spdyHeadersFrame.addHeader("HEADER","test2");
|
||||||
sessionHandler.offer(spdyHeadersFrame);
|
sessionHandler.offer(spdyHeadersFrame);
|
||||||
assertHeaders(sessionHandler.poll(), localStreamID, spdyHeadersFrame);
|
assertHeaders(sessionHandler.poll(), localStreamID, spdyHeadersFrame);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
localStreamID += 2;
|
localStreamID += 2;
|
||||||
|
|
||||||
// Check if session handler closed the streams using the number
|
// Check if session handler closed the streams using the number
|
||||||
@ -159,25 +158,25 @@ public class SpdySessionHandlerTest {
|
|||||||
spdySynStreamFrame.setUnidirectional(true);
|
spdySynStreamFrame.setUnidirectional(true);
|
||||||
sessionHandler.offer(spdySynStreamFrame);
|
sessionHandler.offer(spdySynStreamFrame);
|
||||||
assertRstStream(sessionHandler.poll(), localStreamID, SpdyStreamStatus.REFUSED_STREAM);
|
assertRstStream(sessionHandler.poll(), localStreamID, SpdyStreamStatus.REFUSED_STREAM);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
|
|
||||||
// Check if session handler drops active streams if it receives
|
// Check if session handler drops active streams if it receives
|
||||||
// a RST_STREAM frame for that Stream-ID
|
// a RST_STREAM frame for that Stream-ID
|
||||||
sessionHandler.offer(new DefaultSpdyRstStreamFrame(remoteStreamID, 3));
|
sessionHandler.offer(new DefaultSpdyRstStreamFrame(remoteStreamID, 3));
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
remoteStreamID += 2;
|
remoteStreamID += 2;
|
||||||
|
|
||||||
// Check if session handler honors UNIDIRECTIONAL streams
|
// Check if session handler honors UNIDIRECTIONAL streams
|
||||||
spdySynStreamFrame.setLast(false);
|
spdySynStreamFrame.setLast(false);
|
||||||
sessionHandler.offer(spdySynStreamFrame);
|
sessionHandler.offer(spdySynStreamFrame);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
spdySynStreamFrame.setUnidirectional(false);
|
spdySynStreamFrame.setUnidirectional(false);
|
||||||
|
|
||||||
// Check if session handler returns PROTOCOL_ERROR if it receives
|
// Check if session handler returns PROTOCOL_ERROR if it receives
|
||||||
// multiple SYN_STREAM frames for the same active Stream-ID
|
// multiple SYN_STREAM frames for the same active Stream-ID
|
||||||
sessionHandler.offer(spdySynStreamFrame);
|
sessionHandler.offer(spdySynStreamFrame);
|
||||||
assertRstStream(sessionHandler.poll(), localStreamID, SpdyStreamStatus.PROTOCOL_ERROR);
|
assertRstStream(sessionHandler.poll(), localStreamID, SpdyStreamStatus.PROTOCOL_ERROR);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
localStreamID += 2;
|
localStreamID += 2;
|
||||||
|
|
||||||
// Check if session handler returns PROTOCOL_ERROR if it receives
|
// Check if session handler returns PROTOCOL_ERROR if it receives
|
||||||
@ -185,7 +184,7 @@ public class SpdySessionHandlerTest {
|
|||||||
spdySynStreamFrame.setStreamId(localStreamID - 1);
|
spdySynStreamFrame.setStreamId(localStreamID - 1);
|
||||||
sessionHandler.offer(spdySynStreamFrame);
|
sessionHandler.offer(spdySynStreamFrame);
|
||||||
assertRstStream(sessionHandler.poll(), localStreamID - 1, SpdyStreamStatus.PROTOCOL_ERROR);
|
assertRstStream(sessionHandler.poll(), localStreamID - 1, SpdyStreamStatus.PROTOCOL_ERROR);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
spdySynStreamFrame.setStreamId(localStreamID);
|
spdySynStreamFrame.setStreamId(localStreamID);
|
||||||
|
|
||||||
// Check if session handler correctly limits the number of
|
// Check if session handler correctly limits the number of
|
||||||
@ -193,26 +192,26 @@ public class SpdySessionHandlerTest {
|
|||||||
SpdySettingsFrame spdySettingsFrame = new DefaultSpdySettingsFrame();
|
SpdySettingsFrame spdySettingsFrame = new DefaultSpdySettingsFrame();
|
||||||
spdySettingsFrame.setValue(SpdySettingsFrame.SETTINGS_MAX_CONCURRENT_STREAMS, 2);
|
spdySettingsFrame.setValue(SpdySettingsFrame.SETTINGS_MAX_CONCURRENT_STREAMS, 2);
|
||||||
sessionHandler.offer(spdySettingsFrame);
|
sessionHandler.offer(spdySettingsFrame);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
sessionHandler.offer(spdySynStreamFrame);
|
sessionHandler.offer(spdySynStreamFrame);
|
||||||
assertRstStream(sessionHandler.poll(), localStreamID, SpdyStreamStatus.REFUSED_STREAM);
|
assertRstStream(sessionHandler.poll(), localStreamID, SpdyStreamStatus.REFUSED_STREAM);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
spdySettingsFrame.setValue(SpdySettingsFrame.SETTINGS_MAX_CONCURRENT_STREAMS, 4);
|
spdySettingsFrame.setValue(SpdySettingsFrame.SETTINGS_MAX_CONCURRENT_STREAMS, 4);
|
||||||
sessionHandler.offer(spdySettingsFrame);
|
sessionHandler.offer(spdySettingsFrame);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
sessionHandler.offer(spdySynStreamFrame);
|
sessionHandler.offer(spdySynStreamFrame);
|
||||||
assertSynReply(sessionHandler.poll(), localStreamID, false, spdySynStreamFrame);
|
assertSynReply(sessionHandler.poll(), localStreamID, false, spdySynStreamFrame);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
|
|
||||||
// Check if session handler rejects HEADERS for closed streams
|
// Check if session handler rejects HEADERS for closed streams
|
||||||
int testStreamID = spdyDataFrame.getStreamId();
|
int testStreamID = spdyDataFrame.getStreamId();
|
||||||
sessionHandler.offer(spdyDataFrame);
|
sessionHandler.offer(spdyDataFrame);
|
||||||
assertDataFrame(sessionHandler.poll(), testStreamID, spdyDataFrame.isLast());
|
assertDataFrame(sessionHandler.poll(), testStreamID, spdyDataFrame.isLast());
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
spdyHeadersFrame.setStreamId(testStreamID);
|
spdyHeadersFrame.setStreamId(testStreamID);
|
||||||
sessionHandler.offer(spdyHeadersFrame);
|
sessionHandler.offer(spdyHeadersFrame);
|
||||||
assertRstStream(sessionHandler.poll(), testStreamID, SpdyStreamStatus.INVALID_STREAM);
|
assertRstStream(sessionHandler.poll(), testStreamID, SpdyStreamStatus.INVALID_STREAM);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
|
|
||||||
// Check if session handler returns PROTOCOL_ERROR if it receives
|
// Check if session handler returns PROTOCOL_ERROR if it receives
|
||||||
// an invalid HEADERS frame
|
// an invalid HEADERS frame
|
||||||
@ -220,21 +219,21 @@ public class SpdySessionHandlerTest {
|
|||||||
spdyHeadersFrame.setInvalid();
|
spdyHeadersFrame.setInvalid();
|
||||||
sessionHandler.offer(spdyHeadersFrame);
|
sessionHandler.offer(spdyHeadersFrame);
|
||||||
assertRstStream(sessionHandler.poll(), localStreamID, SpdyStreamStatus.PROTOCOL_ERROR);
|
assertRstStream(sessionHandler.poll(), localStreamID, SpdyStreamStatus.PROTOCOL_ERROR);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
|
|
||||||
// Check if session handler returns identical local PINGs
|
// Check if session handler returns identical local PINGs
|
||||||
sessionHandler.offer(localPingFrame);
|
sessionHandler.offer(localPingFrame);
|
||||||
assertPing(sessionHandler.poll(), localPingFrame.getId());
|
assertPing(sessionHandler.poll(), localPingFrame.getId());
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
|
|
||||||
// Check if session handler ignores un-initiated remote PINGs
|
// Check if session handler ignores un-initiated remote PINGs
|
||||||
sessionHandler.offer(remotePingFrame);
|
sessionHandler.offer(remotePingFrame);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
|
|
||||||
// Check if session handler sends a GOAWAY frame when closing
|
// Check if session handler sends a GOAWAY frame when closing
|
||||||
sessionHandler.offer(closeMessage);
|
sessionHandler.offer(closeMessage);
|
||||||
assertGoAway(sessionHandler.poll(), localStreamID);
|
assertGoAway(sessionHandler.poll(), localStreamID);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
localStreamID += 2;
|
localStreamID += 2;
|
||||||
|
|
||||||
// Check if session handler returns REFUSED_STREAM if it receives
|
// Check if session handler returns REFUSED_STREAM if it receives
|
||||||
@ -242,13 +241,13 @@ public class SpdySessionHandlerTest {
|
|||||||
spdySynStreamFrame.setStreamId(localStreamID);
|
spdySynStreamFrame.setStreamId(localStreamID);
|
||||||
sessionHandler.offer(spdySynStreamFrame);
|
sessionHandler.offer(spdySynStreamFrame);
|
||||||
assertRstStream(sessionHandler.poll(), localStreamID, SpdyStreamStatus.REFUSED_STREAM);
|
assertRstStream(sessionHandler.poll(), localStreamID, SpdyStreamStatus.REFUSED_STREAM);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
|
|
||||||
// Check if session handler ignores Data frames after sending
|
// Check if session handler ignores Data frames after sending
|
||||||
// a GOAWAY frame
|
// a GOAWAY frame
|
||||||
spdyDataFrame.setStreamId(localStreamID);
|
spdyDataFrame.setStreamId(localStreamID);
|
||||||
sessionHandler.offer(spdyDataFrame);
|
sessionHandler.offer(spdyDataFrame);
|
||||||
Assert.assertNull(sessionHandler.peek());
|
assertNull(sessionHandler.peek());
|
||||||
|
|
||||||
sessionHandler.finish();
|
sessionHandler.finish();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user