161 lines
4.8 KiB
Diff
161 lines
4.8 KiB
Diff
am-utils-6.2 - account for glibc removed rpcsvc/mount.h
|
|
|
|
From: Ian Kent <ikent@redhat.com>
|
|
|
|
The glibc RPC code may have been removed and if so rpcsvc/mount.h
|
|
is no longer available in any package.
|
|
|
|
Account for this by including the old glibc rpcsvc/mount.h directly
|
|
in nfs_prot_linux.h.
|
|
|
|
Signed-off-by: Ian Kent <ikent@redhat.com>
|
|
---
|
|
conf/nfs_prot/nfs_prot_linux.h | 134 ++++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 134 insertions(+)
|
|
|
|
diff --git a/conf/nfs_prot/nfs_prot_linux.h b/conf/nfs_prot/nfs_prot_linux.h
|
|
index 9934b440..63493712 100644
|
|
--- a/conf/nfs_prot/nfs_prot_linux.h
|
|
+++ b/conf/nfs_prot/nfs_prot_linux.h
|
|
@@ -481,6 +481,140 @@ extern bool_t xdr_statfsres ();
|
|
#endif
|
|
#endif /* HAVE_RPCSVC_NFS_PROT_H */
|
|
|
|
+#ifndef HAVE_RPCSVC_MOUNT_H
|
|
+/*
|
|
+ * On Linux the RPC code may have been removed from glibc.
|
|
+ * If HAVE_RPCSVC_MOUNT_H is undefined that is the case
|
|
+ * and there is no rpcsvc/imount.h anywhere so provide it
|
|
+ * here.
|
|
+ */
|
|
+#include <rpc/rpc.h>
|
|
+
|
|
+#define MNTPATHLEN 1024
|
|
+#define MNTNAMLEN 255
|
|
+#define FHSIZE 32
|
|
+
|
|
+typedef char fhandle[FHSIZE];
|
|
+
|
|
+struct fhstatus {
|
|
+ u_int fhs_status;
|
|
+ union {
|
|
+ fhandle fhs_fhandle;
|
|
+ } fhstatus_u;
|
|
+};
|
|
+typedef struct fhstatus fhstatus;
|
|
+
|
|
+typedef char *dirpath;
|
|
+
|
|
+typedef char *name;
|
|
+
|
|
+typedef struct mountbody *mountlist;
|
|
+
|
|
+struct mountbody {
|
|
+ name ml_hostname;
|
|
+ dirpath ml_directory;
|
|
+ mountlist ml_next;
|
|
+};
|
|
+typedef struct mountbody mountbody;
|
|
+
|
|
+typedef struct groupnode *groups;
|
|
+
|
|
+struct groupnode {
|
|
+ name gr_name;
|
|
+ groups gr_next;
|
|
+};
|
|
+typedef struct groupnode groupnode;
|
|
+
|
|
+typedef struct exportnode *exports;
|
|
+
|
|
+struct exportnode {
|
|
+ dirpath ex_dir;
|
|
+ groups ex_groups;
|
|
+ exports ex_next;
|
|
+};
|
|
+typedef struct exportnode exportnode;
|
|
+
|
|
+#define MOUNTPROG 100005
|
|
+#define MOUNTVERS 1
|
|
+
|
|
+#if defined(__STDC__) || defined(__cplusplus)
|
|
+#define MOUNTPROC_NULL 0
|
|
+extern void * mountproc_null_1(void *, CLIENT *);
|
|
+extern void * mountproc_null_1_svc(void *, struct svc_req *);
|
|
+#define MOUNTPROC_MNT 1
|
|
+extern fhstatus * mountproc_mnt_1(dirpath *, CLIENT *);
|
|
+extern fhstatus * mountproc_mnt_1_svc(dirpath *, struct svc_req *);
|
|
+#define MOUNTPROC_DUMP 2
|
|
+extern mountlist * mountproc_dump_1(void *, CLIENT *);
|
|
+extern mountlist * mountproc_dump_1_svc(void *, struct svc_req *);
|
|
+#define MOUNTPROC_UMNT 3
|
|
+extern void * mountproc_umnt_1(dirpath *, CLIENT *);
|
|
+extern void * mountproc_umnt_1_svc(dirpath *, struct svc_req *);
|
|
+#define MOUNTPROC_UMNTALL 4
|
|
+extern void * mountproc_umntall_1(void *, CLIENT *);
|
|
+extern void * mountproc_umntall_1_svc(void *, struct svc_req *);
|
|
+#define MOUNTPROC_EXPORT 5
|
|
+extern exports * mountproc_export_1(void *, CLIENT *);
|
|
+extern exports * mountproc_export_1_svc(void *, struct svc_req *);
|
|
+#define MOUNTPROC_EXPORTALL 6
|
|
+extern exports * mountproc_exportall_1(void *, CLIENT *);
|
|
+extern exports * mountproc_exportall_1_svc(void *, struct svc_req *);
|
|
+extern int mountprog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
|
|
+
|
|
+#else /* K&R C */
|
|
+#define MOUNTPROC_NULL 0
|
|
+extern void * mountproc_null_1();
|
|
+extern void * mountproc_null_1_svc();
|
|
+#define MOUNTPROC_MNT 1
|
|
+extern fhstatus * mountproc_mnt_1();
|
|
+extern fhstatus * mountproc_mnt_1_svc();
|
|
+#define MOUNTPROC_DUMP 2
|
|
+extern mountlist * mountproc_dump_1();
|
|
+extern mountlist * mountproc_dump_1_svc();
|
|
+#define MOUNTPROC_UMNT 3
|
|
+extern void * mountproc_umnt_1();
|
|
+extern void * mountproc_umnt_1_svc();
|
|
+#define MOUNTPROC_UMNTALL 4
|
|
+extern void * mountproc_umntall_1();
|
|
+extern void * mountproc_umntall_1_svc();
|
|
+#define MOUNTPROC_EXPORT 5
|
|
+extern exports * mountproc_export_1();
|
|
+extern exports * mountproc_export_1_svc();
|
|
+#define MOUNTPROC_EXPORTALL 6
|
|
+extern exports * mountproc_exportall_1();
|
|
+extern exports * mountproc_exportall_1_svc();
|
|
+extern int mountprog_1_freeresult ();
|
|
+#endif /* K&R C */
|
|
+
|
|
+/* the xdr functions */
|
|
+
|
|
+#if defined(__STDC__) || defined(__cplusplus)
|
|
+extern bool_t xdr_fhandle (XDR *, fhandle);
|
|
+extern bool_t xdr_fhstatus (XDR *, fhstatus*);
|
|
+extern bool_t xdr_dirpath (XDR *, dirpath*);
|
|
+extern bool_t xdr_name (XDR *, name*);
|
|
+extern bool_t xdr_mountlist (XDR *, mountlist*);
|
|
+extern bool_t xdr_mountbody (XDR *, mountbody*);
|
|
+extern bool_t xdr_groups (XDR *, groups*);
|
|
+extern bool_t xdr_groupnode (XDR *, groupnode*);
|
|
+extern bool_t xdr_exports (XDR *, exports*);
|
|
+extern bool_t xdr_exportnode (XDR *, exportnode*);
|
|
+
|
|
+#else /* K&R C */
|
|
+extern bool_t xdr_fhandle ();
|
|
+extern bool_t xdr_fhstatus ();
|
|
+extern bool_t xdr_dirpath ();
|
|
+extern bool_t xdr_name ();
|
|
+extern bool_t xdr_mountlist ();
|
|
+extern bool_t xdr_mountbody ();
|
|
+extern bool_t xdr_groups ();
|
|
+extern bool_t xdr_groupnode ();
|
|
+extern bool_t xdr_exports ();
|
|
+extern bool_t xdr_exportnode ();
|
|
+
|
|
+#endif /* K&R C */
|
|
+#endif
|
|
+
|
|
/*
|
|
* Hard-code support for some file systems so the built amd
|
|
* binary can always run them. Also, this helps detection of iso9660
|