Merge remote-tracking branch 'upstream/v0.10'
Conflicts: AUTHORS ChangeLog configure deps/uv/ChangeLog deps/uv/src/version.c lib/tls.js src/node_version.h
This commit is contained in:
Коммит
42af62f33a
1
AUTHORS
1
AUTHORS
|
@ -484,3 +484,4 @@ James Halliday <mail@substack.net>
|
|||
Matthew Aynalem <maynalem@gmail.com>
|
||||
Vsevolod Strukchinsky <floatdrop@yandex-team.ru>
|
||||
Jay Beavers <jay@hikinghomeschoolers.org>
|
||||
Eric Schrock <Eric.Schrock@delphix.com>
|
||||
|
|
17
ChangeLog
17
ChangeLog
|
@ -310,6 +310,23 @@
|
|||
* console: `console.dir()` bypasses inspect() methods (Nathan Rajlich)
|
||||
|
||||
|
||||
2013.09.24, Version 0.10.19 (Stable), 6b5e6a5a3ec8d994c9aab3b800b9edbf1b287904
|
||||
|
||||
* uv: Upgrade to v0.10.17
|
||||
|
||||
* npm: upgrade to 1.3.11
|
||||
|
||||
* readline: handle input starting with control chars (Eric Schrock)
|
||||
|
||||
* configure: add mips-float-abi (soft, hard) option (Andrei Sedoi)
|
||||
|
||||
* stream: objectMode transforms allow falsey values (isaacs)
|
||||
|
||||
* tls: prevent duplicate values returned from read (Nathan Rajlich)
|
||||
|
||||
* tls: NPN protocols are now local to connections (Fedor Indutny)
|
||||
|
||||
|
||||
2013.09.04, Version 0.10.18 (Stable), 67a1f0c52e0708e2596f3f2134b8386d6112561e
|
||||
|
||||
* uv: Upgrade to v0.10.15
|
||||
|
|
|
@ -55,7 +55,7 @@ Resources for Newcomers
|
|||
---
|
||||
- [The Wiki](https://github.com/joyent/node/wiki)
|
||||
- [nodejs.org](http://nodejs.org/)
|
||||
- [how to install node.js and npm (node package manager)](http://joyeur.com/2010/12/10/installing-node-and-npm/)
|
||||
- [how to install node.js and npm (node package manager)](http://www.joyent.com/blog/installing-node-and-npm/)
|
||||
- [list of modules](https://github.com/joyent/node/wiki/modules)
|
||||
- [searching the npm registry](http://npmjs.org/)
|
||||
- [list of companies and projects using node](https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node)
|
||||
|
|
|
@ -104,10 +104,10 @@ You have been warned.
|
|||
## Signal Events
|
||||
|
||||
<!--type=event-->
|
||||
<!--name=SIGINT, SIGUSR1, etc.-->
|
||||
<!--name=SIGINT, SIGHUP, etc.-->
|
||||
|
||||
Emitted when the processes receives a signal. See sigaction(2) for a list of
|
||||
standard POSIX signal names such as SIGINT, SIGUSR1, etc.
|
||||
standard POSIX signal names such as SIGINT, SIGHUP, etc.
|
||||
|
||||
Example of listening for `SIGINT`:
|
||||
|
||||
|
@ -121,6 +121,8 @@ Example of listening for `SIGINT`:
|
|||
An easy way to send the `SIGINT` signal is with `Control-C` in most terminal
|
||||
programs.
|
||||
|
||||
Note: SIGUSR1 is reserved by node.js to kickstart the debugger. It's possible
|
||||
to install a listener but that won't stop the debugger from starting.
|
||||
|
||||
## process.stdout
|
||||
|
||||
|
@ -452,7 +454,7 @@ An example of the possible output looks like:
|
|||
|
||||
Send a signal to a process. `pid` is the process id and `signal` is the
|
||||
string describing the signal to send. Signal names are strings like
|
||||
'SIGINT' or 'SIGUSR1'. If omitted, the signal will be 'SIGTERM'.
|
||||
'SIGINT' or 'SIGHUP'. If omitted, the signal will be 'SIGTERM'.
|
||||
See kill(2) for more information.
|
||||
|
||||
Note that just because the name of this function is `process.kill`, it is
|
||||
|
@ -472,6 +474,8 @@ Example of sending a signal to yourself:
|
|||
|
||||
process.kill(process.pid, 'SIGHUP');
|
||||
|
||||
Note: SIGUSR1 is reserved by node.js. It can be used to kickstart the
|
||||
debugger.
|
||||
|
||||
## process.pid
|
||||
|
||||
|
|
|
@ -104,9 +104,9 @@ automatically set as a listener for the [secureConnection][] event. The
|
|||
- `cert`: A string or `Buffer` containing the certificate key of the server in
|
||||
PEM format. (Required)
|
||||
|
||||
- `ca`: An array of strings or `Buffer`s of trusted certificates. If this is
|
||||
omitted several well known "root" CAs will be used, like VeriSign.
|
||||
These are used to authorize connections.
|
||||
- `ca`: An array of strings or `Buffer`s of trusted certificates in PEM
|
||||
format. If this is omitted several well known "root" CAs will be used,
|
||||
like VeriSign. These are used to authorize connections.
|
||||
|
||||
- `crl` : Either a string or list of strings of PEM encoded CRLs (Certificate
|
||||
Revocation List)
|
||||
|
@ -258,16 +258,16 @@ Creates a new client connection to the given `port` and `host` (old API) or
|
|||
- `cert`: A string or `Buffer` containing the certificate key of the client in
|
||||
PEM format.
|
||||
|
||||
- `ca`: An array of strings or `Buffer`s of trusted certificates. If this is
|
||||
omitted several well known "root" CAs will be used, like VeriSign.
|
||||
These are used to authorize connections.
|
||||
- `ca`: An array of strings or `Buffer`s of trusted certificates in PEM
|
||||
format. If this is omitted several well known "root" CAs will be used,
|
||||
like VeriSign. These are used to authorize connections.
|
||||
|
||||
- `rejectUnauthorized`: If `true`, the server certificate is verified against
|
||||
the list of supplied CAs. An `'error'` event is emitted if verification
|
||||
fails. Default: `true`.
|
||||
|
||||
- `NPNProtocols`: An array of string or `Buffer` containing supported NPN
|
||||
protocols. `Buffer` should have following format: `0x05hello0x05world`,
|
||||
- `NPNProtocols`: An array of strings or `Buffer`s containing supported NPN
|
||||
protocols. `Buffer`s should have following format: `0x05hello0x05world`,
|
||||
where first byte is next protocol name's length. (Passing array should
|
||||
usually be much simpler: `['hello', 'world']`.)
|
||||
|
||||
|
|
|
@ -13,4 +13,4 @@ It has also been suggested that Node does not take advantage of multicore machin
|
|||
|
||||
Node has a clear purpose: provide an easy way to build scalable network programs. It is not a tool for every problem. Do not write a ray tracer with Node. Do not write a web browser with Node. Do however reach for Node if tasked with writing a DNS server, DHCP server, or even a video encoding server.
|
||||
|
||||
By relying on the kernel to schedule and preempt computationally expensive tasks and to load balance incoming connections, Node appears less magical than server platforms that employ userland scheduling. So far, our focus on simplicity and transparency has paid off: <a href="http://joyeur.com/2011/08/11/node-js-meetup-distributed-web-architectures/">the</a> <a href="http://venturebeat.com/2011/08/16/linkedin-node/">number</a> <a href="http://corp.klout.com/blog/2011/10/the-tech-behind-klout-com/">of</a> <a href="http://www.joelonsoftware.com/items/2011/09/13.html">success</a> <a href="http://pow.cx/">stories</a> from developers and corporations who are adopting the technology continues to grow.
|
||||
By relying on the kernel to schedule and preempt computationally expensive tasks and to load balance incoming connections, Node appears less magical than server platforms that employ userland scheduling. So far, our focus on simplicity and transparency has paid off: <a href="http://www.joyent.com/blog/node-js-meetup-distributed-web-architectures/">the</a> <a href="http://venturebeat.com/2011/08/16/linkedin-node/">number</a> <a href="http://corp.klout.com/blog/2011/10/the-tech-behind-klout-com/">of</a> <a href="http://www.joelonsoftware.com/items/2011/09/13.html">success</a> <a href="http://pow.cx/">stories</a> from developers and corporations who are adopting the technology continues to grow.
|
||||
|
|
|
@ -7,4 +7,4 @@ slug: the-videos-from-node-meetup
|
|||
|
||||
Uber, Voxer, and Joyent described how they use Node in production
|
||||
|
||||
<a href="http://joyeur.com/2011/08/11/node-js-meetup-distributed-web-architectures/">http://joyeur.com/2011/08/11/node-js-meetup-distributed-web-architectures/</a>
|
||||
<a href="http://www.joyent.com/blog/node-js-meetup-distributed-web-architectures/">http://www.joyent.com/blog/node-js-meetup-distributed-web-architectures/</a>
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
date: Tue Sep 24 15:09:23 PDT 2013
|
||||
version: 0.10.19
|
||||
category: release
|
||||
title: Node v0.10.19 (Stable)
|
||||
slug: node-v0-10-19-stable
|
||||
|
||||
2013.09.24, Version 0.10.19 (Stable)
|
||||
|
||||
* uv: Upgrade to v0.10.17
|
||||
|
||||
* npm: upgrade to 1.3.11
|
||||
|
||||
* readline: handle input starting with control chars (Eric Schrock)
|
||||
|
||||
* configure: add mips-float-abi (soft, hard) option (Andrei Sedoi)
|
||||
|
||||
* stream: objectMode transforms allow falsey values (isaacs)
|
||||
|
||||
* tls: prevent duplicate values returned from read (Nathan Rajlich)
|
||||
|
||||
* tls: NPN protocols are now local to connections (Fedor Indutny)
|
||||
|
||||
|
||||
Source Code: http://nodejs.org/dist/v0.10.19/node-v0.10.19.tar.gz
|
||||
|
||||
Macintosh Installer (Universal): http://nodejs.org/dist/v0.10.19/node-v0.10.19.pkg
|
||||
|
||||
Windows Installer: http://nodejs.org/dist/v0.10.19/node-v0.10.19-x86.msi
|
||||
|
||||
Windows x64 Installer: http://nodejs.org/dist/v0.10.19/x64/node-v0.10.19-x64.msi
|
||||
|
||||
Windows x64 Files: http://nodejs.org/dist/v0.10.19/x64/
|
||||
|
||||
Linux 32-bit Binary: http://nodejs.org/dist/v0.10.19/node-v0.10.19-linux-x86.tar.gz
|
||||
|
||||
Linux 64-bit Binary: http://nodejs.org/dist/v0.10.19/node-v0.10.19-linux-x64.tar.gz
|
||||
|
||||
Solaris 32-bit Binary: http://nodejs.org/dist/v0.10.19/node-v0.10.19-sunos-x86.tar.gz
|
||||
|
||||
Solaris 64-bit Binary: http://nodejs.org/dist/v0.10.19/node-v0.10.19-sunos-x64.tar.gz
|
||||
|
||||
Other release files: http://nodejs.org/dist/v0.10.19/
|
||||
|
||||
Website: http://nodejs.org/docs/v0.10.19/
|
||||
|
||||
Documentation: http://nodejs.org/docs/v0.10.19/api/
|
||||
|
||||
Shasums:
|
||||
```
|
||||
74f1db96742fcc0128d1c14d3cb808ef5c847749 node-v0.10.19-darwin-x64.tar.gz
|
||||
71ef9bd63d3926a2b78a43a5d077838c43e7e2ea node-v0.10.19-darwin-x86.tar.gz
|
||||
ebc6dc67276f7461dbd45496924b36949c75e7e0 node-v0.10.19-linux-x64.tar.gz
|
||||
226b507f554fa5cc07296c30f08db76f5eaeb157 node-v0.10.19-linux-x86.tar.gz
|
||||
3b324613b79d1c4ab3b9414b0644a3a559c2aec9 node-v0.10.19-sunos-x64.tar.gz
|
||||
83cb3e58e9ac925ea22c8533cabc712625faa3f7 node-v0.10.19-sunos-x86.tar.gz
|
||||
dcbe7db6d0c93f83f539f38807cd3c1923969721 node-v0.10.19-x86.msi
|
||||
e6397e1df4e74864e3f0e5fc7bd24178828497f4 node-v0.10.19.pkg
|
||||
39478caf7024af6d992007457540f8941104c5d9 node-v0.10.19.tar.gz
|
||||
0fe9364b443e76f7364f8694751da15479417bdf node.exe
|
||||
63555cdb67c2fd63411726dc691b08af520b27f6 node.exp
|
||||
c4d33b56cff97c47b12df3ad237977a57d4c798d node.lib
|
||||
19a603db8f8c30b1736124740a6a1c856f2d21d8 node.pdb
|
||||
ca32da0335ecb09ab7316b6e18f23461e298768e pkgsrc/nodejs-ia32-0.10.19.tgz
|
||||
b0b05a7f74d980720677a3232e82e23df211c122 pkgsrc/nodejs-x64-0.10.19.tgz
|
||||
45aed04478346035e8dc7933d120ab636d56eac4 x64/node-v0.10.19-x64.msi
|
||||
b81788c17fec167b77883dcbaf8c629ad7560c4d x64/node.exe
|
||||
086761bf6ff4622714d24d7979548a37aaaea57e x64/node.exp
|
||||
cc554a431039952207adfcb3997a7366ad7182e8 x64/node.lib
|
||||
02d18f042f3d25663ea4d979dff8120435982079 x64/node.pdb
|
||||
```
|
|
@ -981,7 +981,7 @@ function emitKey(stream, s) {
|
|||
key.name = 'space';
|
||||
key.meta = (s.length === 2);
|
||||
|
||||
} else if (s <= '\x1a') {
|
||||
} else if (s.length === 1 && s <= '\x1a') {
|
||||
// ctrl+letter
|
||||
key.name = String.fromCharCode(s.charCodeAt(0) + 'a'.charCodeAt(0) - 1);
|
||||
key.ctrl = true;
|
||||
|
|
|
@ -155,6 +155,18 @@ FakeInput.prototype.end = function() {};
|
|||
assert.equal(callCount, expectedLines.length - 1);
|
||||
rli.close();
|
||||
|
||||
// \r at start of input should output blank line
|
||||
fi = new FakeInput();
|
||||
rli = new readline.Interface({ input: fi, output: fi, terminal: true });
|
||||
expectedLines = ['', 'foo' ];
|
||||
callCount = 0;
|
||||
rli.on('line', function(line) {
|
||||
assert.equal(line, expectedLines[callCount]);
|
||||
callCount++;
|
||||
});
|
||||
fi.emit('data', '\rfoo\r');
|
||||
assert.equal(callCount, expectedLines.length);
|
||||
rli.close();
|
||||
|
||||
// sending a multi-byte utf8 char over multiple writes
|
||||
var buf = Buffer('☮', 'utf8');
|
||||
|
|
|
@ -61,6 +61,12 @@ var clientsOptions = [{
|
|||
crl: serverOptions.crl,
|
||||
NPNProtocols: ['c', 'b', 'e'],
|
||||
rejectUnauthorized: false
|
||||
},{
|
||||
port: serverPort,
|
||||
key: serverOptions.key,
|
||||
cert: serverOptions.cert,
|
||||
crl: serverOptions.crl,
|
||||
rejectUnauthorized: false
|
||||
},{
|
||||
port: serverPort,
|
||||
key: serverOptions.key,
|
||||
|
@ -91,7 +97,9 @@ function startTest() {
|
|||
connectClient(clientsOptions[0], function() {
|
||||
connectClient(clientsOptions[1], function() {
|
||||
connectClient(clientsOptions[2], function() {
|
||||
server.close();
|
||||
connectClient(clientsOptions[3], function() {
|
||||
server.close();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -100,6 +108,8 @@ function startTest() {
|
|||
process.on('exit', function() {
|
||||
assert.equal(serverResults[0], clientsResults[0]);
|
||||
assert.equal(serverResults[1], clientsResults[1]);
|
||||
assert.equal(serverResults[2], 'first-priority-unsupported');
|
||||
assert.equal(serverResults[2], 'http/1.1');
|
||||
assert.equal(clientsResults[2], false);
|
||||
assert.equal(serverResults[3], 'first-priority-unsupported');
|
||||
assert.equal(clientsResults[3], false);
|
||||
});
|
||||
|
|
Загрузка…
Ссылка в новой задаче