• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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