1076 Commits

Author SHA1 Message Date
Ryan
216e6204f0 http: Add IncomingMessage as abstract base class of ServerReq ClientRes 2009-07-14 12:03:47 +02:00
Ryan
116069fab3 upgrade http_parser 2009-07-14 00:00:07 +02:00
Ryan
2819e3bcb8 Replace some printf() in src/net with asserts 2009-07-13 16:38:55 +02:00
Ryan
f99fbc61e1 Add 'close' event to tcp.Server 2009-07-13 16:38:55 +02:00
Ryan
05d6319fa0 Add benchmark scripts.
To use the benchmarks:

  node benchmarks/run.js

or:

  make benchmark

The numbers reported are the elapsed milliseconds the script took to
complete. Currently only benching HTTP code and timers.
2009-07-13 16:38:55 +02:00
Ryan
bf6a457f64 Use assert() for Unwrap checks instead of JS error. 2009-07-13 16:38:55 +02:00
Ryan
041af82b8c Bugfix: Sockets not properly reattached if reconnected during disconnect event.
The problem was that Connection::on_close was calling Detach() directly
after executing the "disconnect" event. Since we had a boolean attach count,
this was leaving sockets detached even if they had reattached in during the
event.

 * Added many asserts in http.cc and net.cc to ensure that sockets are
   connected when they should be.

 * Changed ObjectWrap to use a reference count instead of boolean attached_
   value.

 * Fixed similar bug in Timer.
2009-07-13 16:38:55 +02:00
Ryan
d4fcc0a753 add bug to TODO 2009-07-13 16:38:54 +02:00
Ryan
996d5ef5f1 Add res.client to ClientResponse 2009-07-13 16:38:54 +02:00
Ryan
c5ab0d5a80 Upgrade liboi, which is now called evnet. 2009-07-13 16:38:25 +02:00
Ryan
51e77c37b5 Do not call Detach() from Server::~Server. 2009-07-11 11:43:06 +02:00
Ryan
22c3a1e2a5 Templatize ObjectWrap::Unwrap. Remove NODE_UNWRAP macro. 2009-07-10 13:57:58 +02:00
Ryan
1fc4dce08b Simplify and cleanup ObjectWrap.
Simplify and inline ObjectWrap::Wrap

    Inline and clean up ObjectWrap::Unwrap

    Move ObjectWrap into its own file.

    Remove handle from ObjectWrap constructor. add obj->Wrap(handle)

    Simplify Attach/Detach in ObjectWrap

    Remove ObjectWrap::InformV8ofAllocation. (Too messy/complex.)
