diff --git a/configure b/configure index ce37595d0a..51217209dc 100755 --- a/configure +++ b/configure @@ -296,14 +296,11 @@ def pkg_config(pkg): return (libs, cflags) -def cc_macros(cc=None): - """Checks predefined macros using the C compiler command.""" - - if cc is None: - cc = CC +def cc_macros(): + """Checks predefined macros using the CC command.""" try: - p = subprocess.Popen(shlex.split(cc) + ['-dM', '-E', '-'], + p = subprocess.Popen(shlex.split(CC) + ['-dM', '-E', '-'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) @@ -378,9 +375,7 @@ def is_arm_hard_float_abi(): def host_arch_cc(): """Host architecture check using the CC command.""" - # use 'cc', as CC may be set to a target arch compiler command - # in case of cross-compilation - k = cc_macros('cc') + k = cc_macros() matchup = { '__x86_64__' : 'x64', diff --git a/doc/api/tls.markdown b/doc/api/tls.markdown index 91dff2a53f..7df97965f5 100644 --- a/doc/api/tls.markdown +++ b/doc/api/tls.markdown @@ -117,14 +117,13 @@ automatically set as a listener for the [secureConnection][] event. The conjunction with the `honorCipherOrder` option described below to prioritize the non-CBC cipher. - Defaults to - `ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH`. + Defaults to `AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH`. Consult the [OpenSSL cipher list format documentation] for details on the - format. + format. ECDH (Elliptic Curve Diffie-Hellman) ciphers are not yet supported. - `ECDHE-RSA-AES128-SHA256` and `AES128-GCM-SHA256` are used when node.js is - linked against OpenSSL 1.0.1 or newer and the client speaks TLS 1.2, RC4 is - used as a secure fallback. + + `AES128-GCM-SHA256` is used when node.js is linked against OpenSSL 1.0.1 + or newer and the client speaks TLS 1.2, RC4 is used as a secure fallback. **NOTE**: Previous revisions of this section suggested `AES256-SHA` as an acceptable cipher. Unfortunately, `AES256-SHA` is a CBC cipher and therefore diff --git a/doc/api/vm.markdown b/doc/api/vm.markdown index cda5638471..b70c5321a0 100644 --- a/doc/api/vm.markdown +++ b/doc/api/vm.markdown @@ -14,7 +14,7 @@ JavaScript code can be compiled and run immediately or compiled, saved, and run The `vm` module has many known issues and edge cases. If you run into issues or unexpected behavior, please consult [the open issues on -GitHub](https://github.com/joyent/node/search?q=vm+state%3Aopen&type=Issues). +GitHub](https://github.com/joyent/node/issues?labels=vm&state=open). Some of the biggest problems are described below. ### Sandboxes diff --git a/doc/blog/release/v0.11.3.md b/doc/blog/release/v0.11.3.md new file mode 100644 index 0000000000..4bc89efc36 --- /dev/null +++ b/doc/blog/release/v0.11.3.md @@ -0,0 +1,101 @@ +date: Wed Jun 26 16:55:29 PDT 2013 +version: 0.11.3 +category: release +title: Node v0.11.3 (Unstable) +slug: node-v0-11-3-unstable + +2013.06.26, Version 0.11.3 (Unstable) + +* uv: Upgrade to v0.11.5 + +* c-ares: upgrade to 1.10.0 + +* v8: upgrade to v3.19.13 + +* punycode: update to v1.2.3 (Mathias Bynens) + +* debugger: break on uncaught exception (Miroslav Bajtos) + +* child_process: emit 'disconnect' asynchronously (Ben Noordhuis) + +* dtrace: enable uv's probes if enabled (Timothy J Fontaine) + +* dtrace: unify dtrace and systemtap interfaces (Timothy J Fontaine) + +* buffer: New API for backing data store (Trevor Norris) + +* buffer: return `this` in fill() for chainability (Brian White) + +* build: fix include order for building on windows (Timothy J Fontaine) + +* build: add android support (Linus MÃ¥rtensson) + +* readline: strip ctrl chars for prompt width calc (Krzysztof Chrapka) + +* tls: introduce TLSSocket based on tls_wrap binding (Fedor Indutny) + +* tls: add localAddress and localPort properties (Ben Noordhuis) + +* crypto: free excessive memory in NodeBIO (Fedor Indutny) + +* process: remove maxTickDepth (Trevor Norris) + +* timers: use uv_now instead of Date.now (Timothy J Fontaine) + +* util: Add debuglog, deprecate console lookalikes (isaacs) + +* module: use path.sep instead of a custom solution (Robert Kowalski) + +* http: don't escape request path, reject bad chars (Ben Noordhuis) + +* net: emit dns 'lookup' event before connect (Ben Noordhuis) + +* dns: add getServers and setServers (Timothy J Fontaine) + + +Source Code: http://nodejs.org/dist/v0.11.3/node-v0.11.3.tar.gz + +Macintosh Installer (Universal): http://nodejs.org/dist/v0.11.3/node-v0.11.3.pkg + +Windows Installer: http://nodejs.org/dist/v0.11.3/node-v0.11.3-x86.msi + +Windows x64 Installer: http://nodejs.org/dist/v0.11.3/x64/node-v0.11.3-x64.msi + +Windows x64 Files: http://nodejs.org/dist/v0.11.3/x64/ + +Linux 32-bit Binary: http://nodejs.org/dist/v0.11.3/node-v0.11.3-linux-x86.tar.gz + +Linux 64-bit Binary: http://nodejs.org/dist/v0.11.3/node-v0.11.3-linux-x64.tar.gz + +Solaris 32-bit Binary: http://nodejs.org/dist/v0.11.3/node-v0.11.3-sunos-x86.tar.gz + +Solaris 64-bit Binary: http://nodejs.org/dist/v0.11.3/node-v0.11.3-sunos-x64.tar.gz + +Other release files: http://nodejs.org/dist/v0.11.3/ + +Website: http://nodejs.org/docs/v0.11.3/ + +Documentation: http://nodejs.org/docs/v0.11.3/api/ + +Shasums: + +``` +8320d6167f4c49d85b42bde41a201dabc125540d node-v0.11.3-darwin-x64.tar.gz +df9a540da0f5eb80682b5f63a8f7c841876ae9b2 node-v0.11.3-darwin-x86.tar.gz +76839ea31e90046c80af088b36c619eae622a6c0 node-v0.11.3-linux-x64.tar.gz +fd571ebfcdf5d7e35a2fbd972967ac24326ecb39 node-v0.11.3-linux-x86.tar.gz +85c03b89d61245ddfc911784a358e32a8a801c4f node-v0.11.3-sunos-x64.tar.gz +58f7824fdbe8b57e13865630c11100ac920474f9 node-v0.11.3-sunos-x86.tar.gz +507bbb003c755865f2b9cfc7a656ec9b142624fd node-v0.11.3-x86.msi +613ac2e985738ac06859394daf64347594b1e073 node-v0.11.3.pkg +4b82d58ed3ce38fa67a8484b42cfd47179b6a4a5 node-v0.11.3.tar.gz +e8628e45ee979ed0e666ff4ddce82444251afc85 node.exe +e883f3f4b110e78cd11d03848003829fd7377ddb node.exp +5e82f6ef29379d8d39fb0661a0533bdbed412432 node.lib +cc3ee23230b947159282161481491f39f9a36c85 node.pdb +2f7adfe4cfb69efc5d9f0b94b18787a0e14c3021 x64/node-v0.11.3-x64.msi +625fd4ab66816e57b08d73853a9438ea9e16f720 x64/node.exe +dbc8cc48c651b342980b408fdc07da01e6e3e67e x64/node.exp +9203d66c50a34c1658928d525d1f1d2eaae9718c x64/node.lib +9b1261772868734a7962848e1d1db55efde2bce9 x64/node.pdb +``` diff --git a/src/node.cc b/src/node.cc index 08843cbaf6..a9c11e0bd1 100644 --- a/src/node.cc +++ b/src/node.cc @@ -883,6 +883,7 @@ Handle SetupDomainUse(const Arguments& args) { Local ndt = ndt_v.As(); process->Set(String::New("_tickCallback"), tdc); process->Set(String::New("nextTick"), ndt); + process_tickCallback.Dispose(node_isolate); // May be set by MakeCallback(). process_tickCallback = Persistent::New(node_isolate, tdc); return Undefined(node_isolate); } diff --git a/test/simple/test-http-exit-delay.js b/test/simple/test-http-exit-delay.js new file mode 100644 index 0000000000..3643492735 --- /dev/null +++ b/test/simple/test-http-exit-delay.js @@ -0,0 +1,60 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var assert = require('assert'); +var common = require('../common.js'); +var http = require('http'); + +var start; +var server = http.createServer(function(req, res) { + req.resume(); + req.on('end', function() { + res.end('Success'); + }); + + server.close(function() { + start = process.hrtime(); + }); +}); + +server.listen(common.PORT, 'localhost', function() { + var interval_id = setInterval(function() { + if (new Date().getMilliseconds() > 100) + return; + + var req = http.request({ + 'host': 'localhost', + 'port': common.PORT, + 'agent': false, + 'method': 'PUT' + }); + + req.end('Test'); + clearInterval(interval_id); + }, 10); +}); + +process.on('exit', function() { + var d = process.hrtime(start); + assert.equal(d[0], 0); + assert(d[1] / 1e9 < 0.03); + console.log('ok'); +});