/* * Please do not edit this file. * It was generated using rpcgen. */ #include "block.h" #include #include #include #include #include #include #include #ifndef SIG_PF #define SIG_PF void(*)(int) #endif static void gluster_block_1(struct svc_req *rqstp, register SVCXPRT *transp) { union { char *block_exec_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 BLOCK_EXEC: _xdr_argument = (xdrproc_t) xdr_wrapstring; _xdr_result = (xdrproc_t) xdr_blockTrans; local = (char *(*)(char *, struct svc_req *)) block_exec_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; struct sockaddr_in addr; int sockfd; pmap_unset (GLUSTER_BLOCK, GLUSTER_BLOCK_VERS); if ((sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) { fprintf (stderr, "%s", "socket failed"); } addr.sin_family = AF_INET; addr.sin_addr.s_addr = INADDR_ANY; addr.sin_port = htons(24009); if (bind(sockfd, (struct sockaddr *)&addr, sizeof (addr)) < 0) { fprintf (stderr, "%s", "bind failed"); } if (listen(sockfd, 10) < 0) { fprintf (stderr, "%s", "server: listen failed"); exit(1); } transp = svctcp_create(sockfd, 0, 0); if (transp == NULL) { fprintf (stderr, "%s", "cannot create tcp service"); exit(1); } if (!svc_register(transp, GLUSTER_BLOCK, GLUSTER_BLOCK_VERS, gluster_block_1, IPPROTO_TCP)) { fprintf (stderr, "%s", "unable to register (BLOCK_PROG, GLUSTER_BLOCK_VERS, tcp)."); exit(1); } svc_run (); fprintf (stderr, "%s", "svc_run returned"); exit (1); /* NOTREACHED */ }