|  | @@ -219,10 +219,18 @@ bool grpc_chttp2_begin_write(grpc_exec_ctx *exec_ctx,
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /* send initial metadata if it's available */
 | 
	
		
			
				|  |  |      if (!sent_initial_metadata && s->send_initial_metadata) {
 | 
	
		
			
				|  |  | -      grpc_chttp2_encode_header(
 | 
	
		
			
				|  |  | -          exec_ctx, &t->hpack_compressor, s->id, s->send_initial_metadata, 0,
 | 
	
		
			
				|  |  | -          t->settings[GRPC_ACKED_SETTINGS][GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE],
 | 
	
		
			
				|  |  | -          &s->stats.outgoing, &t->outbuf);
 | 
	
		
			
				|  |  | +      grpc_encode_header_options hopt = {
 | 
	
		
			
				|  |  | +          .stream_id = s->id,
 | 
	
		
			
				|  |  | +          .is_eof = false,
 | 
	
		
			
				|  |  | +          .use_true_binary_metadata =
 | 
	
		
			
				|  |  | +              t->settings
 | 
	
		
			
				|  |  | +                  [GRPC_ACKED_SETTINGS]
 | 
	
		
			
				|  |  | +                  [GRPC_CHTTP2_SETTINGS_GRPC_ALLOW_TRUE_BINARY_METADATA] != 0,
 | 
	
		
			
				|  |  | +          .max_frame_size = t->settings[GRPC_ACKED_SETTINGS]
 | 
	
		
			
				|  |  | +                                       [GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE],
 | 
	
		
			
				|  |  | +          .stats = &s->stats.outgoing};
 | 
	
		
			
				|  |  | +      grpc_chttp2_encode_header(exec_ctx, &t->hpack_compressor,
 | 
	
		
			
				|  |  | +                                s->send_initial_metadata, &hopt, &t->outbuf);
 | 
	
		
			
				|  |  |        s->send_initial_metadata = NULL;
 | 
	
		
			
				|  |  |        s->sent_initial_metadata = true;
 | 
	
		
			
				|  |  |        sent_initial_metadata = true;
 | 
	
	
		
			
				|  | @@ -300,11 +308,21 @@ bool grpc_chttp2_begin_write(grpc_exec_ctx *exec_ctx,
 | 
	
		
			
				|  |  |            grpc_chttp2_encode_data(s->id, &s->flow_controlled_buffer, 0, true,
 | 
	
		
			
				|  |  |                                    &s->stats.outgoing, &t->outbuf);
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  | -          grpc_chttp2_encode_header(
 | 
	
		
			
				|  |  | -              exec_ctx, &t->hpack_compressor, s->id, s->send_trailing_metadata,
 | 
	
		
			
				|  |  | -              true, t->settings[GRPC_ACKED_SETTINGS]
 | 
	
		
			
				|  |  | -                               [GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE],
 | 
	
		
			
				|  |  | -              &s->stats.outgoing, &t->outbuf);
 | 
	
		
			
				|  |  | +          grpc_encode_header_options hopt = {
 | 
	
		
			
				|  |  | +              .stream_id = s->id,
 | 
	
		
			
				|  |  | +              .is_eof = true,
 | 
	
		
			
				|  |  | +              .use_true_binary_metadata =
 | 
	
		
			
				|  |  | +                  t->settings
 | 
	
		
			
				|  |  | +                      [GRPC_ACKED_SETTINGS]
 | 
	
		
			
				|  |  | +                      [GRPC_CHTTP2_SETTINGS_GRPC_ALLOW_TRUE_BINARY_METADATA] !=
 | 
	
		
			
				|  |  | +                  0,
 | 
	
		
			
				|  |  | +              .max_frame_size =
 | 
	
		
			
				|  |  | +                  t->settings[GRPC_ACKED_SETTINGS]
 | 
	
		
			
				|  |  | +                             [GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE],
 | 
	
		
			
				|  |  | +              .stats = &s->stats.outgoing};
 | 
	
		
			
				|  |  | +          grpc_chttp2_encode_header(exec_ctx, &t->hpack_compressor,
 | 
	
		
			
				|  |  | +                                    s->send_trailing_metadata, &hopt,
 | 
	
		
			
				|  |  | +                                    &t->outbuf);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          s->send_trailing_metadata = NULL;
 | 
	
		
			
				|  |  |          s->sent_trailing_metadata = true;
 |