| 
					
				 | 
			
			
				@@ -103,11 +103,15 @@ NAN_METHOD(Channel::New) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     grpc_channel *wrapped_channel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // Owned by the Channel object 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     NanUtf8String *host = new NanUtf8String(args[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    NanUtf8String *host_override = NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (args[1]->IsUndefined()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       wrapped_channel = grpc_channel_create(**host, NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else if (args[1]->IsObject()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       grpc_credentials *creds = NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       Handle<Object> args_hash(args[1]->ToObject()->Clone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (args_hash->HasOwnProperty(NanNew(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        host_override = new NanUtf8String(args_hash->Get(NanNew(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (args_hash->HasOwnProperty(NanNew("credentials"))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Handle<Value> creds_value = args_hash->Get(NanNew("credentials")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!Credentials::HasInstance(creds_value)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -155,7 +159,12 @@ NAN_METHOD(Channel::New) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       return NanThrowTypeError("Channel expects a string and an object"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Channel *channel = new Channel(wrapped_channel, host); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Channel *channel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (host_override == NULL) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      channel = new Channel(wrapped_channel, host); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      channel = new Channel(wrapped_channel, host_override); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     channel->Wrap(args.This()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     NanReturnValue(args.This()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } else { 
			 |