2009-07-10 13:38:53 +02:00
Joshaven Potter
4b9f26c51a validate js 2009-07-01 02:33:08 +02:00
Ryan
0640517a91 fix example on website 2009-06-30 15:56:52 +02:00
Ryan
813b53938b bump version v0.1.0 2009-06-30 15:18:05 +02:00
Ryan
94f03be728 Add changelog 2009-06-30 15:10:15 +02:00
Ryan
7879e7fd25 small cleanups 2009-06-30 13:58:30 +02:00
Ryan
8047b912c0 Change 'new node.tcp.Connection' to 'node.tcp.createConnection' 2009-06-30 13:56:52 +02:00
Ryan
d56552dc66 Remove node.Process constructor from API 2009-06-30 13:46:35 +02:00
Ryan
a3d77ee4e7 Add new documentation (using asciidoc!) 2009-06-30 13:27:25 +02:00
Ryan
a623d763c1 Add -m32 flags for compiling on 64bit machines.
These can be removed after v8 supports x64.
2009-06-29 21:17:06 +02:00
Ryan
e4ba665c87 Fix ref/unref problem. Was doing opposite of what I should. 2009-06-29 20:53:54 +02:00
Ryan
88ad880556 Add new test for node.fs.stat() 2009-06-29 14:11:26 +02:00
Ryan
e7ad8ab4b0 Clean up some of the event handling code 2009-06-29 14:11:01 +02:00
Ryan
d428eff023 Snakecase events . 2009-06-29 13:18:30 +02:00
Ryan
c2bdc01870 Bad array index in AfterStat() 2009-06-29 13:17:49 +02:00
Ryan
e763efdadf Upgrade v8 to 1.2.10 and libev to 3.6 2009-06-29 10:55:05 +02:00
Ryan
e876d6629e Fix unused variable warnings. 2009-06-28 20:11:55 +02:00
Ryan
89320036a8 Timer::RepeatSetter wasn't getting the right value 2009-06-28 19:58:13 +02:00
Ryan
4787a41b84 Fix Process::MaybeShutdown's return type 2009-06-28 19:55:35 +02:00
Ryan
c9cb41cf80 Wrong number of arguments being passed to emit in AfterOpen 2009-06-28 19:34:54 +02:00
Ryan
65324866bc Implement Promises for file i/o 2009-06-28 19:08:27 +02:00
Ryan
7cd09874c6 Add Promise class 2009-06-28 19:08:27 +02:00
Ryan
ed926da691 Remove onEvent compatibility 2009-06-28 19:08:26 +02:00
Ryan
80bf451e6e Use EventEmitter for node.Process 2009-06-28 19:08:26 +02:00
Ryan
70fe920fb5 Use events for all HTTP messages.
This is a rather large refactor! Mostly for the better side. I've had to
remove some functionality like req.interrupt(). A lot of other work is left
messy or incomplete.
2009-06-28 19:08:26 +02:00
Ryan
20c0e1fdfb events for http.Server 2009-06-28 19:08:26 +02:00
Ryan
ed3d6a63d5 Further expand EventEmitter to TCP and HTTP
The constructor for TCP servers can no longer take a connection handler for
purely technical reasons. (The constructor for EventEmitter is implemented
in C++ but addListener is in javascript, and I don't want to make too many
C++ -> Javascript references.) Thus I introduce new constructor methods to
ease the creation of the servers:

  node.tcp.createServer()
  node.http.createServer()

These work almost the same as the old constructors.

In general we're working towards a future where no constructors are
publicly exposed or take arguments.

The HTTP events like "on_uri" are not yet using the event interface.
onMessage still is a constructor - but this will change soon.
2009-06-28 19:08:26 +02:00
Ryan
b4af3b9fb5 Timers on Events 2009-06-28 19:08:25 +02:00
Ryan
2ecd7ffe54 in the middle putting in event code. broken. 2009-06-28 19:08:25 +02:00
Ryan
bd952ac61e Add some notes about extent of HTTP API 2009-06-27 19:06:29 +02:00
Ryan
b77e603e04 add irc channel to website 2009-06-27 18:43:46 +02:00
Ryan
9615c93d2d Add make test-all 2009-06-27 00:49:47 +02:00
Ryan
be963d68af add more detail to req.uri documentation 2009-06-27 00:43:03 +02:00
Ryan
5ab93502d0 Fix issue in 5b7fb10 2009-06-27 00:13:37 +02:00
Ryan
5b7fb1003c Add failing test. Process spawning loop.
I think this is the issue Felix Geisendoerfer is reporting:
http://groups.google.com/group/nodejs/browse_thread/thread/efbae1ec1e67786c
2009-06-27 00:11:20 +02:00
Ryan
fbe0be19eb bump version v0.0.6 2009-06-24 16:43:37 +02:00
Ryan
bdad5e7333 test-process-kill: start process after onLoad 2009-06-24 13:58:17 +02:00
Ryan
7363ccd273 bugfix: Properly exit a process.
This requires that onExit() is not called immediately upon receiving a
SIGCHLD. There could still be data in the pipez. So, instead just set a
flag and invoke the pipe watchers.

Sometimes one will not receive an EOF from pipes because the process was
killed by a SIGTERM, or something. If SIGCHLD has been recved but we are
getting EAGAIN, the pipez need to be closed too.
2009-06-24 13:44:12 +02:00