diff --git a/AUTHORS b/AUTHORS index 8181644e1a..bf784aa766 100644 --- a/AUTHORS +++ b/AUTHORS @@ -380,3 +380,4 @@ Dan Milon Jacob Gable Rick Yakubowski Dan Kohn +Timothy J Fontaine diff --git a/ChangeLog b/ChangeLog index 016acdc1af..9aa9f7ec21 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,15 @@ -2013.02.15, Version 0.8.20 (Stable) +2013.02.25, Version 0.8.21 (Stable) + +* http: Do not free the wrong parser on socket close (isaacs) + +* http: Handle hangup writes more gently (isaacs) + +* zlib: fix assert on bad input (Ben Noordhuis) + +* test: add TAP output to the test runner (Timothy J Fontaine) + + +2013.02.15, Version 0.8.20 (Stable), e10c75579b536581ddd7ae4e2c3bf8a9d550d343 * npm: Upgrade to v1.2.11 diff --git a/deps/uv/gyp_uv b/deps/uv/gyp_uv index d861cbc786..9c719fde56 100755 --- a/deps/uv/gyp_uv +++ b/deps/uv/gyp_uv @@ -22,7 +22,9 @@ def compiler_version(): proc = subprocess.Popen(CC.split() + ['--version'], stdout=subprocess.PIPE) is_clang = 'clang' in proc.communicate()[0].split('\n')[0] proc = subprocess.Popen(CC.split() + ['-dumpversion'], stdout=subprocess.PIPE) - version = tuple(map(int, proc.communicate()[0].split('.'))) + version = proc.communicate()[0].split('.') + version = map(int, version[:2]) + version = tuple(version) return (version, is_clang) diff --git a/deps/uv/src/unix/pipe.c b/deps/uv/src/unix/pipe.c index 957e96f8a6..e0502b03d2 100644 --- a/deps/uv/src/unix/pipe.c +++ b/deps/uv/src/unix/pipe.c @@ -186,16 +186,14 @@ void uv_pipe_connect(uv_connect_t* req, uv_strlcpy(saddr.sun_path, name, sizeof(saddr.sun_path)); saddr.sun_family = AF_UNIX; - /* We don't check for EINPROGRESS. Think about it: the socket - * is either there or not. - */ do { r = connect(handle->fd, (struct sockaddr*)&saddr, sizeof saddr); } while (r == -1 && errno == EINTR); if (r == -1) - goto out; + if (errno != EINPROGRESS) + goto out; if (new_sock) if (uv__stream_open((uv_stream_t*)handle, @@ -216,8 +214,9 @@ out: req->cb = cb; ngx_queue_init(&req->queue); - /* Run callback on next tick. */ - uv__io_feed(handle->loop, &handle->write_watcher, UV__IO_WRITE); + /* Force callback to run on next tick in case of error. */ + if (err != 0) + uv__io_feed(handle->loop, &handle->write_watcher, UV__IO_WRITE); /* Mimic the Windows pipe implementation, always * return 0 and let the callback handle errors. diff --git a/src/node_version.h b/src/node_version.h index e553a51d4f..81511843a6 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -30,7 +30,7 @@ # define NODE_TAG "" #endif -#define NODE_VERSION_IS_RELEASE 0 +#define NODE_VERSION_IS_RELEASE 1 #ifndef NODE_STRINGIFY #define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)