0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-29 23:16:30 +01:00
Commit Graph

11132 Commits

Author SHA1 Message Date
Ben Noordhuis
d33a647b4b doc: make tools/update-authors.sh cross-platform
And by cross-platform I mean Linux and OS X.  The awk script is not
compatible with BSD awk, that's why this commit changes it to perl.

Update the .mailmap to remove some duplicates and regenerate the
AUTHORS file.

Fixes: https://github.com/iojs/io.js/issues/1120
PR-URL: https://github.com/iojs/io.js/pull/1121
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-03-11 13:25:17 +01:00
skenqbx
8453fbc879 https: don't overwrite servername option
PR-URL: https://github.com/iojs/io.js/pull/1110
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-03-10 23:28:04 -07:00
Ben Noordhuis
60dac07b06 doc: add Malte-Thorben Bruns to .mailmap
PR-URL: https://github.com/iojs/io.js/pull/1118
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-03-10 16:37:56 +01:00
Ben Noordhuis
480b48244f lib: allow server.listen({ port: "1234" })
net.connect() accepts `{ port: "1234" }` (i.e. a string) as of commit
9d2b89d06 ("net: allow port 0 in connect()") but net.Server#listen()
did not, creating a minor inconsistency.  This commit rectifies that.

Fixes: https://github.com/iojs/io.js/issues/1111
PR-URL: https://github.com/iojs/io.js/pull/1116
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-03-10 16:13:29 +01:00
skenqbx
80e14d736e doc: move checkServerIdentity option to tls.connect()
PR-URL: https://github.com/iojs/io.js/pull/1107
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-03-10 09:49:08 -04:00
Ryuichi Okumura
684a5878b6 doc: fix missing periods in url.markdown
PR-URL: https://github.com/iojs/io.js/pull/1115
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-03-10 09:37:31 -04:00
Fedor Indutny
8431fc53f1 tls_wrap: proxy handle methods in prototype
Set proxied methods wrappers in `TLSWrap` prototype instead of doing it
on every socket allocation. Should speed up things a bit and will
certainly make heapsnapshot less verbose.

PR-URL: https://github.com/iojs/io.js/pull/1108
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-09 14:48:21 -04:00
Trevor Norris
8070b1ff99 buffer: Don't assign .parent if none exists
The .parent property of the allocated buffer should remain undefined in
the case that it's not a slice. Also included test to verify this.

PR-URL: https://github.com/iojs/io.js/pull/1109
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-03-09 12:46:20 -06:00
Rod Vagg
e795138d55 Working on v1.5.2 2015-03-09 11:03:44 -07:00
Rod Vagg
f19e9b6a76 2015-03-09 io.js v1.5.1 Release
Notable changes:

* tls: The reported TLS memory leak has been at least partially
  resolved via various commits in this release. Current testing indicated
  that there may still be some leak problems. Progress being tracked at:
  https://github.com/iojs/io.js/issues/1075
* http: Fixed an error reported at
  https://github.com/joyent/node/issues/9348 and
  https://github.com/npm/npm/issues/7349
  Pending data was not being fully read upon an 'error' event leading to
  an assertion failure on socket.destroy().
  (Fedor Indutny) https://github.com/iojs/io.js/pull/1103
2015-03-09 11:01:40 -07:00
Rudi Cilibrasi
030a92347d benchmark: chunky http client benchmark variation
PR-URL: https://github.com/iojs/io.js/pull/228
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-09 10:58:40 -06:00
Fedor Indutny
1a3ca8223e http_client: ensure empty socket on error
Read all pending data out of the socket on `error` event and ensure that
no `data`/`end` handlers will be invoked on `socket.destroy()`.
Otherwise following assertion happens:

    AssertionError: null == true
        at TLSSocket.socketOnData (_http_client.js:308:3)
        at TLSSocket.emit (events.js:107:17)
        at TLSSocket.Readable.read (_stream_readable.js:373:10)
        at TLSSocket.socketCloseListener (_http_client.js:229:10)
        at TLSSocket.emit (events.js:129:20)
        at TCP.close (net.js:476:12)

Fix: https://github.com/joyent/node/issues/9348
PR-URL: https://github.com/iojs/io.js/pull/1103
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Nicu Micleușanu <micnic90@gmail.com>
2015-03-09 09:25:09 -04:00
Fedor Indutny
8670613d2d node_crypto_bio: adjust external memory size
Adjust V8's external memory size when allocating buffers for TLS data to
ensure that V8 has enough information to trigger the GC at right time.

