forked from coolaj86/goldilocks.js
		
	add some tunnel support
This commit is contained in:
		
							parent
							
								
									fa730f04b3
								
							
						
					
					
						commit
						fa0990b02f
					
				
							
								
								
									
										30
									
								
								lib/tunnel.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								lib/tunnel.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| module.exports.create = function (opts/*, servers*/) { | ||||
|   // servers = { plainserver, server }
 | ||||
|   var tunnel = require('daplie-tunnel'); | ||||
|   var stunnel = require('stunnel'); | ||||
| 
 | ||||
| 
 | ||||
|   return tunnel.token({ | ||||
|     refreshToken: opts.refreshToken | ||||
|   , email: opts.email | ||||
|   , domains: [ opts.servername ] | ||||
|   }).then(function (result) { | ||||
|     // { jwt, tunnelUrl }
 | ||||
|     stunnel.connect({ | ||||
|       token: result.jwt | ||||
|     , stunneld: result.tunnelUrl | ||||
|     , locals: [ | ||||
|         { protocol: 'https' | ||||
|         , hostname: opts.servername | ||||
|         , port: opts.port | ||||
|         } | ||||
|       , { protocol: 'http' | ||||
|         , hostname: opts.servername | ||||
|         , port: opts.insecurePort || opts.port | ||||
|         } | ||||
|       ] | ||||
|     }); | ||||
|   }); | ||||
| }; | ||||
							
								
								
									
										5
									
								
								serve.js
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								serve.js
									
									
									
									
									
								
							| @ -181,7 +181,7 @@ function createServer(port, pubdir, content, opts) { | ||||
| 
 | ||||
|     server.on('request', function (req, res) { | ||||
|       console.log('[' + req.method + '] ' + req.url); | ||||
|       if (!req.socket.encrypted) { | ||||
|       if (!req.socket.encrypted && !/\/\.well-known\/acme-challenge\//.test(req.url)) { | ||||
|         opts.redirectApp(req, res); | ||||
|         return; | ||||
|       } | ||||
| @ -424,6 +424,9 @@ function run() { | ||||
|           } | ||||
|         }); | ||||
|       } | ||||
|       else { | ||||
|         require('./lib/tunnel.js').create(opts); | ||||
|       } | ||||
| 
 | ||||
|       Object.keys(opts.ifaces).forEach(function (iname) { | ||||
|         var iface = opts.ifaces[iname]; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user