summaryrefslogtreecommitdiffstats
path: root/sys/nlm/nlm_prot_svc.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/nlm/nlm_prot_svc.c')
-rw-r--r--sys/nlm/nlm_prot_svc.c72
1 files changed, 44 insertions, 28 deletions
diff --git a/sys/nlm/nlm_prot_svc.c b/sys/nlm/nlm_prot_svc.c
index 3b1a140..5141f87 100644
--- a/sys/nlm/nlm_prot_svc.c
+++ b/sys/nlm/nlm_prot_svc.c
@@ -57,8 +57,9 @@ nlm_prog_0(struct svc_req *rqstp, SVCXPRT *transp)
switch (rqstp->rq_proc) {
case NULLPROC:
- (void) svc_sendreply(transp,
+ (void) svc_sendreply(rqstp,
(xdrproc_t) xdr_void, (char *)NULL);
+ svc_freereq(rqstp);
return;
case NLM_SM_NOTIFY:
@@ -68,19 +69,22 @@ nlm_prog_0(struct svc_req *rqstp, SVCXPRT *transp)
break;
default:
- svcerr_noproc(transp);
+ svcerr_noproc(rqstp);
+ svc_freereq(rqstp);
return;
}
(void) memset((char *)&argument, 0, sizeof (argument));
- if (!svc_getargs(transp, xdr_argument, (char *)(caddr_t) &argument)) {
- svcerr_decode(transp);
+ if (!svc_getargs(rqstp, xdr_argument, (char *)(caddr_t) &argument)) {
+ svcerr_decode(rqstp);
+ svc_freereq(rqstp);
return;
}
retval = (bool_t) (*local)((char *)&argument, (void *)&result, rqstp);
- if (retval > 0 && !svc_sendreply(transp, xdr_result, (char *)&result)) {
- svcerr_systemerr(transp);
+ if (retval > 0 && !svc_sendreply(rqstp, xdr_result, (char *)&result)) {
+ svcerr_systemerr(rqstp);
}
- if (!svc_freeargs(transp, xdr_argument, (char *)(caddr_t) &argument)) {
+ svc_freereq(rqstp);
+ if (!svc_freeargs(rqstp, xdr_argument, (char *)(caddr_t) &argument)) {
printf("unable to free arguments");
//exit(1);
}
@@ -121,8 +125,9 @@ nlm_prog_1(struct svc_req *rqstp, SVCXPRT *transp)
switch (rqstp->rq_proc) {
case NULLPROC:
- (void) svc_sendreply(transp,
+ (void) svc_sendreply(rqstp,
(xdrproc_t) xdr_void, (char *)NULL);
+ svc_freereq(rqstp);
return;
case NLM_TEST:
@@ -216,22 +221,25 @@ nlm_prog_1(struct svc_req *rqstp, SVCXPRT *transp)
break;
default:
- svcerr_noproc(transp);
+ svcerr_noproc(rqstp);
+ svc_freereq(rqstp);
return;
}
(void) memset((char *)&argument, 0, sizeof (argument));
- if (!svc_getargs(transp, xdr_argument, (char *)(caddr_t) &argument)) {
- svcerr_decode(transp);
+ if (!svc_getargs(rqstp, xdr_argument, (char *)(caddr_t) &argument)) {
+ svcerr_decode(rqstp);
+ svc_freereq(rqstp);
return;
}
retval = (bool_t) (*local)((char *)&argument, (void *)&result, rqstp);
- if (retval > 0 && !svc_sendreply(transp, xdr_result, (char *)&result)) {
- svcerr_systemerr(transp);
+ if (retval > 0 && !svc_sendreply(rqstp, xdr_result, (char *)&result)) {
+ svcerr_systemerr(rqstp);
}
- if (!svc_freeargs(transp, xdr_argument, (char *)(caddr_t) &argument)) {
+ if (!svc_freeargs(rqstp, xdr_argument, (char *)(caddr_t) &argument)) {
printf("unable to free arguments");
//exit(1);
}
+ svc_freereq(rqstp);
if (!nlm_prog_1_freeresult(transp, xdr_result, (caddr_t) &result))
printf("unable to free results");
@@ -258,8 +266,9 @@ nlm_prog_3(struct svc_req *rqstp, SVCXPRT *transp)
switch (rqstp->rq_proc) {
case NULLPROC:
- (void) svc_sendreply(transp,
+ (void) svc_sendreply(rqstp,
(xdrproc_t) xdr_void, (char *)NULL);
+ svc_freereq(rqstp);
return;
case NLM_TEST:
@@ -305,22 +314,25 @@ nlm_prog_3(struct svc_req *rqstp, SVCXPRT *transp)
break;
default:
- svcerr_noproc(transp);
+ svcerr_noproc(rqstp);
+ svc_freereq(rqstp);
return;
}
(void) memset((char *)&argument, 0, sizeof (argument));
- if (!svc_getargs(transp, xdr_argument, (char *)(caddr_t) &argument)) {
- svcerr_decode(transp);
+ if (!svc_getargs(rqstp, xdr_argument, (char *)(caddr_t) &argument)) {
+ svcerr_decode(rqstp);
+ svc_freereq(rqstp);
return;
}
retval = (bool_t) (*local)((char *)&argument, (void *)&result, rqstp);
- if (retval > 0 && !svc_sendreply(transp, xdr_result, (char *)&result)) {
- svcerr_systemerr(transp);
+ if (retval > 0 && !svc_sendreply(rqstp, xdr_result, (char *)&result)) {
+ svcerr_systemerr(rqstp);
}
- if (!svc_freeargs(transp, xdr_argument, (char *)(caddr_t) &argument)) {
+ if (!svc_freeargs(rqstp, xdr_argument, (char *)(caddr_t) &argument)) {
printf("unable to free arguments");
//exit(1);
}
+ svc_freereq(rqstp);
if (!nlm_prog_3_freeresult(transp, xdr_result, (caddr_t) &result))
printf("unable to free results");
@@ -367,8 +379,9 @@ nlm_prog_4(struct svc_req *rqstp, SVCXPRT *transp)
switch (rqstp->rq_proc) {
case NULLPROC:
- (void) svc_sendreply(transp,
+ (void) svc_sendreply(rqstp,
(xdrproc_t) xdr_void, (char *)NULL);
+ svc_freereq(rqstp);
return;
case NLM4_TEST:
@@ -486,22 +499,25 @@ nlm_prog_4(struct svc_req *rqstp, SVCXPRT *transp)
break;
default:
- svcerr_noproc(transp);
+ svcerr_noproc(rqstp);
+ svc_freereq(rqstp);
return;
}
(void) memset((char *)&argument, 0, sizeof (argument));
- if (!svc_getargs(transp, xdr_argument, (char *)(caddr_t) &argument)) {
- svcerr_decode(transp);
+ if (!svc_getargs(rqstp, xdr_argument, (char *)(caddr_t) &argument)) {
+ svcerr_decode(rqstp);
+ svc_freereq(rqstp);
return;
}
retval = (bool_t) (*local)((char *)&argument, (void *)&result, rqstp);
- if (retval > 0 && !svc_sendreply(transp, xdr_result, (char *)&result)) {
- svcerr_systemerr(transp);
+ if (retval > 0 && !svc_sendreply(rqstp, xdr_result, (char *)&result)) {
+ svcerr_systemerr(rqstp);
}
- if (!svc_freeargs(transp, xdr_argument, (char *)(caddr_t) &argument)) {
+ if (!svc_freeargs(rqstp, xdr_argument, (char *)(caddr_t) &argument)) {
printf("unable to free arguments");
//exit(1);
}
+ svc_freereq(rqstp);
if (!nlm_prog_4_freeresult(transp, xdr_result, (caddr_t) &result))
printf("unable to free results");
OpenPOWER on IntegriCloud