Merge pull request #363 from episage/master

fix: prevent double callback in _executeRequest
This commit is contained in:
Ciaran Jessup 2022-07-22 20:51:53 +01:00 committed by GitHub
commit be56cccd24
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 2 deletions

View File

@ -158,8 +158,13 @@ exports.OAuth2.prototype._executeRequest= function( http_library, options, post_
});
});
request.on('error', function(e) {
callbackCalled= true;
callback(e);
// `www.googleapis.com` does `ECONNRESET` just after data is received in `passBackControl`
// this prevents the callback from being called twice, first in passBackControl and second time in here
// see also NodeJS Stream documentation: "The 'error' event may be emitted by a Readable implementation at any time"
if(!callbackCalled) {
callbackCalled= true;
callback(e);
}
});
if( (options.method == 'POST' || options.method == 'PUT') && post_body ) {