extern struct _ns_flagdata _ns_flagdata[];\r
\r
/* Accessor macros - this is part of the public interface. */\r
+#define ns_msg_getflag(handle, flag) ( \\r
+ ((handle)._flags & _ns_flagdata[flag].mask) \\r
+ >> _ns_flagdata[flag].shift \\r
+ )\r
\r
#define ns_msg_id(handle) ((handle)._id + 0)\r
#define ns_msg_base(handle) ((handle)._msg + 0)\r
ns_uop_max = 2\r
} ns_update_operation;\r
\r
+/*\r
+ * This RR-like structure is particular to UPDATE.\r
+ */\r
+struct _ns_updrec {\r
+ struct _ns_updrec *r_prev; /* prev record */\r
+ struct _ns_updrec *r_next; /* next record */\r
+ u_int8_t r_section; /* ZONE/PREREQUISITE/UPDATE */\r
+ char * r_dname; /* owner of the RR */\r
+ u_int16_t r_class; /* class number */\r
+ u_int16_t r_type; /* type number */\r
+ u_int32_t r_ttl; /* time to live */\r
+ u_char * r_data; /* rdata fields as text string */\r
+ u_int16_t r_size; /* size of r_data field */\r
+ int r_opcode; /* type of operation */\r
+ /* following fields for private use by the resolver/server routines */\r
+ struct _ns_updrec *r_grpnext; /* next record when grouped */\r
+ struct databuf *r_dp; /* databuf to process */\r
+ struct databuf *r_deldp; /* databuf's deleted/overwritten */\r
+ u_int16_t r_zone; /* zone number on server */\r
+};\r
+typedef struct _ns_updrec ns_updrec;\r
+\r
/*%\r
* This structure is used for TSIG authenticated messages\r
*/\r
#define NS_PUT16(s, cp) do { \\r
uint32_t t_s = (uint32_t)(s); \\r
u_char *t_cp = (u_char *)(cp); \\r
- *t_cp++ = t_s >> 8; \\r
- *t_cp = t_s; \\r
+ *t_cp++ = (u_char)( t_s >> 8 ); \\r
+ *t_cp = (u_char)( t_s ); \\r
(cp) += NS_INT16SZ; \\r
} while (/*CONSTCOND*/0)\r
\r
#define NS_PUT32(l, cp) do { \\r
uint32_t t_l = (uint32_t)(l); \\r
u_char *t_cp = (u_char *)(cp); \\r
- *t_cp++ = t_l >> 24; \\r
- *t_cp++ = t_l >> 16; \\r
- *t_cp++ = t_l >> 8; \\r
- *t_cp = t_l; \\r
+ *t_cp++ = (u_char)( t_l >> 24 ); \\r
+ *t_cp++ = (u_char)( t_l >> 16 ); \\r
+ *t_cp++ = (u_char)( t_l >> 8 ); \\r
+ *t_cp = (u_char)( t_l ); \\r
(cp) += NS_INT32SZ; \\r
} while (/*CONSTCOND*/0)\r
\r
/*%\r
* ANSI C identifier hiding for bind's lib/nameser.\r
*/\r
-#define ns_msg_getflag __ns_msg_getflag\r
#define ns_get16 __ns_get16\r
#define ns_get32 __ns_get32\r
#define ns_put16 __ns_put16\r
#define ns_samename __ns_samename\r
\r
__BEGIN_DECLS\r
-int ns_msg_getflag(ns_msg, int);\r
uint16_t ns_get16(const u_char *);\r
uint32_t ns_get32(const u_char *);\r
void ns_put16(uint16_t, u_char *);\r