dns_def.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * dns_def.h
  3. *
  4. * Created on: 2022年4月13日
  5. * Author: Administrator
  6. */
  7. #ifndef __ETHERNET_COMMON_DNS_DEF_H__
  8. #define __ETHERNET_COMMON_DNS_DEF_H__
  9. #define DNS_SERVER_PORT (53)
  10. #define MAX_DNS_SERVER 4
  11. #include "luat_network_adapter.h"
  12. typedef struct
  13. {
  14. llist_head node;
  15. Buffer_Struct uri; //动态需要释放
  16. luat_dns_ip_result ip_result[MAX_DNS_IP];
  17. void *param;
  18. int result;
  19. uint8_t adapter_index;
  20. }luat_dns_require_t;
  21. typedef struct
  22. {
  23. luat_ip_addr_t dns_server[MAX_DNS_SERVER];
  24. llist_head process_head;
  25. llist_head require_head;
  26. uint16_t session_id;
  27. uint8_t is_static_dns[MAX_DNS_SERVER];
  28. uint8_t is_run;
  29. uint8_t new_result;
  30. }dns_client_t;
  31. void dns_init_client(dns_client_t *client);
  32. uint8_t dns_check_uri(const char *uri, uint32_t uri_len);
  33. void dns_require(dns_client_t *client, const char *domain_name, uint32_t len, void *param);
  34. void dns_require_ex(dns_client_t *client, const char *domain_name, void *param, uint8_t adapter_index);
  35. void dns_require_ipv6(dns_client_t *client, const char *domain_name, void *param, uint8_t adapter_index, uint8_t is_ipv6);
  36. void dns_clear(dns_client_t *client);
  37. void dns_run(dns_client_t *client, Buffer_Struct *in, Buffer_Struct *out, int *server_cnt);
  38. #endif /* __ETHERNET_COMMON_DNS_DEF_H__ */