1. Apr 03, 2013
    • isaacs's avatar
      http client: Ensure socket cleanup on response end · 234fb122
      isaacs authored
      If an http response has an 'end' handler that throws, then the socket
      will never be released back into the pool.
      
      Granted, we do NOT guarantee that throwing will never have adverse
      effects on Node internal state.  Such a guarantee cannot be reasonably
      made in a shared-global mutable-state side-effecty language like
      JavaScript.  However, in this case, it's a rather trivial patch to
      increase our resilience a little bit, so it seems like a win.
      
      There is no semantic change in this case, except that some event
      listeners are removed, and the `'free'` event is emitted on nextTick, so
      that you can schedule another request which will re-use the same socket.
      From the user's point of view, there should be no detectable difference.
      
      Closes #5107
      234fb122
  2. Apr 02, 2013
    • Andrew Hart's avatar
      test: test intended code-paths · db8ce89f
      Andrew Hart authored
      The tests did not agree with the test comments. Tests first and second
      were both testing the !state.reading case. Now second tests the
      state.reading && state.length case.
      
      Fixes joyent/node#5183
      db8ce89f
    • isaacs's avatar
      tls: Destroy socket when encrypted side closes · 164d5b34
      isaacs authored
      The v0.8 Stream.pipe() method automatically destroyed the destination
      stream whenever the src stream closed.  However, this caused a lot of
      problems, and was removed by popular demand.  (Many userland modules
      still have a no-op destroy() method just because of this.) It was also
      very hazardous because this would be done even if { end: false } was
      passed in the pipe options.
      
      In v0.10, we decided that the 'close' event and destroy() method are
      application-specific, and pipe() doesn't automatically call destroy().
      However, TLS actually depended (silently) on this behavior.  So, in this
      case, we should just go ahead and destroy the thing when close happens.
      
      Closes #5145
      164d5b34
    • Michael Hart's avatar
      440dcae9
  3. Apr 01, 2013
  4. Mar 31, 2013
  5. Mar 30, 2013
  6. Mar 29, 2013
    • isaacs's avatar
      blog: v0.11.0 release · 1d17ced2
      isaacs authored
      1d17ced2
    • isaacs's avatar
      blog: Update linux binary tarball shasums · f1fa7566
      isaacs authored
      I just accidentally the binary release.
      f1fa7566
    • isaacs's avatar
      blog: Post about v0.10.2 · 708e8589
      isaacs authored
      708e8589
    • isaacs's avatar
      Node working on 0.10.3 · 61d254eb
      isaacs authored
      61d254eb
    • isaacs's avatar
      Merge branch 'v0.10.2-release' into v0.10 · 8106dc36
      isaacs authored
      8106dc36
    • Ben Noordhuis's avatar
      902d6cb6
    • isaacs's avatar
      2013.03.28, Version 0.10.2 (Stable) · 1e0de9c4
      isaacs authored
      * npm: Upgrade to 1.2.15
      
      * uv: Upgrade to 0.10.3
      
      * tls: handle SSL_ERROR_ZERO_RETURN (Fedor Indutny)
      
      * tls: handle errors before calling C++ methods (Fedor Indutny)
      
      * tls: remove harmful unnecessary bounds checking (Marcel Laverdet)
      
      * crypto: make getCiphers() return non-SSL ciphers (Ben Noordhuis)
      
      * crypto: check randomBytes() size argument (Ben Noordhuis)
      
      * timers: do not calculate Timeout._when property (Alexey Kupershtokh)
      
      * timers: fix off-by-one ms error (Alexey Kupershtokh)
      
      * timers: handle signed int32 overflow in enroll() (Fedor Indutny)
      
      * stream: Fix stall in Transform under very specific conditions (Gil Pedersen)
      
      * stream: Handle late 'readable' event listeners (isaacs)
      
      * stream: Fix early end in Writables on zero-length writes (isaacs)
      
      * domain: fix domain callback from MakeCallback (Trevor Norris)
      
      * child_process: don't emit same handle twice (Ben Noordhuis)
      
      * child_process: fix sending utf-8 to child process (Ben Noordhuis)
      1e0de9c4
    • Bert Belder's avatar
      deps: upgrade libuv to v0.10.3 · 1b5ec033
      Bert Belder authored
      1b5ec033
    • isaacs's avatar
      npm: Upgrade to v1.2.15 · dea0634f
      isaacs authored
      dea0634f
    • Fedor Indutny's avatar
      tls: handle SSL_ERROR_ZERO_RETURN · 4580be08
      Fedor Indutny authored
      see #5004
      4580be08
    • wicked's avatar
      setTimeout: do not calculate Timeout._when property · 39058bef
      wicked authored
      Dramatically improves Timer performance.
      39058bef
    • isaacs's avatar
      stream: Emit readable on ended streams via read(0) · 929e4d9c
      isaacs authored
      cc: @mjijackson
      929e4d9c
    • isaacs's avatar
      stream: Handle late 'readable' event listeners · eafa9026
      isaacs authored
      In cases where a stream may have data added to the read queue before the
      user adds a 'readable' event, there is never any indication that it's
      time to start reading.
      
      True, there's already data there, which the user would get if they
      checked However, as we use 'readable' event listening as the signal to
      start the flow of data with a read(0) call internally, we ought to
      trigger the same effect (ie, emitting a 'readable' event) even if the
      'readable' listener is added after the first emission.
      
      To avoid confusing weirdness, only the *first* 'readable' event listener
      is granted this privileged status.  After we've started the flow (or,
      alerted the consumer that the flow has started) we don't need to start
      it again.  At that point, it's the consumer's responsibility to consume
      the stream.
      
      Closes #5141
      eafa9026
    • isaacs's avatar
      doc: Add 'don't ignore errors' section to domain · 5ae26f37
      isaacs authored
      Also, an example program of using cluster and domain to handle errors
      safely, with zero downtime, using process isolation.
      5ae26f37
  7. Mar 28, 2013
  8. Mar 27, 2013
    • Fedor Indutny's avatar
      tls: handle errors before calling C++ methods · ae86fa84
      Fedor Indutny authored
      Calling `this.pair.encrypted._internallyPendingBytes()` before
      handling/resetting error will result in assertion failure:
      
      ../src/node_crypto.cc:962: void node::crypto::Connection::ClearError():
      Assertion `handle_->Get(String::New("error"))->BooleanValue() == false'
      failed.
      
      see #5058
      ae86fa84
    • Benjamin Ruston's avatar
      doc: addon: fix grammar · 372911ff
      Benjamin Ruston authored
      372911ff
    • Fedor Indutny's avatar
      openssl: disable HEARTBEAT TLS extension · 28c6e42e
      Fedor Indutny authored
      Microsoft's IIS doesn't support it, and is not replying with ServerHello
      after receiving ClientHello which contains it.
      
      The good way might be allowing to opt-out this at runtime from
      javascript-land, but unfortunately OpenSSL doesn't support it right now.
      
      see #5119
      28c6e42e
    • Trevor Norris's avatar
      domain: fix domain callback from MakeCallback · f0b68892
      Trevor Norris authored
      Since _tickCallback and _tickDomainCallback were both called from
      MakeCallback, it was possible for a callback to be called that required
      a domain directly to _tickCallback.
      
      The fix was to implement process.usingDomains(). This will set all
      applicable functions to their domain counterparts, and set a flag in cc
      to let MakeCallback know domain callbacks always need to be checked.
      
      Added test in own file. It's important that the test remains isolated.
      f0b68892
  9. Mar 26, 2013
  10. Mar 25, 2013
  11. Mar 24, 2013