Permalink
Commits on May 24, 2013
  1. 2013.05.24, Version 0.10.8 (Stable)

    * v8: update to 3.14.5.9
    
    * uv: upgrade to 0.10.8
    
    * npm: Upgrade to 1.2.23
    
    * http: remove bodyHead from 'upgrade' events (Nathan Zadoks)
    
    * http: Return true on empty writes, not false (isaacs)
    
    * http: save roundtrips, convert buffers to strings (Ben Noordhuis)
    
    * configure: respect the --dest-os flag consistently (Nathan Rajlich)
    
    * buffer: throw when writing beyond buffer (Trevor Norris)
    
    * crypto: Clear error after DiffieHellman key errors (isaacs)
    
    * string_bytes: strip padding from base64 strings (Trevor Norris)
    isaacs committed May 24, 2013
  2. tls: retry writing after hello parse error

    When writing bad data to EncryptedStream it'll first get to the
    ClientHello parser, and, only after it will refuse it, to the OpenSSL.
    But ClientHello parser has limited buffer and therefore write could
    return `bytes_written` < `incoming_bytes`, which is not the case when
    working with OpenSSL.
    
    After such errors ClientHello parser disables itself and will
    pass-through all data to the OpenSSL. So just trying to write data one
    more time will throw the rest into OpenSSL and let it handle it.
    indutny committed with isaacs May 24, 2013
  3. npm: Upgrade to 1.2.23

    isaacs committed May 24, 2013
  4. uv: upgrade to 0.10.8

    isaacs committed May 24, 2013
  5. http: remove bodyHead from 'upgrade' events

    Streams2 makes this unnecessary.
    An empty buffer is provided for compatibility.
    nathan7 committed with isaacs May 24, 2013
Commits on May 23, 2013
  1. buffer: special case empty string writes

    Prior to 119354f we specifically handled passing a zero length string
    to write on a buffer, restore that functionality.
    tjfontaine committed May 23, 2013
  2. http: Return true on empty writes, not false

    Otherwise, writing an empty string causes the whole program to grind to
    a halt when piping data into http messages.
    
    This wasn't as much of a problem (though it WAS a bug) in 0.8 and
    before, because our hyperactive 'drain' behavior would mean that some
    *previous* write() would probably have a pending drain event, and cause
    things to start moving again.
    isaacs committed May 23, 2013
  3. v8: fix GetLocalizedMessage usage

    As is the backport of the abort on uncaught exception wouldn't compile
    because we it was passing in `this` when it was unnecessary.
    tjfontaine committed May 23, 2013
  4. v8: update to 3.14.5.9

    tjfontaine committed May 23, 2013
  5. http: save roundtrips, convert buffers to strings

    This commit adds an optimization to the HTTP client that makes it
    possible to:
    
    * Pack the headers and the first chunk of the request body into a
      single write().
    
    * Pack the chunk header and the chunk itself into a single write().
    
    Because only one write() system call is issued instead of several,
    the chances of data ending up in a single TCP packet are phenomenally
    higher: the benchmark with `type=buf size=32` jumps from 50 req/s to
    7,500 req/s, a 150-fold increase.
    
    This commit removes the check from e4b716e that pushes binary encoded
    strings into the slow path. The commit log mentions that:
    
        We were assuming that any string can be concatenated safely to
        CRLF.  However, for hex, base64, or binary encoded writes, this
        is not the case, and results in sending the incorrect response.
    
    For hex and base64 strings that's certainly true but binary strings
    are 'das Ding an sich': string.length is the same before and after
    decoding.
    
    Fixes #5528.
    bnoordhuis committed May 22, 2013
Commits on May 22, 2013
  1. configure: respect the --dest-os flag consistently

    Consider a user on his Mac, who wants to cross-compile for his Linux ARM device:
    
        ./configure --dest-cpu=arm --dest-os=linux
    
    Before this patch, for example, DTrace probes would incorrectly attempt to be
    enabled because the configure script is running on a MacOS machine, even though
    we're trying to compile a binary for `linux`.
    
    With this patch, the `--dest-os` flag is respected throughout the configure
    script, thus leaving DTrace probes disabled in this cross-compiling scenario.
    TooTallNate committed May 21, 2013
Commits on May 21, 2013
  1. timers: internal unref'd timer for api timeouts

    When an internal api needs a timeout, they should use
    timers._unrefActive since that won't hold the loop open. This solves
    the problem where you might have unref'd the socket handle but the
    timeout for the socket was still active.
    tjfontaine committed May 17, 2013
Commits on May 20, 2013
  1. buffer: throw when writing beyond buffer

    Previously one could write anywhere in a buffer pool if they accidently
    got their offset wrong. Mainly because the cc level checks only test
    against the parent slow buffer and not against the js object properties.
    So now we check to make sure values won't go beyond bounds without
    letting the dev know.
    trevnorris committed May 20, 2013
  2. string_bytes: strip padding from base64 strings

    Because of variations in different base64 implementation, it's been
    decided to strip all padding from the end of a base64 string and
    calculate its size from that.
    trevnorris committed May 20, 2013
Commits on May 17, 2013
  1. blog: Release 0.10.7

    isaacs committed May 17, 2013
  2. Now working on 0.10.8

    isaacs committed May 17, 2013
  3. 2013.05.17, Version 0.10.7 (Stable)

    * uv: upgrade to v0.10.7
    
    * npm: Upgrade to 1.2.21
    
    * crypto: Don't ignore verify encoding argument (isaacs)
    
    * buffer, crypto: fix default encoding regression (Ben Noordhuis)
    
    * timers: fix setInterval() assert (Ben Noordhuis)
    isaacs committed May 17, 2013
Commits on May 16, 2013
  1. buffer, crypto: fix default encoding regression

    The default encoding is 'buffer'. When the input is a string, treat it
    as 'binary'. Fixes the following assertion:
    
      node: ../src/string_bytes.cc:309: static size_t
      node::StringBytes::StorageSize(v8::Handle<v8::Value>, node::encoding):
      Assertion `0 && "buffer encoding specified but string provided"'
      failed.
    
    Introduced in 64fc34b.
    
    Fixes #5482.
    bnoordhuis committed May 15, 2013
Commits on May 15, 2013
  1. timers: fix setInterval() assert

    Test case:
    
      var t = setInterval(function() {}, 1);
      process.nextTick(t.unref);
    
    Output:
    
      Assertion failed: (args.Holder()->InternalFieldCount() > 0),
      function Unref, file ../src/handle_wrap.cc, line 78.
    
    setInterval() returns a binding layer object. Make it stop doing that,
    wrap the raw process.binding('timer_wrap').Timer object in a Timeout
    object.
    
    Fixes #4261.
    bnoordhuis committed Mar 21, 2013
  2. doc: improve exports/module.exports consistency

    While they reference the same object, they are only interchangeable
    for updates, not assignment.
    rmg committed with bnoordhuis Apr 8, 2013
  3. doc: clarify exports and module.exports

    When exporting a single function you must use `module.exports` instead
    of the `exports` convenience reference.
    rmg committed with bnoordhuis Apr 8, 2013
Commits on May 14, 2013
  1. uv: upgrade to v0.10.7

    piscisaureus committed May 14, 2013
  2. uv: Upgrade to 0.10.6

    isaacs committed May 14, 2013
  3. npm: Upgrade to 1.2.21

    isaacs committed May 14, 2013