added some dns code

This commit is contained in:
2019-02-11 09:24:16 +00:00
parent 3dcbd4a231
commit b40bdf3e8e
4 changed files with 87 additions and 13 deletions

View File

@ -66,25 +66,85 @@ enum mio_dns_rcode_t
};
typedef enum mio_dns_rcode_t mio_dns_rcode_t;
enum mio_dns_qtype_t
{
MIO_DNS_QTYPE_A = 1,
MIO_DNS_QTYPE_NS = 2,
MIO_DNS_QTYPE_CNAME = 5,
MIO_DNS_QTYPE_SOA = 6,
MIO_DNS_QTYPE_PTR = 12,
MIO_DNS_QTYPE_MX = 15,
MIO_DNS_QTYPE_TXT = 16,
MIO_DNS_QTYPE_AAAA = 28,
MIO_DNS_QTYPE_OPT = 41,
MIO_DNS_QTYPE_ANY = 255
};
typedef enum mio_dns_qtype_t mio_dns_qtype_t;
enum mio_dns_qclass_t
{
MIO_DNS_QCLASS_IN = 1, /* internet */
MIO_DNS_QCLASS_CH = 3, /* chaos */
MIO_DNS_QCLASS_HS = 4, /* hesiod */
MIO_DNS_QCLASS_NONE = 254,
MIO_DNS_QCLASS_ANY = 255
};
typedef enum mio_dns_qclass_t mio_dns_qclass_t;
#include <mio-pac1.h>
struct mio_dns_msg_t
{
mio_uint16_t id;
#if defined(MIO_ENDIAN_BIG)
mio_uint16_t qr: 1; /* query(0), answer(1) */
mio_uint16_t opcode: 4; /* operation type */
mio_uint16_t aa: 1; /* authoritative answer */
mio_uint16_t tc: 1; /* truncated. response too large for UDP */
mio_uint16_t rd: 1; /* recursion desired */
mio_uint16_t ra: 1; /* recursion available */
mio_uint16_t unused_1: 1;
mio_uint16_t ad: 1; /* authentication data - dnssec */
mio_uint16_t cd: 1; /* checking disabled - dnssec */
mio_uint16_t rcode: 4;
mio_uint16_t qdcount;
mio_uint16_t ancount;
mio_uint16_t nscount;
mio_uint16_t arcount;
};
#else
mio_uint16_t rd: 1;
mio_uint16_t tc: 1;
mio_uint16_t aa: 1;
mio_uint16_t opcode: 4;
mio_uint16_t qr: 1;
typedef struct mio_dns_msg_t mio-dns
mio_uint16_t rcode: 4;
mio_uint16_t cd: 1;
mio_uint16_t ad: 1;
mio_uint16_t unused_1: 1;
mio_uint16_t ra: 1;
#endif
mio_uint16_t qdcount; /* number of questions */
mio_uint16_t ancount; /* number of answers */
mio_uint16_t nscount; /* number of name servers */
mio_uint16_t arcount; /* number of additional resource */
};
typedef struct mio_dns_msg_t mio_dns_msg_t;
struct mio_dns_qdrechdr_t
{
mio_uint16_t qtype;
mio_uint16_t qclass;
};
typedef struct moo_dns_qdrechdr_t moo_dns_qdrechdr_t;
struct mio_dns_anrechdr_t
{
mio_uint16_t qtype;
mio_uint16_t qclass;
mio_uint32_t ttl;
mio_uint16_t dlen; /* data length */
};
typedef struct moo_dns_ansrechdr_t moo_dns_ansrechdr_t;
#include <mio-upac.h>
#endif