PR-URL: https://github.com/iojs/io.js/pull/1085
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-08 19:07:46 -04:00
Yazhong Liu
f8c893dd39 doc: fix confusion markdown in util.markdown
PR-URL: https://github.com/iojs/io.js/pull/1097
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
2015-03-08 14:49:06 -07:00
Jeremiah Senkpiel
cf565b5516 fs: fix .write() not coercing non-string values
Fixes: https://github.com/iojs/io.js/issues/1098
PR-URL: https://github.com/iojs/io.js/pull/1102
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
2015-03-08 14:42:09 -07:00
Alex Kocharin
4bd3620382 url: remove redundant assignment in url.parse
PR-URL: https://github.com/iojs/io.js/pull/1095
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Nicu Micleușanu <micnic90@gmail.com>
2015-03-08 16:36:29 -04:00
Fedor Indutny
fe36076c78 stream_base: WriteWrap::New/::Dispose
Encapsulate allocation/disposal of `WriteWrap` instances into the
`WriteWrap` class itself.

PR-URL: https://github.com/iojs/io.js/pull/1090
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-07 18:51:05 -05:00
Fedor Indutny
7f4c95e160 tls: do not leak WriteWrap objects
Kill WriteWrap instances that are allocated in `tls_wrap.cc` internally.

Fix: https://github.com/iojs/io.js/issues/1075
PR-URL: https://github.com/iojs/io.js/pull/1090
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-07 18:51:05 -05:00
Brendan Ashworth
e763220f66 doc: update clang version prerequisite
See commit `4877ec0`, where it now warns on a clang++ version older than
3.4.

PR-URL: https://github.com/iojs/io.js/pull/1094
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-07 14:57:53 -08:00
Ben Noordhuis
528d8786ff src: fix memory leak in fs.writeSync error path
The SYNC_CALL macro returns on error, bypassing the delete[] call.

Mea culpa, it looks like I introduced this memory leak back in 2013,
in commit d2b80b8a ("src: clean up FSReqWrap").

PR-URL: https://github.com/iojs/io.js/pull/1092
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-03-07 19:37:36 +01:00
Ben Noordhuis
648fc63cd1 src: fix mismatched delete[] in src/node_file.cc
Fix a bad delete of a pointer that was allocated with placement new.
Casting the pointer was not the right solution because there was at
least one non-placement new constructor call.

This commit rewrites FSReqWrap to be more explicit about ownership of
the auxiliary data and removes a number of egregious const_casts.
The ASYNC_DEST_CALL macro also gets significantly slimmed down.

PR-URL: https://github.com/iojs/io.js/pull/1092
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-03-07 19:37:14 +01:00
Evan Lucas
0f7c8ebeea doc: replace article "an" with "a" in net docs
PR-URL: https://github.com/iojs/io.js/pull/1093
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-03-07 12:41:57 -06:00
Fedor Indutny
3b57819b58 crypto: fix leak in SafeX509ExtPrint
`ASN1_item_d2i`'s return value must be freed by the owner.

Fix: https://github.com/iojs/io.js/issues/1075
PR-URL: https://github.com/iojs/io.js/pull/1087
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-07 07:58:31 -05:00
Ben Noordhuis
9f7c9811e2 src: add missing Context::Scope
Add a Context::Scope that was overlooked in commit 583a868
("stream_wrap: add HandleScope's in uv callbacks").

PR-URL: https://github.com/iojs/io.js/pull/1084
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-03-06 17:58:37 -05:00
Rod Vagg
71f069772e Working on v1.5.1 2015-03-06 14:04:22 -08:00
Rod Vagg
25a7fc8ffb 2015-03-06 io.js v1.5.0 Release
Notable changes:

* buffer: New `Buffer#indexOf()` method, modelled off `Array#indexOf()`.
  Accepts a String, Buffer or a Number. Strings are interpreted as UTF8.
  (Trevor Norris) https://github.com/iojs/io.js/pull/561
* fs: `options` object properties in `'fs'` methods no longer perform a
  `hasOwnProperty()` check, thereby allowing options objects to have
  prototype properties that apply. (Jonathan Ong)
  https://github.com/iojs/io.js/pull/635
* tls: A likely TLS memory leak was reported by PayPal. Some of the recent
  changes in stream_wrap appear to be to blame. The initial fix is in
  https://github.com/iojs/io.js/pull/1078, you can track the progress
  toward closing the leak at
  https://github.com/iojs/io.js/issues/1075 (Fedor Indutny).
* npm: Upgrade npm to 2.7.0. See npm CHANGELOG.md:
  https://github.com/npm/npm/blob/master/CHANGELOG.md#v270-2015-02-26
  for details including why this is a semver-minor when it could have
  been semver-major.
