Comparing version
2.0.2 / 2025-02-20 | ||
================== | ||
**fixes** | ||
* [[`c0fafde`](https://github.com/cojs/busboy/commit/86813312c340ad1bf59db349fda399347c0fafde)] - fix: catch 'Unexpected end of form' error when receive malformed multipart (#50) (dennisleung <<xiyuxistory@163.com>>) | ||
2.0.1 / 2023-05-07 | ||
@@ -3,0 +9,0 @@ ================== |
19
index.js
@@ -0,1 +1,2 @@ | ||
var debug = require('util').debuglog('co-busboy') | ||
var Busboy = require('busboy') | ||
@@ -82,2 +83,3 @@ var chan = require('chan') | ||
if (err) { | ||
debug('onField error: %s', err) | ||
return onError(err) | ||
@@ -106,5 +108,7 @@ } | ||
function onFileError(err) { | ||
debug('onFileError: %s', err) | ||
lastError = err | ||
} | ||
function onFileCleanup() { | ||
debug('onFileCleanup') | ||
file.removeListener('error', onFileError) | ||
@@ -140,9 +144,19 @@ file.removeListener('end', onFileCleanup) | ||
function onError(err) { | ||
debug('onError: %s', err) | ||
lastError = err | ||
} | ||
function onEnd() { | ||
function onEnd(err) { | ||
cleanup() | ||
debug('onEnd error: %s', err) | ||
busboy.removeListener('finish', onEnd) | ||
busboy.removeListener('error', onEnd) | ||
// remove error listener in next event loop, catch the 'Unexpected end of form' error in next tick | ||
setImmediate(function () { | ||
busboy.removeListener('error', onEnd) | ||
}) | ||
// ignore Unexpected end of form | ||
if (!lastError && err && err.message !== 'Unexpected end of form') { | ||
lastError = err | ||
debug('set lastError') | ||
} | ||
ch(lastError) | ||
@@ -152,2 +166,3 @@ } | ||
function cleanup() { | ||
debug('cleanup') | ||
// keep finish listener to wait all data flushed | ||
@@ -154,0 +169,0 @@ // keep error listener to wait stream error |
{ | ||
"name": "co-busboy", | ||
"description": "Busboy multipart parser as a yieldable", | ||
"version": "2.0.1", | ||
"version": "2.0.2", | ||
"author": { | ||
@@ -6,0 +6,0 @@ "name": "Jonathan Ong", |
@@ -171,2 +171,3 @@ # co busboy | ||
``` | ||
The MIT License (MIT) | ||
@@ -194,1 +195,2 @@ | ||
THE SOFTWARE. | ||
``` |
13361
6.62%147
11.36%195
1.04%