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 3 // found in the LICENSE file. 4 5 #ifndef LIBRARIES_NACL_IO_HOST_RESOLVER_H_ 6 #define LIBRARIES_NACL_IO_HOST_RESOLVER_H_ 7 8 #include "nacl_io/ossocket.h" 9 #include "nacl_io/pepper_interface.h" 10 #include "sdk_util/simple_lock.h" 11 12 #ifdef PROVIDES_SOCKET_API 13 14 namespace nacl_io { 15 16 class HostResolver { 17 public: 18 HostResolver(); 19 ~HostResolver(); 20 21 void Init(PepperInterface* ppapi); 22 23 void freeaddrinfo(struct addrinfo* res); 24 int getaddrinfo(const char* node, 25 const char* service, 26 const struct addrinfo* hints, 27 struct addrinfo** res); 28 struct hostent* gethostbyname(const char* name); 29 30 private: 31 void hostent_initialize(); 32 void hostent_cleanup(); 33 34 struct hostent hostent_; 35 PepperInterface* ppapi_; 36 sdk_util::SimpleLock gethostbyname_lock_; 37 }; 38 39 } // namespace nacl_io 40 41 #endif // PROVIDES_SOCKET_API 42 #endif // LIBRARIES_NACL_IO_HOST_RESOLVER_H_ 43