* TC: Colin Ihrig (@cjihrig) resigned from the TC due to his desire to do
  more code and fewer meetings.
2015-03-06 13:59:02 -08:00
cjihrig
dee07e2983 deps: make node-gyp work with io.js
Every npm version bump requires a few patches to be floated on
node-gyp for io.js compatibility. These patches are found in
03d199276e,
5de334c230, and
da730c76e9. This commit squashes
them into a single commit.

PR-URL: https://github.com/iojs/io.js/pull/990
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-06 11:20:49 -05:00
Forrest L Norvell
fe14802fb7 deps: upgrade npm to 2.7.0
PR-URL: https://github.com/iojs/io.js/pull/1080
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-03-06 11:20:05 -05:00
Fedor Indutny
c09c90c1a9 tls_wrap: do not hold persistent ref to parent
Hold non-persistent reference in JS, rather than in C++ to avoid cycles.

PR-URL: https://github.com/iojs/io.js/pull/1078
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-06 11:02:01 -05:00
Fedor Indutny
dccb69a21a js_stream: fix leak of instances
Don't forget to call `MakeWeak` to ensure that instance objects are
garbage collectable.

PR-URL: https://github.com/iojs/io.js/pull/1078
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-06 11:01:58 -05:00
Fedor Indutny
583a868bcd stream_wrap: add HandleScope's in uv callbacks
Ensure that no handles will leak into global HandleScope by adding
HandleScope's in all JS-calling libuv callbacks in `stream_wrap.cc`.

Fix: https://github.com/iojs/io.js/issues/1075
PR-URL: https://github.com/iojs/io.js/pull/1078
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-06 11:01:32 -05:00
Brian White
b27931b0fe benchmark: fix wrk check
PR-URL: https://github.com/iojs/io.js/pull/1076
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-03-05 17:13:08 -05:00
Johan Bergström
37bb1df7c4 build: remove mdb from io.js
After upgrading to a newer v8 mdb is pretty much broken - even if using
the latest updates from nodejs. If nodejs decides to update their v8 we
can give it another go, but for now it's better to remove it than have
it in our tree unsupported.

PR-URL: https://github.com/iojs/io.js/pull/1023
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-03-05 23:10:45 +01:00
Christian Tellnes
4874182065 http: send Content-Length when possible
This changes the behavior for http to send send a Content-Length header
instead of using chunked encoding when we know the size of the body when
sending the headers.

Fixes: https://github.com/iojs/io.js/issues/1044
PR-URL: https://github.com/iojs/io.js/pull/1062
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Brian White <mscdex@mscdex.net>
2015-03-05 22:17:35 +01:00
Ben Noordhuis
1640dedb3b src: fix ucs-2 buffer encoding regression
StringBytes::Write() did a plain memcpy() when is_extern is true but
that's wrong when the source is a two-byte string and the destination
a one-byte or UTF-8 string.

The impact is limited to strings > 1,031,913 bytes because those are
normally the only strings that are externalized, although the use of
the 'externalize strings' extension (--expose_externalize_string) can
also trigger it.

This commit also cleans up the bytes versus characters confusion in
StringBytes::Write() because that was closely intertwined with the
UCS-2 encoding regression.  One wasn't fixable without the other.

Fixes: https://github.com/iojs/io.js/issues/1024
Fixes: https://github.com/joyent/node/issues/8683
PR-URL: https://github.com/iojs/io.js/pull/1042
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-05 20:44:19 +01:00
Ben Noordhuis
2eda2d6096 src: fix external string length calculation
Make StringBytes::GetExternalParts() return the byte length for two-byte
strings, not the character length.  Its callers operate on bytes, not
characters.

This also fixes StringBytes::Size() reporting only half of the actual
number of bytes for external two-byte strings.

PR-URL: https://github.com/iojs/io.js/pull/1042
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-05 20:44:19 +01:00
Ben Noordhuis
e2fb733a95 test: simplify parallel/test-stringbytes-external
Make the algorithm that creates the big input strings a little easier
to comprehend.  No functional changes, the string lengths are unchanged.

PR-URL: https://github.com/iojs/io.js/pull/1042
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-05 20:44:19 +01:00
Ben Noordhuis
4aea16f214 src: rename confusingly named local variable
Rename `val_` to `string`.  The underscore suffix is normally reserved
for data members, not locals, and it's not a great name in the first
place.

PR-URL: https://github.com/iojs/io.js/pull/1042
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-05 20:44:19 +01:00
Ben Noordhuis
c9ee654290 src: simplify node::Utf8Value()
* Remove kStorageSize constant.

