@@ -242,28 +242,28 @@ Uploader.prototype = {
242
242
self . postActive ++ ;
243
243
c . post ( post , function ( err , messageId ) {
244
244
self . postActive -- ;
245
+ var postCompletionCb = doPost ;
245
246
if ( err ) {
246
247
if ( self . cancelled && err . code == 'cancelled' ) return ;
247
248
dumpPost ( self , post ) ; // post.data guaranteed to be set here
248
249
249
250
// handle error skipping
250
251
err . skippable = true ;
252
+ var isPostFailure = ( [ 'connect_fail' , 'connection_ended' , 'not_connected' ] . indexOf ( err . code ) == - 1 ) ;
251
253
if ( messageId ) {
252
254
if ( err . code == 'timeout' && self . skipErrs [ 'post-timeout' ] ) {
253
255
self . _markPostError ( post , 'Posting timed out' ) ;
254
256
} else if ( ( err . code == 'post_denied' || err . code == 'bad_response' || err . code == 'unknown_error' ) && self . skipErrs [ 'post-reject' ] ) {
255
257
self . _markPostError ( post , 'Post rejected (' + err . message + ')' ) ;
256
- } else if ( err . code == 'connection_ended' || err . code == 'not_connected' ) { // internal error - cannot continue
257
- return doPost ( err ) ;
258
- } else if ( self . skipErrs [ 'post-fail' ] && err . code != 'connect_fail' ) {
258
+ } else if ( self . skipErrs [ 'post-fail' ] && isPostFailure ) {
259
259
self . _markPostError ( post , 'Posting failed (' + err . message + ')' ) ;
260
260
} else
261
- return doPost ( err ) ;
262
- } else if ( self . skipErrs [ 'post-fail' ] && [ 'connect_fail' , 'connection_ended' , 'not_connected' ] . indexOf ( err . code ) == - 1 ) {
261
+ postCompletionCb = doPost . bind ( null , err ) ;
262
+ } else if ( self . skipErrs [ 'post-fail' ] && isPostFailure ) {
263
263
post . messageId = null ; // skipping post where Message-ID is completely invalid
264
264
self . _markPostError ( post , 'Posting failed (' + err . message + ')' ) ;
265
265
} else
266
- return doPost ( err ) ;
266
+ postCompletionCb = doPost . bind ( null , err ) ;
267
267
}
268
268
self . articlesPosted ++ ;
269
269
self . bytesPosted += post . inputLen ;
@@ -286,7 +286,7 @@ Uploader.prototype = {
286
286
return ;
287
287
} else {
288
288
post . successful = ! err ;
289
- self . _postComplete ( post , err , doPost ) ;
289
+ self . _postComplete ( post , err , postCompletionCb ) ;
290
290
}
291
291
} ) ;
292
292
} ) ;
0 commit comments