1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */ 21a32bf41SRobin Getz /* 31a32bf41SRobin Getz * (C) Masami Komiya <mkomiya@sonare.it> 2005 41a32bf41SRobin Getz * Copyright 2009, Robin Getz <rgetz@blackfin.uclinux.org> 51a32bf41SRobin Getz */ 61a32bf41SRobin Getz 71a32bf41SRobin Getz #ifndef __DNS_H__ 81a32bf41SRobin Getz #define __DNS_H__ 91a32bf41SRobin Getz 101a32bf41SRobin Getz #define DNS_SERVICE_PORT 53 111a32bf41SRobin Getz #define DNS_TIMEOUT 10000UL 121a32bf41SRobin Getz 131a32bf41SRobin Getz /* http://en.wikipedia.org/wiki/List_of_DNS_record_types */ 141a32bf41SRobin Getz enum dns_query_type { 151a32bf41SRobin Getz DNS_A_RECORD = 0x01, 161a32bf41SRobin Getz DNS_CNAME_RECORD = 0x05, 171a32bf41SRobin Getz DNS_MX_RECORD = 0x0f, 181a32bf41SRobin Getz }; 191a32bf41SRobin Getz 201a32bf41SRobin Getz /* 211a32bf41SRobin Getz * DNS network packet 221a32bf41SRobin Getz */ 231a32bf41SRobin Getz struct header { 241a32bf41SRobin Getz uint16_t tid; /* Transaction ID */ 251a32bf41SRobin Getz uint16_t flags; /* Flags */ 261a32bf41SRobin Getz uint16_t nqueries; /* Questions */ 271a32bf41SRobin Getz uint16_t nanswers; /* Answers */ 281a32bf41SRobin Getz uint16_t nauth; /* Authority PRs */ 291a32bf41SRobin Getz uint16_t nother; /* Other PRs */ 301a32bf41SRobin Getz unsigned char data[1]; /* Data, variable length */ 31704f3acfSDenis Pynkin } __attribute__((packed)); 321a32bf41SRobin Getz 33786eac5fSJoe Hershberger void dns_start(void); /* Begin DNS */ 341a32bf41SRobin Getz 351a32bf41SRobin Getz #endif 36