diff options
author | 2018-06-14 11:43:18 -0400 | |
---|---|---|
committer | 2018-06-14 11:43:18 -0400 | |
commit | 7ea8a60ed0ba4faeeb912e9b76ae1d0a222b3ddf (patch) | |
tree | 7a709e76d25faf1532df83c73dcefc571bd5685c /src/core/lib/iomgr/tcp_server_utils_posix_common.cc | |
parent | 9a2c0a8641d1837185a60436adf9419209f89fbe (diff) |
Revert "Add Type Checking On Channel Args"
Diffstat (limited to 'src/core/lib/iomgr/tcp_server_utils_posix_common.cc')
-rw-r--r-- | src/core/lib/iomgr/tcp_server_utils_posix_common.cc | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/core/lib/iomgr/tcp_server_utils_posix_common.cc b/src/core/lib/iomgr/tcp_server_utils_posix_common.cc index 8c254d587b..b9f8145572 100644 --- a/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +++ b/src/core/lib/iomgr/tcp_server_utils_posix_common.cc @@ -34,7 +34,6 @@ #include <grpc/support/string_util.h> #include <grpc/support/sync.h> -#include "src/core/lib/channel/channel_args.h" #include "src/core/lib/iomgr/error.h" #include "src/core/lib/iomgr/sockaddr.h" #include "src/core/lib/iomgr/sockaddr_utils.h" @@ -150,7 +149,6 @@ grpc_error* grpc_tcp_server_prepare_socket(grpc_tcp_server* s, int fd, bool so_reuseport, int* port) { grpc_resolved_address sockname_temp; grpc_error* err = GRPC_ERROR_NONE; - grpc_socket_mutator* mutator = nullptr; GPR_ASSERT(fd >= 0); @@ -171,11 +169,17 @@ grpc_error* grpc_tcp_server_prepare_socket(grpc_tcp_server* s, int fd, } err = grpc_set_socket_no_sigpipe_if_possible(fd); if (err != GRPC_ERROR_NONE) goto error; - mutator = grpc_channel_args_get_pointer<grpc_socket_mutator>( - s->channel_args, GRPC_ARG_SOCKET_MUTATOR); - if (mutator != nullptr) { - err = grpc_set_socket_with_mutator(fd, mutator); - if (err != GRPC_ERROR_NONE) goto error; + + if (s->channel_args) { + for (size_t i = 0; i < s->channel_args->num_args; i++) { + if (0 == strcmp(s->channel_args->args[i].key, GRPC_ARG_SOCKET_MUTATOR)) { + GPR_ASSERT(s->channel_args->args[i].type == GRPC_ARG_POINTER); + grpc_socket_mutator* mutator = static_cast<grpc_socket_mutator*>( + s->channel_args->args[i].value.pointer.p); + err = grpc_set_socket_with_mutator(fd, mutator); + if (err != GRPC_ERROR_NONE) goto error; + } + } } if (bind(fd, reinterpret_cast<grpc_sockaddr*>(const_cast<char*>(addr->addr)), |