Ryan
30450388d6
update oi_socket - modify node code to match
16 years ago
Ryan
2e5b85a13b
Some fixes to allow HTTPServer to begin listening.
Just tested it and it is accepting connections and parsing! Will add units
soon.
16 years ago
Ryan
9c3770d999
Implement HTTPServer (untested!)
Mostly this is setting up the proper interface to be able to create the HTTP
server.
16 years ago
Ryan
b763ee0ad4
Make onError work for TCPConnection.
16 years ago
Ryan
6149c6c49a
Fix HTTPConnection javascript inheritance.
16 years ago
Ryan
38726e7272
various clean ups; HTTPConnection (js side) inherits from TCPConnection
16 years ago
Ryan
09c2ae5c3e
Slight change in tcp connection constructor
For server-side sockets, no longer pass the server object to the
js constructor. This is set later with SetAcceptor.
I think the change is a bit strage and convoluted but it allows one give
protocol /classes/ to the c++ constructors instead of protocol instances.
This is nice because derived classes (like HTTP) don't need to copy the
protocol instanciation code.
16 years ago
Ryan
4860f1c92c
add onMessageComplete and onBody handlers.
16 years ago
Ryan
be6b3acf0e
extract headers, status_code, path, http version from http messages.
still a work in progress.
16 years ago
Ryan
5a071ad72f
Begin refactor of http.cc. Remove libebb add http_parser.
And most of http.cc was deleted.
16 years ago
Ryan
bb6057d9ad
rename Connection.disconnect -> Connection.close
16 years ago
Ryan
13062832d8
cleanup: rename some of the callbacks
16 years ago
Ryan
1713386580
add Connection::SendEOF. modify test accordingly.
16 years ago
Ryan
15d24d8002
Major refactor of network code
Here I massively change both the external and internal API of the TCP
sockets and servers.
This change introduces the concept of a protocol object like is found in
Twisted Python. I believe this allows for a much cleaner description of how
a socket behaves. What was once a single object "client" or "connection" is
now represented by two objects: a "connection" and a "protocol".
Well - I don't want to ramble too much because neither API is yet public or
documented. Look the diff of test/test-pingpong.js to see how things have
changed.
16 years ago
Ryan
fd392d0a50
Remove `if (pointer == NULL)` after allocations with `new`.
I'm still learning C++.
16 years ago
Ryan
cbd342a12d
Publicize Socket and Server for eventual cooperation with HttpServer.
Also changed Init_net() to Socket::Initialize() and Server::Initialize().
Seems more object oriented, but I'm unsure how this will play when I want
load modules dynamically with dlopen(). I'll sit with it for a while and
see how it feels.
16 years ago
Ryan
0f5170339c
remove process.{cc,h} process.exit() now exit()
the process object might return in the future but for now it is going away.
16 years ago
Ryan
f213a27657
Refactor setTimeout to be a Timer object.
Timer now uses ObjectWrap. setTimeout, setInterval are now implemented in
javascript.
16 years ago
Ryan
064c8f0252
Use ObjectWrap base class for File, Socket, Server.
16 years ago
Ryan
cf1c58063e
Create a node namespace
Part of general reorganization.
16 years ago
Ryan
90fc8d3622
Update liboi. Use EV_MULTIPLICITY=0.
This might need to be changed in the future if ev is needed in thread pools
or extension libraries. However for now it makes sense to just use a single
loop.
16 years ago
Ryan
0ea7577a72
sign error on file position argument
16 years ago
Ryan
8a8e9df72e
wasn't sending pos arg for puts()
16 years ago
Ryan
0b1e3240be
add position arguments to File#read and File#write
16 years ago
Ryan
63ec0454d2
add echo test. remove debug printfs
16 years ago
Ryan
d996b59d9c
fix some errors/memleaks
16 years ago
Ryan
48b4ac4a8d
implment server.close
16 years ago
Ryan
c986b99ddc
throw error when given a bad arguement to socket.write
16 years ago
Ryan
3095861199
bug fix: recving raw data was incorrect.
16 years ago
Ryan
5f902a61e1
tcp server is accepting connections now.
(experiencing a problem with writing rawEncoding on the sockets. will fix in next commit.)
16 years ago
Ryan
822d7fa27e
add framework for tcp server. change eio stacksize to 16kb.
16 years ago
Ryan
140a032894
oops. call onConnect callback not onRead callback after connecting
16 years ago
Ryan
1542fc6a0b
add async dns for Socket
16 years ago
Ryan
707f244291
begin clean up of Socket
16 years ago
Ryan
d105d88625
on_load -> onLoad
16 years ago
Ryan
5d57fa5060
clean up timers a bit
16 years ago
Ryan
47fad676b4
Rename JS_ to NODE_ for method macros. add marcos to timers.cc
16 years ago
Ryan
a0f2b8a0c5
remove debug messages from module loading.
16 years ago
Ryan
408526a1c1
debugging/improving the module framework
16 years ago
Ryan
64117d9c94
small cleanups to the require structure
16 years ago
Ryan
93f7f0dca0
reimplement module loading
still missing several important features and its mostly untested but the script
test/test-test.js is working and thats enough for now.
16 years ago
Ryan
c2decd720f
add File.cat
16 years ago
Ryan
67af958f81
rename a few files to remove node_ prefix
16 years ago
Ryan
102c6399ac
rename NewFile to File::New
16 years ago
Ryan
e7dd20dc6e
add File.stat File.exists File.strerror
16 years ago
Ryan
5207226da3
fix a bug with eio polling.
16 years ago
Ryan
dd691decd2
file system methods to be queued.
16 years ago
Ryan
c8e20fbf81
add file.read only. raw encoding right now.
16 years ago
Ryan
12d31dd0b7
file operations are queued.
16 years ago
Ryan
e303d950d9
add stdout stderr global file objects. remove node.blocking.print
16 years ago