* Remove superfluous local variable and reinterpret_cast.

* Reorder data members so the length field and data pointer
  (if not the data itself) fit in a single cache line.

PR-URL: https://github.com/iojs/io.js/pull/1042
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-05 20:44:19 +01:00
Ben Noordhuis
364cc7e08a src: remove NODE_INVALID_UTF8 environment variable
Introduced in joyent/node v0.10 as a backwards compatibility measure.
It's an ugly hack and allowing invalid UTF-8 is not a good idea in the
first place, remove it.

PR-URL: https://github.com/iojs/io.js/pull/1042
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-05 20:44:18 +01:00
Ben Noordhuis
826cde8661 src: fix gc heuristic for external twobyte strings
Large external two-byte strings reported their character length instead
of their byte length, throwing off the garbage collector heuristic by
a factor of two.

PR-URL: https://github.com/iojs/io.js/pull/1042
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-05 20:42:13 +01:00
Ben Noordhuis
f5b7e18243 src: remove unused code
PR-URL: https://github.com/iojs/io.js/pull/1042
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-05 20:42:13 +01:00
Petka Antonov
4ae64b2626 src: extract node env init out of process init
PR-URL: https://github.com/iojs/io.js/pull/980
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-05 11:35:33 -08:00
Ben Noordhuis
7b554b1a8f test: don't spawn child processes in domain test
Make parallel/test-domain-abort-on-uncaught a little easier to debug,
make it execute the tests in the same process instead of each test in
a separate child process.

PR-URL: https://github.com/iojs/io.js/pull/974
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-03-05 20:08:56 +01:00
Ben Noordhuis
b150c9839e src: fix -Wempty-body compiler warnings
Turn counter macros into no-op instructions when counters are disabled.
Evaluating to nothing makes gcc complain when the macro is used in a
conditional.  Fixes the following warning:

    ../src/tls_wrap.cc:320:5: warning:
    suggest braces around empty body in an 'if' statement [-Wempty-body]
         NODE_COUNT_NET_BYTES_SENT(write_size_);
         ^

PR-URL: https://github.com/iojs/io.js/pull/974
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-03-05 20:08:30 +01:00
Ben Noordhuis
726671cb0e build: add basic mips/mipsel support
Extend the configure script so that it knows how to generate build files
for mips and mipsel.  Actually building io.js is pending MIPS buildbots.

PR-URL: https://github.com/iojs/io.js/pull/1045
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-03-05 19:51:01 +01:00
Ben Noordhuis
4ddd6406ce lib: avoid .toLowerCase() call in Buffer#write()
Avoid a costly String#toLowerCase() call in Buffer#write() in the
common case, i.e., that the string is already lowercase.  Reduces
the running time of the following benchmark by about 40%:

    for (var b = Buffer(1), i = 0; i < 25e6; ++i) b.write('x', 'ucs2');

PR-URL: https://github.com/iojs/io.js/pull/1048
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-05 19:44:50 +01:00
Ben Noordhuis
bbf54a554a lib: hand-optimize Buffer constructor
The Buffer constructor is used pervasively throughout io.js, yet it was
one of the most unwieldy functions in core.  This commit breaks up the
constructor into several small functions in a way that makes V8 happy.

About 8-10% CPU time was attributed to the constructor function before
in buffer-heavy benchmarks.  That pretty much drops to zero now because
V8 can now easily inline it at the call site.  It shortens the running
time of the following simple benchmark by about 15%:

    for (var i = 0; i < 25e6; ++i) new Buffer(1);

And about 8% from this benchmark:

    for (var i = 0; i < 1e7; ++i) new Buffer('x', 'ucs2');

PR-URL: https://github.com/iojs/io.js/pull/1048
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-05 19:44:50 +01:00
Fedor Indutny
3446ff417b tty: do not add shutdown method to handle
UV_TTY does not support `uv_shutdown()` so adding this method in
StreamBase will cause an `abort()` in C land.

Fix: https://github.com/iojs/io.js/issues/1068
PR-URL: https://github.com/iojs/io.js/pull/1073
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-03-05 13:38:22 -05:00
cjihrig
9d2b89d06c net: allow port 0 in connect()
The added validation allows non-negative numbers and numeric
strings. All other values result in a thrown exception.

Fixes: https://github.com/joyent/node/issues/9194
PR-URL: https://github.com/joyent/node/pull/9268
Reviewed-By: Julien Gilli <julien.gilli@joyent.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: James M Snell <jasnell@users.noreply.github.com>
2015-03-05 10:01:15 -05:00