1*1a32bf41SRobin Getz /* 2*1a32bf41SRobin Getz * (C) Masami Komiya <mkomiya@sonare.it> 2005 3*1a32bf41SRobin Getz * Copyright 2009, Robin Getz <rgetz@blackfin.uclinux.org> 4*1a32bf41SRobin Getz * 5*1a32bf41SRobin Getz * This program is free software; you can redistribute it and/or 6*1a32bf41SRobin Getz * modify it under the terms of the GNU General Public License as 7*1a32bf41SRobin Getz * published by the Free Software Foundation; either version 2, or (at 8*1a32bf41SRobin Getz * your option) any later version. 9*1a32bf41SRobin Getz */ 10*1a32bf41SRobin Getz 11*1a32bf41SRobin Getz #ifndef __DNS_H__ 12*1a32bf41SRobin Getz #define __DNS_H__ 13*1a32bf41SRobin Getz 14*1a32bf41SRobin Getz #define DNS_SERVICE_PORT 53 15*1a32bf41SRobin Getz #define DNS_TIMEOUT 10000UL 16*1a32bf41SRobin Getz 17*1a32bf41SRobin Getz /* http://en.wikipedia.org/wiki/List_of_DNS_record_types */ 18*1a32bf41SRobin Getz enum dns_query_type { 19*1a32bf41SRobin Getz DNS_A_RECORD = 0x01, 20*1a32bf41SRobin Getz DNS_CNAME_RECORD = 0x05, 21*1a32bf41SRobin Getz DNS_MX_RECORD = 0x0f, 22*1a32bf41SRobin Getz }; 23*1a32bf41SRobin Getz 24*1a32bf41SRobin Getz /* 25*1a32bf41SRobin Getz * DNS network packet 26*1a32bf41SRobin Getz */ 27*1a32bf41SRobin Getz struct header { 28*1a32bf41SRobin Getz uint16_t tid; /* Transaction ID */ 29*1a32bf41SRobin Getz uint16_t flags; /* Flags */ 30*1a32bf41SRobin Getz uint16_t nqueries; /* Questions */ 31*1a32bf41SRobin Getz uint16_t nanswers; /* Answers */ 32*1a32bf41SRobin Getz uint16_t nauth; /* Authority PRs */ 33*1a32bf41SRobin Getz uint16_t nother; /* Other PRs */ 34*1a32bf41SRobin Getz unsigned char data[1]; /* Data, variable length */ 35*1a32bf41SRobin Getz }; 36*1a32bf41SRobin Getz 37*1a32bf41SRobin Getz extern void DnsStart(void); /* Begin DNS */ 38*1a32bf41SRobin Getz 39*1a32bf41SRobin Getz #endif 40