From 94616d6e35a41de6d411464ceb4d6ac432099d5f Mon Sep 17 00:00:00 2001 From: stan Date: Fri, 6 Sep 2019 10:11:16 +0300 Subject: [PATCH 1/5] enabled support for node.js engines > 10 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dc8076c..9a5ea99 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,6 @@ "sinon": "^7.4.1" }, "engines": { - "node": "^10" + "node": ">=10" } } From f519bf4903a50d51885a6cc1473c3a41f114d337 Mon Sep 17 00:00:00 2001 From: "Luiz Paulo \"Bills" Date: Fri, 8 Nov 2019 10:50:58 -0300 Subject: [PATCH 2/5] Create .gitpod.yml --- .gitpod.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .gitpod.yml diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 0000000..1c7d696 --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,9 @@ +image: gitpod/workspace-full + +tasks: + - init: npm i + command: npm start + +ports: + - port: 9000 + onOpen: open-preview From 8c48d6092ae4da2078f30d706b22eabf6f445981 Mon Sep 17 00:00:00 2001 From: "Luiz Paulo \"Bills" Date: Fri, 8 Nov 2019 10:55:59 -0300 Subject: [PATCH 3/5] Update .gitpod.yml --- .gitpod.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.gitpod.yml b/.gitpod.yml index 1c7d696..2e958b0 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,5 +1,3 @@ -image: gitpod/workspace-full - tasks: - init: npm i command: npm start From 22240081ff77f7d3a008927f04e6557c05b27901 Mon Sep 17 00:00:00 2001 From: "Luiz Paulo \"Bills" Date: Fri, 8 Nov 2019 11:06:31 -0300 Subject: [PATCH 4/5] add gitpod button --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5e64843..03d6b8d 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ PeerServer helps broker connections between PeerJS clients. Data is not proxied through the server. +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/peers/peerjs-server) + ## [https://peerjs.com](https://peerjs.com) ### Run PeerServer From 61cb1517fdf9c546f944cf597966937ce26ca865 Mon Sep 17 00:00:00 2001 From: Ivelin Ivanov Date: Fri, 13 Dec 2019 18:23:02 -0600 Subject: [PATCH 5/5] fix: replace Math.random with uuid4 for a crypto secure client ID generation --- package-lock.json | 5 +++++ package.json | 1 + src/models/realm.js | 7 +++---- test/models/realm.js | 4 ++-- test/services/checkBrokenConnections/index.js | 2 +- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0131cba..de8568d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2835,6 +2835,11 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, + "uuid4": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/uuid4/-/uuid4-1.1.4.tgz", + "integrity": "sha512-Gr1q2k40LpF8CokcnQFjPDsdslzJbTCTBG5xQIEflUov431gFkY5KduiGIeKYAamkQnNn4IfdHJbLnl9Bib8TQ==" + }, "v8-compile-cache": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", diff --git a/package.json b/package.json index 9a5ea99..399f6cf 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "cors": "~2.8.4", "express": "^4.17.1", "optimist": "~0.6.1", + "uuid4": "^1.1.4", "ws": "^7.1.2" }, "devDependencies": { diff --git a/src/models/realm.js b/src/models/realm.js index fbc4e84..b9bb634 100644 --- a/src/models/realm.js +++ b/src/models/realm.js @@ -1,3 +1,4 @@ +const uuidv4 = require('uuid/v4'); const MessageQueue = require('./messageQueue'); class Realm { @@ -43,12 +44,10 @@ class Realm { } generateClientId () { - const randomId = () => (Math.random().toString(36) + '0000000000000000000').substr(2, 16); - - let clientId = randomId(); + let clientId = uuidv4(); while (this.getClientById(clientId)) { - clientId = randomId(); + clientId = uuidv4(); } return clientId; diff --git a/test/models/realm.js b/test/models/realm.js index 16e0bd8..6f6b087 100644 --- a/test/models/realm.js +++ b/test/models/realm.js @@ -4,9 +4,9 @@ const Client = require('../../src/models/client'); describe('Realm', () => { describe('#generateClientId', () => { - it('should generate a 16-character ID', () => { + it('should generate a 36-character UUID', () => { const realm = new Realm(); - expect(realm.generateClientId().length).to.eq(16); + expect(realm.generateClientId().length).to.eq(36); }); }); diff --git a/test/services/checkBrokenConnections/index.js b/test/services/checkBrokenConnections/index.js index 1d77ad5..8c34b6b 100644 --- a/test/services/checkBrokenConnections/index.js +++ b/test/services/checkBrokenConnections/index.js @@ -17,7 +17,7 @@ describe('checkBrokenConnections service', () => { expect(realm.getClientById('id')).to.be.undefined; checkBrokenConnections.stop(); done(); - }, checkBrokenConnections.CHECK_INTERVAL * 2 + 3); + }, checkBrokenConnections.CHECK_INTERVAL * 2 + 30); }); it('should remove client after 1 ping', (done) => {