Fixes to get HTTP working with new TCP API.
authorRyan <ry@tinyclouds.org>
Thu, 14 May 2009 23:47:17 +0000 (01:47 +0200)
committerRyan <ry@tinyclouds.org>
Thu, 14 May 2009 23:47:17 +0000 (01:47 +0200)
src/http.cc
src/http.js

index 2eb9ab4..ae8d9d6 100644 (file)
@@ -57,9 +57,6 @@ Handle<Value>
 HTTPConnection::v8NewClient (const Arguments& args)
 {
   HandleScope scope;
-  if (args[0]->IsFunction() == false)
-    return ThrowException(String::New("Must pass a class as the first argument."));
-  Local<Function> protocol_class = Local<Function>::Cast(args[0]);
   new HTTPConnection(args.This(), HTTP_RESPONSE);
   return args.This();
 }
@@ -68,9 +65,6 @@ Handle<Value>
 HTTPConnection::v8NewServer (const Arguments& args)
 {
   HandleScope scope;
-  if (args[0]->IsFunction() == false)
-    return ThrowException(String::New("Must pass a class as the first argument."));
-  Local<Function> protocol_class = Local<Function>::Cast(args[0]);
   new HTTPConnection(args.This(), HTTP_REQUEST);
   return args.This();
 }
@@ -349,6 +343,13 @@ HTTPServer::OnConnection (struct sockaddr *addr, socklen_t len)
 
   connection->SetAcceptor(handle_);
 
+  Handle<Value> argv[1] = { connection_handle };
+
+  Local<Value> ret = connection_handler->Call(handle_, 1, argv);
+
+  if (ret.IsEmpty())
+    fatal_exception(try_catch);
+
   return connection;
 }
 
index ad091d6..e5688cb 100644 (file)
@@ -51,8 +51,7 @@ node.http.Server = function (RequestHandler, options) {
   if (!(this instanceof node.http.Server))
     throw Error("Constructor called as a function");
 
-  function Protocol (connection) {
-
+  function ConnectionHandler (connection) {
     // An array of messages for each connection. In pipelined connections
     // we need to keep track of the order they were sent.
     var messages = [];
@@ -211,7 +210,6 @@ node.http.Server = function (RequestHandler, options) {
     }
 
     connection.onMessage = function ( ) {
-      puts("got onMessage");
       var msg = new Message();
 
       msg.path = "";
@@ -263,5 +261,5 @@ node.http.Server = function (RequestHandler, options) {
     };
   }
 
-  this.__proto__.__proto__ = new node.http.LowLevelServer(Protocol, options);
+  this.__proto__.__proto__ = new node.http.LowLevelServer(ConnectionHandler, options);
 };