From be303e12cb8f9affe9dc022a13c33967eafabb33 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Thu, 4 Feb 2016 02:52:47 -0800 Subject: [PATCH] Add user agent of the library to that of the app. --- src/objective-c/GRPCClient/private/GRPCHost.m | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/objective-c/GRPCClient/private/GRPCHost.m b/src/objective-c/GRPCClient/private/GRPCHost.m index 5b1ca16e120..f750841a446 100644 --- a/src/objective-c/GRPCClient/private/GRPCHost.m +++ b/src/objective-c/GRPCClient/private/GRPCHost.m @@ -40,6 +40,10 @@ #import "GRPCCompletionQueue.h" #import "NSDictionary+GRPC.h" +// TODO(jcanizales): Generate the version in a standalone header, from templates. Like +// templates/src/core/surface/version.c.template . +#define GRPC_OBJC_VERSION_STRING @"0.13.0" + @interface GRPCHost () // TODO(mlumish): Investigate whether caching channels with strong links is a good idea. @property(nonatomic, strong) GRPCChannel *channel; @@ -109,9 +113,14 @@ if (!_channel) { NSMutableDictionary *args = [NSMutableDictionary dictionary]; + + // TODO(jcanizales): Add OS and device information (see + // https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#user-agents ). + NSString *userAgent = @"grpc-objc/" GRPC_OBJC_VERSION_STRING; if (_userAgentPrefix) { - args[@GRPC_ARG_PRIMARY_USER_AGENT_STRING] = _userAgentPrefix; + userAgent = [@[_userAgentPrefix, userAgent] componentsJoinedByString:@" "]; } + args[@GRPC_ARG_PRIMARY_USER_AGENT_STRING] = userAgent; if (_secure) { if (_hostNameOverride) {