OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef LIBRARIES_NACL_IO_HOST_RESOLVER_H_ | 5 #ifndef LIBRARIES_NACL_IO_HOST_RESOLVER_H_ |
6 #define LIBRARIES_NACL_IO_HOST_RESOLVER_H_ | 6 #define LIBRARIES_NACL_IO_HOST_RESOLVER_H_ |
7 | 7 |
8 #include "nacl_io/ossocket.h" | 8 #include "nacl_io/ossocket.h" |
9 #include "nacl_io/pepper_interface.h" | 9 #include "nacl_io/pepper_interface.h" |
10 #include "sdk_util/simple_lock.h" | 10 #include "sdk_util/simple_lock.h" |
11 | 11 |
12 #ifdef PROVIDES_SOCKET_API | 12 #ifdef PROVIDES_SOCKET_API |
13 | 13 |
14 namespace nacl_io { | 14 namespace nacl_io { |
15 | 15 |
16 class HostResolver { | 16 class HostResolver { |
17 public: | 17 public: |
18 HostResolver(); | 18 HostResolver(); |
19 ~HostResolver(); | 19 ~HostResolver(); |
20 | 20 |
21 void Init(PepperInterface* ppapi); | 21 void Init(PepperInterface* ppapi); |
22 | 22 |
23 void freeaddrinfo(struct addrinfo* res); | 23 void freeaddrinfo(struct addrinfo* res); |
| 24 int getnameinfo(const struct sockaddr *sa, |
| 25 socklen_t salen, |
| 26 char *host, |
| 27 size_t hostlen, |
| 28 char *serv, |
| 29 size_t servlen, |
| 30 int flags); |
24 int getaddrinfo(const char* node, | 31 int getaddrinfo(const char* node, |
25 const char* service, | 32 const char* service, |
26 const struct addrinfo* hints, | 33 const struct addrinfo* hints, |
27 struct addrinfo** res); | 34 struct addrinfo** res); |
28 struct hostent* gethostbyname(const char* name); | 35 struct hostent* gethostbyname(const char* name); |
29 | 36 |
30 private: | 37 private: |
31 void hostent_initialize(); | 38 void hostent_initialize(); |
32 void hostent_cleanup(); | 39 void hostent_cleanup(); |
33 | 40 |
34 struct hostent hostent_; | 41 struct hostent hostent_; |
35 PepperInterface* ppapi_; | 42 PepperInterface* ppapi_; |
36 sdk_util::SimpleLock gethostbyname_lock_; | 43 sdk_util::SimpleLock gethostbyname_lock_; |
37 }; | 44 }; |
38 | 45 |
39 } // namespace nacl_io | 46 } // namespace nacl_io |
40 | 47 |
41 #endif // PROVIDES_SOCKET_API | 48 #endif // PROVIDES_SOCKET_API |
42 #endif // LIBRARIES_NACL_IO_HOST_RESOLVER_H_ | 49 #endif // LIBRARIES_NACL_IO_HOST_RESOLVER_H_ |
OLD | NEW |