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
dcc4fffe4d
Add C++ API for constructing fast buffer from string
14 years ago
Ryan Dahl
d1e5fbdde4
Remove old TODOs
14 years ago
Ryan Dahl
72aee8216c
Fix permissions on http.js
14 years ago
Ryan Dahl
9bbc7e0bc7
Remove old todo
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
a7b4af0ae5
create directories during configure
14 years ago
Ryan Dahl
5175864c0e
exec instead of sh a the configure.real script
14 years ago
Ryan Dahl
43022eabf7
more configure hackery
14 years ago
Ryan Dahl
eaba4fc2bf
Ignore configure.real
14 years ago
Ryan Dahl
5cf4ceff59
add configure
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
Paul Querna
6ea61acf29
remove old todo.
14 years ago
Paul Querna
1ce4684a27
Centralize error handling in SecureStream
and add a start method, to kick off SSL handshaking, without writing a zero
byte buffer
14 years ago
isaacs
446d2ec19c
Add make install
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
Paul Querna
9977831078
Add HAVE_OPENSSL flag to makefile
14 years ago
Ryan Dahl
7eed71f8bb
add todo about half-open connections
14 years ago
Ryan Dahl
fcd0c3ebc0
Remove test-base64-bigfile
Already tested in test/simple/test-buffer.js. Takes too long, uses too much
memory.
14 years ago
Ryan Dahl
15594eaf87
Replace WAF with make/autoconf
14 years ago
Ryan Dahl
bb85e7751f
Now working on v0.3.1
14 years ago
Ryan Dahl
1582cfebd6
bump version to 0.3.0
14 years ago
Ryan Dahl
477df1aaec
Revert "Add some failing tests for path.join"
This reverts commit 8c0e87f9c3
.
(Revert until fix comes)
14 years ago
Ryan Dahl
38f117cb6d
one more 'listening' race condition
14 years ago
Ryan Dahl
44234e9cc7
Fix a few 'listening' race conditions
in
test-net-timeout
test-http-client-parse-error
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
Ryan Dahl
9bf2975f78
Make sure Error object on exec() gets killed member
Also default to SIGTERM for destruction when exceeding timeout or buffer on
exec()
14 years ago
Ryan Dahl
d9a5edb2b0
Fix test-net-eaddrinuse
14 years ago
Stéphan Kochen
dd52737476
Provide a C++ Buffer constructor for external storage.
In order to do this, buffer data management was moved out of the
JS entry-point New, and into Replace.
Secondly, the constructor makes an immediate call to Replace, and
in order for ArrayData calls to work, wrapping must already be set
up. Now, the constructor takes the wrappee as a parameter.
14 years ago
Stéphan Kochen
b3e60c7b25
Generalize Buffer::Copy to work with all unsigned byte external data.
14 years ago
Stéphan Kochen
d5e966154c
Simplify things by using `*ArrayData` everywhere.
14 years ago
Stéphan Kochen
d9b08d66d6
Remove old interface remains from Buffer.
These were all lacking implementation, so deprecating wouldn't help.
14 years ago
Ryan Dahl
b2969a9155
Don't call AtExit twice
14 years ago
Vitali Lovich
fb8830a64f
Fix parsing of linux memory
If process name contains a space, this parsing fails for no good reason.
15 years ago
Ryan Dahl
604f4fdf8c
Write write.txt into the tmpdir
14 years ago
Ryan Dahl
92c5634cbd
Remove a confusing sentence in the docs
14 years ago
Jorge Chamorro Bieling
99e19aa398
Remove unneeded function wrappers
14 years ago
Ryan Dahl
174a3a9a08
Upgrade libev to 4.00
14 years ago
Ryan Dahl
3b861db31d
Upgrade V8 to 2.5.1
14 years ago
Ryan Dahl
2629296c25
Add isatty for isaacs
14 years ago
Ryan Dahl
ceb5331a64
Force exit on SIGINT but still reset flags on stdio fds
Add test that one can ctrl+c out of a script spinning infinitely.
14 years ago
Ryan Dahl
33e45bbe46
Add incomplete R plot file
14 years ago
Ryan Dahl
6570cd99e5
Fix execFile timeouts, improve tests
It seems that a parent will not get a SIGCHLD if the child is killed by the
parent? It's unclear, so make 'exit' callback manually.
14 years ago
Ryan Dahl
5a98fa4809
ChildProcesses cannot be killed if pid is missing
14 years ago