Skip to content

Commit 73bf593

Browse files
committed
Improve options validation
1 parent f7a57cf commit 73bf593

2 files changed

Lines changed: 24 additions & 44 deletions

File tree

Source/HttpMultipartParser/MultipartFormBinaryDataParser.cs

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,7 @@ private MultipartFormBinaryDataParser()
145145
/// </returns>
146146
public static MultipartFormBinaryDataParser Parse(Stream stream, Encoding encoding, int binaryBufferSize = Constants.DefaultBufferSize, string[] binaryMimeTypes = null, bool ignoreInvalidParts = false)
147147
{
148-
var options = new ParserOptions
149-
{
150-
BinaryBufferSize = binaryBufferSize,
151-
BinaryMimeTypes = binaryMimeTypes,
152-
Encoding = encoding,
153-
IgnoreInvalidParts = ignoreInvalidParts
154-
};
155-
return Parse(stream, options);
148+
return Parse(stream, null, encoding, binaryBufferSize, binaryMimeTypes, ignoreInvalidParts);
156149
}
157150

158151
/// <summary>
@@ -187,11 +180,13 @@ public static MultipartFormBinaryDataParser Parse(Stream stream, string boundary
187180
var options = new ParserOptions
188181
{
189182
BinaryBufferSize = binaryBufferSize,
190-
BinaryMimeTypes = binaryMimeTypes,
191-
Boundary = boundary,
192-
Encoding = encoding,
193183
IgnoreInvalidParts = ignoreInvalidParts
194184
};
185+
186+
if (!string.IsNullOrEmpty(boundary)) options.Boundary = boundary;
187+
if (encoding != null) options.Encoding = encoding;
188+
if (binaryMimeTypes != null) options.BinaryMimeTypes = binaryMimeTypes;
189+
195190
return Parse(stream, options);
196191
}
197192

@@ -243,14 +238,7 @@ public static MultipartFormBinaryDataParser Parse(Stream stream, ParserOptions o
243238
/// </returns>
244239
public static Task<MultipartFormBinaryDataParser> ParseAsync(Stream stream, Encoding encoding, int binaryBufferSize = Constants.DefaultBufferSize, string[] binaryMimeTypes = null, bool ignoreInvalidParts = false, CancellationToken cancellationToken = default)
245240
{
246-
var options = new ParserOptions
247-
{
248-
BinaryBufferSize = binaryBufferSize,
249-
BinaryMimeTypes = binaryMimeTypes,
250-
Encoding = encoding,
251-
IgnoreInvalidParts = ignoreInvalidParts
252-
};
253-
return ParseAsync(stream, options, cancellationToken);
241+
return ParseAsync(stream, null, encoding, binaryBufferSize, binaryMimeTypes, ignoreInvalidParts, cancellationToken);
254242
}
255243

256244
/// <summary>
@@ -288,11 +276,13 @@ public static Task<MultipartFormBinaryDataParser> ParseAsync(Stream stream, stri
288276
var options = new ParserOptions
289277
{
290278
BinaryBufferSize = binaryBufferSize,
291-
BinaryMimeTypes = binaryMimeTypes,
292-
Boundary = boundary,
293-
Encoding = encoding,
294279
IgnoreInvalidParts = ignoreInvalidParts
295280
};
281+
282+
if (!string.IsNullOrEmpty(boundary)) options.Boundary = boundary;
283+
if (encoding != null) options.Encoding = encoding;
284+
if (binaryMimeTypes != null) options.BinaryMimeTypes = binaryMimeTypes;
285+
296286
return ParseAsync(stream, options, cancellationToken);
297287
}
298288

Source/HttpMultipartParser/MultipartFormDataParser.cs

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,7 @@ private MultipartFormDataParser()
145145
/// </returns>
146146
public static MultipartFormDataParser Parse(Stream stream, Encoding encoding, int binaryBufferSize = Constants.DefaultBufferSize, string[] binaryMimeTypes = null, bool ignoreInvalidParts = false)
147147
{
148-
var options = new ParserOptions
149-
{
150-
BinaryBufferSize = binaryBufferSize,
151-
BinaryMimeTypes = binaryMimeTypes,
152-
Encoding = encoding,
153-
IgnoreInvalidParts = ignoreInvalidParts
154-
};
155-
return Parse(stream, options);
148+
return Parse(stream, null, encoding, binaryBufferSize, binaryMimeTypes, ignoreInvalidParts);
156149
}
157150

158151
/// <summary>
@@ -187,11 +180,13 @@ public static MultipartFormDataParser Parse(Stream stream, string boundary = nul
187180
var options = new ParserOptions
188181
{
189182
BinaryBufferSize = binaryBufferSize,
190-
BinaryMimeTypes = binaryMimeTypes,
191-
Boundary = boundary,
192-
Encoding = encoding,
193183
IgnoreInvalidParts = ignoreInvalidParts
194184
};
185+
186+
if (!string.IsNullOrEmpty(boundary)) options.Boundary = boundary;
187+
if (encoding != null) options.Encoding = encoding;
188+
if (binaryMimeTypes != null) options.BinaryMimeTypes = binaryMimeTypes;
189+
195190
return Parse(stream, options);
196191
}
197192

@@ -243,14 +238,7 @@ public static MultipartFormDataParser Parse(Stream stream, ParserOptions options
243238
/// </param>
244239
public static Task<MultipartFormDataParser> ParseAsync(Stream stream, Encoding encoding, int binaryBufferSize = Constants.DefaultBufferSize, string[] binaryMimeTypes = null, bool ignoreInvalidParts = false, CancellationToken cancellationToken = default)
245240
{
246-
var options = new ParserOptions
247-
{
248-
BinaryBufferSize = binaryBufferSize,
249-
BinaryMimeTypes = binaryMimeTypes,
250-
Encoding = encoding,
251-
IgnoreInvalidParts = ignoreInvalidParts
252-
};
253-
return ParseAsync(stream, options, cancellationToken);
241+
return ParseAsync(stream, null, encoding, binaryBufferSize, binaryMimeTypes, ignoreInvalidParts, cancellationToken);
254242
}
255243

256244
/// <summary>
@@ -288,11 +276,13 @@ public static Task<MultipartFormDataParser> ParseAsync(Stream stream, string bou
288276
var options = new ParserOptions
289277
{
290278
BinaryBufferSize = binaryBufferSize,
291-
BinaryMimeTypes = binaryMimeTypes,
292-
Boundary = boundary,
293-
Encoding = encoding,
294279
IgnoreInvalidParts = ignoreInvalidParts
295280
};
281+
282+
if (!string.IsNullOrEmpty(boundary)) options.Boundary = boundary;
283+
if (encoding != null) options.Encoding = encoding;
284+
if (binaryMimeTypes != null) options.BinaryMimeTypes = binaryMimeTypes;
285+
296286
return ParseAsync(stream, options, cancellationToken);
297287
}
298288

0 commit comments

Comments
 (0)