Reversing the previous commit; generateResponse() should throw on invalid heders (as should activate()), because the server should fail the connection in this event.
This commit is contained in:
+10
-14
@@ -91,23 +91,19 @@ var instance = {
|
||||
generateResponse: function(header) {
|
||||
var sessions = [],
|
||||
response = [],
|
||||
offers;
|
||||
offers = Parser.parseHeader(header);
|
||||
|
||||
try {
|
||||
offers = Parser.parseHeader(header);
|
||||
this._inOrder.forEach(function(ext) {
|
||||
var offer = offers.byName(ext.name);
|
||||
if (offer.length === 0 || this._reserved(ext)) return;
|
||||
|
||||
this._inOrder.forEach(function(ext) {
|
||||
var offer = offers.byName(ext.name);
|
||||
if (offer.length === 0 || this._reserved(ext)) return;
|
||||
var session = ext.createServerSession(offer);
|
||||
if (!session) return;
|
||||
|
||||
var session = ext.createServerSession(offer);
|
||||
if (!session) return;
|
||||
|
||||
this._reserve(ext);
|
||||
sessions.push([ext, session]);
|
||||
response.push(Parser.serializeParams(ext.name, session.generateResponse()));
|
||||
}, this);
|
||||
} catch (e) {}
|
||||
this._reserve(ext);
|
||||
sessions.push([ext, session]);
|
||||
response.push(Parser.serializeParams(ext.name, session.generateResponse()));
|
||||
}, this);
|
||||
|
||||
this._sessions = sessions;
|
||||
this._pipeline = new Pipeline(sessions);
|
||||
|
||||
@@ -489,8 +489,8 @@ test.describe("Extensions", function() { with(this) {
|
||||
assertEqual( "deflate; mode=compress", extensions.generateResponse("deflate, tar") )
|
||||
}})
|
||||
|
||||
it("returns an empty response if the header is invalid", function() { with(this) {
|
||||
assertNull( extensions.generateResponse("x-webkit- -frame") )
|
||||
it("throws an error if the header is invalid", function() { with(this) {
|
||||
assertThrows(SyntaxError, function() { extensions.generateResponse("x-webkit- -frame") })
|
||||
}})
|
||||
|
||||
it("returns a response for potentially conflicting extensions if their preceeding extensions don't build a session", function() { with(this) {
|
||||
|
||||
Reference in New Issue
Block a user