Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
node-http-proxy
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
node-http-proxy
Commits
bdd6352d
Commit
bdd6352d
authored
Dec 23, 2011
by
indexzero
Committed by
Cédric de Saint Martin
Jan 03, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[refactor minor] Update vendor/websocket.js to be compatible with node@0.6.x
parent
f4653eea
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
91 additions
and
93 deletions
+91
-93
vendor/websocket.js
vendor/websocket.js
+91
-93
No files found.
vendor/websocket.js
View file @
bdd6352d
...
...
@@ -496,7 +496,7 @@ var WebSocket = function(url, proto, opts) {
if
(
u
.
protocol
===
'
ws:
'
||
u
.
protocol
===
'
wss:
'
)
{
protocol
=
u
.
protocol
===
'
ws:
'
?
http
:
https
;
port
=
u
.
protocol
===
'
ws:
'
?
80
:
443
;
agent
=
u
.
protocol
===
'
ws:
'
?
protocol
.
getAgent
(
u
.
hostname
,
u
.
port
||
port
)
:
protocol
.
get
Agent
({
agent
=
u
.
protocol
===
new
protocol
.
Agent
({
host
:
u
.
hostname
,
port
:
u
.
port
||
port
});
...
...
@@ -514,113 +514,111 @@ var WebSocket = function(url, proto, opts) {
throw
new
Error
(
'
Invalid URL scheme
\'
'
+
urlScheme
+
'
\'
specified.
'
);
}
if
(
!
agent
.
_events
||
agent
.
_events
[
'
upgrade
'
].
length
===
0
)
{
agent
.
on
(
'
upgrade
'
,
(
function
()
{
var
data
=
undefined
;
return
function
(
res
,
s
,
head
)
{
stream
=
s
;
//
// Emit the `wsupgrade` event to inspect the raw
// arguments returned from the websocket request.
//
self
.
emit
(
'
wsupgrade
'
,
httpHeaders
,
res
,
s
,
head
);
var
httpReq
=
protocol
.
request
({
host
:
u
.
hostname
,
method
:
'
GET
'
,
agent
:
agent
,
port
:
u
.
port
,
path
:
httpPath
,
headers
:
httpHeaders
});
httpReq
.
on
(
'
error
'
,
function
(
e
)
{
errorListener
(
e
);
});
httpReq
.
on
(
'
upgrade
'
,
(
function
()
{
var
data
=
undefined
;
return
function
(
res
,
s
,
head
)
{
stream
=
s
;
//
// Emit the `wsupgrade` event to inspect the raw
// arguments returned from the websocket request.
//
self
.
emit
(
'
wsupgrade
'
,
httpHeaders
,
res
,
s
,
head
);
stream
.
on
(
'
data
'
,
function
(
d
)
{
if
(
d
.
length
<=
0
)
{
return
;
}
stream
.
on
(
'
data
'
,
function
(
d
)
{
if
(
d
.
length
<=
0
)
{
return
;
}
if
(
!
data
)
{
data
=
d
;
}
else
{
var
data2
=
new
buffer
.
Buffer
(
data
.
length
+
d
.
length
);
if
(
!
data
)
{
data
=
d
;
}
else
{
var
data2
=
new
buffer
.
Buffer
(
data
.
length
+
d
.
length
);
data
.
copy
(
data2
,
0
,
0
,
data
.
length
);
d
.
copy
(
data2
,
data
.
length
,
0
,
d
.
length
);
data
.
copy
(
data2
,
0
,
0
,
data
.
length
);
d
.
copy
(
data2
,
data
.
length
,
0
,
d
.
length
);
data
=
data2
;
}
data
=
data2
;
}
if
(
data
.
length
>=
16
)
{
var
expected
=
computeSecretKeySignature
(
key1
,
key2
,
challenge
);
var
actual
=
data
.
slice
(
0
,
16
).
toString
(
'
binary
'
);
if
(
data
.
length
>=
16
)
{
var
expected
=
computeSecretKeySignature
(
key1
,
key2
,
challenge
);
var
actual
=
data
.
slice
(
0
,
16
).
toString
(
'
binary
'
);
// Handshaking fails; we're donezo
if
(
actual
!=
expected
)
{
debug
(
'
expected=
\'
'
+
str2hex
(
expected
)
+
'
\'
;
'
+
'
actual=
\'
'
+
str2hex
(
actual
)
+
'
\'
'
// Handshaking fails; we're donezo
if
(
actual
!=
expected
)
{
debug
(
'
expected=
\'
'
+
str2hex
(
expected
)
+
'
\'
;
'
+
'
actual=
\'
'
+
str2hex
(
actual
)
+
'
\'
'
);
process
.
nextTick
(
function
()
{
// N.B. Emit 'wserror' here, as 'error' is a reserved word in the
// EventEmitter world, and gets thrown.
self
.
emit
(
'
wserror
'
,
new
Error
(
'
Invalid handshake from server:
'
+
'
expected
\'
'
+
str2hex
(
expected
)
+
'
\'
,
'
+
'
actual
\'
'
+
str2hex
(
actual
)
+
'
\'
'
)
);
process
.
nextTick
(
function
()
{
// N.B. Emit 'wserror' here, as 'error' is a reserved word in the
// EventEmitter world, and gets thrown.
self
.
emit
(
'
wserror
'
,
new
Error
(
'
Invalid handshake from server:
'
+
'
expected
\'
'
+
str2hex
(
expected
)
+
'
\'
,
'
+
'
actual
\'
'
+
str2hex
(
actual
)
+
'
\'
'
)
);
if
(
self
.
onerror
)
{
self
.
onerror
();
}
finishClose
();
});
}
if
(
self
.
onerror
)
{
self
.
onerror
();
}
//
// Un-register our data handler and add the one to be used
// for the normal, non-handshaking case. If we have extra
// data left over, manually fire off the handler on
// whatever remains.
//
stream
.
removeAllListeners
(
'
data
'
);
stream
.
on
(
'
data
'
,
dataListener
);
finishClose
();
});
}
readyState
=
OPEN
;
//
// Un-register our data handler and add the one to be used
// for the normal, non-handshaking case. If we have extra
// data left over, manually fire off the handler on
// whatever remains.
//
stream
.
removeAllListeners
(
'
data
'
);
stream
.
on
(
'
data
'
,
dataListener
);
process
.
nextTick
(
function
()
{
self
.
emit
(
'
open
'
);
readyState
=
OPEN
;
if
(
self
.
onopen
)
{
self
.
onopen
();
}
});
process
.
nextTick
(
function
()
{
self
.
emit
(
'
open
'
);
// Consume any leftover data
if
(
data
.
length
>
16
)
{
stream
.
emit
(
'
data
'
,
data
.
slice
(
16
,
data
.
length
));
if
(
self
.
onopen
)
{
self
.
onopen
();
}
});
// Consume any leftover data
if
(
data
.
length
>
16
)
{
stream
.
emit
(
'
data
'
,
data
.
slice
(
16
,
data
.
length
));
}
});
stream
.
on
(
'
fd
'
,
fdListener
);
stream
.
on
(
'
error
'
,
errorListener
);
stream
.
on
(
'
close
'
,
function
()
{
errorListener
(
new
Error
(
'
Stream closed unexpectedly.
'
));
});
stream
.
emit
(
'
data
'
,
head
);
};
})());
}
agent
.
on
(
'
error
'
,
function
(
e
)
{
errorListener
(
e
);
});
}
});
stream
.
on
(
'
fd
'
,
fdListener
);
stream
.
on
(
'
error
'
,
errorListener
);
stream
.
on
(
'
close
'
,
function
()
{
errorListener
(
new
Error
(
'
Stream closed unexpectedly.
'
));
});
var
httpReq
=
protocol
.
request
({
host
:
u
.
hostname
,
method
:
'
GET
'
,
agent
:
agent
,
port
:
u
.
port
,
path
:
httpPath
,
headers
:
httpHeaders
});
stream
.
emit
(
'
data
'
,
head
);
};
})());
httpReq
.
write
(
challenge
,
'
binary
'
);
httpReq
.
end
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment