summary refs log tree commit diff
path: root/nis/rpcsvc
diff options
context:
space:
mode:
Diffstat (limited to 'nis/rpcsvc')
-rw-r--r--nis/rpcsvc/nis.h52
-rw-r--r--nis/rpcsvc/nis.x118
-rw-r--r--nis/rpcsvc/nis_cache.h47
-rw-r--r--nis/rpcsvc/nis_cache.x47
-rw-r--r--nis/rpcsvc/nis_object.x34
-rw-r--r--nis/rpcsvc/nis_tags.h7
-rw-r--r--nis/rpcsvc/nislib.h20
-rw-r--r--nis/rpcsvc/ypupd.h2
8 files changed, 139 insertions, 188 deletions
diff --git a/nis/rpcsvc/nis.h b/nis/rpcsvc/nis.h
index f94b96cba4..c0d25325c1 100644
--- a/nis/rpcsvc/nis.h
+++ b/nis/rpcsvc/nis.h
@@ -46,14 +46,15 @@ __BEGIN_DECLS
  *	which defines the tag values. This allows the tags to change without
  *	having to change the nis.x file.
  *
- *	NOTE : DO NOT EDIT THIS FILE! It is automatically generated when
- *	       rpcgen is run on the nis.x file. Note that there is a
- *	       simple sed script to remove some unneeded lines. (See the
- *	       Makefile target nis.h)
+ *	NOTE : THIS FILE IS NOT GENERATED WITH RPCGEN ! SO YOU HAVE TO
+ *             ADD ALL THE CHANGES ON nis_*.x FILES HERE AGAIN !
  *
+ *      I have removed all the Solaris internal structs and variables,
+ *      because they are not supported, Sun changed them between various
+ *      releases and they shouldn't be used in user programs.
+ *                                              <kukuk@vt.uni-paderborn.de>
  */
 
-#pragma ident	"@(#)nis_object.x	1.7	92/07/14 SMI"
 
 #ifndef __nis_object_h
 #define __nis_object_h
@@ -94,6 +95,14 @@ enum zotypes {
 	ENTRY_OBJ = 5,
 	LINK_OBJ = 6,
 	PRIVATE_OBJ = 7,
+	NIS_BOGUS_OBJ = 0,
+	NIS_NO_OBJ = 1,
+	NIS_DIRECTORY_OBJ = 2,
+	NIS_GROUP_OBJ = 3,
+	NIS_TABLE_OBJ = 4,
+	NIS_ENTRY_OBJ = 5,
+	NIS_LINK_OBJ = 6,
+	NIS_PRIVATE_OBJ = 7
 };
 typedef enum zotypes zotypes;
 extern  bool_t xdr_zotypes __P ((XDR *, zotypes*));
