Skip to content

Commit b647de0

Browse files
start moving things
1 parent bd23213 commit b647de0

File tree

5 files changed

+68
-46
lines changed

5 files changed

+68
-46
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node_modules

client.js

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,43 @@
11
var Handle = require('./handle')
2-
var TCP = process.binding('tcp_wrap').TCP;
3-
var TCPConnectWrap = process.binding('tcp_wrap').TCPConnectWrap;
2+
var TCP = process.binding('tcp_wrap').TCP
3+
var TCPConnectWrap = process.binding('tcp_wrap').TCPConnectWrap
4+
var pull = require('pull-stream')
5+
var net = require('net')
46

57
module.exports = function (port, address, cb) {
8+
port |= 0
69
var clientHandle = new TCP()
7-
var connect = new TCPConnectWrap(), stream
10+
var connect = new TCPConnectWrap()
11+
var stream
812

9-
connect.oncomplete = function (err) {
10-
if(err) return cb(new Error('error connecting 1:'+err))
13+
connect.port = port
14+
connect.address = address
15+
connect.oncomplete = function afterConnect (err) {
16+
if (err) return cb(new Error('error connecting 1:' + err))
1117
cb && cb(null, stream)
1218
}
13-
var err = clientHandle.connect(connect, address, port);
14-
15-
stream = err ? Handle(clientHandle, function () {}) : error.duplex(err)
16-
if(!err) return Handle(clientHandle, function () {})
17-
if(err) return cb(new Error('error connecting 2:'+err))
19+
var err
20+
if (net.isIPv4) {
21+
err = clientHandle.connect(connect, address, port)
22+
} else {
23+
err = clientHandle.connect6(connect, address, port)
24+
}
1825

19-
//so, I could actually return the client stream syncly.
26+
// stream = err ? Handle(clientHandle, function () {}) : pull.error(err)
27+
// if (!err) return Handle(clientHandle, function () {})
28+
// if (err) return cb(new Error('error connecting 2:' + err))
2029

30+
// so, I could actually return the client stream syncly.
2131

22-
//
23-
// if(err) {
24-
// console.log("ERROR", err)
25-
// err = new Error('connection failed:'+err)
26-
// return {
27-
// source: Error(err),
28-
// sink: function (read) {read(err, cb)}
29-
// }
30-
// }
31-
// return Handle(clientHandle, cb)
32+
if (err) {
33+
console.log('ERROR', err)
34+
err = new Error('connection failed: ' + err)
35+
return {
36+
source: pull.error(err),
37+
sink: function () {
38+
return function (read) { read(err, cb) }
39+
}
40+
}
41+
}
42+
return Handle(clientHandle, cb)
3243
}
33-

handle.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,3 @@ module.exports = function (handle, cb) {
6565
}
6666
}
6767
}
68-

server.js

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,53 @@
1-
var TCP = process.binding('tcp_wrap').TCP;
1+
var TCP = process.binding('tcp_wrap').TCP
2+
var net = require('net')
23
var Handle = require('./handle')
34

4-
function noop() {}
5+
function noop () {}
56

67
module.exports = function (onConnect) {
7-
var server = new TCP();
8+
var server = new TCP()
89

910
return {
1011
listen: function (port, addr, cb) {
11-
var err = server.bind(addr, port)
12-
if(err) throw Error('could not bind') //server.close(), cb && cb(err)
12+
cb = cb || noop
13+
var err
14+
if (net.isIPv6(addr)) {
15+
err = server.bind6(addr, port)
16+
} else {
17+
err = server.bind(addr, port)
18+
}
19+
20+
if (err) {
21+
server.close()
22+
cb(err)
23+
return
24+
}
1325

14-
//512 connections allowed in backlog
26+
// 512 connections allowed in backlog
1527
server.listen(511)
1628

17-
server.onconnection = function(err, client) {
18-
if (err) return console.error(new Error('error connected:'+err))
29+
server.onconnection = function (err, client) {
30+
if (err) {
31+
return console.error(new Error('error connected:' + err))
32+
}
1933
onConnect(Handle(client, noop))
2034
}
2135
return server
2236
},
23-
close: function () {
24-
server.close()
37+
address: function () {
38+
if (server && server.getsockname) {
39+
var out = {}
40+
server.getsockname(out)
41+
return out
42+
} else if (this._pipeName) {
43+
return this._pipeName
44+
} else {
45+
return null
46+
}
47+
},
48+
close: function (cb) {
49+
server.close(cb)
2550
return server
2651
}
2752
}
2853
}
29-
30-
31-
32-
33-
34-
35-
36-
37-
38-
39-
40-

test/echo.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,3 @@ pull(
2626
server.close()
2727
})
2828
)
29-

0 commit comments

Comments
 (0)