38#if LWIP_DNS && LWIP_SOCKET
43#include "lwip/ip_addr.h"
51struct gethostbyname_r_helper {
58#if LWIP_DNS_API_DECLARE_H_ERRNO
64#ifndef LWIP_DNS_API_HOSTENT_STORAGE
65#define LWIP_DNS_API_HOSTENT_STORAGE 0
69#if LWIP_DNS_API_HOSTENT_STORAGE
70#define HOSTENT_STORAGE
72#define HOSTENT_STORAGE static
85lwip_gethostbyname(
const char *
name)
91 HOSTENT_STORAGE
struct hostent s_hostent;
92 HOSTENT_STORAGE
char *s_aliases;
94 HOSTENT_STORAGE
ip_addr_t *s_phostent_addr[2];
105 s_hostent_addr =
addr;
106 s_phostent_addr[0] = &s_hostent_addr;
107 s_phostent_addr[1] =
NULL;
108 s_hostent.h_name = (
char*)
name;
109 s_hostent.h_aliases = &s_aliases;
110 s_hostent.h_addrtype =
AF_INET;
112 s_hostent.h_addr_list = (
char**)&s_phostent_addr;
118 if (s_hostent.h_aliases !=
NULL) {
120 for (
idx=0; s_hostent.h_aliases[
idx];
idx++) {
128 if (s_hostent.h_addr_list !=
NULL) {
130 for (
idx=0; s_hostent.h_addr_list[
idx];
idx++) {
137#if LWIP_DNS_API_HOSTENT_STORAGE
139 return sys_thread_hostent(&s_hostent);
166 struct gethostbyname_r_helper *
h;
171 if (h_errnop ==
NULL) {
173 h_errnop = &lh_errno;
197 hostname = ((
char*)
h) +
sizeof(
struct gethostbyname_r_helper);
200 err = netconn_gethostbyname(
name, &
h->addr);
212 h->addr_list[0] = &
h->addr;
213 h->addr_list[1] =
NULL;
216 ret->h_aliases = &
h->aliases;
219 ret->h_addr_list = (
char**)&
h->addr_list;
236lwip_freeaddrinfo(
struct addrinfo *ai)
267lwip_getaddrinfo(
const char *nodename,
const char *
servname,
290 if ((port_nr <= 0) || (port_nr > 0xffff)) {
295 if (nodename !=
NULL) {
297 err = netconn_gethostbyname(nodename, &
addr);
307 if (nodename !=
NULL) {
313 LWIP_ASSERT(
"total_size <= NETDB_ELEM_SIZE: please report this!",
314 total_size <= NETDB_ELEM_SIZE);
319 memset(ai, 0, total_size);
334 if (nodename !=
NULL) {
ACPI_SIZE strlen(const char *String)
static struct sockaddr_in sa
#define LWIP_DEBUGF(debug, message)
#define LWIP_ASSERT(message, assertion)
#define LWIP_MEM_ALIGN(addr)
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum const GLvoid * addr
GLfloat GLfloat GLfloat GLfloat h
_Check_return_ int __cdecl atoi(_In_z_ const char *_Str)
#define inet_addr_from_ipaddr(target_inaddr, source_ipaddr)
#define ip_addr_set_loopback(ipaddr)
typedefPACK_STRUCT_END struct ip_addr ip_addr_t
#define MEMCPY(DST, SRC, BYTES)
void * memp_malloc(memp_t type)
void memp_free(memp_t type, void *mem)
static unsigned __int64 next
namespace GUID const ADDRINFOEXW * hints
static const ADDRINFOW PADDRINFOW *static const WCHAR * servname
struct sockaddr * ai_addr
struct addrinfo * ai_next
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList