Iskren Ivov Chernev <iskren.chernev@gmail.com>
Alexey Kupershtokh <alexey.kupershtokh@gmail.com>
Benjamin Ruston <benjy.ruston@gmail.com>
+Manav Rathi <manav.r@directi.com>
+Marcin Kostrzewa <marcinkostrzewa@yahoo.com>
+Suwon Chae <doortts@gmail.com>
+ Mitar Milutinovic <mitar.git@tnode.com>
+ Michael Hart <michael.hart.au@gmail.com>
+ Andrew Hart <hartandrewr@gmail.com>
-2013.04.03, Version 0.10.3 (Stable)
+2013.03.28, Version 0.11.0 (Unstable)
+
+* V8: update to 3.17.13
+
+* os: use %SystemRoot% or %windir% in os.tmpdir() (Suwon Chae)
+
+* util: fix util.inspect() line width calculation (Marcin Kostrzewa)
+
+* buffer: remove _charsWritten (Trevor Norris)
+
+* fs: uv_[fl]stat now reports subsecond resolution (Timothy J Fontaine)
+
+* fs: Throw if error raised and missing callback (bnoordhuis)
+
+* tls: expose SSL_CTX_set_timeout via tls.createServer (Manav Rathi)
+
+* tls: remove harmful unnecessary bounds checking (Marcel Laverdet)
+
+* buffer: write ascii strings using WriteOneByte (Trevor Norris)
+
+* dtrace: fix generation of v8 constants on freebsd (Fedor Indutny)
+
+* dtrace: x64 ustack helper (Fedor Indutny)
+
+* readline: handle wide characters properly (Nao Iizuka)
+
+* repl: Use a domain to catch async errors safely (isaacs)
+
+* repl: emit 'reset' event when context is reset (Sami Samhuri)
+
+* util: custom `inspect()` method may return an Object (Nathan Rajlich)
+
+* console: `console.dir()` bypasses inspect() methods (Nathan Rajlich)
+
+
++2013.04.03, Version 0.10.3 (Stable), d4982f6f5e4a9a703127489a553b8d782997ea43
+
+ * npm: Upgrade to 1.2.17
+
+ * child_process: acknowledge sent handles (Fedor Indutny)
+
+ * etw: update prototypes to match dtrace provider (Timothy J Fontaine)
+
+ * dtrace: pass more arguments to probes (Dave Pacheco)
+
+ * build: allow building with dtrace on osx (Dave Pacheco)
+
+ * http: Remove legacy ECONNRESET workaround code (isaacs)
+
+ * http: Ensure socket cleanup on client response end (isaacs)
+
+ * tls: Destroy socket when encrypted side closes (isaacs)
+
+ * repl: isSyntaxError() catches "strict mode" errors (Nathan Rajlich)
+
+ * crypto: Pass options to ctor calls (isaacs)
+
+ * src: tie process.versions.uv to uv_version_string() (Ben Noordhuis)
+
+
-2013.03.28, Version 0.10.2 (Stable)
+2013.03.28, Version 0.10.2 (Stable), 1e0de9c426e07a260bbec2d2196c2d2db8eb8886
* npm: Upgrade to 1.2.15
exports.createCipher = exports.Cipher = Cipher;
function Cipher(cipher, password, options) {
if (!(this instanceof Cipher))
- return new Cipher(cipher, password);
+ return new Cipher(cipher, password, options);
- this._binding = new binding.Cipher;
+ this._binding = new binding.CipherBase(true);
this._binding.init(cipher, toBuf(password));
this._decoder = null;
exports.createCipheriv = exports.Cipheriv = Cipheriv;
function Cipheriv(cipher, key, iv, options) {
if (!(this instanceof Cipheriv))
- return new Cipheriv(cipher, key, iv);
+ return new Cipheriv(cipher, key, iv, options);
- this._binding = new binding.Cipher();
+ this._binding = new binding.CipherBase(true);
this._binding.initiv(cipher, toBuf(key), toBuf(iv));
this._decoder = null;
exports.createDecipher = exports.Decipher = Decipher;
function Decipher(cipher, password, options) {
if (!(this instanceof Decipher))
- return new Decipher(cipher, password);
+ return new Decipher(cipher, password, options);
- this._binding = new binding.Decipher;
+ this._binding = new binding.CipherBase(false);
this._binding.init(cipher, toBuf(password));
this._decoder = null;
exports.createDecipheriv = exports.Decipheriv = Decipheriv;
function Decipheriv(cipher, key, iv, options) {
if (!(this instanceof Decipheriv))
- return new Decipheriv(cipher, key, iv);
+ return new Decipheriv(cipher, key, iv, options);
- this._binding = new binding.Decipher;
+ this._binding = new binding.CipherBase(false);
this._binding.initiv(cipher, toBuf(key), toBuf(iv));
this._decoder = null;
// Takes a string or buffer and loads it into a BIO.
-// Caller responsible for BIO_free-ing the returned object.
+// Caller responsible for BIO_free_all-ing the returned object.
static BIO* LoadBIO (Handle<Value> v) {
- BIO *bio = BIO_new(BIO_s_mem());
+ BIO *bio = BIO_new(NodeBIO::GetMethod());
if (!bio) return NULL;
- HandleScope scope;
+ HandleScope scope(node_isolate);
int r = -1;
root_cert_store = X509_STORE_new();
for (int i = 0; root_certs[i]; i++) {
- BIO *bp = BIO_new(BIO_s_mem());
+ BIO *bp = BIO_new(NodeBIO::GetMethod());
if (!BIO_write(bp, root_certs[i], strlen(root_certs[i]))) {
- BIO_free(bp);
- return False();
+ BIO_free_all(bp);
+ return False(node_isolate);
}
X509 *x509 = PEM_read_bio_X509(bp, NULL, NULL, NULL);