1 // 2 // 3 // Copyright 2015 gRPC authors. 4 // 5 // Licensed under the Apache License, Version 2.0 (the "License"); 6 // you may not use this file except in compliance with the License. 7 // You may obtain a copy of the License at 8 // 9 // http://www.apache.org/licenses/LICENSE-2.0 10 // 11 // Unless required by applicable law or agreed to in writing, software 12 // distributed under the License is distributed on an "AS IS" BASIS, 13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 // See the License for the specific language governing permissions and 15 // limitations under the License. 16 // 17 // 18 19 #ifndef GRPC_SRC_CORE_LIB_IOMGR_SOCKET_UTILS_H 20 #define GRPC_SRC_CORE_LIB_IOMGR_SOCKET_UTILS_H 21 22 #include <grpc/support/port_platform.h> 23 #include <stddef.h> 24 25 // TODO(juanlishen): The following functions might be simple enough to implement 26 // ourselves, so that they don't cause any portability hassle. 27 28 // A wrapper for htons on POSIX and Windows 29 uint16_t grpc_htons(uint16_t hostshort); 30 31 // A wrapper for ntohs on POSIX and WINDOWS 32 uint16_t grpc_ntohs(uint16_t netshort); 33 34 // A wrapper for htonl on POSIX and Windows 35 uint32_t grpc_htonl(uint32_t hostlong); 36 37 // A wrapper for ntohl on POSIX and WINDOWS 38 uint32_t grpc_ntohl(uint32_t netlong); 39 40 // A wrapper for inet_pton on POSIX and WINDOWS 41 int grpc_inet_pton(int af, const char* src, void* dst); 42 43 // A wrapper for inet_ntop on POSIX systems and InetNtop on Windows systems 44 const char* grpc_inet_ntop(int af, const void* src, char* dst, size_t size); 45 46 #endif // GRPC_SRC_CORE_LIB_IOMGR_SOCKET_UTILS_H 47