Here is the hack: https://gist.github.com/2417848 It works with pipes, eventemitters etc etc... any thoughts on this? Do you guys think that I should package the patch as module?
On Wed, Apr 18, 2012 at 7:06 PM, Kilian C. <[email protected]>wrote: > First attempt: https://gist.github.com/2417848 > I wrote some tests too, but I can't publish them, they are part of another > module :\ > I'll keep work on it, I need to test multiple pause resume and the > the pipe test. > > On Wed, Apr 18, 2012 at 6:43 PM, Kilian C. <[email protected]>wrote: > >> The cookie thing was a silly example too, I want to keep >> it more abstracted: >> >> I am searching to stop the payload as first thing in the request handle. >> After some random and non sense I/O, I will start to deal with that (or >> not). >> >> Even if I call pause, packets still keep being dispatched for a while >> (otherwise they will be completely lost), so I need an hack. >> >> >> On Wed, Apr 18, 2012 at 6:25 PM, Mikeal Rogers >> <[email protected]>wrote: >> >>> cookies should be in a cache, if you want to ask about a cookie i'm >>> going to assume it's in Redis or memcached or something fast and in-memory. >>> Assuming this will respond in a reasonable amount of time is a good >>> practice. >>> >>> retrieving basic auth and session information should use simple >>> buffering like this and impose a timeout rather than dealing with writing >>> the incoming data to disc. >>> >>> On Apr 18, 2012, at April 18, 20126:23 PM, Kilian C. wrote: >>> >>> I agree, anyway the upload/formidable was an abstract example, nothing >>> related to what I am doing. >>> My problem is the I/O before let the payload be accepted. >>> >>> I am working around this replacing at runtime the emit, pause, resume >>> methods of the request object. >>> I do this in order to buffer flying unlucky packets emitted after that >>> the request is paused. >>> I'll share the gist here. >>> >>> On Wed, Apr 18, 2012 at 6:14 PM, mscdex <[email protected]> wrote: >>> >>>> I'd be weary of buffering a file in memory if you're going to be >>>> waiting on I/O like a database query for authentication, especially if >>>> you are not imposing a data/file size limit. >>>> >>>> IMHO a better route in that case might be to do what formidable does >>>> (especially for files), write the data to disk instead and delete if >>>> it ends up the data is not from an authenticated source. If the >>>> database ends up responding before the end of the incoming data >>>> stream, you could also just destroy the connection immediately and >>>> delete the data saved so far (especially if you are not imposing any >>>> data/file size limits) instead of sending back an HTTP error after the >>>> end of the incoming data stream. >>>> >>>> -- >>>> Job Board: http://jobs.nodejs.org/ >>>> Posting guidelines: >>>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines >>>> You received this message because you are subscribed to the Google >>>> Groups "nodejs" group. >>>> To post to this group, send email to [email protected] >>>> To unsubscribe from this group, send email to >>>> [email protected] >>>> For more options, visit this group at >>>> http://groups.google.com/group/nodejs?hl=en?hl=en >>>> >>> >>> >>> -- >>> Job Board: http://jobs.nodejs.org/ >>> Posting guidelines: >>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines >>> You received this message because you are subscribed to the Google >>> Groups "nodejs" group. >>> To post to this group, send email to [email protected] >>> To unsubscribe from this group, send email to >>> [email protected] >>> For more options, visit this group at >>> http://groups.google.com/group/nodejs?hl=en?hl=en >>> >>> >>> -- >>> Job Board: http://jobs.nodejs.org/ >>> Posting guidelines: >>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines >>> You received this message because you are subscribed to the Google >>> Groups "nodejs" group. >>> To post to this group, send email to [email protected] >>> To unsubscribe from this group, send email to >>> [email protected] >>> For more options, visit this group at >>> http://groups.google.com/group/nodejs?hl=en?hl=en >>> >> >> > -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