@@ -472,30 +481,6 @@ struct fd_result {
 typedef struct fd_result fd_result;
 extern  bool_t xdr_fd_result __P ((XDR *, fd_result*));
 
-/*
- * Generic "hash" datastructures, used by all types of hashed data.
- */
-struct nis_hash_data {
-	nis_name		name;	   /* NIS name of hashed item      */
-	int			keychain;  /* It's hash key (for pop)      */
-	struct nis_hash_data	*next;	   /* Hash collision pointer       */
-	struct nis_hash_data	*prv_item; /* A serial, doubly linked list */
-	struct nis_hash_data	*nxt_item; /* of items in the hash table   */
-};
-typedef struct nis_hash_data NIS_HASH_ITEM;
-
-struct nis_hash_table {
-	NIS_HASH_ITEM	*keys[64];	/* A hash table of items           */
-	NIS_HASH_ITEM	*first;		/* The first "item" in serial list */
-};
-typedef struct nis_hash_table NIS_HASH_TABLE;
-
-/* Structure for storing dynamically allocated static data */
-struct nis_sdata {
-	void	*buf;	/* Memory allocation pointer 	*/
-	u_long	size;	/* Buffer size			*/
-};
-
 /* Generic client creating flags */
 #define ZMH_VC		1
 #define ZMH_DG		2
@@ -508,6 +493,15 @@ struct nis_sdata {
 #define NIS_CREATE_ACC		4
 #define NIS_DESTROY_ACC	8
 /* Test macros. a == access rights, m == desired rights. */
+#define NIS_WORLD(a, m)        (((a) & (m)) != 0)
+#define NIS_GROUP(a, m)        (((a) & ((m) << 8)) != 0)
+#define NIS_OWNER(a, m)        (((a) & ((m) << 16)) != 0)
+#define NIS_NOBODY(a, m)       (((a) & ((m) << 24)) != 0)
+/*
+ * EOL Alert - The following non-prefixed test macros are
+ * here for backward compatability, and will be not be present
+ * in future releases - use the NIS_*() macros above.
+ */
 #define WORLD(a, m)	(((a) & (m)) != 0)
 #define GROUP(a, m)	(((a) & ((m) << 8)) != 0)
 #define OWNER(a, m)	(((a) & ((m) << 16)) != 0)
diff --git a/nis/rpcsvc/nis.x b/nis/rpcsvc/nis.x
index 20a4733741..2d19f37931 100644
--- a/nis/rpcsvc/nis.x
+++ b/nis/rpcsvc/nis.x
@@ -28,13 +28,6 @@
 % * Mountain View, California  94043
 % */
 
-/*
- * From 4.1 : @(#)nis.x	1.61 Copyright 1989 Sun Microsystems
- *
- * RPC Language Protocol description file for NIS Plus
- * This version : 1.61
- * Last Modified : 3/19/91
- */
 #ifdef RPC_HDR
 %/*
 % *	nis.h
@@ -44,9 +37,9 @@
 % * 	structures used by the NIS service. It includes the file nis_tags.h
 % *	which defines the tag values. This allows the tags to change without
 % *	having to change the nis.x file.
-% *
+% * 	
 % *	NOTE : DO NOT EDIT THIS FILE! It is automatically generated when
-% *	       rpcgen is run on the nis.x file. Note that there is a
+% *	       rpcgen is run on the nis.x file. Note that there is a 
 % *	       simple sed script to remove some unneeded lines. (See the
 % *	       Makefile target nis.h)
 % *
@@ -75,7 +68,7 @@ enum nis_error {
 	NIS_NAMEUNREACHABLE = 5, /* Can't get there from here */
 	NIS_UNKNOWNOBJ = 6,	/* Object type is bogus */
 	NIS_TRYAGAIN = 7,	/* I'm busy, call back */
-	NIS_SYSTEMERROR = 8,	/* Out of band failure */
+	NIS_SYSTEMERROR = 8,	/* Generic system error */
 	NIS_CHAINBROKEN = 9,	/* First/Next warning */
 	NIS_PERMISSION = 10,	/* Not enough permission to access */
 	NIS_NOTOWNER = 11,	/* You don't own it, sorry */
@@ -118,11 +111,11 @@ enum nis_error {
 };
 
 
-/*
+/* 
  * Structure definitions for the parameters and results of the actual
  * NIS RPC calls.
  *
- * This is the standard result (in the protocol) of most of the nis
+ * This is the standard result (in the protocol) of most of the nis 
  * requests.
  */
 
@@ -136,11 +129,11 @@ struct nis_result {
 	u_long		cticks;		/* Client ticks		  */
 };
 
-/*
- * A Name Service request
- * This request is used to access the name space, ns_name is the name
+/* 
+ * A Name Service request 
+ * This request is used to access the name space, ns_name is the name 
  * of the object within the namespace and the object is it's value, for
- * add/modify, a copy of the original for remove.
+ * add/modify, a copy of the original for remove. 
  */
 
 struct ns_request {
@@ -148,7 +141,7 @@ struct ns_request {
 	nis_object	ns_object<1>;	/* Optional Object (add/remove)	*/
 };
 
-/*
+/* 
  * An information base request
  * This request includes the NIS name of the table we wish to search, the
  * search criteria in the form of attribute/value pairs and an optional
@@ -168,7 +161,7 @@ struct ib_request {
 };
 
 /*
- * This argument to the PING call notifies the replicas that something in
+ * This argument to the PING call notifies the replicas that something in 
  * a directory has changed and this is it's timestamp. The replica will use
  * the timestamp to determine if its resync operation was successful.
  */
@@ -177,8 +170,8 @@ struct ping_args {
 	u_long		stamp;	/* timestamp of the transaction  */
 };
 
-/*
- * These are the type of entries that are stored in the transaction log,
+/* 
+ * These are the type of entries that are stored in the transaction log, 
  * note that modifications will appear as two entries, for names, they have
  * a "OLD" entry followed by a "NEW" entry. For entries in tables, there
  * is a remove followed by an add. It is done this way so that we can read
@@ -196,13 +189,13 @@ enum log_entry_t {
 	MOD_IBASE = 7,		/* Entry was modified in information base */
 	UPD_STAMP = 8		/* Update timestamp (used as fenceposts)  */
 };
-
+	
 /*
- * This result is returned from the name service when it is requested to
+ * This result is returned from the name service when it is requested to 
  * dump logged entries from its transaction log. Information base updates
  * will have the name of the information base in the le_name field and
  * a canonical set of attribute/value pairs to fully specify the entry's
- * 'name'.
+ * 'name'. 
  */
 struct log_entry {
 	u_long		le_time;	/* Time in seconds 		*/
@@ -218,7 +211,7 @@ struct log_result {
 	netobj		lr_cookie;	/* Used by the dump callback	*/
 	log_entry	lr_entries<>;	/* zero or more entries 	*/
 };
-
+	
 struct cp_result {
 	nis_error	cp_status;	/* Status of the checkpoint 	*/
 	u_long		cp_zticks;	/* Service 'ticks' 	    	*/
@@ -227,7 +220,7 @@ struct cp_result {
 
 /*
  * This structure defines a generic NIS tag list. The taglist contains
- * zero or tags, each of which is a type and a value. (u_long).
+ * zero or tags, each of which is a type and a value. (u_long). 
  * These are used to report statistics (see tag definitions below)
  * and to set or reset state variables.
  */
@@ -254,17 +247,59 @@ struct fd_args {
 struct fd_result {
 	nis_error	status;		/* Status returned by function	*/
 	nis_name	source;		/* Source of this answer   	*/
-	opaque		dir_data<>;	/* Directory Data (XDR'ed) 	*/
+	opaque		dir_data<>;	/* Directory Data (XDR'ed) 	*/ 
 	opaque		signature<>;	/* Signature of the source 	*/
 };
 
+%/*
+% * Structures used for server binding.
+% */
+struct nis_bound_endpoint {
+	endpoint ep;
+	int generation;
+	int rank;
+	u_long flags;
+	int hostnum;
+	int epnum;
+	nis_name uaddr;
+	endpoint cbep;
+};
+typedef struct nis_bound_endpoint nis_bound_endpoint;
+ 
+struct nis_bound_directory {
+	int generation;
+	int min_rank;           /* minimum rank of bound endpoints */
+	int optimal_rank;       /* best possible rank of all endpoints */
+	directory_obj dobj;
+	nis_bound_endpoint BEP<>;
+};
+typedef struct nis_bound_directory nis_bound_directory;
+%#define bep_len BEP.BEP_len
+%#define bep_val BEP.BEP_val
+ 
+struct nis_active_endpoint {
+	endpoint ep;
+	nis_name hostname;
+	int rank;
+	int uaddr_generation;
+	nis_name uaddr;
+	int cbep_generation;
+	endpoint cbep;
+};
+typedef struct nis_active_endpoint nis_active_endpoint;
+ 
+%/* defines for nis_bound_endpoint.flags */
+%#define NIS_BOUND 0x1
+%#define NIS_TRANSIENT_ERRORS 0x2
+
 
-/*
+
+/* 
  * What's going on here? Well, it's like this. When the service
  * is being compiled it wants to have the service definition specific
  * info included, and when the client is being compiled it wants that
  * info. This includes the appropriate file which was generated by
- * make in the protocols directory (probably /usr/include/rpcsvc).
+ * make in the protocols directory (probably /usr/include/rpcsvc). 
  */
 #ifdef RPC_SVC
 %#include "nis_svc.h"
@@ -296,10 +331,10 @@ program  NIS_PROG {
 
 		/* If fetch and optionally reset statistics */
 		nis_taglist  NIS_STATUS(nis_taglist) = 14;
-
+		
 		/* Dump changes to directory since time in da_time */
 		log_result  NIS_DUMPLOG(dump_args) = 15;
-
+		
 		/* Dump contents of directory named */
 		log_result  NIS_DUMP(dump_args) = 16;
 
@@ -314,16 +349,16 @@ program  NIS_PROG {
 
 		/* Send 'status changed' ping to replicates */
 		void	    NIS_PING(ping_args) = 20;
-
+	
 		/* Modify server behaviour (such as debugging) */
 		nis_taglist NIS_SERVSTATE(nis_taglist) = 21;
-
+	
 		/* Create a Directory */
 		nis_error   NIS_MKDIR(nis_name) = 22;
-
+	
 		/* Remove a Directory */
 		nis_error   NIS_RMDIR(nis_name) = 23;
-
+		
 		/* Update public keys of a directory object */
 		nis_error   NIS_UPDKEYS(nis_name) = 24;
 	} = 3;
@@ -372,6 +407,15 @@ program  NIS_PROG {
 %#define NIS_CREATE_ACC		4
 %#define NIS_DESTROY_ACC	8
 %/* Test macros. a == access rights, m == desired rights. */
+%#define NIS_WORLD(a, m)	(((a) & (m)) != 0)
+%#define NIS_GROUP(a, m)	(((a) & ((m) << 8)) != 0)
+%#define NIS_OWNER(a, m)	(((a) & ((m) << 16)) != 0)
+%#define NIS_NOBODY(a, m)	(((a) & ((m) << 24)) != 0)
+%/* 
+% * EOL Alert - The following non-prefixed test macros are 
+% * here for backward compatability, and will be not be present
+% * in future releases - use the NIS_*() macros above.
+% */
 %#define WORLD(a, m)	(((a) & (m)) != 0)
 %#define GROUP(a, m)	(((a) & ((m) << 8)) != 0)
 %#define OWNER(a, m)	(((a) & ((m) << 16)) != 0)
@@ -418,6 +462,8 @@ program  NIS_PROG {
 %#define ENTRY_LEN(obj, col) \
 %	(obj)->EN_data.en_cols.en_cols_val[col].ec_value.ec_value_len
 %
+%
+%
 %#ifdef __cplusplus
 %}
 %#endif
@@ -429,12 +475,12 @@ program  NIS_PROG {
 %
 %/*
 % * nis_3.h
-% *
+% * 
 % * This file contains definitions that are only of interest to the actual
 % * service daemon and client stubs. Normal users of NIS will not include
 % * this file.
 % *
-% * NOTE : This include file is automatically created by a combination
+% * NOTE : This include file is automatically created by a combination 
 % * of rpcgen and sed. DO NOT EDIT IT, change the nis.x file instead
 % * and then remake this file.
 % */
diff --git a/nis/rpcsvc/nis_cache.h b/nis/rpcsvc/nis_cache.h
deleted file mode 100644
index ca91a22cd4..0000000000
--- a/nis/rpcsvc/nis_cache.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef __RPCSVC_NIS_CACHE_H_
-#define __RPCSVC_NIS_CACHE_H_
-
-#include <features.h>
-#include <rpc/rpc.h>
-#include <rpc/types.h>
-#include <rpcsvc/nis.h>
-
-__BEGIN_DECLS
-
-/* default cache file */
-#define CACHEFILE "/var/nis/NIS_SHARED_DIRCACHE" 
-
-/* clients have to read-lock the cache file, and SVR4 locking requires that */
-/*   the file be writable, but we don't want a world-writable cache file.   */
-/*   So... everyone agrees to use a different, world-writable file for the  */
-/*   locking operations, but the data is in CACHEFILE.                      */
-#define CACHELOCK "/usr/tmp/.NIS_DIR_CACHELOCK"
-
-/* the file containing one trusted XDR'ed directory object.
- * This has to be present for the system to work.
- */
-#define COLD_START_FILE "/var/nis/NIS_COLD_START"
-
-enum pc_status {HIT, MISS, NEAR_MISS};
-
-#define CACHEPROG ((u_long)100301)
-#define CACHE_VER_1 ((u_long)1)
-
-#define NIS_CACHE_ADD_ENTRY ((u_long)1)
-#define NIS_CACHE_REMOVE_ENTRY ((u_long)2)
-#define NIS_CACHE_READ_COLDSTART ((u_long)3)
-#define NIS_CACHE_REFRESH_ENTRY ((u_long)4)
-
-extern void *nis_cache_add_entry_1 __P ((fd_result *, CLIENT *));
-extern void *nis_cache_add_entry_1_svc __P ((fd_result *, struct svc_req *));
-extern void *nis_cache_remove_entry_1 __P ((directory_obj *, CLIENT *));
-extern void *nis_cache_remove_entry_1_svc __P ((directory_obj *,
-						struct svc_req *));
-extern void *nis_cache_read_coldstart_1 __P ((void *, CLIENT *));
-extern void *nis_cache_read_coldstart_1_svc __P ((void *, struct svc_req *));
-extern void *nis_cache_refresh_entry_1 __P ((char **, CLIENT *));
-extern void *nis_cache_refresh_entry_1_svc __P ((char **, struct svc_req *));
-
-__END_DECLS
-
-#endif /* !_RPCSVC_NIS_CACHE_H_ */
diff --git a/nis/rpcsvc/nis_cache.x b/nis/rpcsvc/nis_cache.x
deleted file mode 100644
index 91870d8a48..0000000000
--- a/nis/rpcsvc/nis_cache.x
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *	nis_cache.x
- *
- *	Copyright (c) 1988-1992 Sun Microsystems Inc
- *	All Rights Reserved.
- */
-
-%#pragma ident	"@(#)nis_cache.x	1.8	92/07/14 SMI"
-
-
-#ifdef RPC_HDR
-%#include <rpc/types.h>
-%#include <rpcsvc/nis.h>
-%
-%/* default cache file */
-%#define CACHEFILE "/var/nis/NIS_SHARED_DIRCACHE" 
-%
-%/* clients have to read-lock the cache file, and SVR4 locking requires that */
-%/*   the file be writable, but we don't want a world-writable cache file.   */
-%/*   So... everyone agrees to use a different, world-writable file for the  */
-%/*   locking operations, but the data is in CACHEFILE.                      */
-%#define CACHELOCK "/usr/tmp/.NIS_DIR_CACHELOCK"
-%
-%/* the file containing one trusted XDR'ed directory object.
-% * This has to be present for the system to work.
-% */
-%#define COLD_START_FILE "/var/nis/NIS_COLD_START"
-%
-%enum pc_status {HIT, MISS, NEAR_MISS};
-%
-%extern int __nis_debuglevel;
-%
-%
-#endif
-
-#ifdef RPC_CLNT
-%#include "../gen/nis_clnt.h"
-#endif
-
-program CACHEPROG {
-	version CACHE_VER_1 {
-		void NIS_CACHE_ADD_ENTRY(fd_result) = 1;
-		void NIS_CACHE_REMOVE_ENTRY(directory_obj) = 2;
-		void NIS_CACHE_READ_COLDSTART(void) = 3;
-		void NIS_CACHE_REFRESH_ENTRY(string<>) = 4;
-	} = 1;
-} = 100301;
diff --git a/nis/rpcsvc/nis_object.x b/nis/rpcsvc/nis_object.x
index e13ae47b70..496a16a1e1 100644
--- a/nis/rpcsvc/nis_object.x
+++ b/nis/rpcsvc/nis_object.x
@@ -5,7 +5,7 @@
  *	All Rights Reserved.
  */
 
-%#pragma ident	"@(#)nis_object.x	1.7	92/07/14 SMI"
+%#pragma ident	"@(#)nis_object.x	1.9	96/07/09 SMI"
 
 #if RPC_HDR
 %
@@ -65,9 +65,14 @@ typedef string nis_name<>;	/* The NIS name itself. */
  * 		1024 - 2047 are defined to be private to a particular tree.
  *		2048 - 4095 are defined to be user defined.
  *		4096 - ...  are reserved for future use.
+ *
+ * EOL Alert - The non-prefixed names are present for backward
+ * compatability only, and will not exist in future releases. Use
+ * the NIS_* names for future compatability.
  */
 
 enum zotypes {
+	
 	BOGUS_OBJ  	= 0,	/* Uninitialized object structure 	*/
 	NO_OBJ   	= 1,	/* NULL object (no data)	 	*/
 	DIRECTORY_OBJ 	= 2,	/* Directory object describing domain 	*/
@@ -75,7 +80,16 @@ enum zotypes {
 	TABLE_OBJ  	= 4,	/* Table object (a database schema) 	*/
 	ENTRY_OBJ  	= 5,	/* Entry object (a database record) 	*/
 	LINK_OBJ   	= 6, 	/* A name link.				*/
-	PRIVATE_OBJ   	= 7 	/* Private object (all opaque data) 	*/
+	PRIVATE_OBJ  	= 7, 	/* Private object (all opaque data) 	*/
+	
+	NIS_BOGUS_OBJ  	= 0,	/* Uninitialized object structure 	*/
+	NIS_NO_OBJ   	= 1,	/* NULL object (no data)	 	*/
+	NIS_DIRECTORY_OBJ = 2, /* Directory object describing domain 	*/
+	NIS_GROUP_OBJ  	= 3,	/* Group object (a list of names) 	*/
+	NIS_TABLE_OBJ  	= 4,	/* Table object (a database schema) 	*/
+	NIS_ENTRY_OBJ  	= 5,	/* Entry object (a database record) 	*/
+	NIS_LINK_OBJ	= 6, 	/* A name link.				*/
+	NIS_PRIVATE_OBJ  = 7 /* Private object (all opaque data) */
 };
 
 /*
@@ -230,21 +244,21 @@ struct table_obj {
  * This union joins together all of the currently known objects. 
  */
 union objdata switch (zotypes zo_type) {
-        case DIRECTORY_OBJ :
+        case NIS_DIRECTORY_OBJ :
                 struct directory_obj di_data;
-        case GROUP_OBJ :
+        case NIS_GROUP_OBJ :
                 struct group_obj gr_data;
-        case TABLE_OBJ :
+        case NIS_TABLE_OBJ :
                 struct table_obj ta_data;
-        case ENTRY_OBJ:
+        case NIS_ENTRY_OBJ:
                 struct entry_obj en_data;
-        case LINK_OBJ :
+        case NIS_LINK_OBJ :
                 struct link_obj li_data;
-        case PRIVATE_OBJ :
+        case NIS_PRIVATE_OBJ :
                 opaque	po_data<>;
-	case NO_OBJ :
+	case NIS_NO_OBJ :
 		void;
-        case BOGUS_OBJ :
+        case NIS_BOGUS_OBJ :
 		void;
         default :
                 void;
diff --git a/nis/rpcsvc/nis_tags.h b/nis/rpcsvc/nis_tags.h
index 30bdff6d1a..19a5bcab19 100644
--- a/nis/rpcsvc/nis_tags.h
+++ b/nis/rpcsvc/nis_tags.h
@@ -12,7 +12,7 @@
 #ifndef	_RPCSVC_NIS_TAGS_H
 #define	_RPCSVC_NIS_TAGS_H
 
-#pragma ident	"@(#)nis_tags.h	1.13	95/02/17 SMI"
+#pragma ident	"@(#)nis_tags.h	1.16	96/10/25 SMI"
 /* from file: zns_tags.h	1.7 Copyright (c) 1990 Sun Microsystems */
 
 #ifdef	__cplusplus
@@ -40,6 +40,9 @@ extern "C" {
 #define	REM_RESERVED	(1<<12)	/* Spare REM semantic			*/
 #define	MOD_EXCLUSIVE	(1<<13)	/* Modify no overwrite on modified keys */
 
+/* Lookup and List function flags (continued) */
+#define	SOFT_LOOKUP	(1<<14)	/* The "old default" return on failure  */
+
 /* Transport specific modifications to the operation */
 #define	USE_DGRAM	(1<<16) /* Use a datagram transport 		*/
 #define	NO_AUTHINFO	(1<<17) /* Don't bother attaching auth info	*/
@@ -63,6 +66,8 @@ extern "C" {
 #define	TAG_TCACHE_ALL	9	/* Flush entire table cache	*/
 #define	TAG_GCACHE_ONE	10	/* Flush one group object	*/
 #define	TAG_DCACHE_ONE_REFRESH 11 /* Flush and refresh one DO	*/
+#define	TAG_READONLY	12	/* Set read only mode		*/
+#define	TAG_READWRITE	14	/* Reset read-write mode	*/
 
 #define	TAG_OPSTATS	2048	/* NIS+ operations statistics   */
 #define	TAG_THREADS	2049	/* Child process/thread status  */
diff --git a/nis/rpcsvc/nislib.h b/nis/rpcsvc/nislib.h
index 73b3804e85..016bedc769 100644
--- a/nis/rpcsvc/nislib.h
+++ b/nis/rpcsvc/nislib.h
@@ -224,29 +224,14 @@ extern bool_t nis_write_obj __P ((const char *file, const nis_object *obj));
 */
 extern directory_obj *nis_clone_directory __P ((const directory_obj *src,
 						directory_obj *dest));
-extern group_obj *nis_clone_group __P ((const group_obj *src,
-					group_obj *dest));
-extern table_obj *nis_clone_table __P ((const table_obj *src,
-					table_obj *dest));
-extern entry_obj *nis_clone_entry __P ((const entry_obj *src,
-					entry_obj *dest));
-extern link_obj *nis_clone_link __P ((const link_obj *src, link_obj *dest));
-extern objdata *nis_clone_objdata __P ((const objdata *src, objdata *dest));
 extern nis_result *nis_clone_result __P ((const nis_result *src,
 					  nis_result *dest));
 
 /* nis_free - nis_freeresult */
 extern void nis_freeresult __P ((nis_result *result));
 /* (XXX THE FOLLOWING ARE INTERNAL FUNCTIONS, SHOULD NOT BE USED !!) */
-extern void nis_free_attr __P ((nis_attr *attr));
 extern void nis_free_request __P ((ib_request *req));
-extern void nis_free_endpoints __P ((endpoint *ep, unsigned int count));
-extern void nis_free_servers __P ((nis_server *machine, unsigned int count));
 extern void nis_free_directory __P ((directory_obj *dirobj));
-extern void nis_free_group __P ((group_obj *grpobj));
-extern void nis_free_table __P ((table_obj *tblobj));
-extern void nis_free_entry __P ((entry_obj *enobj));
-extern void nis_free_link __P ((link_obj *lnkobj));
 extern void nis_free_object __P ((nis_object *obj));
 
 /* (XXX INTERNAL FUNCTIONS, SHOULD NOT BE USED !!) */
@@ -255,10 +240,9 @@ extern nis_name __nis_default_group __P ((char *));
 extern u_long __nis_default_ttl __P ((char *));
 extern u_long __nis_default_access __P ((char *, u_long));
 extern fd_result *__nis_finddirectory __P ((directory_obj *, const_nis_name));
+extern void __free_fdresult __P ((fd_result *));
 extern u_long __nis_hash __P ((const void *keyarg, register size_t len));
-extern log_result *__nis_dumplog __P ((nis_server *,nis_name, u_long));
-extern log_result *__nis_dump __P ((nis_server *, nis_name,
-				    int (*)(nis_name, nis_object *, void *)));
+
 /* NIS+ cache locking */
 extern int __nis_lock_cache __P ((void));
 extern int __nis_unlock_cache __P ((void));
diff --git a/nis/rpcsvc/ypupd.h b/nis/rpcsvc/ypupd.h
index dace7824d4..d7ce0d76d0 100644
--- a/nis/rpcsvc/ypupd.h
+++ b/nis/rpcsvc/ypupd.h
@@ -85,4 +85,6 @@ extern  u_int * ypu_delete_1_svc __P ((ypdelete_args *, struct svc_req *));
 extern  u_int * ypu_store_1 __P ((ypupdate_args *, CLIENT *));
 extern  u_int * ypu_store_1_svc __P ((ypupdate_args *, struct svc_req *));
 
+__END_DECLS
+
 #endif /* !__RPCSVC_YPUPD_H__ */