pull out struct types of complex rdata fields
This commit is contained in:
parent
9c10a75f3d
commit
4b30ebdb77
1 changed files with 53 additions and 41 deletions
|
|
@ -35,35 +35,22 @@ typedef struct dns_question {
|
||||||
uint16_t qclass;
|
uint16_t qclass;
|
||||||
} dns_question_t;
|
} dns_question_t;
|
||||||
|
|
||||||
typedef struct dns_rr {
|
typedef struct {
|
||||||
char* name;
|
|
||||||
uint16_t type;
|
|
||||||
uint16_t class;
|
|
||||||
uint32_t ttl; // cmos is also acceptable.
|
|
||||||
uint16_t rdlength;
|
|
||||||
union {
|
|
||||||
char* cname;
|
|
||||||
struct {
|
|
||||||
uint8_t* cpu;
|
uint8_t* cpu;
|
||||||
uint8_t* os;
|
uint8_t* os;
|
||||||
} hinfo;
|
} dns_rr_hinfo_t;
|
||||||
char* mb;
|
|
||||||
char* md;
|
typedef struct {
|
||||||
char* mf;
|
|
||||||
char* mg;
|
|
||||||
struct {
|
|
||||||
char* rmailbx;
|
char* rmailbx;
|
||||||
char* emailbx;
|
char* emailbx;
|
||||||
} minfo;
|
} dns_rr_minfo_t;
|
||||||
char* mr;
|
|
||||||
struct {
|
typedef struct {
|
||||||
uint16_t preference;
|
uint16_t preference;
|
||||||
char* exchange;
|
char* exchange;
|
||||||
} mx;
|
} dns_rr_mx_t;
|
||||||
uint8_t* null;
|
|
||||||
char* ns;
|
typedef struct {
|
||||||
char* ptr;
|
|
||||||
struct {
|
|
||||||
char* mname;
|
char* mname;
|
||||||
char* rname;
|
char* rname;
|
||||||
uint32_t serial;
|
uint32_t serial;
|
||||||
|
|
@ -71,18 +58,43 @@ typedef struct dns_rr {
|
||||||
uint32_t retry;
|
uint32_t retry;
|
||||||
uint32_t expire;
|
uint32_t expire;
|
||||||
uint32_t minimum;
|
uint32_t minimum;
|
||||||
} soa;
|
} dns_rr_soa_t;
|
||||||
struct {
|
|
||||||
|
typedef struct {
|
||||||
size_t count;
|
size_t count;
|
||||||
uint8_t** txt_data;
|
uint8_t** txt_data;
|
||||||
} txt;
|
} dns_rr_txt_t;
|
||||||
uint32_t a;
|
|
||||||
struct {
|
typedef struct {
|
||||||
uint32_t address;
|
uint32_t address;
|
||||||
uint8_t protocol;
|
uint8_t protocol;
|
||||||
size_t len;
|
size_t len;
|
||||||
uint8_t* bit_map;
|
uint8_t* bit_map;
|
||||||
} wks;
|
} dns_rr_wks_t;
|
||||||
|
|
||||||
|
typedef struct dns_rr {
|
||||||
|
char* name;
|
||||||
|
uint16_t type;
|
||||||
|
uint16_t class;
|
||||||
|
uint32_t ttl; // cmos is also acceptable.
|
||||||
|
uint16_t rdlength;
|
||||||
|
union {
|
||||||
|
uint32_t a;
|
||||||
|
char* ns;
|
||||||
|
char* md;
|
||||||
|
char* mf;
|
||||||
|
char* cname;
|
||||||
|
dns_rr_soa_t soa;
|
||||||
|
char* mb;
|
||||||
|
char* mg;
|
||||||
|
char* mr;
|
||||||
|
uint8_t* null;
|
||||||
|
dns_rr_wks_t wks;
|
||||||
|
char* ptr;
|
||||||
|
dns_rr_hinfo_t hinfo;
|
||||||
|
dns_rr_minfo_t minfo;
|
||||||
|
dns_rr_mx_t mx;
|
||||||
|
dns_rr_txt_t txt;
|
||||||
};
|
};
|
||||||
} dns_rr_t;
|
} dns_rr_t;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue