clamp positive NSTimeInterval in initializer
diff --git a/src/objective-c/GRPCClient/GRPCCallOptions.m b/src/objective-c/GRPCClient/GRPCCallOptions.m
index 0977a4c..8bb2ad2 100644
--- a/src/objective-c/GRPCClient/GRPCCallOptions.m
+++ b/src/objective-c/GRPCClient/GRPCCallOptions.m
@@ -146,7 +146,7 @@
channelID:(NSUInteger)channelID {
if ((self = [super init])) {
_serverAuthority = [serverAuthority copy];
- _timeout = timeout;
+ _timeout = timeout < 0 ? 0 : timeout;
_oauth2AccessToken = [oauth2AccessToken copy];
_authTokenProvider = authTokenProvider;
_initialMetadata = [[NSDictionary alloc] initWithDictionary:initialMetadata copyItems:YES];
@@ -154,11 +154,11 @@
_responseSizeLimit = responseSizeLimit;
_compressionAlgorithm = compressionAlgorithm;
_retryEnabled = retryEnabled;
- _keepaliveInterval = keepaliveInterval;
- _keepaliveTimeout = keepaliveTimeout;
- _connectMinTimeout = connectMinTimeout;
- _connectInitialBackoff = connectInitialBackoff;
- _connectMaxBackoff = connectMaxBackoff;
+ _keepaliveInterval = keepaliveInterval < 0 ? 0 : keepaliveInterval;
+ _keepaliveTimeout = keepaliveTimeout < 0 ? 0 : keepaliveTimeout;
+ _connectMinTimeout = connectMinTimeout < 0 ? 0 : connectMinTimeout;
+ _connectInitialBackoff = connectInitialBackoff < 0 ? 0 : connectInitialBackoff;
+ _connectMaxBackoff = connectMaxBackoff < 0 ? 0 : connectMaxBackoff;
_additionalChannelArgs =
[[NSDictionary alloc] initWithDictionary:additionalChannelArgs copyItems:YES];
_PEMRootCertificates = [PEMRootCertificates copy];