@@ -328,16 +328,12 @@ class Http2ServerResponse extends Stream {
328
328
addTrailers ( headers ) {
329
329
let trailers = this [ kTrailers ] ;
330
330
const keys = Object . keys ( headers ) ;
331
- let key = '' ;
332
- if ( keys . length > 0 )
331
+ if ( keys . length === 0 )
333
332
return ;
334
333
if ( trailers === undefined )
335
334
trailers = this [ kTrailers ] = Object . create ( null ) ;
336
335
for ( var i = 0 ; i < keys . length ; i ++ ) {
337
- key = String ( keys [ i ] ) . trim ( ) . toLowerCase ( ) ;
338
- const value = headers [ key ] ;
339
- assertValidHeader ( key , value ) ;
340
- trailers [ key ] = String ( value ) ;
336
+ trailers [ keys [ i ] ] = String ( headers [ keys [ i ] ] ) ;
341
337
}
342
338
}
343
339
@@ -508,12 +504,16 @@ class Http2ServerResponse extends Stream {
508
504
509
505
[ kBeginSend ] ( options ) {
510
506
const stream = this [ kStream ] ;
507
+ options = options || Object . create ( null ) ;
511
508
if ( stream !== undefined && stream . headersSent === false ) {
512
509
const state = this [ kState ] ;
513
510
const headers = this [ kHeaders ] || Object . create ( null ) ;
514
511
headers [ constants . HTTP2_HEADER_STATUS ] = state . statusCode ;
515
512
if ( stream . finished === true )
516
513
options . endStream = true ;
514
+ options . getTrailers = ( trailers ) => {
515
+ Object . assign ( trailers , this [ kTrailers ] ) ;
516
+ } ;
517
517
if ( stream . destroyed === false ) {
518
518
stream . respond ( headers , options ) ;
519
519
}
0 commit comments