41 lines
1.2 KiB
C
41 lines
1.2 KiB
C
#ifndef COSMOPOLITAN_LIBC_DNS_DNS_H_
|
|
#define COSMOPOLITAN_LIBC_DNS_DNS_H_
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
COSMOPOLITAN_C_START_
|
|
|
|
#define DNS_PORT 53
|
|
#define DNS_NAME_MAX 253
|
|
#define DNS_LABEL_MAX 63
|
|
|
|
struct sockaddr;
|
|
struct sockaddr_in;
|
|
struct ResolvConf;
|
|
|
|
struct addrinfo {
|
|
int32_t ai_flags; /* AI_XXX */
|
|
int32_t ai_family; /* AF_INET */
|
|
int32_t ai_socktype; /* SOCK_XXX */
|
|
int32_t ai_protocol; /* IPPROTO_XXX */
|
|
uint32_t ai_addrlen;
|
|
union {
|
|
struct sockaddr *ai_addr;
|
|
struct sockaddr_in *ai_addr4;
|
|
};
|
|
char *ai_canonname /*[DNS_NAME_MAX + 1]*/;
|
|
struct addrinfo *ai_next;
|
|
};
|
|
|
|
int getaddrinfo(const char *, const char *, const struct addrinfo *,
|
|
struct addrinfo **) paramsnonnull((4));
|
|
int freeaddrinfo(struct addrinfo *);
|
|
const char *eai2str(int);
|
|
int dnsnamecmp(const char *, const char *) paramsnonnull();
|
|
int pascalifydnsname(uint8_t *, size_t, const char *) paramsnonnull();
|
|
int resolvedns(const struct ResolvConf *, int, const char *, struct sockaddr *,
|
|
uint32_t) paramsnonnull();
|
|
struct addrinfo *newaddrinfo(uint16_t);
|
|
|
|
COSMOPOLITAN_C_END_
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|
#endif /* COSMOPOLITAN_LIBC_DNS_DNS_H_ */
|