Commit Graph

230 Commits

Author SHA1 Message Date
Ryan
4aac515202 Remove unused 'using namespace std' lines. 2009-07-24 22:22:08 +02:00
Ryan
b3e828991b Remove unused symbols from http.cc. 2009-07-24 20:42:54 +02:00
Ryan
854538d094 Missing HandleScope in GetMethod(). Thanks Brian. 2009-07-24 20:20:01 +02:00
Ryan
50c0d16208 Fix memory leak. It was only a missing HandleScope in Emit()!
This change also tries to optimize Emit by looping through the listeners in
C++. The javascript version of this function is still there and being used,
but only by javascript code. Not an ideal solution - there should only be
one implementation - however for now it seems to help.

This doesn't solve all of the memory leaks that we're experiencing, there
seems to be another subtle problem.
2009-07-24 15:11:18 +02:00
Ryan
78aaf8df67 Remove unused static object. 2009-07-24 01:15:21 +02:00
Ryan
646829262f Fix evnet_buf size calculation for V8::AdjustAmountOfExternalAllocatedMemory(). 2009-07-23 18:36:28 +02:00
Ryan
dd1750f573 Clean up little errors in events.js 2009-07-23 18:35:43 +02:00
Ryan
0462b5d1ec ObjectWrap: MakeWeak again after each Weak callback. 2009-07-23 18:35:03 +02:00
Ryan
b1588e78d9 Fix utf8 scripts, add test. Thanks Urban. 2009-07-20 21:22:19 +02:00
Ryan
e8a5d3d311 remove the callback from node.cat, node.fs.cat 2009-07-20 21:09:37 +02:00
Ryan
b07dc31e1b root_module should be a local variable 2009-07-20 18:30:15 +02:00
Ryan
2a695a9721 Array.prototype.encodeUtf8 renamed to node.encodeUtf8(array) 2009-07-20 18:19:13 +02:00
Ryan
e7bbda0b7f Attach connections on Macintosh too. 2009-07-20 12:52:03 +02:00
Ryan
eb10553634 Move node.inherit, node.path, node.cat to new file: util.js 2009-07-16 17:19:36 +02:00
Ryan
edbae656d6 Add IsNearDeath assertion to ObjectWrap destructor 2009-07-16 15:43:03 +02:00
Ryan
56c785ceae small clean ups to http.js 2009-07-16 11:23:37 +02:00
Ryan
0292dea847 Better error output for socket errors. Temporary. 2009-07-15 17:52:11 +02:00
Ryan
1b6bbc619d Bugfix: Server-side clients not attached between creation and on_connect.
Solution is to manually add Attach() to OnConnection.

For client side it seems there is no Detach() being called after NS
resolution? Otherwise I would have removed it. That was another bug.

Note: We don't want to modify evnet's behavior to have on_connect called
directly when the socket is accepted. evnet needs to support SSL, and
on_connect is supposed to signal that the SSL connection is established. The
point here is that being "connected" and being "attached" to the event loop
are two different things. SSL stuff may be transmitted when a socket is not
"connected" but it must always be attached.
2009-07-15 17:36:30 +02:00
Ryan
fc02221393 Remove unused variable from ~Connection 2009-07-15 17:36:30 +02:00
Ryan
ef09b2c65d large http.js refactor 2009-07-14 18:31:50 +02:00
Ryan
216e6204f0 http: Add IncomingMessage as abstract base class of ServerReq ClientRes 2009-07-14 12:03:47 +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
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
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
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
e4ba665c87 Fix ref/unref problem. Was doing opposite of what I should. 2009-06-29 20:53:54 +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
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