| 
									
										
										
										
											2017-04-27 16:05:34 -06:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports.create = function (deps, conf) { | 
					
						
							|  |  |  |   // This should be able to handle things like default web path (i.e. /srv/www/hostname),
 | 
					
						
							|  |  |  |   // no-www redirect, and transpilation of static assets (i.e. cached versions of raw html)
 | 
					
						
							|  |  |  |   // but right now it's a very dumb proxy
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function createConnection(conn) { | 
					
						
							|  |  |  | 		var opts = conn.__opts; | 
					
						
							|  |  |  | 		var newConn = deps.net.createConnection({ | 
					
						
							|  |  |  | 			port: conf.http.proxy.port | 
					
						
							|  |  |  | 		, host: '127.0.0.1' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		, servername: opts.servername | 
					
						
							|  |  |  | 		, data: opts.data | 
					
						
							|  |  |  | 		, remoteFamily: opts.family || conn.remoteFamily | 
					
						
							|  |  |  | 		, remoteAddress: opts.address || conn.remoteAddress | 
					
						
							|  |  |  | 		, remotePort: opts.port || conn.remotePort | 
					
						
							|  |  |  | 		}, function () { | 
					
						
							|  |  |  | 			//console.log("[=>] first packet from tunneler to '" + cid + "' as '" + opts.service + "'", opts.data.byteLength);
 | 
					
						
							|  |  |  | 			// this will happen before 'data' is triggered
 | 
					
						
							|  |  |  | 			//newConn.write(opts.data);
 | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     newConn.pipe(conn); | 
					
						
							|  |  |  |     conn.pipe(newConn); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	return { | 
					
						
							|  |  |  | 		emit: function (type, conn) { | 
					
						
							|  |  |  | 			createConnection(conn); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | }; |