| 
version 1.1.1.2, 2014/06/15 16:31:38
 | 
version 1.1.1.3, 2016/11/02 09:57:01
 | 
| 
 Line 1
 | 
 Line 1
 | 
| /* dnsmasq is Copyright (c) 2000-2014 Simon Kelley | /* dnsmasq is Copyright (c) 2000-2016 Simon Kelley | 
 |   | 
   | 
 |     This program is free software; you can redistribute it and/or modify | 
     This program is free software; you can redistribute it and/or modify | 
 |     it under the terms of the GNU General Public License as published by | 
     it under the terms of the GNU General Public License as published by | 
| 
 Line 16
 | 
 Line 16
 | 
 |   | 
   | 
 |  #define NAMESERVER_PORT 53 | 
  #define NAMESERVER_PORT 53 | 
 |  #define TFTP_PORT       69 | 
  #define TFTP_PORT       69 | 
 |   | 
  #define MAX_PORT        65535u | 
 |   | 
   | 
 |  #define IN6ADDRSZ       16 | 
  #define IN6ADDRSZ       16 | 
 |  #define INADDRSZ        4 | 
  #define INADDRSZ        4 | 
| 
 Line 77
 | 
 Line 78
 | 
 |   | 
   | 
 |  #define EDNS0_OPTION_MAC            65001 /* dyndns.org temporary assignment */ | 
  #define EDNS0_OPTION_MAC            65001 /* dyndns.org temporary assignment */ | 
 |  #define EDNS0_OPTION_CLIENT_SUBNET  8     /* IANA */ | 
  #define EDNS0_OPTION_CLIENT_SUBNET  8     /* IANA */ | 
 |   | 
  #define EDNS0_OPTION_NOMDEVICEID    65073 /* Nominum temporary assignment */ | 
 |   | 
  #define EDNS0_OPTION_NOMCPEID       65074 /* Nominum temporary assignment */ | 
 |   | 
   | 
 |  struct dns_header { | 
  struct dns_header { | 
 |    u16 id; | 
    u16 id; | 
| 
 Line 84  struct dns_header {
 | 
 Line 87  struct dns_header {
 | 
 |    u16 qdcount,ancount,nscount,arcount; | 
    u16 qdcount,ancount,nscount,arcount; | 
 |  }; | 
  }; | 
 |   | 
   | 
| #define HB3_QR       0x80 | #define HB3_QR       0x80 /* Query */ | 
 |  #define HB3_OPCODE   0x78 | 
  #define HB3_OPCODE   0x78 | 
| #define HB3_AA       0x04 | #define HB3_AA       0x04 /* Authoritative Answer */ | 
| #define HB3_TC       0x02 | #define HB3_TC       0x02 /* TrunCated */ | 
| #define HB3_RD       0x01 | #define HB3_RD       0x01 /* Recursion Desired */ | 
 |   | 
   | 
| #define HB4_RA       0x80 | #define HB4_RA       0x80 /* Recursion Available */ | 
| #define HB4_AD       0x20 | #define HB4_AD       0x20 /* Authenticated Data */ | 
| #define HB4_CD       0x10 | #define HB4_CD       0x10 /* Checking Disabled */ | 
 |  #define HB4_RCODE    0x0f | 
  #define HB4_RCODE    0x0f | 
 |   | 
   | 
 |  #define OPCODE(x)          (((x)->hb3 & HB3_OPCODE) >> 3) | 
  #define OPCODE(x)          (((x)->hb3 & HB3_OPCODE) >> 3) | 
| 
 Line 142  struct dns_header {
 | 
 Line 145  struct dns_header {
 | 
 |   | 
   | 
 |  #define ADD_RDLEN(header, pp, plen, len) \ | 
  #define ADD_RDLEN(header, pp, plen, len) \ | 
 |    (!CHECK_LEN(header, pp, plen, len) ? 0 : (((pp) += (len)), 1)) | 
    (!CHECK_LEN(header, pp, plen, len) ? 0 : (((pp) += (len)), 1)) | 
 |   | 
   | 
 |   | 
  /* Escape character in our presentation format for names. | 
 |   | 
     Cannot be '.' or /000 and must be !isprint(). | 
 |   | 
     Note that escaped chars are stored as | 
 |   | 
     <NAME_ESCAPE> <orig-char+1> | 
 |   | 
     to ensure that the escaped form of /000 doesn't include /000 | 
 |   | 
  */ | 
 |   | 
  #define NAME_ESCAPE 1 |