Skip to content

Commit

Permalink
Add a hook for additional headers
Browse files Browse the repository at this point in the history
  • Loading branch information
Jay Kravetz committed May 23, 2018
1 parent c2e2215 commit 69ef946
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 2 deletions.
12 changes: 12 additions & 0 deletions lib/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*
Expand Down Expand Up @@ -335,6 +345,8 @@ Server.prototype.handshake = function (transportName, req) {
}));

headers['Set-Cookie'] = cookies;

self.setAdditionalHeaders(headers);
});
}

Expand Down
19 changes: 17 additions & 2 deletions test/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -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'];
};
Expand All @@ -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');
Expand All @@ -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))
Expand Down

0 comments on commit 69ef946

Please sign in to comment.