1. May 15, 2013
    • isaacs's avatar
      src: Add StringBytes static util class · 64fc34b2
      isaacs authored
      Four functions:
      
      - StringBytes::StorageSize()
      - StringBytes::Size()
      - StringBytes::Write()
      - StringBytes::Encode()
      64fc34b2
    • isaacs's avatar
      tools: remove unnecessary cpplint rules · 3058f08e
      isaacs authored
      We don't actually care about header order much, and since we never use
      stl classes, 'string' isn't an issue for node ever.
      3058f08e
    • isaacs's avatar
      stream: Make default encoding configurable · d5158574
      isaacs authored
      Pretty much everything assumes strings to be utf-8, but crypto
      traditionally used binary strings, so we need to keep the default
      that way until most users get off of that pattern.
      d5158574
    • isaacs's avatar
      stream: don't create unnecessary buffers in Readable · bdb78b99
      isaacs authored
      If there is an encoding, and we do 'stream.push(chunk, enc)', and the
      encoding argument matches the stated encoding, then we're converting from
      a string, to a buffer, and then back to a string.  Of course, this is a
      completely pointless bit of work, so it's best to avoid it when we know
      that we can do so safely.
      bdb78b99
    • isaacs's avatar
      lint · 0b8af893
      isaacs authored
      0b8af893
    • isaacs's avatar
      benchmark: hash stream · 201baa27
      isaacs authored
      201baa27
    • isaacs's avatar
      blog: Release v0.11.2 · 6a833a38
      isaacs authored
      6a833a38
  2. May 14, 2013
    • Benoit Vallée's avatar
      test: increase workers to 8 in cluster-disconnect · dbe9f8da
      Benoit Vallée authored
      Increasing the number of workers from 2 to 8 makes this test
      more likely to trigger race conditions. See #5330 for background.
      dbe9f8da
    • Ben Noordhuis's avatar
      doc: clarify subsystems in CONTRIBUTING.md · f13a3fd2
      Ben Noordhuis authored
      f13a3fd2
    • Ben Noordhuis's avatar
      child_process: fix handle delivery · 21bd4567
      Ben Noordhuis authored
      Commit 9352c198 ("child_process: don't emit same handle twice") trades
      one bug for another.
      
      Before said commit, a handle was sometimes delivered with messages it
      didn't belong to.
      
      The bug fix introduced another bug that needs some explaining. On UNIX
      systems, handles are basically file descriptors that are passed around
      with the sendmsg() and recvmsg() system calls, using auxiliary data
      (SCM_RIGHTS) as the transport.
      
      node.js and libuv depend on the fact that none of the supported systems
      ever emit more than one SCM_RIGHTS message from a recvmsg() syscall.
      That assumption is something we should probably address someday for the
      sake of portability but that's a separate discussion.
      
      So, SCM_RIGHTS messages are never coalesced. SCM_RIGHTS and normal
      messages however _are_ coalesced. That is, recvmsg() might return this:
      
        recvmsg();  // { "message-with-fd", "message", "message" }
      
      The operating system implicitly breaks pending messages along
      SCM_RIGHTS boundaries. Most Unices break before such messages but Linux
      also breaks _after_ them.  When the sender looks like this:
      
        sendmsg("message");
        sendmsg("message-with-fd");
        sendmsg("message");
      
      Then on most Unices the receiver sees messages arriving like this:
      
        recvmsg();  // { "message" }
        recvmsg();  // { "message-with-fd", "message" }
      
      The bug fix in commit 9352c198 assumes this behavior. On Linux however,
      those messages can also come in like this:
      
        recvmsg();  // { "message", "message-with-fd" }
        recvmsg();  // { "message" }
      
      In other words, it's incorrect to assume that the file descriptor is
      always attached to the first message. This commit makes node wise up.
      
      Fixes #5330.
      21bd4567
  3. May 10, 2013
  4. May 09, 2013
  5. May 08, 2013
  6. May 07, 2013
  7. May 03, 2013
  8. May 02, 2013
    • Miroslav Bajtoš's avatar
      debugger: breakpoints in scripts not loaded yet · a32a243d
      Miroslav Bajtoš authored
      When developer calls setBreakpoint with an unknown script name,
      we convert the script name into regular expression matching all
      paths ending with given name (name can be a relative path too).
      
      To create such breakpoint in V8, we use type `scriptRegEx`
      instead of `scriptId` for `setbreakpoint` request.
      
      To restore such breakpoint, we save the original script name
      send by the user. We use this original name to set (restore)
      breakpoint in the new child process.
      
      This is a back-port of commit 5db936d2 from the master branch.
      a32a243d
  9. May 01, 2013
    • Ben Noordhuis's avatar
      Revert "deps: downgrade openssl to v1.0.0f" · 2cf7e5de
      Ben Noordhuis authored
      After much investigation it turns out that the affected servers are
      buggy.  user-service.condenastdigital.com:443 in particular seems to
      reject large TLS handshake records. Cutting down the number of
      advertised ciphers or disabling SNI fixes the issue.
      
      Similarly, passing { secureOptions: constants.SSL_OP_NO_TLSv1_2 }
      seems to fix most connection issues with IIS servers.
      
      Having to work around buggy servers is annoying for our users but not
      a reason to downgrade OpenSSL. Therefore, revert it.
      
      This reverts commit 4fdb8acd.
      2cf7e5de
  10. Apr 30, 2013
  11. Apr 29, 2013
  12. Apr 27, 2013
    • Miroslav Bajtoš's avatar
      debugger: `restart` with custom debug port · 8c2ad47f
      Miroslav Bajtoš authored
      Fixed a bug in debugger repl where `restart` command did not work
      when a custom debug port was specified via command-line option
      --port={number}.
      
      File test/simple/helper-debugger-repl.js was extracted
      from test/simple/test-debugger-repl.js
      8c2ad47f
  13. Apr 24, 2013
    • isaacs's avatar
      ChangeLog: Merge in v0.8 · 8e56b4dd
      isaacs authored
      Close #5355
      8e56b4dd
    • isaacs's avatar
      blog: Post for v0.10.5 · 72cf499b
      isaacs authored
      72cf499b
    • isaacs's avatar
      Now working on 0.10.6 · ec5577cf
      isaacs authored
      ec5577cf
    • isaacs's avatar
      Merge branch 'v0.10.5-release' into v0.10 · 52aeb3f2
      isaacs authored
      52aeb3f2
    • isaacs's avatar
      2013.04.23, Version 0.10.5 (Stable) · deeaf8fa
      isaacs authored
      * uv: Upgrade to 0.10.5 (isaacs)
      
      * build: added support for Visual Studio 2012 (Miroslav Bajtoš)
      
      * http: Don't try to destroy nonexistent sockets (isaacs)
      
      * crypto: LazyTransform on properties, not methods (isaacs)
      
      * assert: put info in err.message, not err.name (Ryan Doenges)
      
      * dgram: fix no address bind() (Ben Noordhuis)
      
      * handle_wrap: fix NULL pointer dereference (Ben Noordhuis)
      
      * os: fix unlikely buffer overflow in os.type() (Ben Noordhuis)
      
      * stream: Fix unshift() race conditions (isaacs)
      deeaf8fa
  14. Apr 23, 2013
    • Miroslav Bajtoš's avatar
      0602fbb4
    • isaacs's avatar
      uv: Upgrade to 0.10.5 · ff99cd52
      isaacs authored
      ff99cd52
    • isaacs's avatar
      os: Fix uname() error handling on sunos · c7774735
      isaacs authored
      The uname function can return any non-negative int to indicate success.
      
      Strange, but that's how it is documented.  This also fixes a similar
      buffer overflow in the even more unlikely event that info.release is
      > 255 characters, similar to how 78c5de59 did for info.sysname.
      c7774735
    • isaacs's avatar
      http: Don't try to destroy nonexistent sockets · 01e29202
      isaacs authored
      Fixes #3740
      
      In the case of pipelined requests, you can have a situation where
      the socket gets destroyed via one req/res object, but then trying
      to destroy *another* req/res on the same socket will cause it to
      call undefined.destroy(), since it was already removed from that
      message.
      
      Add a guard to OutgoingMessage.destroy and IncomingMessage.destroy
      to prevent this error.
      01e29202
  15. Apr 22, 2013
  16. Apr 21, 2013
    • isaacs's avatar
      crypto: LazyTransform on properties, not methods · 4bf1d100
      isaacs authored
      It needs to apply the Transform class when the _readableState,
      _writableState, or _transformState properties are accessed,
      otherwise things like setEncoding and on('data') don't work
      properly.
      
      Also, the methods wrappers are no longer needed, since they're only
      problematic because they access the undefined properties.
      4bf1d100