platform/upstream/nodejs.git
10 years agosrc: constify WITH_GENERIC_STREAM macro
Ben Noordhuis [Wed, 7 Aug 2013 12:53:49 +0000 (14:53 +0200)]
src: constify WITH_GENERIC_STREAM macro

Make the pointer-to-wrap const (i.e. mutable but not assignable) to
prevent accidental reassignment in the macro body.

10 years agosrc: add IsEmpty() check to HasInstance()
Ben Noordhuis [Wed, 7 Aug 2013 12:45:37 +0000 (14:45 +0200)]
src: add IsEmpty() check to HasInstance()

The check has virtually zero overhead and it simplifies the call sites
because they were calling IsEmpty() anwyay.

10 years agoNow working on 0.11.6
Timothy J Fontaine [Wed, 7 Aug 2013 00:13:47 +0000 (17:13 -0700)]
Now working on 0.11.6

10 years agoMerge branch 'v0.11.5-release'
Timothy J Fontaine [Wed, 7 Aug 2013 00:13:17 +0000 (17:13 -0700)]
Merge branch 'v0.11.5-release'

10 years agodomains: properly check if domains are being used
Trevor Norris [Tue, 6 Aug 2013 22:42:47 +0000 (15:42 -0700)]
domains: properly check if domains are being used

process.domain is almost never just undefined, so it was setting the
object property unnecessarily.

10 years ago2013.08.06, Version 0.11.5 (Unstable) v0.11.5
Timothy J Fontaine [Tue, 6 Aug 2013 21:41:21 +0000 (14:41 -0700)]
2013.08.06, Version 0.11.5 (Unstable)

* v8: upgrade to 3.20.11

* uv: upgrade to v0.11.7

* buffer: return offset for end of last write (Trevor Norris)

* build: embed the mdb_v8.so into the binary (Timothy J Fontaine)

* build: fix --without-ssl build (Ben Noordhuis)

* child_process: add 'shell' option to .exec() (Ben Noordhuis)

* dgram: report send errors to cb, don't pass bytes (Ben Noordhuis)

* fs: write strings directly to disk (Trevor Norris)

* https: fix default port (Koichi Kobayashi)

* openssl: use asm for sha, md5, rmd (Fedor Indutny)

* os: add mac address to networkInterfaces() output (Brian White)

* smalloc: introduce smalloc module (Trevor Norris)

* stream: Simplify flowing, passive data listening (streams3) (isaacs)

* tls: asynchronous SNICallback (Fedor Indutny)

* tls: share tls tickets key between cluster workers (Fedor Indutny)

* util: don't throw on circular %j input to format() (Ben Noordhuis)

10 years agouv: Upgrade to v0.11.7
Timothy J Fontaine [Tue, 6 Aug 2013 21:35:33 +0000 (14:35 -0700)]
uv: Upgrade to v0.11.7

10 years agotls: fix lazy initialization of clienthello parser
Fedor Indutny [Tue, 6 Aug 2013 16:30:21 +0000 (20:30 +0400)]
tls: fix lazy initialization of clienthello parser

`server.SNICallback` was initialized with `SNICallback.bind(this)`, and
therefore check `this.SNICallback === SNICallback` was always false, and
`_tls_wrap.js` always thought that it was a custom callback instead of
default one. Which in turn was causing clienthello parser to be enabled
regardless of presence of SNI contexts.

10 years agoMerge remote-tracking branch 'upstream/v0.10'
Timothy J Fontaine [Tue, 6 Aug 2013 18:54:28 +0000 (11:54 -0700)]
Merge remote-tracking branch 'upstream/v0.10'

Conflicts:
deps/v8/test/cctest/test-api.cc
lib/events.js
lib/http.js

10 years agoprocess_wrap: omit superfluous Number creation
Ben Noordhuis [Tue, 6 Aug 2013 15:42:28 +0000 (17:42 +0200)]
process_wrap: omit superfluous Number creation

Don't create a superfluous Number object, just use the version of
v8::Object::Get() that takes an unsigned int. Convert the index to
unsigned int while we're here.

10 years agostream: Fix double pipe error emit
Eran Hammer [Mon, 5 Aug 2013 09:56:40 +0000 (02:56 -0700)]
stream: Fix double pipe error emit

If an error listener is added to a stream using once() before it is
piped, it is invoked and removed during pipe() but before pipe() sees it
which causes it to be emitted again.

