Skip to content
This repository was archived by the owner on Feb 13, 2018. It is now read-only.

Commit 51fd905

Browse files
author
Tim Whitlock
committed
ecluding timeout from streaming client
1 parent cf77fb3 commit 51fd905

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

lib/twitter.js

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ TwitterClient.prototype._rest = function( requestMethod, requestPath, requestArg
159159
console.error('No callback for '+requestMethod+' '+requestUri);
160160
}
161161
}
162-
return this.call( requestMethod, requestUri, requestArgs, function( res, err ) {
162+
return this.call( requestMethod, requestUri, requestArgs, TWITTER_API_TIMEOUT, function( res, err ) {
163163
if( ! res ){
164164
callback( null, err, 0 );
165165
return;
@@ -215,9 +215,10 @@ TwitterClient.prototype.stream = function( requestPath, requestArgs, callback ){
215215
};
216216
}
217217
var client = this;
218-
return this.call( requestMethod, requestUri, requestArgs, function(res){
218+
return this.call( requestMethod, requestUri, requestArgs, 0, function( res, err ){
219219
if( ! res ){
220-
callback();
220+
callback( null, err );
221+
return;
221222
}
222223
client.response = res;
223224
res.setEncoding('utf8');
@@ -237,7 +238,7 @@ TwitterClient.prototype.stream = function( requestPath, requestArgs, callback ){
237238
} );
238239
}
239240

240-
TwitterClient.prototype.call = function( requestMethod, requestUri, requestArgs, callback ){
241+
TwitterClient.prototype.call = function( requestMethod, requestUri, requestArgs, timeout, callback ){
241242
requestMethod = String( requestMethod||'GET' ).toUpperCase();
242243
// build and sign request parameters
243244
var params = new OAuthParams( requestArgs );
@@ -262,17 +263,17 @@ TwitterClient.prototype.call = function( requestMethod, requestUri, requestArgs,
262263
http.path += '?' + query;
263264
}
264265
var req = require('https').get( http, callback );
265-
req.on('socket', function (socket) {
266-
socket.setTimeout( TWITTER_API_TIMEOUT );
267-
socket.on('timeout', function() {
268-
req.abort();
266+
if( timeout ){
267+
req.on('socket', function (socket) {
268+
socket.setTimeout( timeout );
269+
socket.on('timeout', function() {
270+
console.error('Request timeout in '+requestUri);
271+
req.abort();
272+
} );
269273
} );
270-
} );
274+
}
271275
req.on('error', function( e ) {
272276
console.error( String(e) );
273-
if( 'ECONNRESET' === e.code ){
274-
e = { message: 'Request timeout', code: 408 };
275-
}
276277
callback( null, e );
277278
} );
278279
if( 'POST' === requestMethod && query ){
@@ -313,7 +314,7 @@ TwitterClient.prototype._oauthExchange = function( requestUri, requestArgs, call
313314
console.error('No callback for POST '+requestUri);
314315
}
315316
}
316-
this.call( 'POST', requestUri, requestArgs, function( res, err ){
317+
this.call( 'POST', requestUri, requestArgs, TWITTER_API_TIMEOUT, function( res, err ){
317318
if( ! res ){
318319
callback( null, err||{}, 0 );
319320
return;

0 commit comments

Comments
 (0)