Merge pull request #55 from ethereum/requireToSpecifyRemixIDEInstance

Reqiure to specify remix IDE instance to connect to
pull/454/head
yann300 6 years ago committed by GitHub
commit 8dc3993779
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      bin/remixd
  2. 5
      src/router.js
  3. 10
      src/websocket.js

@ -9,6 +9,7 @@ var fs = require('fs-extra')
program
.usage('-s <shared folder>')
.description('Provide a two ways connection between the local computer and Remix IDE')
.option('--remix-ide <url>', 'URL of remix instance allowed to connect to this web sockect connection')
.option('-s, --shared-folder <path>', 'Folder to share with Remix IDE')
.option('--read-only', 'Treat shared folder as read-only (experimental)')
.option('-m, --mist', 'start mist')
@ -26,6 +27,11 @@ program
var killCallBack = []
if (!program.remixIde) {
return console.log('\x1b[31m%s\x1b[0m', '[ERR] URL Remix IDE instance has to be provided.')
}
console.log('\x1b[33m%s\x1b[0m', '[WARN] You may now only use IDE at ' + program.remixIde + ' to connect to that instance')
if (program.devPath) {
if (fs.existsSync(program.devPath)) {
killCallBack.push(startmistGeth(program.devPath, program.mist, program.geth, program.autoMine, program.rpc, program.rpcPort))
@ -46,7 +52,7 @@ if (program.frontend) {
if (program.sharedFolder) {
console.log('\x1b[33m%s\x1b[0m', '[WARN] Any application that runs on your computer can potentially read from and write to all files in the directory.')
console.log('\x1b[33m%s\x1b[0m', '[WARN] Symbolinc links are not forwarded to Remix IDE\n')
var sharedFolderrouter = new Router(65520, servicesList['sharedfolder'], (webSocket) => {
var sharedFolderrouter = new Router(65520, servicesList['sharedfolder'], { remixIdeUrl: program.remixIde }, (webSocket) => {
servicesList['sharedfolder'].setWebSocket(webSocket)
servicesList['sharedfolder'].setupNotifications(program.sharedFolder)
servicesList['sharedfolder'].sharedFolder(program.sharedFolder, program.readOnly)

@ -1,13 +1,14 @@
var Websocket = require('./websocket')
class Router {
constructor (port, service, initCallback) {
constructor (port, service, opt, initCallback) {
this.opt = opt
this.port = port
this.service = service
this.initCallback = initCallback
}
start () {
var websocket = new Websocket(this.port)
var websocket = new Websocket(this.port, this.opt)
this.websocket = websocket
this.websocket.start((message) => {
this.call(message.id, message.service, message.fn, message.args)

@ -3,9 +3,10 @@ var WebSocketServer = require('websocket').server
var http = require('http')
class WebSocket {
constructor (port) {
constructor (port, opt) {
this.connection = null
this.port = port
this.opt = opt
}
start (callback) {
@ -25,7 +26,7 @@ class WebSocket {
})
this.wsServer.on('request', (request) => {
if (!originIsAllowed(request.origin)) {
if (!originIsAllowed(request.origin, this)) {
request.reject()
console.log((new Date()) + ' Connection from origin ' + request.origin + ' rejected.')
return
@ -67,9 +68,8 @@ class WebSocket {
}
}
function originIsAllowed (origin) {
console.log('origin', origin)
return true
function originIsAllowed (origin, self) {
return origin === self.opt.remixIdeUrl
}
module.exports = WebSocket

Loading…
Cancel
Save