diff --git a/lib/server.js b/lib/server.js index fbb0a6406..af54e81cb 100644 --- a/lib/server.js +++ b/lib/server.js @@ -292,6 +292,16 @@ Server.prototype.getAdditionalCookies = function (req) { return []; }; +/** + * Set additional headers + * `headers['x-header-name'] = "value"` + * + * @param headers + */ +Server.prototype.setAdditionalHeaders = function (headers) { + // nothing doing +}; + /** * Handshakes a new client. * @@ -335,6 +345,8 @@ Server.prototype.handshake = function (transportName, req) { })); headers['Set-Cookie'] = cookies; + + self.setAdditionalHeaders(headers); }); } diff --git a/test/server.js b/test/server.js index 7bacb6538..3d4e358db 100644 --- a/test/server.js +++ b/test/server.js @@ -124,7 +124,7 @@ describe('server', function () { }); it('should send additional cookies', function (done) { - let engine = listen(function (port) { + var engine = listen(function (port) { engine.getAdditionalCookies = function (req) { return ['additional=1234']; }; @@ -135,7 +135,6 @@ describe('server', function () { expect(err).to.be(null); // hack-obtain sid var sid = res.text.match(/"sid":"([^"]+)"/)[1]; - console.log(res.headers['set-cookie']); expect(res.headers['set-cookie'].length).to.be(2); expect(res.headers['set-cookie'][0]).to.be('additional=1234'); expect(res.headers['set-cookie'][1]).to.be('io=' + sid + '; Path=/; HttpOnly'); @@ -144,6 +143,22 @@ describe('server', function () { }); }); + it('should send additional headers', function (done) { + var engine = listen(function (port) { + engine.setAdditionalHeaders = function (headers) { + headers['x-my-header'] = 'Hello-From-Engine-IO'; + }; + + request.get('http://localhost:%d/engine.io/default/'.s(port)) + .query({ transport: 'polling', b64: 1 }) + .end(function (err, res) { + expect(err).to.be(null); + expect(res.headers['x-my-header']).to.be('Hello-From-Engine-IO'); + done(); + }); + }); + }); + it('should send the io cookie custom name', function (done) { listen({ cookie: 'woot' }, function (port) { request.get('http://localhost:%d/engine.io/default/'.s(port))