Commit Graph

759 Commits (cd921c2c62cc5ab4d79ed403f8f646566b8ac526)

Author SHA1 Message Date
Michael W 5f3464cf4e fixed timers, whoops.
Fixes issue https://github.com/ry/node/issues/issue/481
2010-11-30 22:33:29 -08:00
Ryan Dahl 4b947310b2 Move root certs out of JavaScript 2010-11-30 18:19:54 -08:00
Ryan Dahl 09157369b3 style 2010-11-30 18:19:54 -08:00
Ryan Dahl 70188499b0 Lazy load console object 2010-11-30 11:18:02 -08:00
Ryan Dahl aed0ba3211 buffer.copy targetStart defaults to 0 2010-11-29 19:59:01 -08:00
Ryan Dahl 6d7242b485 Document defaults for buffer.copy() 2010-11-29 19:52:47 -08:00
Michael W 645c3b3713 Fixed: clearTimeouts calling multiple times
When clearTimeouts was called on a timer multiple times, it would break the
doubly-linked list along with future timeouts. This patch fixes that.
2010-11-29 18:17:13 -08:00
Travis Swicegood 22cf5a24db Simplify execution from "big if statement"
This code is functionally equivalent, but in a simpler form.  Now new
parameters to `execFile` do not require `exec` to be refactored.
2010-11-29 17:46:46 -08:00
Travis Swicegood e514f575f3 Remove cruft that dealt with env parameter
Originally added in commit 078a48a9, this code dealt with an optional
env parameter that was passed to `exec`.  The parameter was removed, but
this code was left.  As it serves no purpose, removing it.
2010-11-29 17:43:27 -08:00
Jeremy Martin 144b2a5338 Fix number of args emitted by EventEmitter during "fast case" (lte 3 args) 2010-11-29 17:25:50 -08:00
Oleg Slobodskoi 02083412eb assert.throws can now accept as RegExp
makes validation of errors more flexible
2010-11-29 17:22:36 -08:00
Travis Swicegood 86727b15f3 fix a typo in comment
fixes issue 464
2010-11-29 17:07:30 -08:00
Evan Larkin bc02d47b21 Fix variable leak.
Fixes issue 461
2010-11-29 17:07:25 -08:00
Ryan Dahl 735b9d50a3 Simplify state transitions in http.Client
Fixes new bug shown in test-http-allow-req-after-204-res.js pointed out by
Tom Carden <tom.carden@gmail.com>.
2010-11-29 14:21:51 -08:00
Ryan Dahl 6057747e9e Improve HTTP debug messages 2010-11-29 13:53:35 -08:00
Ryan Dahl 1db59afb75 style 2010-11-29 08:57:40 -08:00
Ryan Dahl bf89872306 style 2010-11-28 23:20:59 -08:00
Ryan Dahl 102b1d999d Add simple securepair client test 2010-11-28 18:40:50 -08:00
isaacs a52f59b437 Use a proper tty test. 2010-11-27 11:36:34 -08:00
Ryan Dahl a6f6532dfb Fix test-securepair-server 2010-11-23 18:30:52 -08:00
Ryan Dahl 4f32a59307 Fix buffer.slice(0, 0) 2010-11-23 12:20:22 -08:00
Ben Noordhuis 611dffabb6 Support CNAME lookups in DNS module. 2010-11-21 20:53:57 -08:00
Ryan Dahl 6063ea62df fix style in path.js 2010-11-21 14:15:46 -08:00
Ryan Dahl c321e9893d stream.pipe should remove listeners on dest close 2010-11-20 23:08:45 -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
Marco Rogers 118b88e44f update repl to distinguish JSON.parse SyntaxErrors from the rest 2010-11-20 20:36:14 -08:00
Ryan Dahl d722c8df73 Add some comments to securepair 2010-11-19 13:02:14 -08:00
Ryan Dahl 9c29ac6feb Fix style 2010-11-19 10:05:41 -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
Stéphan Kochen 57eb5cb9a0 Make SlowBuffer pass Buffer.isBuffer test. 2010-11-18 15:36:09 -08:00
Ryan Dahl 6ff12c425e Add querystring.unescapeBuffer 2010-11-18 15:18:06 -08:00
Ryan Dahl 57d8172906 query-string unescape moved to js land 2010-11-18 15:12:31 -08:00
Brian White 5908bdab9a Make sure raw mode is disabled when exiting a terminal-based REPL. 2010-11-17 18:45:34 -08:00
Tim Cooijmans d4b726a1a6 fix utils.inspect's detection of circular structures 2010-11-17 16:06:17 -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 8b1082825c Rename require('javascript') to require('vm') 2010-11-15 18:37:27 -08:00
isaacs d39d3cec65 Make the javascript module API nodey.
Add a createScript function, and put stuff on exports instead of hiding
it in exports.Script.
2010-11-15 00:44:08 -08:00
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.
2010-11-14 22:49:26 -08:00
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.
2010-11-14 01:43:30 -08:00
Ryan Dahl d787a444c5 Use require('javascript') instead of process.binding('evals') 2010-11-13 15:19:15 -08:00
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.
2010-11-12 14:39:42 -08:00
Ryan Dahl d4af8a6b6a Add writeFilter when in the readline
Switch \n with \r\n for all strings printed out.
Necessary for writev patch.
2010-11-11 22:37:17 -08:00
Ryan Dahl 6ce007e89a Remove warning in 'sys' - too aggressive 2010-11-02 21:20:28 -07:00
Ryan Dahl 515f006b6e Add legacy methods to Buffer 2010-11-02 10:09:59 -07:00
Ryan Dahl f1391f33cd Add missing require('fs') 2010-11-01 14:56:21 -07:00
Chandra Sekar S 2b08bacd56 Removed range read optimization as it doesn't work with libeio. 2010-11-01 08:28:57 -07:00
Ryan Dahl 5e11b8a937 De-indent dns.lookup 2010-10-30 13:31:51 -07:00
Ryan Dahl 9c2969253b Make sure watcher.set() isn't being called when active 2010-10-30 12:52:53 -07:00
Ryan Dahl 7a48fd8455 Handle null values in clearTimeout 2010-10-29 00:00:43 -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
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.
2010-10-27 17:02:42 -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
Tim-Smart 79ecc8e9b7 Style changes. 2010-10-26 18:47:46 -07:00
Ryan Dahl bc47353bbe Use the timer list for setTimeout 2010-10-26 14:53:18 -07:00
Ryan Dahl 79944006e2 Move setTimeout and friends into timers module 2010-10-26 14:53:17 -07:00
Ryan Dahl 5cc29b80f2 Move idle timers into its own module 2010-10-26 14:53:17 -07:00
Ryan Dahl 72aee8216c Fix permissions on http.js 2010-10-26 11:31:01 -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
Ryan Dahl 583c07bf8b fix style 2010-10-25 17:30:08 -07:00
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
2010-10-25 17:28:21 -07:00
Paul Querna 1128c0bf67 Add SecurePair for handling of a ssl/tls stream. 2010-10-25 17:26:58 -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 9bf2975f78 Make sure Error object on exec() gets killed member
Also default to SIGTERM for destruction when exceeding timeout or buffer on
exec()
2010-10-23 11:37:40 -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
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.
2010-10-20 19:20:52 -07:00
Ryan Dahl 5a98fa4809 ChildProcesses cannot be killed if pid is missing 2010-10-20 17:55:25 -07:00
isaacs bfc6b51d95 The cwdRequire hack is no longer necessary with the require.resolve refactor. 2010-10-20 15:22:02 -07:00
Aaron Heckmann bd8e4f656e Prevents child_process.exec timeouts from throwing when the child was previously killed. 2010-10-20 12:46:51 -07:00
isaacs 226eff5104 Add require.resolve.
Also, hack the repl so that it works as expected there, too.
2010-10-20 12:12:07 -07:00
Johan Euphrosine 5d400cfd3a net listen should emit eaddrinuse error 2010-10-18 17:00:13 -07:00
Mark Nottingham b14eeb3c1e Fix expect/continue keepalive 2010-10-18 15:38:46 -07:00
Sami Samhuri 56df0cbf93 new api for defining repl commands 2010-10-18 13:46:54 -07:00
Ryan Dahl cf1db4f304 base64 decode should handle whitespace 2010-10-18 11:34:35 -07:00
Peteris Krumins a6ee3bac85 Add EventEmitter.prototype.once 2010-10-16 20:43:09 -07:00
Joshua Peek 73b29d79b9 Don't flush net writeQueue on end() if its still connecting 2010-10-13 02:37:53 -07:00