uc-sdk
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
netdb.h
Go to the documentation of this file.
1
/*
2
* Redistribution and use in source and binary forms, with or without modification,
3
* are permitted provided that the following conditions are met:
4
*
5
* 1. Redistributions of source code must retain the above copyright notice,
6
* this list of conditions and the following disclaimer.
7
* 2. Redistributions in binary form must reproduce the above copyright notice,
8
* this list of conditions and the following disclaimer in the documentation
9
* and/or other materials provided with the distribution.
10
* 3. The name of the author may not be used to endorse or promote products
11
* derived from this software without specific prior written permission.
12
*
13
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
14
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
15
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
16
* SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
17
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
18
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
19
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
20
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
21
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
22
* OF SUCH DAMAGE.
23
*
24
* This file is part of the lwIP TCP/IP stack.
25
*
26
* Author: Simon Goldschmidt
27
*
28
*/
29
#ifndef __LWIP_NETDB_H__
30
#define __LWIP_NETDB_H__
31
32
#include "
lwip/opt.h
"
33
34
#if LWIP_DNS && LWIP_SOCKET
35
36
#include <stddef.h>
/* for size_t */
37
38
#include "lwip/inet.h"
39
#include "
lwip/sockets.h
"
40
41
#ifdef __cplusplus
42
extern
"C"
{
43
#endif
44
45
/* some rarely used options */
46
#ifndef LWIP_DNS_API_DECLARE_H_ERRNO
47
#define LWIP_DNS_API_DECLARE_H_ERRNO 1
48
#endif
49
50
#ifndef LWIP_DNS_API_DEFINE_ERRORS
51
#define LWIP_DNS_API_DEFINE_ERRORS 1
52
#endif
53
54
#ifndef LWIP_DNS_API_DECLARE_STRUCTS
55
#define LWIP_DNS_API_DECLARE_STRUCTS 1
56
#endif
57
58
#if LWIP_DNS_API_DEFINE_ERRORS
59
60
#define EAI_NONAME 200
61
#define EAI_SERVICE 201
62
#define EAI_FAIL 202
63
#define EAI_MEMORY 203
64
65
#define HOST_NOT_FOUND 210
66
#define NO_DATA 211
67
#define NO_RECOVERY 212
68
#define TRY_AGAIN 213
69
#endif
/* LWIP_DNS_API_DEFINE_ERRORS */
70
71
#if LWIP_DNS_API_DECLARE_STRUCTS
72
struct
hostent {
73
char
*h_name;
/* Official name of the host. */
74
char
**h_aliases;
/* A pointer to an array of pointers to alternative host names,
75
terminated by a null pointer. */
76
int
h_addrtype;
/* Address type. */
77
int
h_length;
/* The length, in bytes, of the address. */
78
char
**h_addr_list;
/* A pointer to an array of pointers to network addresses (in
79
network byte order) for the host, terminated by a null pointer. */
80
#define h_addr h_addr_list[0]
/* for backward compatibility */
81
};
82
83
struct
addrinfo {
84
int
ai_flags;
/* Input flags. */
85
int
ai_family;
/* Address family of socket. */
86
int
ai_socktype;
/* Socket type. */
87
int
ai_protocol;
/* Protocol of socket. */
88
socklen_t ai_addrlen;
/* Length of socket address. */
89
struct
sockaddr *ai_addr;
/* Socket address of socket. */
90
char
*ai_canonname;
/* Canonical name of service location. */
91
struct
addrinfo *ai_next;
/* Pointer to next in list. */
92
};
93
#endif
/* LWIP_DNS_API_DECLARE_STRUCTS */
94
95
#if LWIP_DNS_API_DECLARE_H_ERRNO
96
/* application accessable error code set by the DNS API functions */
97
extern
int
h_errno;
98
#endif
/* LWIP_DNS_API_DECLARE_H_ERRNO*/
99
100
struct
hostent *lwip_gethostbyname(
const
char
*name);
101
int
lwip_gethostbyname_r(
const
char
*name,
struct
hostent *ret,
char
*buf,
102
size_t
buflen,
struct
hostent **result,
int
*h_errnop);
103
void
lwip_freeaddrinfo(
struct
addrinfo *ai);
104
int
lwip_getaddrinfo(
const
char
*nodename,
105
const
char
*servname,
106
const
struct
addrinfo *hints,
107
struct
addrinfo **res);
108
109
#if LWIP_COMPAT_SOCKETS
110
#define gethostbyname(name) lwip_gethostbyname(name)
111
#define gethostbyname_r(name, ret, buf, buflen, result, h_errnop) \
112
lwip_gethostbyname_r(name, ret, buf, buflen, result, h_errnop)
113
#define freeaddrinfo(addrinfo) lwip_freeaddrinfo(addrinfo)
114
#define getaddrinfo(nodname, servname, hints, res) \
115
lwip_getaddrinfo(nodname, servname, hints, res)
116
#endif
/* LWIP_COMPAT_SOCKETS */
117
118
#ifdef __cplusplus
119
}
120
#endif
121
122
#endif
/* LWIP_DNS && LWIP_SOCKET */
123
124
#endif
/* __LWIP_NETDB_H__ */
lwip
src
include
lwip
netdb.h
Generated on Fri Nov 15 2013 05:00:21 for uc-sdk by
1.8.4