1. Feb 12, 2013
    • Ben Noordhuis's avatar
      crypto: improve cipher/decipher error messages · f5f9e8da
      Ben Noordhuis authored
      Throw the OpenSSL error string instead of the rather less informative
      error message "fail".
      f5f9e8da
    • isaacs's avatar
      test: update http tests for ECONNRESET change · 862b1642
      isaacs authored
      862b1642
    • Ben Noordhuis's avatar
      net: don't suppress ECONNRESET · 14a42450
      Ben Noordhuis authored
      Let ECONNRESET network errors bubble up so clients can detect them.
      
      Commit c4454d2e suppressed and turned them into regular end-of-stream
      events to fix the then-failing simple/test-regress-GH-1531 test. See
      also issue #1571 for (scant) details.
      
      It turns out that special handling is no longer necessary. Remove the
      special casing and let the error bubble up naturally.
      
      pummel/test-https-ci-reneg-attack and pummel/test-tls-ci-reneg-attack
      are updated because they expected an EPIPE error code that is now an
      ECONNRESET. Suppression of the ECONNRESET prevented the test from
      detecting that the connection has been severed whereupon the next
      write would fail with an EPIPE.
      
      Fixes #1776.
      14a42450
    • Ben Noordhuis's avatar
      fs: fix immediate WriteStream#end() · c7b84a1d
      Ben Noordhuis authored
      Fix an exception that was raised when the WriteStream was closed
      immediately after creating it:
      
        TypeError: Cannot read property 'fd' of undefined
            at WriteStream.close (fs.js:1537:18)
            <snip>
      
      Avoid the TypeError and make sure the file descriptor is closed.
      
      Fixes #4745.
      c7b84a1d
    • Ben Noordhuis's avatar
      typed arrays: make call-as-function work for ctors · ed3d553d
      Ben Noordhuis authored
      Turn call-as-function calls into constructor calls. Makes the following
      snippet work:
      
        var buf = ArrayBuffer(32);  // no 'new' but does the right thing
      ed3d553d
    • Ben Noordhuis's avatar
      node: don't malloc in FromConstructorTemplate · aff8d9e7
      Ben Noordhuis authored
      * allocate space for argv on the stack
      * move the declaration to node_internals.h
      aff8d9e7
  2. Feb 11, 2013
    • Ben Noordhuis's avatar
      test: fix common.mustCall · d5a5ae3c
      Ben Noordhuis authored
      Don't run the 'has function been called?' checks if the test is exiting
      with an error because a failed check will mask the real exception.
      
      v0.8 doesn't have the _fatalException machinery in src/node.js and
      src/node.cc so it doesn't have this issue.
      d5a5ae3c
    • Ben Noordhuis's avatar
      doc: update buffer/typed array documentation · 30b0bc4f
      Ben Noordhuis authored
      Clarify that typed array constructors accept buffers as their first
      argument but that the memory is not shared and why this was changed
      in v0.9.
      30b0bc4f
    • Ben Noordhuis's avatar
      typed arrays: copy Buffer in typed array constructor · 5a9d30bb
      Ben Noordhuis authored
      Convert the Buffer to an ArrayBuffer. The typed_array.buffer property
      should be an ArrayBuffer to avoid confusion: a Buffer doesn't have a
      byteLength property and more importantly, its slice() method works
      subtly different.
      
      That means that before this commit:
      
        var buf = new Buffer(1);
        var arr = new Int8Array(buf);
        assert.equal(arr.buffer, buf);
        assert(arr.buffer instanceof Buffer);
      
      And now:
      
        var buf = new Buffer(1);
        var arr = new Int8Array(buf);
        assert.notEqual(arr.buffer, buf);
        assert(arr.buffer instanceof ArrayBuffer);
      5a9d30bb
  3. Feb 10, 2013
  4. Feb 09, 2013
  5. Feb 08, 2013
    • Scott Blomquist's avatar
      windows/msi: more installer enhancements · 8164b2fd
      Scott Blomquist authored
      Noteworthy installer improvements provided here:
      * Support in the Installer UI for not installing shortcuts.
      * Support in the Installer UI for choosing a custom install directory.
      * Command line support for not installing shortcuts (ADDDEFAULT=nodejs)
      * Command line support for custom install directory (INSTALLDIR=c:\tools\node)
      8164b2fd
    • Jim Schubert's avatar
      e418df7b
    • isaacs's avatar
      Now working on v0.9.10 · c3c8eee4
      isaacs authored
      c3c8eee4
    • isaacs's avatar
      Merge branch 'v0.9.9-release' · 55c4d9b3
      isaacs authored
      55c4d9b3
    • isaacs's avatar
      2013.02.07, Version 0.9.9 (Unstable) · 4b9f0d19
      isaacs authored
      * tls: port CryptoStream to streams2 (Fedor Indutny)
      
      * typed arrays: only share ArrayBuffer backing store (Ben Noordhuis)
      
      * stream: make Writable#end() accept a callback function (Nathan Rajlich)
      
      * buffer: optimize 'hex' handling (Ben Noordhuis)
      
      * dns, cares: don't filter NOTIMP, REFUSED, SERVFAIL (Ben Noordhuis)
      
      * readline: treat bare \r as a line ending (isaacs)
      
      * readline: make \r\n emit one 'line' event (Ben Noordhuis)
      
      * cluster: support datagram sockets (Bert Belder)
      
      * stream: Correct Transform class backpressure (isaacs)
      
      * addon: Pass module object to NODE_MODULE init function (isaacs, Rod Vagg)
      
      * buffer: slow buffer copy compatibility fix (Trevor Norris)
      
      * Add bytesWritten to tls.CryptoStream (Andy Burke)
      4b9f0d19
    • isaacs's avatar
      stream: Writable should ignore encoding for buffers · 33b2aebb
      isaacs authored
      Fix #4727
      Fix einaros/ws#159
      33b2aebb
  6. Feb 07, 2013
    • Nikhil Marathe's avatar
      Update http docs with http.IncomingMessage. · 6bcd9a4c
      Nikhil Marathe authored
      http.ServerRequest and http.ClientResponse are merged into http.IncomingMessage
      which has fields for both, and acts as a Readable Stream and EventEmitter.
      
      Fixes #3851.
      6bcd9a4c
    • isaacs's avatar
      Merge remote-tracking branch 'ry/v0.8' into master · 5cc3569f
      isaacs authored
      Conflicts:
      	AUTHORS
      	ChangeLog
      	deps/npm/html/api/bin.html
      	deps/npm/html/api/bugs.html
      	deps/npm/html/api/commands.html
      	deps/npm/html/api/config.html
      	deps/npm/html/api/deprecate.html
      	deps/npm/html/api/docs.html
      	deps/npm/html/api/edit.html
      	deps/npm/html/api/explore.html
      	deps/npm/html/api/help-search.html
      	deps/npm/html/api/init.html
      	deps/npm/html/api/install.html
      	deps/npm/html/api/link.html
      	deps/npm/html/api/load.html
      	deps/npm/html/api/ls.html
      	deps/npm/html/api/npm.html
      	deps/npm/html/api/outdated.html
      	deps/npm/html/api/owner.html
      	deps/npm/html/api/pack.html
      	deps/npm/html/api/prefix.html
      	deps/npm/html/api/prune.html
      	deps/npm/html/api/publish.html
      	deps/npm/html/api/rebuild.html
      	deps/npm/html/api/restart.html
      	deps/npm/html/api/root.html
      	deps/npm/html/api/run-script.html
      	deps/npm/html/api/search.html
      	deps/npm/html/api/shrinkwrap.html
      	deps/npm/html/api/start.html
      	deps/npm/html/api/stop.html
      	deps/npm/html/api/submodule.html
      	deps/npm/html/api/tag.html
      	deps/npm/html/api/test.html
      	deps/npm/html/api/uninstall.html
      	deps/npm/html/api/unpublish.html
      	deps/npm/html/api/update.html
      	deps/npm/html/api/version.html
      	deps/npm/html/api/view.html
      	deps/npm/html/api/whoami.html
      	deps/npm/html/doc/README.html
      	deps/npm/html/doc/adduser.html
      	deps/npm/html/doc/bin.html
      	deps/npm/html/doc/bugs.html
      	deps/npm/html/doc/build.html
      	deps/npm/html/doc/bundle.html
      	deps/npm/html/doc/cache.html
      	deps/npm/html/doc/changelog.html
      	deps/npm/html/doc/coding-style.html
      	deps/npm/html/doc/completion.html
      	deps/npm/html/doc/config.html
      	deps/npm/html/doc/dedupe.html
      	deps/npm/html/doc/deprecate.html
      	deps/npm/html/doc/developers.html
      	deps/npm/html/doc/disputes.html
      	deps/npm/html/doc/docs.html
      	deps/npm/html/doc/edit.html
      	deps/npm/html/doc/explore.html
      	deps/npm/html/doc/faq.html
      	deps/npm/html/doc/folders.html
      	deps/npm/html/doc/global.html
      	deps/npm/html/doc/help-search.html
      	deps/npm/html/doc/help.html
      	deps/npm/html/doc/index.html
      	deps/npm/html/doc/init.html
      	deps/npm/html/doc/install.html
      	deps/npm/html/doc/json.html
      	deps/npm/html/doc/link.html
      	deps/npm/html/doc/ls.html
      	deps/npm/html/doc/npm.html
      	deps/npm/html/doc/outdated.html
      	deps/npm/html/doc/owner.html
      	deps/npm/html/doc/pack.html
      	deps/npm/html/doc/prefix.html
      	deps/npm/html/doc/prune.html
      	deps/npm/html/doc/publish.html
      	deps/npm/html/doc/rebuild.html
      	deps/npm/html/doc/registry.html
      	deps/npm/html/doc/removing-npm.html
      	deps/npm/html/doc/restart.html
      	deps/npm/html/doc/rm.html
      	deps/npm/html/doc/root.html
      	deps/npm/html/doc/run-script.html
      	deps/npm/html/doc/scripts.html
      	deps/npm/html/doc/search.html
      	deps/npm/html/doc/semver.html
      	deps/npm/html/doc/shrinkwrap.html
      	deps/npm/html/doc/star.html
      	deps/npm/html/doc/start.html
      	deps/npm/html/doc/stop.html
      	deps/npm/html/doc/submodule.html
      	deps/npm/html/doc/tag.html
      	deps/npm/html/doc/test.html
      	deps/npm/html/doc/uninstall.html
      	deps/npm/html/doc/unpublish.html
      	deps/npm/html/doc/update.html
      	deps/npm/html/doc/version.html
      	deps/npm/html/doc/view.html
      	deps/npm/html/doc/whoami.html
      	deps/npm/man/man1/global.1
      	deps/npm/man/man1/ls.1
      	deps/npm/man/man1/npm.1
      	deps/npm/man/man1/rm.1
      	deps/npm/man/man3/npm.3
      	deps/npm/node_modules/glob/glob.js
      	deps/npm/node_modules/glob/package.json
      	deps/npm/node_modules/node-gyp/package.json
      	deps/npm/node_modules/npm-registry-client/package.json
      	deps/npm/node_modules/npmconf/package.json
      	deps/npm/node_modules/read-installed/package.json
      	deps/npm/node_modules/rimraf/package.json
      	deps/npm/node_modules/rimraf/rimraf.js
      	deps/npm/package.json
      	deps/uv/src/win/error.c
      	doc/api/crypto.markdown
      	lib/zlib.js
      	src/node_version.h
      	src/node_zlib.cc
      	test/simple/test-buffer.js
      5cc3569f
    • Ben Noordhuis's avatar
      typed arrays: copy non-ArrayBuffer in DataView ctor · 7b0770bf
      Ben Noordhuis authored
      This is commit 01ee551e, except for the DataView type this time.
      
      Make the behavior of DataView consistent with that of typed arrays:
      make a copy of the backing store.
      7b0770bf
    • Fedor Indutny's avatar
      tls: port CryptoStream to streams2 · d59beb9f
      Fedor Indutny authored
      d59beb9f
    • isaacs's avatar
      blog: v0.8.19 release · 13897279
      isaacs authored
      13897279
    • isaacs's avatar
      Now working on 0.8.20 · ccf2712e
      isaacs authored
      ccf2712e
    • isaacs's avatar
      Merge branch 'v0.8.19-release' into v0.8 · 8caf6572
      isaacs authored
      8caf6572
    • isaacs's avatar
      2013.02.06, Version 0.8.19 (Stable) · 53978bdf
      isaacs authored
      * npm: Upgrade to v1.2.10
      
      * zlib: pass object size hint to V8 (Ben Noordhuis)
      
      * zlib: reduce memory consumption, release early (Ben Noordhuis)
      
      * buffer: slow buffer copy compatibility fix (Trevor Norris)
      
      * zlib: don't assert on malformed dictionary (Ben Noordhuis)
      
      * zlib: don't assert on missing dictionary (Ben Noordhuis)
      
      * windows: better ipv6 support (Bert Belder)
      
      * windows: add error mappings related to unsupported protocols (Bert Belder)
      
      * windows: map ERROR_DIRECTORY to UV_ENOENT (Bert Belder)
      53978bdf
    • isaacs's avatar
      npm: Upgrade to v1.2.10 · 5aef65a9
      isaacs authored
      5aef65a9
    • Fedor Indutny's avatar
      streams: both `finish` and `close` should unpipe · c024d2d8
      Fedor Indutny authored
      Otherwise sockets that are 'finish'ed won't be unpiped and `writing to
      ended stream` error will arise.
      
      This might sound unrealistic, but it happens in net.js. When
      `socket.allowHalfOpen === false`, EOF will cause `.destroySoon()` call which
      ends the writable side of net.Socket.
      c024d2d8
  7. Feb 06, 2013
    • Ben Noordhuis's avatar
      test: add cluster EADDRINUSE test · b58efe77
      Ben Noordhuis authored
      Check that having a worker bind to a port that's already taken doesn't
      leave the master process in a confused state. Releasing the port and
      trying again should Just Work[TM].
      b58efe77
    • Ben Noordhuis's avatar
      typed arrays: only share ArrayBuffer backing store · 01ee551e
      Ben Noordhuis authored
      Follow browser behavior, only share the backing store when it's a
      ArrayBuffer. That is:
      
        var abuf = new ArrayBuffer(32);
        var a = new Int8Array(abuf);
        var b = new Int8Array(abuf);
        a[0] = 0;
        b[0] = 1;
        assert(a[0] === b[0]);  // a and b share memory
      
      But:
      
        var a = new Int8Array(32);
        var b = new Int8Array(a);
        a[0] = 0;
        b[0] = 1;
        assert(a[0] !== b[0]);  // a and b don't share memory
      
      The typed arrays spec allows both `a[0] === b[0]` and `a[0] !=== b[0]`
      but Chrome and Firefox implement the behavior where memory is not
      shared.
      
      Copying the memory is less efficient but let's do it anyway for the
      sake of the Principle of Least Surprise.
      
      Fixes #4714.
      01ee551e
    • Bryan Cantrill's avatar
      v8: loosen artificial mmap constraint · 202b5db4
      Bryan Cantrill authored
      Fixes #4010.
      202b5db4
    • Nathan Rajlich's avatar
      stream: make Writable#end() accept a callback function · a9c4a203
      Nathan Rajlich authored
      This is more backwards-compatible with stream1 streams like `fs.WriteStream`
      which would allow a callback function to be passed in as the only argument.
      
      Closes #4719.
      a9c4a203
    • Ben Noordhuis's avatar
      blog: remove dangling symlink · a86ebbe2
      Ben Noordhuis authored
      Fixes #4716.
      a86ebbe2
    • Ben Noordhuis's avatar
      zlib: pass object size hint to V8 · 6b99fd23
      Ben Noordhuis authored
      Inform V8 that the zlib context object is tied to a large off-heap buffer.
      
      This makes the GC run more often (in theory) and improves the accuracy of
      --trace_external_memory.
      6b99fd23
    • Ben Noordhuis's avatar
      zlib: reduce memory consumption, release early · 8d146689
      Ben Noordhuis authored
      In zlibBuffer(), don't wait for the garbage collector to reclaim the zlib memory
      but release it manually. Reduces memory consumption by a factor of 10 or more
      with some workloads.
      
      Test case:
      
        function f() {
          require('zlib').deflate('xxx', g);
        }
        function g() {
          setTimeout(f, 5);
        }
        f();
      
      Observe RSS memory usage with and without this commit. After 10,000 iterations,
      RSS stabilizes at ~35 MB with this commit. Without, RSS is over 300 MB and keeps
      growing.
      
      Cause: whenever the JS object heap hits the high-water mark, the V8 GC sweeps
      it clean, then tries to grow it in order to avoid more sweeps in the near
      future. Rule of thumb: the bigger the JS heap, the lazier the GC can be.
      
      A side effect of a bigger heap is that objects now live longer. This is harmless
      in general but it affects zlib context objects because those are tied to large
      buffers that live outside the JS heap, on the order of 16K per context object.
      
      Ergo, don't wait for the GC to reclaim the memory - it may take a long time.
      
      Fixes #4172.
      8d146689
  8. Feb 05, 2013