Fixes #4155 #4978

10 years agosrc: fix WITH_GENERIC_STREAM() type check bug
Ben Noordhuis [Tue, 6 Aug 2013 13:47:42 +0000 (15:47 +0200)]
src: fix WITH_GENERIC_STREAM() type check bug

The handle object was checked against the wrong constructor template.
Put another way, it was unwrapped as the wrong StreamWrap type.

10 years agocrypto: fix signed/unsigned comparison warning
Ben Noordhuis [Tue, 6 Aug 2013 13:36:12 +0000 (15:36 +0200)]
crypto: fix signed/unsigned comparison warning

The type of the expression `(uint16_t) server_names_len + 2` gets
implicitly widened to int. Change the type of server_names_len to
uint32_t to avoid the following warnings:

    ../../src/node_crypto_clienthello.cc:144: warning: comparison
    between signed and unsigned integer expressions
    ../../src/node_crypto_clienthello.cc:146: warning: comparison
    between signed and unsigned integer expressions

10 years agotls: asynchronous SNICallback
Fedor Indutny [Sat, 3 Aug 2013 17:29:54 +0000 (21:29 +0400)]
tls: asynchronous SNICallback

Make ClientHelloParser handle SNI extension, and extend `_tls_wrap.js`
to support loading SNI Context from both hello, and resumed session.

fix #5967

10 years agotls_wrap: DRY ClientHelloParser
Fedor Indutny [Fri, 2 Aug 2013 12:16:13 +0000 (16:16 +0400)]
tls_wrap: DRY ClientHelloParser

Share ClientHelloParser code between `tls_wrap.cc` and `node_crypto.cc`.

fix #5959

10 years agorepl: Add 'smalloc' to list of known modules
isaacs [Mon, 5 Aug 2013 21:09:32 +0000 (14:09 -0700)]
repl: Add 'smalloc' to list of known modules

10 years agodoc: add a missing word in streams doc
Evan Solomon [Fri, 2 Aug 2013 16:57:46 +0000 (09:57 -0700)]
doc: add a missing word in streams doc

Ignore encoding *if* chunk is a buffer

10 years agobuild: fix ia32 sunos, elfwrap only needs -64
Timothy J Fontaine [Mon, 5 Aug 2013 21:33:55 +0000 (14:33 -0700)]
build: fix ia32 sunos, elfwrap only needs -64

10 years agobuild: embed the mdb_v8.so into the binary
Timothy J Fontaine [Wed, 17 Jul 2013 20:46:25 +0000 (20:46 +0000)]
build: embed the mdb_v8.so into the binary

This builds and includes the mdb_v8.so in the binary of node so mdb
can be sure to always use the latest version

10 years agodoc: Update LICENSE for npm's Artistic 2.0
isaacs [Mon, 5 Aug 2013 20:56:05 +0000 (13:56 -0700)]
doc: Update LICENSE for npm's Artistic 2.0

10 years agotest: Move test-http-default-port from disabled to simple
isaacs [Mon, 5 Aug 2013 19:55:31 +0000 (12:55 -0700)]
test: Move test-http-default-port from disabled to simple

10 years agohttps: fix default port
Koichi Kobayashi [Sun, 4 Aug 2013 06:39:50 +0000 (15:39 +0900)]
https: fix default port

https.get('https://github.com/') should use port 443, not 80.

10 years agohttp: Fix overlooked agent.globalAgent export
isaacs [Mon, 5 Aug 2013 19:33:19 +0000 (12:33 -0700)]
http: Fix overlooked agent.globalAgent export

Noticed by @bnoordhuis in https://github.com/joyent/node/pull/5991#discussion_r5575946

10 years agov8: back-port fix for CVE-2013-2882
mstarzinger@chromium.org [Mon, 15 Jul 2013 11:41:41 +0000 (11:41 +0000)]
v8: back-port fix for CVE-2013-2882

Quoting the CVE:

    Google V8, as used in Google Chrome before 28.0.1500.95, allows
    remote attackers to cause a denial of service or possibly have
    unspecified other impact via vectors that leverage "type confusion."

Likely has zero impact on node.js because it only runs local, trusted
code but let's apply it anyway.

