Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

More TODO

  • Loading branch information...
commit 0500d3c808d79258656339948ff722bfcd6cbbaf 1 parent 480adaf
@stash authored
Showing with 20 additions and 2 deletions.
  1. +20 −2 TODO
View
22 TODO
@@ -1,6 +1,4 @@
Timeouts
- * slow headers
- * slow bodies
* slow responses? (feasable? just let TCP do it?)
psgi.input streaming
@@ -11,6 +9,12 @@ psgi.input streaming
* related: Connection: close bodies
* related: Transfer-Encoding: chunked bodies
+IO::Handle-like responses
+
+ * check if it's got a real file descriptor, optimize (libeio for
+ non-blocking sendfile?)
+ * pump the getline() method when connection-writable
+
streamed responses
* add a poll_cb() method to the writer handle.
@@ -22,6 +26,7 @@ Handle requests that don't require a body (optional entities).
* Related: allow overriding the "if entity has a C-L, wait for it" during request
start (not sure if there's a PSGI-compatible way to do this)
+ * different request timeout logic will be needed.
Better EV-callback error handling.
@@ -29,6 +34,10 @@ Lazy I/O watcher initialization?
Per-client "drain" and "completion" callbacks?
+ * "drain" is effectively the poll_cb() ?
+ * "completion" is when finished sending a full HTTP response (so apps can
+ make request-completion assertions); could be accomplished with guards instead.
+
Per-client data (for attaching guards).
Translate sockaddr/etc. and put in env hash.
@@ -39,3 +48,12 @@ away?
sendfile via libeio/IO::AIO ?
multiple Feersum threads, one Perl thread?
+
+WebSocket support
+
+ * http://www.whatwg.org/specs/web-socket-protocol/
+ * Do the handshake in C/XS, call request_handler once request is complete.
+ * I/O is done using the streaming interface (buffered)
+ * requires random numbers (drand48?) and an MD5 implementation (link
+ openssl? use the guts of Digest::MD5 somehow?)
+ * make this a separate module since if it brings in an openssl deps.
Please sign in to comment.
Something went wrong with that request. Please try again.