@@ -2,6 +2,8 @@ var httpProxy = exports,
2
2
extend = require ( 'util' ) . _extend ,
3
3
parse_url = require ( 'url' ) . parse ,
4
4
EE3 = require ( 'eventemitter3' ) . EventEmitter ,
5
+ http = require ( 'http' ) ,
6
+ https = require ( 'https' ) ,
5
7
web = require ( './passes/web-incoming' ) ,
6
8
ws = require ( './passes/ws-incoming' ) ;
7
9
@@ -24,16 +26,9 @@ httpProxy.Server = ProxyServer;
24
26
*/
25
27
26
28
function createRightProxy ( type ) {
27
- var passes = ( type === 'ws' ) ? ws : web ;
28
-
29
29
return function ( options ) {
30
-
31
- passes = Object . keys ( passes ) . map ( function ( pass ) {
32
- return passes [ pass ] ;
33
- } ) ;
34
-
35
30
return function ( req , res /*, [head], [opts] */ ) {
36
- var passes = this . passes || passes ,
31
+ var passes = ( type === 'ws' ) ? this . wsPasses : this . webPasses ,
37
32
args = [ ] . slice . call ( arguments ) ,
38
33
cntr = args . length - 1 ,
39
34
head , cbl ;
@@ -78,7 +73,7 @@ function createRightProxy(type) {
78
73
* refer to the connection socket
79
74
* pass(req, socket, options, head)
80
75
*/
81
- if ( passes [ i ] ( req , res , cbl ? this : false , head , cbl ) ) { // passes can return a truthy value to halt the loop
76
+ if ( passes [ i ] ( req , res , cbl ? false : this , head , cbl ) ) { // passes can return a truthy value to halt the loop
82
77
break ;
83
78
}
84
79
}
@@ -94,20 +89,24 @@ function ProxyServer(options) {
94
89
this . ws = createRightProxy ( 'ws' ) ( options ) ;
95
90
this . options = options ;
96
91
97
- this . passes = Object . keys ( passes ) . map ( function ( pass ) {
98
- return passes [ pass ] ;
92
+ this . webPasses = Object . keys ( web ) . map ( function ( pass ) {
93
+ return web [ pass ] ;
94
+ } ) ;
95
+
96
+ this . wsPasses = Object . keys ( ws ) . map ( function ( pass ) {
97
+ return ws [ pass ] ;
99
98
} ) ;
100
99
}
101
100
102
101
ProxyServer . prototype . listen = function ( port ) {
103
102
var self = this ,
104
103
closure = function ( req , res ) { self . web ( req , res ) ; } ;
105
104
106
- this . _server = options . ssl ?
105
+ this . _server = this . options . ssl ?
107
106
https . createServer ( this . options . ssl , closure ) :
108
107
http . createServer ( closure ) ;
109
108
110
- if ( options . ws ) {
109
+ if ( this . options . ws ) {
111
110
this . _server . on ( 'upgrade' , function ( req , socket , head ) { self . ws ( req , socket , head ) ; } ) ;
112
111
}
113
112
@@ -137,4 +136,4 @@ ProxyServer.prototype.after = function(passName, callback) {
137
136
this . passes . splice ( i ++ , 0 , callback ) ;
138
137
} ;
139
138
140
- require ( 'util' ) . inherits ( ProxyServer , EE3 ) ;
139
+ // require('util').inherits(ProxyServer, EE3);
0 commit comments