@@ -319,18 +319,18 @@ function _storeHeader(firstLine, headers) {
319
319
if ( state . sentExpect ) this . _send ( '' ) ;
320
320
}
321
321
322
- function storeHeader ( self , state , field , value ) {
323
- if ( ! checkIsHttpToken ( field ) ) {
322
+ function storeHeader ( self , state , key , value ) {
323
+ if ( typeof key !== 'string' || ! key || ! checkIsHttpToken ( key ) ) {
324
324
throw new TypeError (
325
- 'Header name must be a valid HTTP Token ["' + field + '"]' ) ;
325
+ 'Header name must be a valid HTTP Token ["' + key + '"]' ) ;
326
326
}
327
327
if ( checkInvalidHeaderChar ( value ) ) {
328
- debug ( 'Header "%s" contains invalid characters' , field ) ;
328
+ debug ( 'Header "%s" contains invalid characters' , key ) ;
329
329
throw new TypeError ( 'The header content contains invalid characters' ) ;
330
330
}
331
- state . messageHeader += field + ': ' + escapeHeaderValue ( value ) + CRLF ;
331
+ state . messageHeader += key + ': ' + escapeHeaderValue ( value ) + CRLF ;
332
332
333
- if ( connectionExpression . test ( field ) ) {
333
+ if ( connectionExpression . test ( key ) ) {
334
334
state . sentConnectionHeader = true ;
335
335
if ( connCloseExpression . test ( value ) ) {
336
336
self . _last = true ;
@@ -339,26 +339,26 @@ function storeHeader(self, state, field, value) {
339
339
}
340
340
if ( connUpgradeExpression . test ( value ) )
341
341
state . sentConnectionUpgrade = true ;
342
- } else if ( transferEncodingExpression . test ( field ) ) {
342
+ } else if ( transferEncodingExpression . test ( key ) ) {
343
343
state . sentTransferEncodingHeader = true ;
344
344
if ( trfrEncChunkExpression . test ( value ) ) self . chunkedEncoding = true ;
345
345
346
- } else if ( contentLengthExpression . test ( field ) ) {
346
+ } else if ( contentLengthExpression . test ( key ) ) {
347
347
state . sentContentLengthHeader = true ;
348
- } else if ( dateExpression . test ( field ) ) {
348
+ } else if ( dateExpression . test ( key ) ) {
349
349
state . sentDateHeader = true ;
350
- } else if ( expectExpression . test ( field ) ) {
350
+ } else if ( expectExpression . test ( key ) ) {
351
351
state . sentExpect = true ;
352
- } else if ( trailerExpression . test ( field ) ) {
352
+ } else if ( trailerExpression . test ( key ) ) {
353
353
state . sentTrailer = true ;
354
- } else if ( upgradeExpression . test ( field ) ) {
354
+ } else if ( upgradeExpression . test ( key ) ) {
355
355
state . sentUpgrade = true ;
356
356
}
357
357
}
358
358
359
359
360
360
OutgoingMessage . prototype . setHeader = function setHeader ( name , value ) {
361
- if ( ! checkIsHttpToken ( name ) )
361
+ if ( typeof name !== 'string' || ! name || ! checkIsHttpToken ( name ) )
362
362
throw new TypeError (
363
363
'Header name must be a valid HTTP Token ["' + name + '"]' ) ;
364
364
if ( value === undefined )
@@ -538,7 +538,7 @@ OutgoingMessage.prototype.addTrailers = function addTrailers(headers) {
538
538
field = key ;
539
539
value = headers [ key ] ;
540
540
}
541
- if ( ! checkIsHttpToken ( field ) ) {
541
+ if ( typeof field !== 'string' || ! field || ! checkIsHttpToken ( field ) ) {
542
542
throw new TypeError (
543
543
'Trailer name must be a valid HTTP Token ["' + field + '"]' ) ;
544
544
}
0 commit comments