aboutsummaryrefslogtreecommitdiffstats
path: root/plpnfsd/nfs_prot_svc.c
diff options
context:
space:
mode:
authorFritz Elfert <felfert@to.com>1999-06-28 08:56:01 +0000
committerFritz Elfert <felfert@to.com>1999-06-28 08:56:01 +0000
commit34b70b0b46e34a73308a4034cc9b1c70209b9eb4 (patch)
tree7abe8be40fde08828d3606e13c41435b2fc9a26c /plpnfsd/nfs_prot_svc.c
parent3d3be141551bb4622da1cb610e4f6f798dd1715e (diff)
downloadplptools-34b70b0b46e34a73308a4034cc9b1c70209b9eb4.tar.gz
plptools-34b70b0b46e34a73308a4034cc9b1c70209b9eb4.tar.bz2
plptools-34b70b0b46e34a73308a4034cc9b1c70209b9eb4.zip
First import.
Diffstat (limited to 'plpnfsd/nfs_prot_svc.c')
-rw-r--r--plpnfsd/nfs_prot_svc.c231
1 files changed, 231 insertions, 0 deletions
diff --git a/plpnfsd/nfs_prot_svc.c b/plpnfsd/nfs_prot_svc.c
new file mode 100644
index 0000000..f373e74
--- /dev/null
+++ b/plpnfsd/nfs_prot_svc.c
@@ -0,0 +1,231 @@
+/*
+ * Please do not edit this file.
+ * It was generated using rpcgen.
+ * And tuned by me (Rudi)
+ */
+
+#include "OSdefs.h"
+
+#define PORTMAP
+#ifdef __SVR4
+#include <unistd.h>
+#include <stdlib.h>
+#endif
+#include <stdio.h>
+#include <rpc/rpc.h>
+#include "nfs_prot.h"
+#include "mp.h"
+#ifdef __GLIBC__
+#include <string.h>
+#endif
+
+#if 0
+static void nfs_program_2();
+
+main()
+{
+ register SVCXPRT *transp;
+
+ (void) pmap_unset(NFS_PROGRAM, NFS_VERSION);
+
+ transp = svcudp_create(RPC_ANYSOCK);
+ if (transp == NULL) {
+ fprintf(stderr, "cannot create udp service.");
+ exit(1);
+ }
+ if (!svc_register(transp, NFS_PROGRAM, NFS_VERSION, nfs_program_2, IPPROTO_UDP)) {
+ fprintf(stderr, "unable to register (NFS_PROGRAM, NFS_VERSION, udp).");
+ exit(1);
+ }
+
+ transp = svctcp_create(RPC_ANYSOCK, 0, 0);
+ if (transp == NULL) {
+ fprintf(stderr, "cannot create tcp service.");
+ exit(1);
+ }
+ if (!svc_register(transp, NFS_PROGRAM, NFS_VERSION, nfs_program_2, IPPROTO_TCP)) {
+ fprintf(stderr, "unable to register (NFS_PROGRAM, NFS_VERSION, tcp).");
+ exit(1);
+ }
+
+ svc_run();
+ fprintf(stderr, "svc_run returned");
+ exit(1);
+ /* NOTREACHED */
+}
+#endif
+
+void
+nfs_program_2(rqstp, transp)
+ struct svc_req *rqstp;
+ register SVCXPRT *transp;
+{
+ union {
+ nfs_fh nfsproc_getattr_2_arg;
+ sattrargs nfsproc_setattr_2_arg;
+ diropargs nfsproc_lookup_2_arg;
+ nfs_fh nfsproc_readlink_2_arg;
+ readargs nfsproc_read_2_arg;
+ writeargs nfsproc_write_2_arg;
+ createargs nfsproc_create_2_arg;
+ diropargs nfsproc_remove_2_arg;
+ renameargs nfsproc_rename_2_arg;
+ linkargs nfsproc_link_2_arg;
+ symlinkargs nfsproc_symlink_2_arg;
+ createargs nfsproc_mkdir_2_arg;
+ diropargs nfsproc_rmdir_2_arg;
+ readdirargs nfsproc_readdir_2_arg;
+ nfs_fh nfsproc_statfs_2_arg;
+ } argument;
+ char *result;
+ bool_t (*xdr_argument)(), (*xdr_result)();
+ char *(*local)();
+
+ switch (rqstp->rq_proc) {
+ case NFSPROC_NULL:
+ xdr_argument = xdr_void;
+ xdr_result = xdr_void;
+ local = (char *(*)()) nfsproc_null_2;
+ break;
+
+ case NFSPROC_GETATTR:
+ xdr_argument = xdr_nfs_fh;
+ xdr_result = xdr_attrstat;
+ local = (char *(*)()) nfsproc_getattr_2;
+ break;
+
+ case NFSPROC_SETATTR:
+ xdr_argument = xdr_sattrargs;
+ xdr_result = xdr_attrstat;
+ local = (char *(*)()) nfsproc_setattr_2;
+ break;
+
+ case NFSPROC_ROOT:
+ xdr_argument = xdr_void;
+ xdr_result = xdr_void;
+ local = (char *(*)()) nfsproc_root_2;
+ break;
+
+ case NFSPROC_LOOKUP:
+ xdr_argument = xdr_diropargs;
+ xdr_result = xdr_diropres;
+ local = (char *(*)()) nfsproc_lookup_2;
+ break;
+
+ case NFSPROC_READLINK:
+ xdr_argument = xdr_nfs_fh;
+ xdr_result = xdr_readlinkres;
+ local = (char *(*)()) nfsproc_readlink_2;
+ break;
+
+ case NFSPROC_READ:
+ xdr_argument = xdr_readargs;
+ xdr_result = xdr_readres;
+ local = (char *(*)()) nfsproc_read_2;
+ break;
+
+ case NFSPROC_WRITECACHE:
+ xdr_argument = xdr_void;
+ xdr_result = xdr_void;
+ local = (char *(*)()) nfsproc_writecache_2;
+ break;
+
+ case NFSPROC_WRITE:
+ xdr_argument = xdr_writeargs;
+ xdr_result = xdr_attrstat;
+ local = (char *(*)()) nfsproc_write_2;
+ break;
+
+ case NFSPROC_CREATE:
+ xdr_argument = xdr_createargs;
+ xdr_result = xdr_diropres;
+ local = (char *(*)()) nfsproc_create_2;
+ break;
+
+ case NFSPROC_REMOVE:
+ xdr_argument = xdr_diropargs;
+ xdr_result = xdr_nfsstat;
+ local = (char *(*)()) nfsproc_remove_2;
+ break;
+
+ case NFSPROC_RENAME:
+ xdr_argument = xdr_renameargs;
+ xdr_result = xdr_nfsstat;
+ local = (char *(*)()) nfsproc_rename_2;
+ break;
+
+ case NFSPROC_LINK:
+ xdr_argument = xdr_linkargs;
+ xdr_result = xdr_nfsstat;
+ local = (char *(*)()) nfsproc_link_2;
+ break;
+
+ case NFSPROC_SYMLINK:
+ xdr_argument = xdr_symlinkargs;
+ xdr_result = xdr_nfsstat;
+ local = (char *(*)()) nfsproc_symlink_2;
+ break;
+
+ case NFSPROC_MKDIR:
+ xdr_argument = xdr_createargs;
+ xdr_result = xdr_diropres;
+ local = (char *(*)()) nfsproc_mkdir_2;
+ break;
+
+ case NFSPROC_RMDIR:
+ xdr_argument = xdr_diropargs;
+ xdr_result = xdr_nfsstat;
+ local = (char *(*)()) nfsproc_rmdir_2;
+ break;
+
+ case NFSPROC_READDIR:
+ xdr_argument = xdr_readdirargs;
+ xdr_result = xdr_readdirres;
+ local = (char *(*)()) nfsproc_readdir_2;
+ break;
+
+ case NFSPROC_STATFS:
+ xdr_argument = xdr_nfs_fh;
+ xdr_result = xdr_statfsres;
+ local = (char *(*)()) nfsproc_statfs_2;
+ break;
+
+ default:
+ svcerr_noproc(transp);
+ return;
+ }
+ memset((char *)&argument, 0, sizeof(argument));
+#if !defined(__SVR4) && !defined(__FreeBSD__)
+#ifdef __GLIBC__
+ if (!svc_getargs(transp, (xdrproc_t)xdr_argument, (caddr_t)&argument)) {
+#else
+ if (!svc_getargs(transp, xdr_argument, &argument)) {
+#endif
+#else
+ if (!svc_getargs(transp, xdr_argument, (char *)&argument)) {
+#endif
+ svcerr_decode(transp);
+ return;
+ }
+ result = (*local)(&argument, rqstp);
+#ifdef linux
+ if (result != NULL && !svc_sendreply(transp, (xdrproc_t) xdr_result, result)) {
+#else
+ if (result != NULL && !svc_sendreply(transp, xdr_result, result)) {
+#endif
+ svcerr_systemerr(transp);
+ }
+#if !defined(__SVR4) && !defined(__FreeBSD__)
+#ifdef __GLIBC__
+ if (!svc_freeargs(transp, (xdrproc_t)xdr_argument,(caddr_t)&argument)) {
+#else
+ if (!svc_freeargs(transp, xdr_argument, &argument)) {
+#endif
+#else
+ if (!svc_freeargs(transp, xdr_argument, (char *)&argument)) {
+#endif
+ fprintf(stderr, "unable to free arguments");
+ exit(1);
+ }
+ return;
+}