//
//  ZYJQNGetAddrInfo.h
//  ZYJHappyDNS
//
//  Created by bailong on 16/7/19.
//  Copyright © 2016年 Qiniu Cloud Storage. All rights reserved.
//

#ifndef ZYJQNGetAddrInfo_h
#define ZYJQNGetAddrInfo_h

#ifdef __cplusplus
extern "C" {
#endif

typedef struct ZYJQN_ips_ret {
    char *ips[1];
} ZYJQN_ips_ret;

typedef ZYJQN_ips_ret *(*ZYJQN_dns_callback)(const char *host);

typedef void (*ZYJQN_ip_report_callback)(const char *ip, int code, int time_ms);

extern void ZYJQN_free_ips_ret(ZYJQN_ips_ret *ip_list);

extern int ZYJQN_getaddrinfo(const char *hostname, const char *servname, const struct addrinfo *hints, struct addrinfo **res);

extern void ZYJQN_freeaddrinfo(struct addrinfo *ai);

extern void ZYJQN_set_dns_callback(ZYJQN_dns_callback cb);

extern void ZYJQN_set_ip_report_callback(ZYJQN_ip_report_callback cb);

extern void ZYJQN_ip_report(const struct addrinfo *info, int code, int time_ms);

#ifdef __cplusplus
};
#endif

#endif /* ZYJQNGetAddrInfo_h */