This is a back-port of upstream commit r15665. Original commit log:

    Use internal array as API function cache.

    R=yangguo@chromium.org
    BUG=chromium:260106
    TEST=cctest/test-api/Regress260106

    Review URL: https://codereview.chromium.org/19159003

Fixes #5973.

10 years agodoc: document domain.enter() and domain.exit()
Forrest L Norvell [Thu, 14 Mar 2013 20:31:18 +0000 (13:31 -0700)]
doc: document domain.enter() and domain.exit()

Adds the documentation requested in #5017.

10 years agodoc: fs.open, fix flag/mode confusion, etc.
Sam Roberts [Fri, 2 Aug 2013 19:41:24 +0000 (12:41 -0700)]
doc: fs.open, fix flag/mode confusion, etc.

Flags and modes aren't the same, symlinks are followed in all of the
path but the last component, docs should say something about what the
mode argument is for and when its used, fs.openSync should point to the
function that contains the docs for its args, as fs.writeSync does.

10 years agov8: fix openbsd build
Ben Noordhuis [Mon, 5 Aug 2013 00:50:45 +0000 (02:50 +0200)]
v8: fix openbsd build

This is [1] applied ahead of time. Summary:

    OpenBSD doesn't have <ucontext.h>. ucontext_t lives in <signal.h>
    and is a typedef for struct sigcontext. There is no uc_mcontext.

[1] https://codereview.chromium.org/21705003/

10 years agotls: fix handling of `SNICallback` server option
Fedor Indutny [Fri, 2 Aug 2013 16:11:17 +0000 (20:11 +0400)]
tls: fix handling of `SNICallback` server option

It shouldn't ignore it!

There're two possibile cases, which should be handled properly:

1. Having a default `SNICallback` which is using contexts, added with
  `server.addContext(...)` routine
2. Having a custom `SNICallback`.

In first case we may want to opt-out setting `.onsniselect` method (and
thus save some CPU time), if there're no contexts added. But, if custom
`SNICallback` is used, `.onsniselect` should always be set, because
server contexts don't affect it.

10 years agosrc: use static_cast for void-to-T casts
Ben Noordhuis [Sat, 3 Aug 2013 20:50:15 +0000 (22:50 +0200)]
src: use static_cast for void-to-T casts

Code cleanup, replace a few uses of reinterpret_cast<T*>(void_ptr) with
static_cast<T*>(void_ptr).

10 years agosrc: use PersistentToLocal() in a few more places
Ben Noordhuis [Sat, 3 Aug 2013 20:18:35 +0000 (22:18 +0200)]
src: use PersistentToLocal() in a few more places

Update a few more `Local<T>::New(isolate, persistent)` call sites to
`PersistentToLocal(isolate, persistent)` - the latter has a fast path
for non-weak persistent references.

10 years agocrypto: fix another over-run in bio
Fedor Indutny [Sat, 3 Aug 2013 09:09:02 +0000 (13:09 +0400)]
crypto: fix another over-run in bio

When doing `FreeEmpty`, `NodeBIO` skips pre-allocated `head_` buffer.
However this might lead to double-freeing buffers since in `~NodeBIO()`
we're starting deallocation from `head_` buffer.

10 years agosrc: remove non-isolate PersistentToLocal(), v2
Ben Noordhuis [Fri, 2 Aug 2013 23:28:51 +0000 (01:28 +0200)]
src: remove non-isolate PersistentToLocal(), v2

