diff options
author | Yuchen Zeng <y-zeng@users.noreply.github.com> | 2017-02-27 15:25:38 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-27 15:25:38 -0800 |
commit | 2aa5a1d90864dd8ebad60e218a7059bbebdc5085 (patch) | |
tree | b7693265416eb00be7bcdddc6982b997db79464d /test/core/iomgr | |
parent | 38c8bb4a7fc8b0e9d36836d03d9af47f35447011 (diff) | |
parent | c40d1d84f9d492561cb71ea3f5304ef780d7e574 (diff) |
Merge pull request #9839 from y-zeng/1_1_x_address_arg_fix
Preserve ipv6 scope id in grpc_channel_args
Diffstat (limited to 'test/core/iomgr')
-rw-r--r-- | test/core/iomgr/sockaddr_utils_test.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/core/iomgr/sockaddr_utils_test.c b/test/core/iomgr/sockaddr_utils_test.c index 8569c697fe..70a6c323e5 100644 --- a/test/core/iomgr/sockaddr_utils_test.c +++ b/test/core/iomgr/sockaddr_utils_test.c @@ -70,6 +70,12 @@ static grpc_resolved_address make_addr6(const uint8_t *data, size_t data_len) { return resolved_addr6; } +static void set_addr6_scope_id(grpc_resolved_address *addr, uint32_t scope_id) { + struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)addr->addr; + GPR_ASSERT(addr6->sin6_family == AF_INET6); + addr6->sin6_scope_id = scope_id; +} + static const uint8_t kMapped[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 192, 0, 2, 1}; @@ -222,6 +228,16 @@ static void test_sockaddr_to_string(void) { expect_sockaddr_str("[2001:db8::1]:12345", &input6, 1); expect_sockaddr_uri("ipv6:[2001:db8::1]:12345", &input6); + set_addr6_scope_id(&input6, 2); + expect_sockaddr_str("[2001:db8::1%252]:12345", &input6, 0); + expect_sockaddr_str("[2001:db8::1%252]:12345", &input6, 1); + expect_sockaddr_uri("ipv6:[2001:db8::1%252]:12345", &input6); + + set_addr6_scope_id(&input6, 101); + expect_sockaddr_str("[2001:db8::1%25101]:12345", &input6, 0); + expect_sockaddr_str("[2001:db8::1%25101]:12345", &input6, 1); + expect_sockaddr_uri("ipv6:[2001:db8::1%25101]:12345", &input6); + input6 = make_addr6(kMapped, sizeof(kMapped)); expect_sockaddr_str("[::ffff:192.0.2.1]:12345", &input6, 0); expect_sockaddr_str("192.0.2.1:12345", &input6, 1); |