Ryan Dahl
5d6a03c9fe
Don't append buckets of zero length
14 years ago
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.
14 years ago
Ryan Dahl
7c3c5c6861
Maintain queueSize for each socket
14 years ago
Ryan Dahl
5a84461e46
Also do ondrain callback for socket (needed by http)
14 years ago
Ryan Dahl
e1250a3333
Reset _eof on socket reuse
14 years ago
Ryan Dahl
5ba0be6166
Don't send null data segments
14 years ago
Ryan Dahl
dcc547d798
Dumper net.js integration
14 years ago
Ryan Dahl
df46c8e698
Rip out the old TLS implementation
14 years ago
Stéphan Kochen
57eb5cb9a0
Make SlowBuffer pass Buffer.isBuffer test.
14 years ago
Ryan Dahl
6ff12c425e
Add querystring.unescapeBuffer
14 years ago
Ryan Dahl
57d8172906
query-string unescape moved to js land
14 years ago
Brian White
5908bdab9a
Make sure raw mode is disabled when exiting a terminal-based REPL.
14 years ago
Tim Cooijmans
d4b726a1a6
fix utils.inspect's detection of circular structures
14 years ago
Ryan Dahl
cf05257fb7
Test for server.listen() more carefully, fix bug
14 years ago
Ryan Dahl
4144024e6b
Test and fix for self-assigned port from net.Server
14 years ago
Ryan Dahl
8b1082825c
Rename require('javascript') to require('vm')
14 years ago
isaacs
d39d3cec65
Make the javascript module API nodey.
Add a createScript function, and put stuff on exports instead of hiding
it in exports.Script.
14 years ago
isaacs
9996b459e1
Implement new path.join behavior
1. Express desired path.join behavior in tests.
2. Update fs.realpath to reflect new path.join behavior
3. Update url.resolve() to use new path.join behavior.
14 years ago
isaacs
589e27948b
writeFile fixes
writeFileSync could exhibit pathological behavior when a buffer could
not be written to the file in a single write() call.
Also, writeFile was not quite as optimized as it could be.
14 years ago
Ryan Dahl
d787a444c5
Use require('javascript') instead of process.binding('evals')
14 years ago
Ryan Dahl
8e09b1e2e1
Simplify REPL displayPrompt
Now that we insert \r into the stream and aren't switching back and forth
between termios modes, not need to worry about when to display the prompt.
14 years ago
Ryan Dahl
d4af8a6b6a
Add writeFilter when in the readline
Switch \n with \r\n for all strings printed out.
Necessary for writev patch.
14 years ago
Ryan Dahl
6ce007e89a
Remove warning in 'sys' - too aggressive
14 years ago
Ryan Dahl
515f006b6e
Add legacy methods to Buffer
14 years ago
Ryan Dahl
f1391f33cd
Add missing require('fs')
14 years ago
Chandra Sekar S
2b08bacd56
Removed range read optimization as it doesn't work with libeio.
14 years ago
Ryan Dahl
5e11b8a937
De-indent dns.lookup
14 years ago
Ryan Dahl
9c2969253b
Make sure watcher.set() isn't being called when active
14 years ago
Ryan Dahl
7a48fd8455
Handle null values in clearTimeout
14 years ago
Ryan Dahl
1eb547fec1
Lazy load modules in net.js
14 years ago
Ryan Dahl
5171da5a6c
Remove a little redundancy
14 years ago
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.
14 years ago
Ryan Dahl
73cfda12bb
Abstract out a Server.prototype.pause method
14 years ago
Ryan Dahl
ad61d77fa3
Abstract out net.Server.prototype._rejectPending
Does the same timeout action for maxConnections as it does for EMFILE.
14 years ago
Jonas Pfenniger
74d0a077ec
Module-level EMFILE handling
All net servers now share the same dummy socket. The ulimit warning is
throttled for all servers.
14 years ago
isaacs
987cbbc191
Handle cyclic links smarter in fs.realpath
Rather than aborting in the face of *any* repeated link in a given path,
instead only abort if such a cycle actually makes a given path unresolvable.
Test for this by doing a normal stat. Still use the seenLinks object to
cache link contents so as to cut own a little bit on readlink calls.
Also add a pathological test that fails without the change to fs.js.
14 years ago
Ryan Dahl
67652ddf27
Refactor callbacks in net.Stream for fewer closures
14 years ago
Ryan Dahl
38dde9684f
Add extra anti-DoS tech to net.Server
14 years ago
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.
14 years ago
Tim-Smart
79ecc8e9b7
Style changes.
14 years ago
Ryan Dahl
bc47353bbe
Use the timer list for setTimeout
14 years ago
Ryan Dahl
79944006e2
Move setTimeout and friends into timers module
14 years ago
Ryan Dahl
5cc29b80f2
Move idle timers into its own module
14 years ago
Ryan Dahl
72aee8216c
Fix permissions on http.js
14 years ago
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.
14 years ago
Ryan Dahl
583c07bf8b
fix style
14 years ago
Paul Querna
97977640bd
Set the readable variables on the read/write streams
and add more debug() calls to make it easier to see the flow
14 years ago
Paul Querna
1128c0bf67
Add SecurePair for handling of a ssl/tls stream.
14 years ago
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
14 years ago
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.
14 years ago