|
iPXE
|
DNS protocol. More...
Go to the source code of this file.
Data Structures | |
| struct | dns_name |
| An RFC1035-encoded DNS name. More... | |
| struct | dns_header |
| A DNS packet header. More... | |
| struct | dns_question |
| A DNS question. More... | |
| struct | dns_rr_common |
| A DNS resource record. More... | |
| struct | dns_rr_a |
| A DNS "A" record. More... | |
| struct | dns_rr_aaaa |
| A DNS "AAAA" record. More... | |
| struct | dns_rr_cname |
| A DNS "CNAME" record. More... | |
| union | dns_rr |
| A DNS resource record. More... | |
Macros | |
| #define | DNS_PORT 53 |
| DNS server port. More... | |
| #define | DNS_IS_COMPRESSED(byte) ( (byte) & 0xc0 ) |
| Test for a DNS compression pointer. More... | |
| #define | DNS_COMPRESSED_OFFSET(word) ( (word) & ~0xc000 ) |
| Extract DNS compression pointer. More... | |
| #define | DNS_LABEL_LEN(byte) ( (byte) & ~0xc0 ) |
| Extract DNS label length. More... | |
| #define | DNS_MAX_LABEL_LEN 0x3f |
| Maximum length of a single DNS label. More... | |
| #define | DNS_MAX_NAME_LEN 255 |
| Maximum length of a DNS name (mandated by RFC1035 section 2.3.4) More... | |
| #define | DNS_MAX_CNAME_RECURSION 32 |
| Maximum depth of CNAME recursion. More... | |
| #define | DNS_FLAG_RD 0x0100 |
| Recursion desired flag. More... | |
| #define | DNS_CLASS_IN 1 |
| DNS class "IN". More... | |
| #define | DNS_TYPE_A 1 |
| Type of a DNS "A" record. More... | |
| #define | DNS_TYPE_AAAA 28 |
| Type of a DNS "AAAA" record. More... | |
| #define | DNS_TYPE_CNAME 5 |
| Type of a DNS "NAME" record. More... | |
Functions | |
| FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
| int | dns_encode (const char *string, struct dns_name *name) |
| Encode a DNS name using RFC1035 encoding. More... | |
| int | dns_decode (struct dns_name *name, char *data, size_t len) |
| Decode RFC1035-encoded DNS name. More... | |
| int | dns_compare (struct dns_name *first, struct dns_name *second) |
| Compare DNS names for equality. More... | |
| int | dns_copy (struct dns_name *src, struct dns_name *dst) |
| Copy a DNS name. More... | |
| int | dns_skip (struct dns_name *name) |
| Skip RFC1035-encoded DNS name. More... | |
DNS protocol.
Definition in file dns.h.
| #define DNS_MAX_LABEL_LEN 0x3f |
| #define DNS_MAX_NAME_LEN 255 |
| #define DNS_MAX_CNAME_RECURSION 32 |
| FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
| int dns_encode | ( | const char * | string, |
| struct dns_name * | name | ||
| ) |
Encode a DNS name using RFC1035 encoding.
| string | DNS name as a string |
| name | DNS name to fill in |
| len | Length of DNS name, or negative error |
Definition at line 100 of file dns.c.
References DNS_MAX_LABEL_LEN, EINVAL, end, len, name, and start.
Referenced by apply_dns_search(), dns_encode_fail_okx(), dns_encode_okx(), and dns_resolv().
Decode RFC1035-encoded DNS name.
| name | DNS name |
| data | Output buffer |
| len | Length of output buffer |
| len | Length of decoded DNS name, or negative error |
Definition at line 216 of file dns.c.
References data, dns_label(), EINVAL, len, memcpy(), name, and offset.
Referenced by dns_decode_fail_okx(), dns_decode_okx(), dns_list_okx(), dns_name(), dns_progress(), and format_dnssl_setting().
Compare DNS names for equality.
| first | First DNS name |
| second | Second DNS name |
| rc | Return status code |
Definition at line 267 of file dns.c.
References dns_name::data, dns_label(), EINVAL, ENOENT, first, len, dns_name::offset, and tolower().
Referenced by dns_compare_fail_okx(), dns_compare_okx(), and dns_xfer_deliver().
Copy a DNS name.
| src | Source DNS name |
| dst | Destination DNS name |
| len | Length of copied DNS name, or negative error |
Definition at line 321 of file dns.c.
References dns_name::data, dns_label(), EINVAL, dns_name::len, len, memcpy(), dns_name::offset, and src.
Referenced by dns_copy_fail_okx(), dns_copy_okx(), dns_question(), and dns_xfer_deliver().
| int dns_skip | ( | struct dns_name * | name | ) |
Skip RFC1035-encoded DNS name.
| name | DNS name |
| offset | Offset to next name, or negative error |
Definition at line 364 of file dns.c.
References dns_label(), EINVAL, name, and offset.
Referenced by dns_list_okx(), dns_skip_search(), and dns_xfer_deliver().
1.8.15