Ryan Dahl
a48a075535
better debug messages in net and tls
2011-02-09 10:23:26 -08:00
Ryan Dahl
4733d0b1f0
http: handle aborts
2011-02-04 18:07:00 -08:00
Ryan Dahl
9f3a20c76d
net: Add hook for when writeQueue changes
2011-01-31 11:01:59 -08:00
Ryan Dahl
6ede26cb9c
Add socket.bufferSize
2011-01-31 10:41:52 -08:00
Ryan Dahl
bfb6a67d60
Another fix for process.assert
2011-01-27 16:59:28 -08:00
Ali Farhadi
c70dd70301
Adding callback parameter to Socket's setTimeout method.
2011-01-26 12:13:03 -08:00
Ryan Dahl
068b733583
Land Cantrill's DTrace patch
...
only works on solaris
2011-01-24 18:59:06 -08:00
Ryan Dahl
9e976abad9
lint
2011-01-24 10:55:30 -08:00
Ryan Dahl
b22b5e341b
listen/bind errors should close net.Server
2011-01-18 16:22:43 -08:00
Bert Belder
0eb4c2157d
Define winsock error numbers
2011-01-18 04:58:30 +01:00
Ryan Dahl
5f5201db2f
Fix test-net-connect-buffer
...
Change to end() behavior in 33c339 was breaking it. end() should wait for
connection before dumping. Changed test-net-connect-timeout to use destroy()
instead.
2011-01-12 13:29:45 -08:00
Ryan Dahl
5f795efd4e
net: Timeouts should work before DNS resolution
2011-01-12 12:59:58 -08:00
Ryan Dahl
33c33949b2
Add test for connection timeouts
...
Also make socket.end() destroy connection if still trying to connect.
Previously was ignoring.
2011-01-12 10:57:03 -08:00
Ryan Dahl
5a05992155
Lint
2011-01-06 16:06:27 -08:00
Ryan Dahl
b62152bc84
Rename net.Stream to net.Socket
2011-01-05 11:53:56 -08:00
Ryan Dahl
bc1d758408
net.js: Check that readWatcher exists before pause, resume
2011-01-04 11:25:36 -08:00
Ryan Dahl
2957382991
Implement new stream method, destroySoon
...
Still missing on fs.WriteStream
2011-01-04 11:22:19 -08:00
Ryan Dahl
e4dd5cd6fd
NODE_DEBUG uses strings instead of bitflags
2011-01-03 15:41:58 -08:00
Ryan Dahl
632da2a393
Add callback paramenter to socket.connect()
2010-12-15 15:57:41 -08:00
Ryan Dahl
c4161f32f5
Add callback to socket.write()
2010-12-15 15:47:02 -08:00
Ryan Dahl
c970968ee6
better option parsing for socket.write()
2010-12-15 15:15:27 -08:00
Ryan Dahl
92789b16e5
Fix global leaks
2010-12-04 16:36:21 -08:00
Ryan Dahl
e232f6e735
more lint
2010-12-01 20:28:28 -08:00
Ryan Dahl
ec1589875c
Stop watcher before calling .set() in Stream.prototype.resume
2010-12-01 12:52:34 -08:00
Ryan Dahl
a6f6532dfb
Fix test-securepair-server
2010-11-23 18:30:52 -08:00
Ryan Dahl
2320497992
Revert "Merge branch 'writev'"
...
This reverts commit cd9515efd9
, reversing
changes made to df46c8e698
.
Too slow. Needs more work.
2010-11-20 20:55:15 -08:00
Ryan Dahl
1f18648394
Fix typo
2010-11-18 16:47:38 -08:00
Ryan Dahl
2ba3c10d62
Only try to flush big buffers once
2010-11-18 16:47:38 -08:00
Ryan Dahl
849792e46b
Add todo about test-pipe.js and throwing on resume()
2010-11-18 16:47:38 -08:00
Ryan Dahl
544877d12e
Fix socket.end() problem on non-empty queue
2010-11-18 16:47:38 -08:00
Ryan Dahl
3884b4185a
Small clean ups
2010-11-18 16:47:38 -08:00
Ryan Dahl
02039c9b53
'connect' event may disconnect socket
2010-11-18 16:47:38 -08:00
Ryan Dahl
fa556a1425
Add callback to socket.write(), fix test-sendfds
2010-11-18 16:47:38 -08:00
Ryan Dahl
a6d8425382
make sure unix sockets are tagged correctly
2010-11-18 16:47:38 -08:00
Ryan Dahl
5d6a03c9fe
Don't append buckets of zero length
2010-11-18 16:47:38 -08:00
Ryan Dahl
10ff559ec3
Add IOWatcher.flush()
...
To be called if sockets get too much data. This is to force a flush before
the tick ends.
2010-11-18 16:47:37 -08:00
Ryan Dahl
7c3c5c6861
Maintain queueSize for each socket
2010-11-18 16:47:37 -08:00
Ryan Dahl
5a84461e46
Also do ondrain callback for socket (needed by http)
2010-11-18 16:47:37 -08:00
Ryan Dahl
e1250a3333
Reset _eof on socket reuse
2010-11-18 16:47:37 -08:00
Ryan Dahl
5ba0be6166
Don't send null data segments
2010-11-18 16:47:37 -08:00
Ryan Dahl
dcc547d798
Dumper net.js integration
2010-11-18 16:47:37 -08:00
Ryan Dahl
df46c8e698
Rip out the old TLS implementation
2010-11-18 16:46:37 -08:00
Ryan Dahl
cf05257fb7
Test for server.listen() more carefully, fix bug
2010-11-16 15:33:21 -08:00
Ryan Dahl
4144024e6b
Test and fix for self-assigned port from net.Server
2010-11-15 20:22:54 -08:00
Ryan Dahl
f1391f33cd
Add missing require('fs')
2010-11-01 14:56:21 -07:00
Ryan Dahl
1eb547fec1
Lazy load modules in net.js
2010-10-28 13:15:53 -07:00
Ryan Dahl
5171da5a6c
Remove a little redundancy
2010-10-28 13:11:42 -07:00
Ryan Dahl
65dced730f
Handle one more onReadable call from crypto
...
MUST get rid of this calledByIOWatcher stuff. Hopefully will be able to when
securepair stuff lands.
2010-10-28 12:34:48 -07:00
Ryan Dahl
73cfda12bb
Abstract out a Server.prototype.pause method
2010-10-28 11:42:22 -07:00
Ryan Dahl
ad61d77fa3
Abstract out net.Server.prototype._rejectPending
...
Does the same timeout action for maxConnections as it does for EMFILE.
2010-10-28 11:33:35 -07:00
Jonas Pfenniger
74d0a077ec
Module-level EMFILE handling
...
All net servers now share the same dummy socket. The ulimit warning is
throttled for all servers.
2010-10-28 11:12:59 -07:00
Ryan Dahl
67652ddf27
Refactor callbacks in net.Stream for fewer closures
2010-10-27 16:43:16 -07:00
Ryan Dahl
38dde9684f
Add extra anti-DoS tech to net.Server
2010-10-27 12:09:16 -07:00
Ryan Dahl
ac54272218
Gracefully handle EMFILE
...
Implementing a tip from Marc Lehmann:
http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#The_special_problem_of_accept_ing_wh
Keep an extra FD around for every server. When you hit EMFILE, destroy that
FD, accept a connection, close it; in this way you can clear the connection
queue and let people know that you're overload.
No more timeout needed.
2010-10-27 02:12:25 -07:00
Ryan Dahl
5cc29b80f2
Move idle timers into its own module
2010-10-26 14:53:17 -07:00
Ryan Dahl
2470d2ee92
allowHalfOpen disabled by default
...
Users too often would forget to add
socket.on('end', function () {
socket.end();
});
Which is a mistake. Therefore we default to this behavior and
only optionally let people handle the 'end' case themselves.
2010-10-26 01:10:18 -07:00
Micheil Smith
8da020d39e
Update node_net.cc to make us of node_constants.cc
...
also affects dgram which uses a constant from node_net.cc
2010-10-25 12:14:47 -07:00
Ryan Dahl
0ac2ef924f
Do not spin on aceept() with EMFILE
...
When a server hit EMFILE it would continue to try to accept new connections
from the queue. This patch introduces a timeout of one second where it will
stop trying to accept new files. After the second is over it tries again.
This is a rather serious bug that has been effecting many highly concurrent
programs. It was introduced in 4593c0, version v0.2.0.
TODO: A test for this situation. Currently I test it like this
termA% cd projects/node
termA% ulimit -n 256
termA% ./node benchmark/idle_server.js
termB% cd projects/node
termB% ./node benchmark/idle_clients.js
And watch how the server process behaves.
2010-10-23 12:28:20 -07:00
Ryan Dahl
d9a5edb2b0
Fix test-net-eaddrinuse
2010-10-23 11:22:24 -07:00
Jorge Chamorro Bieling
99e19aa398
Remove unneeded function wrappers
2010-10-21 17:11:59 -07:00
Johan Euphrosine
5d400cfd3a
net listen should emit eaddrinuse error
2010-10-18 17:00:13 -07:00
Joshua Peek
73b29d79b9
Don't flush net writeQueue on end() if its still connecting
2010-10-13 02:37:53 -07:00
Ryan Dahl
6691aca229
Allow people to set backlog. Need a better API.
2010-10-13 01:47:29 -07:00
Micheil Smith
a3604cf233
Removed deprecated methods from lib/net.js
2010-10-11 16:20:08 -07:00
Micheil Smith
83db91be41
Removed deprecated alias to lib/fs.js
2010-10-11 16:20:04 -07:00
Ryan Dahl
7e24a05cba
Fix test-http-buffer-sanity
2010-10-11 16:00:36 -07:00
Micheil Smith
e38eb0c5a4
Soft migration of sys -> util, Removal of deprecated utils module.
2010-10-11 15:21:36 -07:00
Ryan Dahl
1d3142a882
TCP clients should buffer writes before connection
2010-10-10 23:09:14 -07:00
Ryan Dahl
bc695475b9
Add Stream base class with stream.pipe
2010-10-10 17:27:03 -07:00
Joshaven Potter
3d4e4d8909
syntax fixes to pass jslint
2010-10-06 20:40:57 -07:00
Ryan Dahl
f323f34353
writeable -> writable
2010-09-29 16:12:30 -07:00
Ryan Dahl
9911629de0
Fix style in node_crypto.cc
2010-09-28 19:17:09 -07:00
Ryan Dahl
163485c8aa
Rename some SecureStream methods
2010-09-28 11:38:27 -07:00
Ryan Dahl
7bd94712a8
lazy load crypto binding
2010-09-28 11:27:13 -07:00
Ryan Dahl
d89f8dce28
fix style in net.js
2010-09-28 11:27:09 -07:00
Ryan Dahl
069d973d74
Remove require('buffer') in built-in libraries.
2010-09-28 02:31:31 -07:00
Ryan Dahl
01b3418e2e
Move IOWatcher and Timer to process.binding
2010-09-17 00:15:54 -07:00
Paul Querna
c8f9728de7
Move dns.isIP to net.isIP
...
Add tests and docs.
2010-09-16 17:27:10 -07:00
Ryan Dahl
251d03197f
Remove deprecation warnings in net module
2010-09-16 15:02:12 -07:00
Bradley Meck
d5214b3627
Allow Strings for ports on net.Server.listen
2010-08-30 13:27:38 -07:00
Ryan Dahl
4fdebab005
Safe constructor: net.Server, net.Stream
2010-08-27 15:38:46 -07:00
Ryan Dahl
4593c04959
Implement net.Server.maxConnections
...
Simplify EMFILE behavior.
2010-08-15 14:01:55 -07:00
Illarionov Oleg
cde80d9859
Fix OpenSSL 100% CPU usage on error
2010-08-15 13:23:09 -07:00
Matt Ranney
f7c5334195
Check for socket on Unix domain connect.
...
Change scope to context in REPL docs.
2010-07-26 19:02:15 -07:00
Peter Griess
94cd83ef34
Doc fixes for FD related features, upgrade.
...
- Add docs for 'fd' events, Server.listenFD(), Stream.write(...[, fd])
and http.Client 'upgrade' event.
2010-07-03 08:18:42 +02:00
Blake Mizerany
8c8534046c
fix whitespace errors
2010-06-29 23:59:24 -07:00
Ryan Dahl
7b119f8b38
Fix error message
2010-06-23 09:09:15 -07:00
Ryan Dahl
6bed15e074
Refactor: Utf8Decoder -> StringDecoder
...
Instead of just decoding Utf8, this will proxy requests to buffer.toString()
for other encodings. This makes for a simpler interface.
2010-06-15 18:19:27 -07:00
Peter Griess
4b48042c17
Wrap FD in closure before emitting from Stream.
...
- Without this, recvMsg can be invoked before the event emitter gets a
chance to run. In this case, recvMsg.fd will be overwritten and the
original caller can end up emitting null.
2010-06-15 15:10:30 -07:00
Ryan Dahl
14414f81f3
Soft deprecation of 'listening' event.
...
Add callback param to listen() instead
2010-06-15 12:38:25 -07:00
Peter Griess
de6d663a67
Add 'type' parameter to net.Server.listenFD()
...
This is needed in case the provided socket is not the default 'tcp4' type
(i.e. and needs different read/write/etc methods). With this patch, one can
call listenFD(sock, 'unix') to bind to existing UNIX domain sockets.
2010-06-08 18:09:17 -07:00
Peter Griess
a0134ff0f8
add net.Server.listenFD
...
Now that FD passing is in master, it'd be great to be able to use a received
socket (which has already had bind(2) and listen(2) called on it) to fire up a
new net.Server instance. This patch adds a net.Server.listenFD() method which
will start up the accept watcher on the provided FD.
2010-06-07 10:13:30 -07:00
Ryan Dahl
62d9bff06b
Fix ability to disable TCP timeouts with setTimeout(0)
2010-06-03 11:01:47 -07:00
Peter Griess
8f0b4e9111
Send and receive file descriptors through net.Stream.
...
a) create a layer of indirection in net.Stream to allow swapping in
different read/write implementations and
b) emit an 'fd' event when file descriptors are received over a UNIX pipe,
as finally as a tangential benefit
c) remove a bunch of conditionals from the primary codepaths for
ease-of-reading.
2010-06-02 18:16:53 -07:00
Ryan Dahl
74b7fa29a1
Refactor HTTP
...
Allow throttling from outgoing messages.
2010-05-27 20:41:57 -07:00
Ryan Dahl
cbd2c3945b
Throwing in a callback should kill the process
...
There is a difference between errors which happen to a socket - like
receiving EPIPE - an exceptional situation but ultimately okay and the
situation where code throws in a callback - which is not okay.
Fixes test/simple/test-http-exceptions.js
TODO: explain this in docs.
2010-05-20 15:23:36 -07:00
Felix Geisendörfer
ed5f1162fa
Use Utf8Stream for net Streams with utf8 encoding
2010-05-18 01:02:15 -07:00
Ryan Dahl
d2cff34fa3
Idle timeout changes
...
- setTimeout should active the timeout too. (test-net-set-timeout tests
this.)
- 'timeout' event is not automatically followed by an 'error' event. That
is the user is now responsible for destroying the stream if there is an
idle timeout.
2010-05-12 10:06:13 -07:00
Ryan Dahl
1d28cfcfb9
Better logic for testing if an argument is a port
...
If you did server.listen('123') it would open a socket in the current
directory called 123. Now it will interpret it as a port.
2010-05-09 12:10:42 -07:00
Ryan Dahl
d044e2de07
Lazy load crypto
...
The whole program is being slowed down by the large CA string in crypto.
Why?
2010-05-04 14:21:14 -07:00