123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- #ifndef HEADER_CURL_HOSTIP_H
- #define HEADER_CURL_HOSTIP_H
- #include "curl_setup.h"
- #include "hash.h"
- #include "curl_addrinfo.h"
- #include "asyn.h"
- #ifdef HAVE_SETJMP_H
- #include <setjmp.h>
- #endif
- #ifdef NETWARE
- #undef in_addr_t
- #define in_addr_t unsigned long
- #endif
- #define CURL_HOSTENT_SIZE 9000
- #define CURL_TIMEOUT_RESOLVE 300
- #define CURL_ASYNC_SUCCESS CURLE_OK
- struct addrinfo;
- struct hostent;
- struct Curl_easy;
- struct connectdata;
- struct curl_hash *Curl_global_host_cache_init(void);
- void Curl_global_host_cache_dtor(void);
- struct Curl_dns_entry {
- Curl_addrinfo *addr;
-
- time_t timestamp;
-
- long inuse;
- };
- #define CURLRESOLV_TIMEDOUT -2
- #define CURLRESOLV_ERROR -1
- #define CURLRESOLV_RESOLVED 0
- #define CURLRESOLV_PENDING 1
- int Curl_resolv(struct connectdata *conn, const char *hostname,
- int port, struct Curl_dns_entry **dnsentry);
- int Curl_resolv_timeout(struct connectdata *conn, const char *hostname,
- int port, struct Curl_dns_entry **dnsentry,
- time_t timeoutms);
- #ifdef CURLRES_IPV6
- bool Curl_ipv6works(void);
- #else
- #define Curl_ipv6works() FALSE
- #endif
- bool Curl_ipvalid(struct connectdata *conn);
- Curl_addrinfo *Curl_getaddrinfo(struct connectdata *conn,
- const char *hostname,
- int port,
- int *waitp);
- void Curl_resolv_unlock(struct Curl_easy *data,
- struct Curl_dns_entry *dns);
- void Curl_scan_cache_used(void *user, void *ptr);
- int Curl_mk_dnscache(struct curl_hash *hash);
- void Curl_hostcache_prune(struct Curl_easy *data);
- int Curl_num_addresses(const Curl_addrinfo *addr);
- #if defined(CURLDEBUG) && defined(HAVE_GETNAMEINFO)
- int curl_dogetnameinfo(GETNAMEINFO_QUAL_ARG1 GETNAMEINFO_TYPE_ARG1 sa,
- GETNAMEINFO_TYPE_ARG2 salen,
- char *host, GETNAMEINFO_TYPE_ARG46 hostlen,
- char *serv, GETNAMEINFO_TYPE_ARG46 servlen,
- GETNAMEINFO_TYPE_ARG7 flags,
- int line, const char *source);
- #endif
- Curl_addrinfo *Curl_ipv4_resolve_r(const char *hostname, int port);
- CURLcode Curl_async_resolved(struct connectdata *conn,
- bool *protocol_connect);
- #ifndef CURLRES_ASYNCH
- #define Curl_async_resolved(x,y) CURLE_OK
- #endif
- CURLcode Curl_addrinfo_callback(struct connectdata *conn,
- int status,
- Curl_addrinfo *ai);
- const char *Curl_printable_address(const Curl_addrinfo *ip,
- char *buf, size_t bufsize);
- struct Curl_dns_entry *
- Curl_fetch_addr(struct connectdata *conn,
- const char *hostname,
- int port);
- CURLcode Curl_shuffle_addr(struct Curl_easy *data, Curl_addrinfo **addr);
- struct Curl_dns_entry *
- Curl_cache_addr(struct Curl_easy *data, Curl_addrinfo *addr,
- const char *hostname, int port);
- #ifndef INADDR_NONE
- #define CURL_INADDR_NONE (in_addr_t) ~0
- #else
- #define CURL_INADDR_NONE INADDR_NONE
- #endif
- #ifdef HAVE_SIGSETJMP
- extern sigjmp_buf curl_jmpenv;
- #endif
- CURLcode Curl_set_dns_servers(struct Curl_easy *data, char *servers);
- CURLcode Curl_set_dns_interface(struct Curl_easy *data,
- const char *interf);
- CURLcode Curl_set_dns_local_ip4(struct Curl_easy *data,
- const char *local_ip4);
- CURLcode Curl_set_dns_local_ip6(struct Curl_easy *data,
- const char *local_ip6);
- void Curl_hostcache_clean(struct Curl_easy *data, struct curl_hash *hash);
- void Curl_hostcache_destroy(struct Curl_easy *data);
- CURLcode Curl_loadhostpairs(struct Curl_easy *data);
- #endif
|