about summary refs log tree commit diff
path: root/nis
diff options
context:
space:
mode:
Diffstat (limited to 'nis')
-rw-r--r--nis/rpcsvc/yp.h10
-rw-r--r--nis/rpcsvc/yp.x16
-rw-r--r--nis/rpcsvc/yp_prot.h14
3 files changed, 38 insertions, 2 deletions
diff --git a/nis/rpcsvc/yp.h b/nis/rpcsvc/yp.h
index 0bee83b259..40914c5813 100644
--- a/nis/rpcsvc/yp.h
+++ b/nis/rpcsvc/yp.h
@@ -221,8 +221,18 @@ bool_t xdr_ypresp_val();
 
 struct ypresp_key_val {
 	ypstat stat;
+#ifdef STUPID_SUN_BUG
+	/* This is the form as distributed by Sun.  But even the Sun NIS
+	   servers expect the values in the other order.  So their
+	   implementation somehow must change the order internally.  We
+	   don't want to follow this bad example since the user should be
+	   able to use rpcgen on this file.  */
 	keydat key;
 	valdat val;
+#else
+	valdat val;
+	keydat key;
+#endif
 };
 typedef struct ypresp_key_val ypresp_key_val;
 #ifdef __cplusplus
diff --git a/nis/rpcsvc/yp.x b/nis/rpcsvc/yp.x
index 6be27820b3..b1b25658eb 100644
--- a/nis/rpcsvc/yp.x
+++ b/nis/rpcsvc/yp.x
@@ -114,8 +114,18 @@ struct ypresp_val {
 
 struct ypresp_key_val {
 	ypstat stat;
+#ifdef STUPID_SUN_BUG
+	/* This is the form as distributed by Sun.  But even the Sun NIS
+	   servers expect the values in the other order.  So their
+	   implementation somehow must change the order internally.  We
+	   don't want to follow this bad example since the user should be
+	   able to use rpcgen on this file.  */
 	keydat key;
 	valdat val;
+#else
+	valdat val;
+	keydat key;
+#endif
 };
 
 
@@ -267,6 +277,12 @@ program YPPUSH_XFRRESPPROG {
 		YPPUSHPROC_NULL(void) = 0;
 
 #ifdef STUPID_SUN_BUG
+		/* This is the form as distributed by Sun.  But even
+		   the Sun NIS servers expect the values in the other
+		   order.  So their implementation somehow must change
+		   the order internally.  We don't want to follow this
+		   bad example since the user should be able to use
+		   rpcgen on this file.  */
 		yppushresp_xfr
 		YPPUSHPROC_XFRRESP(void) = 1;
 #else
diff --git a/nis/rpcsvc/yp_prot.h b/nis/rpcsvc/yp_prot.h
index bee84351bb..0c5a7101f7 100644
--- a/nis/rpcsvc/yp_prot.h
+++ b/nis/rpcsvc/yp_prot.h
@@ -154,8 +154,18 @@ struct ypresp_val {
 
 struct ypresp_key_val {
   ypstat status;
-  keydat keydat;
-  valdat valdat;
+#ifdef STUPID_SUN_BUG
+  /* This is the form as distributed by Sun.  But even the Sun NIS
+     servers expect the values in the other order.  So their
+     implementation somehow must change the order internally.  We
+     don't want to follow this bad example since the user should be
+     able to use rpcgen on this file.  */
+  keydat key;
+  valdat val;
+#else
+  valdat val;
+  keydat key;
+#endif
 };
 
 struct ypresp_master {