123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- /*
- * Please do not edit this file.
- * It was generated using rpcgen.
- */
- #include "rpcdb.h"
- #include <memory.h>
- #include <netinet/in.h>
- #include <rpc/pmap_clnt.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <sys/socket.h>
- #ifndef SIG_PF
- #define SIG_PF void (*)(int)
- #endif
- void init_server();
- static void rpc_prog_1(struct svc_req *rqstp, register SVCXPRT *transp)
- {
- union {
- request rpc_call_1_arg;
- } argument;
- char *result;
- xdrproc_t _xdr_argument, _xdr_result;
- char *(*local)(char *, struct svc_req *);
- switch (rqstp->rq_proc) {
- case NULLPROC:
- (void)svc_sendreply(transp, (xdrproc_t)xdr_void, (char *)NULL);
- return;
- case rpc_call:
- _xdr_argument = (xdrproc_t)xdr_request;
- _xdr_result = (xdrproc_t)xdr_response;
- local = (char *(*)(char *, struct svc_req *))rpc_call_1_svc;
- break;
- default:
- svcerr_noproc(transp);
- return;
- }
- memset((char *)&argument, 0, sizeof(argument));
- if (!svc_getargs(transp, (xdrproc_t)_xdr_argument,
- (caddr_t)&argument)) {
- svcerr_decode(transp);
- return;
- }
- result = (*local)((char *)&argument, rqstp);
- if (result != NULL &&
- !svc_sendreply(transp, (xdrproc_t)_xdr_result, result)) {
- svcerr_systemerr(transp);
- }
- if (!svc_freeargs(transp, (xdrproc_t)_xdr_argument,
- (caddr_t)&argument)) {
- fprintf(stderr, "%s", "unable to free arguments");
- exit(1);
- }
- return;
- }
- int main(int argc, char **argv)
- {
- register SVCXPRT *transp;
- init_server();
- pmap_unset(RPC_PROG, RPC_VERS);
- transp = svcudp_create(RPC_ANYSOCK);
- if (transp == NULL) {
- fprintf(stderr, "%s", "cannot create udp service.");
- exit(1);
- }
- if (!svc_register(transp, RPC_PROG, RPC_VERS, rpc_prog_1,
- IPPROTO_UDP)) {
- fprintf(stderr, "%s",
- "unable to register (RPC_PROG, RPC_VERS, udp).");
- exit(1);
- }
- transp = svctcp_create(RPC_ANYSOCK, 0, 0);
- if (transp == NULL) {
- fprintf(stderr, "%s", "cannot create tcp service.");
- exit(1);
- }
- if (!svc_register(transp, RPC_PROG, RPC_VERS, rpc_prog_1,
- IPPROTO_TCP)) {
- fprintf(stderr, "%s",
- "unable to register (RPC_PROG, RPC_VERS, tcp).");
- exit(1);
- }
- svc_run();
- fprintf(stderr, "%s", "svc_run returned");
- exit(1);
- /* NOTREACHED */
- }
|