Hi Jim, Thank you for your reply! I do see ad bit in /usr/include/arpa/nameser_compat.h as follows -- does u_short/u_int, and unassigned makes difference?
typedef struct { u_short id; /* query identification number */ #if BYTE_ORDER == BIG_ENDIAN /* fields in third byte */ u_int qr:1; /* response flag */ u_int opcode:4; /* purpose of message */ u_int aa:1; /* authoritive answer */ u_int tc:1; /* truncated message */ u_int rd:1; /* recursion desired */ /* fields in fourth byte */ u_int ra:1; /* recursion available */ u_int ad:1; /* authentic data from named */ u_int cd:1; /* checking disabled by resolver */ u_int unused:1; /* unused bits */ u_int rcode:4; /* response code */ #endif #if BYTE_ORDER == LITTLE_ENDIAN /* fields in third byte */ u_int rd:1; /* recursion desired */ u_int tc:1; /* truncated message */ u_int aa:1; /* authoritive answer */ u_int opcode:4; /* purpose of message */ u_int qr:1; /* response flag */ /* fields in fourth byte */ u_int rcode:4; /* response code */ u_int cd:1; /* checking disabled by resolver */ u_int ad:1; /* authentic data from named */ u_int unused:1; /* unused bits */ u_int ra:1; /* recursion available */ #endif /* remaining bytes */ u_short qdcount; /* number of question entries */ u_short ancount; /* number of answer entries */ u_short nscount; /* number of authority entries */ u_short arcount; /* number of resource entries */ } HEADER; Thank you in advance! Takae Harrington Unix Administrator Cloud Managed Service Delivery (MSD) IBM GTS SO Delivery Office: 720-342-6749 Email: thar...@us.ibm.com From: Jim Reid <j...@rfc1035.com> To: Takae Harrington/Phoenix/IBM@IBMUS Cc: postfix-users@postfix.org Date: 09/03/2015 02:56 PM Subject: Re: postfix3.0.2 compile error on AIX61/71 Sent by: owner-postfix-us...@postfix.org On 3 Sep 2015, at 22:11, Takae Harrington <thar...@us.ibm.com> wrote: > When I compile postfix3.0.2 (the same issue has existed since 2.11.x) on aix61 and aix71, I get this error: > > [vq2ua613:/staging/Postfix-3.0.2]make > dns_lookup.c: In function 'dns_query': > dns_lookup.c:339: error: 'HEADER' has no member named 'ad' It looks like the system #include files are broken or out of date. A HEADER typedef struct is usually defined in <arpa/nameser_compat.h> which lays out the headers found in a DNS query. This should include a field "unsigned ad: 1;" for the AD (Authentic Data) bit which is used in Secure DNS. This 1-bit field appears to be missing from your include files. It shouldn't. The AD bit has been part of the DNS protocol since 2005 and is defined in RFC4033. Here's what you should see in that struct definition: typedef struct { unsigned id :16; /* query identification number */ #if BYTE_ORDER == BIG_ENDIAN /* fields in third byte */ unsigned qr: 1; /* response flag */ unsigned opcode: 4; /* purpose of message */ unsigned aa: 1; /* authoritive answer */ unsigned tc: 1; /* truncated message */ unsigned rd: 1; /* recursion desired */ /* fields in fourth byte */ unsigned ra: 1; /* recursion available */ unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */ unsigned ad: 1; /* authentic data from named */ unsigned cd: 1; /* checking disabled by resolver */ unsigned rcode :4; /* response code */ #endif #if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN /* fields in third byte */ unsigned rd :1; /* recursion desired */ unsigned tc :1; /* truncated message */ unsigned aa :1; /* authoritive answer */ unsigned opcode :4; /* purpose of message */ unsigned qr :1; /* response flag */ /* fields in fourth byte */ unsigned rcode :4; /* response code */ unsigned cd: 1; /* checking disabled by resolver */ unsigned ad: 1; /* authentic data from named */ unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */ unsigned ra :1; /* recursion available */ #endif /* remaining bytes */ unsigned qdcount :16; /* number of question entries */ unsigned ancount :16; /* number of answer entries */ unsigned nscount :16; /* number of authority entries */ unsigned arcount :16; /* number of resource entries */ } HEADER;