X-Git-Url: https://git.kengrimes.com/?p=henge%2Fkiak.git;a=blobdiff_plain;f=router.js;h=da32c9500491adfae47701752d381f7488fbf27d;hp=8fe523585553cdd48516529dc99a5906a8c2382d;hb=a8bdc6c150c4f3417b2f18a480552a4015c248b1;hpb=3f5fce84645ec2c59aec0908807d1e9cb3e05e2d diff --git a/router.js b/router.js index 8fe5235..da32c95 100644 --- a/router.js +++ b/router.js @@ -33,7 +33,7 @@ exports = { httpdRoot: undefined, bindJail: undefined, - /** @func + /** @func * @summary Start main HTTP server * @desc starts up an HTTP or HTTPS server used for routing * @arg {Object} conf - object containing configuration properties @@ -83,7 +83,11 @@ exports = { console.log(err) }) console.log(`HTTP${(conf.tls == undefined) ? '' : 'S'} ` + +<<<<<<< HEAD + `Server Started on port ${conf.port}${this.httpdRoot ? +======= `Server Started on port ${conf.port}${this.httpdRoot ? +>>>>>>> 3f5fce84645ec2c59aec0908807d1e9cb3e05e2d `, serving files from ${this.httpdRoot}`:''}`) }, @@ -116,7 +120,7 @@ exports = { throw new Error(`${path} not found, ${routeName} not bound`) }, - /** @func + /** @func * @summary Router * @desc listens for http client requests and services routes/files * @arg {http.ClientRequest} request @@ -127,6 +131,10 @@ exports = { let htArgv = request.url.slice(1).split('?') const routeName = htArgv[0].split('/')[0] let route = this.routes[routeName] +<<<<<<< HEAD + console.log(`route is ${route}`) +======= +>>>>>>> 3f5fce84645ec2c59aec0908807d1e9cb3e05e2d /* If the route exists, check if we are a returning host or a new client */ if (route) { if (route.bind) { @@ -142,7 +150,12 @@ exports = { request.connection.remoteAddress)) this.serveHost(response, route, htArgv) else */ +<<<<<<< HEAD + else { +======= +>>>>>>> 3f5fce84645ec2c59aec0908807d1e9cb3e05e2d this.serveClient(request, response, route) + } } /* If it's a valid routename that doesn't exist, make this client a host */ else if (this.validRoutes.test(routeName)) { @@ -211,7 +224,7 @@ exports = { this.serveFile(response, bind.path) }, - /** @func + /** @func * @summary Serve a route to an http client * @desc routes may be bound to the filesystem, or to an outgoing host * @arg {http.ClientRequest} request - request from the client @@ -234,9 +247,9 @@ exports = { case 'client-sdp-offer': let data = '' if (pubKey) { + let data = request.headers['x-strapp-offer'] route.pendingResponses.addResponse(pubKey, response) - request.on('data', (chunk) => data += chunk) - request.on('end', () => route.socket.send(`${pubKey} ${type} ${data}`)) + route.socket.send(`${pubKey} ${type} ${data}`) } else { response.writeHead(401) @@ -249,7 +262,11 @@ exports = { } }, +<<<<<<< HEAD + /** @func +======= /** @func +>>>>>>> 3f5fce84645ec2c59aec0908807d1e9cb3e05e2d * @summary Create a new route for a host * @desc makes a new route for the given route name * @arg {string} routeName - name of the new route @@ -284,13 +301,22 @@ exports = { }) route.pendingResponses.addResponse = function (key, response_p) { let responses = this.get(key) || [] +<<<<<<< HEAD + responses.push(response_p) + this.set(key, responses) +======= this.set(key, responses.push(response_p)) +>>>>>>> 3f5fce84645ec2c59aec0908807d1e9cb3e05e2d } this.routes[routeName] = route this.serveHost(response, route, argv) }, +<<<<<<< HEAD + /** @func +======= /** @func +>>>>>>> 3f5fce84645ec2c59aec0908807d1e9cb3e05e2d * @summary Serve a route to an authorized http host * @desc services host application to the client, establishing a socket * @arg {http.ServerResponse} response - response object to use @@ -379,7 +405,7 @@ exports = { } }, - /** @func + /** @func * @summary Serve a file to an http client after a request * @desc reads files from the system to be distributed to clients, and * buffers recently accessed files @@ -401,8 +427,8 @@ exports = { response.end() }) }, - - /** @func + + /** @func * @summary Synchronize Reading Multiple Files * @desc reads an array of files into an object, whose keys are the * input filenames, and values are the data read