|  | @@ -32,6 +32,7 @@
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #include "src/core/channel/http_client_filter.h"
 | 
	
		
			
				|  |  | +#include <string.h>
 | 
	
		
			
				|  |  |  #include <grpc/support/log.h>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  typedef struct call_data { int sent_headers; } call_data;
 | 
	
	
		
			
				|  | @@ -130,6 +131,19 @@ static void destroy_call_elem(grpc_call_element *elem) {
 | 
	
		
			
				|  |  |    ignore_unused(channeld);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +static char *scheme_from_args(const grpc_channel_args *args) {
 | 
	
		
			
				|  |  | +  int i;
 | 
	
		
			
				|  |  | +  if (args != NULL) {
 | 
	
		
			
				|  |  | +    for (i = 0; i < args->num_args; ++i) {
 | 
	
		
			
				|  |  | +      if (args->args[i].type == GRPC_ARG_STRING &&
 | 
	
		
			
				|  |  | +          strcmp(args->args[i].key, "grpc.scheme") == 0) {
 | 
	
		
			
				|  |  | +        return args->args[i].value.string;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  return "http";
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  /* Constructor for channel_data */
 | 
	
		
			
				|  |  |  static void init_channel_elem(grpc_channel_element *elem,
 | 
	
		
			
				|  |  |                                const grpc_channel_args *args, grpc_mdctx *mdctx,
 | 
	
	
		
			
				|  | @@ -146,7 +160,8 @@ static void init_channel_elem(grpc_channel_element *elem,
 | 
	
		
			
				|  |  |    /* initialize members */
 | 
	
		
			
				|  |  |    channeld->te_trailers = grpc_mdelem_from_strings(mdctx, "te", "trailers");
 | 
	
		
			
				|  |  |    channeld->method = grpc_mdelem_from_strings(mdctx, ":method", "POST");
 | 
	
		
			
				|  |  | -  channeld->scheme = grpc_mdelem_from_strings(mdctx, ":scheme", "grpc");
 | 
	
		
			
				|  |  | +  channeld->scheme =
 | 
	
		
			
				|  |  | +      grpc_mdelem_from_strings(mdctx, ":scheme", scheme_from_args(args));
 | 
	
		
			
				|  |  |    channeld->content_type =
 | 
	
		
			
				|  |  |        grpc_mdelem_from_strings(mdctx, "content-type", "application/grpc");
 | 
	
		
			
				|  |  |  }
 |