Commit 78d9094 updated src/*.cc to use the version of PersistentToLocal
that takes a v8::Isolate* as its first argument. This commit removes
the non-isolate version.

10 years agonpm: Upgrade to 1.3.7
isaacs [Fri, 2 Aug 2013 21:55:01 +0000 (14:55 -0700)]
npm: Upgrade to 1.3.7

10 years agoprocess: set key properties as ReadOnly
Trevor Norris [Thu, 1 Aug 2013 21:53:52 +0000 (14:53 -0700)]
process: set key properties as ReadOnly

10 years agosrc: remove non-isolate PersistentToLocal()
Ben Noordhuis [Fri, 2 Aug 2013 21:12:56 +0000 (23:12 +0200)]
src: remove non-isolate PersistentToLocal()

There is no need for it and it's a tiny bit slower than the version of
PersistentToLocal() that takes a v8::Isolate* as its first argument.

10 years agosmalloc: remove double checks
Trevor Norris [Fri, 2 Aug 2013 20:00:54 +0000 (13:00 -0700)]
smalloc: remove double checks

Now that values are checks in JS, no need for them to be checked in C++.

10 years agosmalloc: fix assertion fails/segfault
Trevor Norris [Fri, 2 Aug 2013 19:52:43 +0000 (12:52 -0700)]
smalloc: fix assertion fails/segfault

* Numeric values passed to alloc were converted to int32, not uint32
  before the range check, which allows wrap around on ToUint32. This
  would cause massive malloc calls and v8 fatal errors.
* dispose would not check if value was an Object, causing segfault if a
  Primitive was passed.
* kMaxLength was not enumerable.

10 years agoutil: add isPrimitive check
Trevor Norris [Fri, 2 Aug 2013 19:52:34 +0000 (12:52 -0700)]
util: add isPrimitive check

10 years agobuild: fix --without-ssl build
Ben Noordhuis [Fri, 2 Aug 2013 11:52:20 +0000 (13:52 +0200)]
build: fix --without-ssl build

Build breakage accidentally introduced in 8e29ce9 during code cleanup.

HAVE_OPENSSL is always defined (as either 0 or 1) so use #if rather
than #ifdef.

Fixes #5979.

10 years agosrc: Replace macros with util functions
isaacs [Fri, 26 Jul 2013 21:38:08 +0000 (14:38 -0700)]
src: Replace macros with util functions

10 years agobenchmark: update misc to new v8 API
Trevor Norris [Thu, 1 Aug 2013 22:02:38 +0000 (15:02 -0700)]
benchmark: update misc to new v8 API

10 years agotest: add mac to test-os
Trevor Norris [Thu, 1 Aug 2013 20:53:19 +0000 (13:53 -0700)]
test: add mac to test-os

Fix test from 30701d6.

10 years agotest: future-proof simple/test-event-emitter-memory-leak
Ben Noordhuis [Thu, 1 Aug 2013 14:09:42 +0000 (16:09 +0200)]
test: future-proof simple/test-event-emitter-memory-leak

Run the garbage collector before running the actual test. It doesn't
matter now but if in the future something in node.js core creates a lot
of reclaimable garbage, that will break the test's expectation.

10 years agotest: fix pummel/test-net-connect-memleak
Ben Noordhuis [Thu, 1 Aug 2013 14:00:40 +0000 (16:00 +0200)]
test: fix pummel/test-net-connect-memleak

* Run the garbage collector before creating the big array. It doesn't
  matter now but if in the future something in node.js core creates
  a lot of reclaimable garbage, that will break the test's expectation.

* The first RSS check was being done too late. The garbage collector
  might have run before the check, throwing off the 'reclaimed memory'
  calculation.

* Due to changes in how V8 represents the big array internally, the
  actual memory usage is just below 256 MB on x64. Update the test's
  expectation.

10 years agoevents: fix memory leak, don't leak event names
Ben Noordhuis [Thu, 1 Aug 2013 12:35:13 +0000 (14:35 +0200)]
events: fix memory leak, don't leak event names

Before this commit, events were set to undefined rather than deleted
from the EventEmitter's backing dictionary for performance reasons:
`delete obj.key` causes a transition of the dictionary's hidden class
and that can be costly.

Unfortunately, that introduces a memory leak when many events are added
and then removed again. The strings containing the event names are never
reclaimed by the garbage collector because they remain part of the
dictionary.

That's why this commit makes EventEmitter delete events again. This
effectively reverts commit 0397223.

Fixes #5970.

10 years agotls_wrap: parse tls session ticket extension
Fedor Indutny [Sun, 21 Jul 2013 16:16:26 +0000 (23:16 +0700)]
tls_wrap: parse tls session ticket extension

And, if present and non-empty, don't invoke `resumeSession` callback.

fix #5872

10 years agoos: add mac address to networkInterfaces() output
Brian White [Wed, 31 Jul 2013 23:13:36 +0000 (19:13 -0400)]
os: add mac address to networkInterfaces() output

10 years agocpplint: exclude src/node_win32_perfctr_provider.cc
Ben Noordhuis [Thu, 1 Aug 2013 10:33:33 +0000 (12:33 +0200)]
cpplint: exclude src/node_win32_perfctr_provider.cc

It's forced to violate the build/include_order rule because it includes
a header file generated with ctrpp.exe that doesn't include perflib.h
itself.

10 years agosrc: don't include <string.h> twice in src/node.cc
Ben Noordhuis [Thu, 1 Aug 2013 10:26:23 +0000 (12:26 +0200)]
src: don't include <string.h> twice in src/node.cc

10 years agobuild: disable some msvc compiler warnings
Bert Belder [Thu, 1 Aug 2013 09:53:41 +0000 (11:53 +0200)]
build: disable some msvc compiler warnings

These are not real problems, and they are so plenty that actual problems
are hidden from view.

10 years agobuild: un-break the windows build
Bert Belder [Thu, 1 Aug 2013 09:39:25 +0000 (11:39 +0200)]
build: un-break the windows build

10 years agosrc: more lint after cpplint tightening
Ben Noordhuis [Wed, 31 Jul 2013 21:16:08 +0000 (23:16 +0200)]
src: more lint after cpplint tightening

Commit 847c6d9 adds a 'project headers before system headers' check
to cpplint. Update the files in src/ to make the linter pass again.

10 years agotools: cpplint: fix up build/include_order rule
Ben Noordhuis [Wed, 31 Jul 2013 20:34:34 +0000 (22:34 +0200)]
tools: cpplint: fix up build/include_order rule

Change the build/include_order rule to match our preference:
project headers before system headers.

The rationale is that system headers before project headers makes it
easy to slip in bugs where a project header that requires a definition
from a system header, forgets to include the system header but still
compiles because the source files that include the project header
coincidentally include the system header too.

A good example is the size_t type. A project header file that needs the
definition of size_t should include stddef.h but forgetting to do so
will probably go unnoticed for a long time because almost every other
system header includes stddef.h (either directly or indirectly) and
almost every source file includes one or more system headers.

Ergo, project headers before system headers. It's a good thing.

10 years agodoc: remove travis status image
Antony Bailey [Wed, 31 Jul 2013 18:28:29 +0000 (19:28 +0100)]
doc: remove travis status image

The project has moved to Jenkins. The status image is no longer
needed and perpetually shows a failed build. Remove it.

10 years agoetw_provider: unbreak windows build
Fedor Indutny [Wed, 31 Jul 2013 18:35:46 +0000 (22:35 +0400)]
etw_provider: unbreak windows build

10 years agomake: add `cpplint` to `test` target
Fedor Indutny [Wed, 31 Jul 2013 10:54:06 +0000 (14:54 +0400)]
make: add `cpplint` to `test` target

Also, exclude some C-headers, machine generated headers and tweaked
sources from cpplint file list.

10 years agosrc: lint c++ code
Fedor Indutny [Wed, 31 Jul 2013 18:07:29 +0000 (22:07 +0400)]
src: lint c++ code

10 years agocpplint: make lint rules closer to node's source
Fedor Indutny [Wed, 31 Jul 2013 18:05:31 +0000 (22:05 +0400)]
cpplint: make lint rules closer to node's source

* Support C-style header guards (/* comments */)
* Support `class NODE_EXTERN something`
* Support `}  // extern "C"` closures
* Ignore header order
* Ignore `long/short` usage (because of OpenSSL's API)

10 years agonode: add inTick and lastThrew to infoBox
Trevor Norris [Tue, 30 Jul 2013 22:06:45 +0000 (15:06 -0700)]
node: add inTick and lastThrew to infoBox

To prevent all unnecessary calls to JS from MakeCallback, the remaining
two immediate return variables inTick and lastThrew have been added to
infoBox. Now MakeCallback should never need to call into JS unless it
absolutely has to.

Also removed Tock. Performance tests showed it was at least as fast or
faster than using a normal object, and this is more readable.

10 years agohttp: improve chunked res.write(buf) performance
Ben Noordhuis [Wed, 31 Jul 2013 03:50:26 +0000 (05:50 +0200)]
http: improve chunked res.write(buf) performance

Avoid a costly buffer-to-string operation. Instead, allocate a new
buffer, copy the chunk header and data into it and send that.

The speed difference is negligible on small payloads but it really
shines with larger (10+ kB) chunks. benchmark/http/end-vs-write-end
with 64 kB chunks gives 45-50% higher throughput. With 1 MB chunks,
the difference is a staggering 590%.

Of course, YMMV will vary with real workloads and networks but this
commit should have a positive impact on CPU and memory consumption.

Big kudos to Wyatt Preul (@wpreul) for reporting the issue and providing
the initial patch.

Fixes #5941 and #5944.

10 years agodocs: Warning about consuming response
Wyatt Preul [Tue, 11 Jun 2013 20:56:03 +0000 (15:56 -0500)]
docs: Warning about consuming response

10 years agocrypto: fix assert() on malformed hex input
Ben Noordhuis [Tue, 30 Jul 2013 12:27:13 +0000 (14:27 +0200)]
crypto: fix assert() on malformed hex input

Use the StringBytes::IsValidString() function introduced in commit
dce26cc to ensure that the input string meets the expectations of the
other StringBytes functions before processing it further.

Fixes the following assertion:

    Assertion failed: (str->Length() % 2 == 0 && "invalid hex string
    length"), function StorageSize, file ../../src/string_bytes.cc,
    line 301.

Fixes #5725.

10 years agostring_bytes: add StringBytes::IsValidString()
Ben Noordhuis [Tue, 30 Jul 2013 12:26:11 +0000 (14:26 +0200)]
string_bytes: add StringBytes::IsValidString()

Performs a quick, non-exhaustive check on the input string to see if
it's compatible with the specified string encoding.

Curently it only checks that hex strings have a length that is a
multiple of two.

10 years agoutil: don't throw on circular %j input to format()
Ben Noordhuis [Mon, 29 Jul 2013 19:00:33 +0000 (21:00 +0200)]
util: don't throw on circular %j input to format()

Don't throw an exception when the argument to %j is an object that
contains circular references, it's not helpful. Catch the exception
and return the string '[Circular]'.

10 years agofs: write strings directly to disk
Trevor Norris [Tue, 2 Jul 2013 07:27:26 +0000 (00:27 -0700)]
fs: write strings directly to disk

Prior, strings would first be converted to a Buffer before being written
to disk. Now the intermediary step has been removed.

Other changes of note:

* Class member "must_free" was added to req_wrap so to track if the
  memory needs to be manually cleaned up after use.
* External String Resource support, so the memory will be used directly
  instead of copying out the data.
* Docs have been updated to reflect that if position is not a number
  then it will assume null. Previously it specified the argument must be
  null, but that was not how the code worked. An attempt was made to
  only support == null, but there were too many tests that assumed !=
  number would be enough.
* Docs update show some of the write/writeSync arguments are optional.

10 years agostring_bytes: export GetExternalParts
Trevor Norris [Tue, 2 Jul 2013 07:07:47 +0000 (00:07 -0700)]
string_bytes: export GetExternalParts

The method is useful elsewhere when needing to check if external and
grab data.

10 years agodeps: upgrade libuv to joyent/libuv@4bdb7d8
Ben Noordhuis [Tue, 30 Jul 2013 21:32:53 +0000 (23:32 +0200)]
deps: upgrade libuv to joyent/libuv@4bdb7d8

Non-release upgrade so pending patches can land.

10 years agocrypto: simplify DH modp group name matcher
Ben Noordhuis [Mon, 29 Jul 2013 18:36:11 +0000 (20:36 +0200)]
crypto: simplify DH modp group name matcher

* Use ARRAY_SIZE() rather than scanning until we hit a NULL entry.
* Fix `-fsigned-char -Wnarrowing` compiler warnings. Harmless but
  numerous and annoying.
* Static-ify the modp_group and mod_groups arrays.
* Const-ify the modp_groups array.

10 years agosrc: const-ify variables in src/node_crypto*
Ben Noordhuis [Tue, 30 Jul 2013 19:42:47 +0000 (21:42 +0200)]
src: const-ify variables in src/node_crypto*

No functional changes, just some code tightening. Clean up some style
inconsistencies while we are here.

10 years agosrc: remove unused import in src/node_os.cc
Ben Noordhuis [Tue, 30 Jul 2013 19:32:43 +0000 (21:32 +0200)]
src: remove unused import in src/node_os.cc

10 years agostring_bytes: don't use named imports in header
Ben Noordhuis [Tue, 30 Jul 2013 19:28:43 +0000 (21:28 +0200)]
string_bytes: don't use named imports in header

It imports the definition into every source file that includes
string_bytes.h, as evidenced by the build suddenly breaking left
and right because of missing Handle/Local/String/Value imports.

10 years agov8: upgrade v8 to 3.20.11
Ben Noordhuis [Tue, 30 Jul 2013 15:14:55 +0000 (17:14 +0200)]
v8: upgrade v8 to 3.20.11

10 years agoMerge remote-tracking branch 'origin/v0.10'
Ben Noordhuis [Tue, 30 Jul 2013 13:19:48 +0000 (15:19 +0200)]
Merge remote-tracking branch 'origin/v0.10'

Conflicts:
AUTHORS
ChangeLog
deps/uv/ChangeLog
deps/uv/src/version.c
deps/uv/src/win/fs.c
src/node.cc
src/node_crypto.cc
src/node_os.cc
src/node_version.h

10 years agoassert: replace !!!value with just !value
Ben Noordhuis [Tue, 30 Jul 2013 11:28:48 +0000 (13:28 +0200)]
assert: replace !!!value with just !value

Not harmful, just code cleanup.

Fixes #5885.

11 years agodgram: report send errors to cb, don't pass bytes
Ben Noordhuis [Wed, 26 Jun 2013 22:43:23 +0000 (00:43 +0200)]
dgram: report send errors to cb, don't pass bytes

Passing the number of sent bytes to the callback is superfluous;
datagram sockets operate in atomic mode: either the sendmsg() system
call succeeds or it fails but it never does partial writes.

Instead, report send errors to the callback. UDP error reporting is
fairly haphazard on most platforms. You should not expect reliable
delivery of anything besides EMSGSIZE and (possibly) ENETDOWN and
ENETUNREACH.

Fixes #2608.

11 years agosrc: don't use NewExternal() with unaligned strings
Ben Noordhuis [Mon, 29 Jul 2013 03:07:07 +0000 (05:07 +0200)]
src: don't use NewExternal() with unaligned strings

V8 3.20.9 enforces that external pointers are aligned on a two-byte
boundary.

We cannot portably guarantee that for the source code strings that
tools/js2c.py generates so simply stop using String::NewExternal()
altogether (and by extension String::ExternalAsciiStringResource).

Fixes the following run-time assert:

  FATAL ERROR: v8::String::NewExternal() Pointer is not aligned

10 years agov8: upgrade to v8 3.20.9
Ben Noordhuis [Mon, 29 Jul 2013 19:21:03 +0000 (21:21 +0200)]
v8: upgrade to v8 3.20.9

10 years agodoc: vm: fix incorrect API documentation
Andrew Paprocki [Mon, 29 Jul 2013 15:34:12 +0000 (17:34 +0200)]
doc: vm: fix incorrect API documentation

On timeout, an Error object is thrown, not null.

10 years agochild_process: add 'shell' option to .exec()
Ben Noordhuis [Mon, 29 Jul 2013 14:20:24 +0000 (16:20 +0200)]
child_process: add 'shell' option to .exec()

No test, we can't rely on an alternate shell being available.

Fixes #5935.

10 years agotest: loosen timeout in https-no-reader
Fedor Indutny [Mon, 29 Jul 2013 09:33:01 +0000 (13:33 +0400)]
test: loosen timeout in https-no-reader

fix #5925

11 years agosrc: remove unused tick_spinner
Ben Noordhuis [Sun, 28 Jul 2013 17:07:59 +0000 (19:07 +0200)]
src: remove unused tick_spinner

11 years agotest: cluster: add 'bind to privileged port' tests
Ben Noordhuis [Sun, 28 Jul 2013 12:50:03 +0000 (14:50 +0200)]
test: cluster: add 'bind to privileged port' tests

11 years agocluster: fix shared handle bind error propagation
Ben Noordhuis [Sun, 28 Jul 2013 10:19:34 +0000 (12:19 +0200)]
cluster: fix shared handle bind error propagation

A failed bind() was already being correctly reported in round-robin
mode. This commit fixes bind() error reporting in shared handle mode.

Fixes #5774.

11 years agocluster: remove duplicate this.errno assignment
Ben Noordhuis [Sun, 28 Jul 2013 09:36:12 +0000 (11:36 +0200)]
cluster: remove duplicate this.errno assignment

11 years agodoc: clarify fs.read() offset argument
Ben Noordhuis [Sat, 27 Jul 2013 22:05:10 +0000 (00:05 +0200)]
doc: clarify fs.read() offset argument

11 years agodoc: add nodejs.geek.nz to the community page
Andrew Chilton [Sat, 27 Jul 2013 11:13:55 +0000 (23:13 +1200)]
doc: add nodejs.geek.nz to the community page

11 years agodoc: add nodejs.org.au to community listing
Rod Vagg [Sat, 27 Jul 2013 05:20:08 +0000 (15:20 +1000)]
doc: add nodejs.org.au to community listing

11 years agodoc: document possible return values of os.arch()
Maciej Małecki [Fri, 26 Jul 2013 21:48:57 +0000 (23:48 +0200)]
doc: document possible return values of os.arch()

11 years agodoc: Fix missing backtick in debugger doc
Dav Glass [Wed, 24 Jul 2013 18:17:28 +0000 (13:17 -0500)]
doc: Fix missing backtick in debugger doc

11 years agostreams: Don't emit 'end' until read() past EOF
isaacs [Wed, 24 Jul 2013 23:05:54 +0000 (16:05 -0700)]
streams: Don't emit 'end' until read() past EOF

This prevents the following sort of thing from being confusing:

```javascript
stream.on('data', function() { console.error('got data'); });
stream.pause(); // stop reading

// turns out no data is available
stream.push(null);

// Hand the stream to someone else, who does stuff...
setTimeout(function() {
  // too late! 'end' is already emitted!
  stream.on('end', function() { console.error('got end'); });
});
```

With this change, the `end` event is not emitted until you call `read()`
*past* the EOF null.  So, a paused stream will not swallow the `end`
event and emit it before you `resume()` the stream.

11 years agoopenssl: use asm for sha, md5, rmd
Fedor Indutny [Thu, 25 Jul 2013 14:27:26 +0000 (18:27 +0400)]
openssl: use asm for sha, md5, rmd

11 years agotest: fix simple/test-setproctitle
Ben Noordhuis [Thu, 25 Jul 2013 10:24:40 +0000 (12:24 +0200)]
test: fix simple/test-setproctitle

The title shouldn't be too long; libuv's uv_set_process_title() out of
security considerations no longer overwrites envp, only argv, so the
maximum title length is possibly quite short.

Fixes #5908.

11 years agoblog: Post for v0.10.15
Timothy J Fontaine [Fri, 26 Jul 2013 00:03:21 +0000 (17:03 -0700)]
blog: Post for v0.10.15

11 years agoNow working on 0.10.16
Timothy J Fontaine [Fri, 26 Jul 2013 00:03:03 +0000 (17:03 -0700)]
Now working on 0.10.16

11 years agoMerge branch 'v0.10.15-release' into v0.10
Timothy J Fontaine [Fri, 26 Jul 2013 00:02:38 +0000 (17:02 -0700)]
Merge branch 'v0.10.15-release' into v0.10

11 years ago2013.07.25, Version 0.10.15 (Stable) v0.10.15
Timothy J Fontaine [Thu, 25 Jul 2013 23:26:15 +0000 (16:26 -0700)]
2013.07.25, Version 0.10.15 (Stable)

* src: fix process.getuid() return value (Ben Noordhuis)

11 years agosrc: fix process.getuid() return value
Ben Noordhuis [Thu, 25 Jul 2013 22:24:27 +0000 (00:24 +0200)]
src: fix process.getuid() return value

And process.getgid() too.

Commit ed80638 changed fs.chown() and fs.fchown() to only accept
unsigned integers. Make process.getuid() and process.getgid() follow
suit.

This commit should unbreak npm on OS X - it's hitting the new 'uid must
be an unsigned int' check when installing as e.g. user 'nobody' (which
has an UID of -2 in /etc/passwd or 4294967294 when cast to an uid_t.)

Fixes #5904.

11 years agodoc: document tls.Server 'secureProtocol' option
Ben Noordhuis [Thu, 25 Jul 2013 21:21:52 +0000 (23:21 +0200)]
doc: document tls.Server 'secureProtocol' option

11 years agoblog: Post for v0.10.14
Timothy J Fontaine [Thu, 25 Jul 2013 20:54:55 +0000 (13:54 -0700)]
blog: Post for v0.10.14

11 years agoNow working on 0.10.15
Timothy J Fontaine [Thu, 25 Jul 2013 20:54:16 +0000 (13:54 -0700)]
Now working on 0.10.15