|  | @@ -96,6 +96,8 @@ typedef struct grpc_tcp {
 | 
	
		
			
				|  |  |       to protect ourselves when requesting a shutdown. */
 | 
	
		
			
				|  |  |    gpr_mu mu;
 | 
	
		
			
				|  |  |    int shutting_down;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  char *peer_string;
 | 
	
		
			
				|  |  |  } grpc_tcp;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static void tcp_ref(grpc_tcp *tcp) {
 | 
	
	
		
			
				|  | @@ -107,6 +109,7 @@ static void tcp_unref(grpc_tcp *tcp) {
 | 
	
		
			
				|  |  |      gpr_slice_buffer_destroy(&tcp->write_slices);
 | 
	
		
			
				|  |  |      grpc_winsocket_orphan(tcp->socket);
 | 
	
		
			
				|  |  |      gpr_mu_destroy(&tcp->mu);
 | 
	
		
			
				|  |  | +    gpr_free(tcp->peer_string);
 | 
	
		
			
				|  |  |      gpr_free(tcp);
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -393,11 +396,16 @@ static void win_destroy(grpc_endpoint *ep) {
 | 
	
		
			
				|  |  |    tcp_unref(tcp);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +static char *win_get_peer(grpc_endpoint *ep) {
 | 
	
		
			
				|  |  | +  grpc_tcp *tcp = (grpc_tcp *)ep;
 | 
	
		
			
				|  |  | +  return gpr_strdup(tcp->peer_string);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  static grpc_endpoint_vtable vtable = {
 | 
	
		
			
				|  |  | -  win_notify_on_read, win_write, win_add_to_pollset, win_shutdown, win_destroy
 | 
	
		
			
				|  |  | +  win_notify_on_read, win_write, win_add_to_pollset, win_shutdown, win_destroy, win_get_peer
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -grpc_endpoint *grpc_tcp_create(grpc_winsocket *socket) {
 | 
	
		
			
				|  |  | +grpc_endpoint *grpc_tcp_create(grpc_winsocket *socket, char *peer_string) {
 | 
	
		
			
				|  |  |    grpc_tcp *tcp = (grpc_tcp *) gpr_malloc(sizeof(grpc_tcp));
 | 
	
		
			
				|  |  |    memset(tcp, 0, sizeof(grpc_tcp));
 | 
	
		
			
				|  |  |    tcp->base.vtable = &vtable;
 | 
	
	
		
			
				|  | @@ -405,6 +413,7 @@ grpc_endpoint *grpc_tcp_create(grpc_winsocket *socket) {
 | 
	
		
			
				|  |  |    gpr_mu_init(&tcp->mu);
 | 
	
		
			
				|  |  |    gpr_slice_buffer_init(&tcp->write_slices);
 | 
	
		
			
				|  |  |    gpr_ref_init(&tcp->refcount, 1);
 | 
	
		
			
				|  |  | +  tcp->peer_string = gpr_strdup(peer_string);
 | 
	
		
			
				|  |  |    return &tcp->base;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 |