]> git.proxmox.com Git - mirror_edk2.git/blobdiff - StdLib/Include/arpa/nameser.h
Add Socket Libraries.
[mirror_edk2.git] / StdLib / Include / arpa / nameser.h
index c4db9efc86e8afd5d2fb3a399fbf42b48de59e6f..8f8a840f5be7d1cf4f947591392729188b2705b0 100644 (file)
@@ -126,6 +126,10 @@ struct _ns_flagdata {  int mask, shift;  };
 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
@@ -217,6 +221,28 @@ typedef enum __ns_update_operation {
   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
@@ -456,25 +482,24 @@ typedef enum __ns_cert_types {
 #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
@@ -511,7 +536,6 @@ typedef enum __ns_cert_types {
 #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