Logo Search packages:      
Sourcecode: p3nfs version File versions  Download package

nfs_prot_svc.c

/*
 * 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 {
            mynfs_fh nfsproc_getattr_2_arg;
            sattrargs nfsproc_setattr_2_arg;
            diropargs nfsproc_lookup_2_arg;
            mynfs_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;
            mynfs_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;
}

Generated by  Doxygen 1.6.0   Back to index