Merge branch 'master' of github.com:grpc/grpc into removeMonitor
diff --git a/src/objective-c/GRPCClient/GRPCCall.m b/src/objective-c/GRPCClient/GRPCCall.m
index 45b03e4..a9b112b 100644
--- a/src/objective-c/GRPCClient/GRPCCall.m
+++ b/src/objective-c/GRPCClient/GRPCCall.m
@@ -33,7 +33,6 @@
 #import "private/GRPCCallInternal.h"
 #import "private/GRPCChannelPool.h"
 #import "private/GRPCCompletionQueue.h"
-#import "private/GRPCConnectivityMonitor.h"
 #import "private/GRPCHost.h"
 #import "private/GRPCRequestHeaders.h"
 #import "private/GRPCWrappedCall.h"
@@ -288,7 +287,6 @@
   GRPCCallSafety _callSafety;
   GRPCCallOptions *_callOptions;
   GRPCWrappedCall *_wrappedCall;
-  GRPCConnectivityMonitor *_connectivityMonitor;
 
   // The C gRPC library has less guarantees on the ordering of events than we
   // do. Particularly, in the face of errors, there's no ordering guarantee at
@@ -494,8 +492,6 @@
 }
 
 - (void)dealloc {
-  [GRPCConnectivityMonitor unregisterObserver:self];
-
   __block GRPCWrappedCall *wrappedCall = _wrappedCall;
   dispatch_async(_callQueue, ^{
     wrappedCall = nil;
@@ -794,12 +790,6 @@
 
     [self sendHeaders];
     [self invokeCall];
-
-    // Connectivity monitor is not required for CFStream
-    char *enableCFStream = getenv(kCFStreamVarName);
-    if (enableCFStream != nil && enableCFStream[0] != '1') {
-      [GRPCConnectivityMonitor registerObserver:self selector:@selector(connectivityChanged:)];
-    }
   }
 
   // Now that the RPC has been initiated, request writes can start.
diff --git a/src/objective-c/GRPCClient/private/GRPCChannelPool.m b/src/objective-c/GRPCClient/private/GRPCChannelPool.m
index 60a33ed..683e203 100644
--- a/src/objective-c/GRPCClient/private/GRPCChannelPool.m
+++ b/src/objective-c/GRPCClient/private/GRPCChannelPool.m
@@ -24,7 +24,6 @@
 #import "GRPCChannelPool+Test.h"
 #import "GRPCChannelPool.h"
 #import "GRPCCompletionQueue.h"
-#import "GRPCConnectivityMonitor.h"
 #import "GRPCCronetChannelFactory.h"
 #import "GRPCInsecureChannelFactory.h"
 #import "GRPCSecureChannelFactory.h"
@@ -215,18 +214,12 @@
 - (instancetype)initPrivate {
   if ((self = [super init])) {
     _channelPool = [NSMutableDictionary dictionary];
-
-    // Connectivity monitor is not required for CFStream
-    char *enableCFStream = getenv(kCFStreamVarName);
-    if (enableCFStream == nil || enableCFStream[0] != '1') {
-      [GRPCConnectivityMonitor registerObserver:self selector:@selector(connectivityChange:)];
-    }
   }
   return self;
 }
 
 - (void)dealloc {
-  [GRPCConnectivityMonitor unregisterObserver:self];
+
 }
 
 - (GRPCPooledChannel *)channelWithHost:(NSString *)host callOptions:(GRPCCallOptions *)callOptions {
diff --git a/src/objective-c/GRPCClient/private/GRPCConnectivityMonitor.h b/src/objective-c/GRPCClient/private/GRPCConnectivityMonitor.h
deleted file mode 100644
index d4b49b1..0000000
--- a/src/objective-c/GRPCClient/private/GRPCConnectivityMonitor.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *
- * Copyright 2016 gRPC authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#import <Foundation/Foundation.h>
-#import <SystemConfiguration/SystemConfiguration.h>
-
-typedef NS_ENUM(NSInteger, GRPCConnectivityStatus) {
-  GRPCConnectivityUnknown = 0,
-  GRPCConnectivityNoNetwork = 1,
-  GRPCConnectivityCellular = 2,
-  GRPCConnectivityWiFi = 3,
-};
-
-extern NSString* _Nonnull kGRPCConnectivityNotification;
-
-// This interface monitors OS reachability interface for any network status
-// change. Parties interested in these events should register themselves as
-// observer.
-@interface GRPCConnectivityMonitor : NSObject
-
-- (nonnull instancetype)init NS_UNAVAILABLE;
-
-// Register an object as observer of network status change. \a observer
-// must have a notification method with one parameter of type
-// (NSNotification *) and should pass it to parameter \a selector. The
-// parameter of this notification method is not used for now.
-+ (void)registerObserver:(_Nonnull id)observer selector:(_Nonnull SEL)selector;
-
-// Ungegister an object from observers of network status change.
-+ (void)unregisterObserver:(_Nonnull id)observer;
-
-@end
diff --git a/src/objective-c/GRPCClient/private/GRPCConnectivityMonitor.m b/src/objective-c/GRPCClient/private/GRPCConnectivityMonitor.m
deleted file mode 100644
index bb8618f..0000000
--- a/src/objective-c/GRPCClient/private/GRPCConnectivityMonitor.m
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- *
- * Copyright 2016 gRPC authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#import "GRPCConnectivityMonitor.h"
-
-#include <netinet/in.h>
-
-NSString *kGRPCConnectivityNotification = @"kGRPCConnectivityNotification";
-
-static SCNetworkReachabilityRef reachability;
-static GRPCConnectivityStatus currentStatus;
-
-// Aggregate information in flags into network status.
-GRPCConnectivityStatus CalculateConnectivityStatus(SCNetworkReachabilityFlags flags) {
-  GRPCConnectivityStatus result = GRPCConnectivityUnknown;
-  if (((flags & kSCNetworkReachabilityFlagsReachable) == 0) ||
-      ((flags & kSCNetworkReachabilityFlagsConnectionRequired) != 0)) {
-    return GRPCConnectivityNoNetwork;
-  }
-  result = GRPCConnectivityWiFi;
-#if TARGET_OS_IPHONE
-  if (flags & kSCNetworkReachabilityFlagsIsWWAN) {
-    return result = GRPCConnectivityCellular;
-  }
-#endif
-  return result;
-}
-
-static void ReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags,
-                                 void *info) {
-  GRPCConnectivityStatus newStatus = CalculateConnectivityStatus(flags);
-
-  if (newStatus != currentStatus) {
-    [[NSNotificationCenter defaultCenter] postNotificationName:kGRPCConnectivityNotification
-                                                        object:nil];
-    currentStatus = newStatus;
-  }
-}
-
-@implementation GRPCConnectivityMonitor
-
-+ (void)initialize {
-  if (self == [GRPCConnectivityMonitor self]) {
-    struct sockaddr_in addr = {0};
-    addr.sin_len = sizeof(addr);
-    addr.sin_family = AF_INET;
-    reachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&addr);
-    currentStatus = GRPCConnectivityUnknown;
-
-    SCNetworkConnectionFlags flags;
-    if (SCNetworkReachabilityGetFlags(reachability, &flags)) {
-      currentStatus = CalculateConnectivityStatus(flags);
-    }
-
-    SCNetworkReachabilityContext context = {0, (__bridge void *)(self), NULL, NULL, NULL};
-    if (!SCNetworkReachabilitySetCallback(reachability, ReachabilityCallback, &context) ||
-        !SCNetworkReachabilityScheduleWithRunLoop(reachability, CFRunLoopGetMain(),
-                                                  kCFRunLoopCommonModes)) {
-      NSLog(@"gRPC connectivity monitor fail to set");
-    }
-  }
-}
-
-+ (void)registerObserver:(id)observer selector:(SEL)selector {
-  [[NSNotificationCenter defaultCenter] addObserver:observer
-                                           selector:selector
-                                               name:kGRPCConnectivityNotification
-                                             object:nil];
-}
-
-+ (void)unregisterObserver:(id)observer {
-  [[NSNotificationCenter defaultCenter] removeObserver:observer];
-}
-
-@end
diff --git a/src/objective-c/GRPCClient/private/GRPCHost.m b/src/objective-c/GRPCClient/private/GRPCHost.m
index 24348c3..63ffc92 100644
--- a/src/objective-c/GRPCClient/private/GRPCHost.m
+++ b/src/objective-c/GRPCClient/private/GRPCHost.m
@@ -28,7 +28,6 @@
 #import "../internal/GRPCCallOptions+Internal.h"
 #import "GRPCChannelFactory.h"
 #import "GRPCCompletionQueue.h"
-#import "GRPCConnectivityMonitor.h"
 #import "GRPCCronetChannelFactory.h"
 #import "GRPCSecureChannelFactory.h"
 #import "NSDictionary+GRPC.h"