diff options
author | Peter Rosin <peda@lysator.liu.se> | 2015-10-30 10:37:48 -0400 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2015-10-30 10:53:12 -0400 |
commit | b7c2ade67a49ea8a25bdf4333cf62cbd284d5dcd (patch) | |
tree | 59511d38d8a9364294c578f10f006ae582339ec9 /src/svc_dg.c | |
parent | 0e7488474a127cb96caa191336c65e5c86fa4837 (diff) | |
download | ti-rpc-b7c2ade67a49ea8a25bdf4333cf62cbd284d5dcd.tar.gz |
Align with Solaris in the process.
Move the SVC_VERSQUIET flag from xp_p3 into a extendable struct
Signed-off-by: Peter Rosin <peda@lysator.liu.se>
Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'src/svc_dg.c')
-rw-r--r-- | src/svc_dg.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/svc_dg.c b/src/svc_dg.c index 930c08d..7c63492 100644 --- a/src/svc_dg.c +++ b/src/svc_dg.c @@ -96,6 +96,7 @@ svc_dg_create(fd, sendsize, recvsize) u_int recvsize; { SVCXPRT *xprt; + SVCXPRT_EXT *ext = NULL; struct svc_dg_data *su = NULL; struct __rpc_sockinfo si; struct sockaddr_storage ss; @@ -120,6 +121,11 @@ svc_dg_create(fd, sendsize, recvsize) goto freedata; memset(xprt, 0, sizeof (SVCXPRT)); + ext = mem_alloc(sizeof (*ext)); + if (ext == NULL) + goto freedata; + memset(ext, 0, sizeof (*ext)); + su = mem_alloc(sizeof (*su)); if (su == NULL) goto freedata; @@ -131,6 +137,7 @@ svc_dg_create(fd, sendsize, recvsize) su->su_cache = NULL; xprt->xp_fd = fd; xprt->xp_p2 = su; + xprt->xp_p3 = ext; xprt->xp_auth = NULL; xprt->xp_verf.oa_base = su->su_verfbody; svc_dg_ops(xprt); @@ -151,6 +158,8 @@ freedata: if (xprt) { if (su) (void) mem_free(su, sizeof (*su)); + if (ext) + (void) mem_free(ext, sizeof (*ext)); (void) mem_free(xprt, sizeof (SVCXPRT)); } return (NULL); @@ -302,6 +311,7 @@ static void svc_dg_destroy(xprt) SVCXPRT *xprt; { + SVCXPRT_EXT *ext = SVCEXT(xprt); struct svc_dg_data *su = su_data(xprt); xprt_unregister(xprt); @@ -314,6 +324,7 @@ svc_dg_destroy(xprt) XDR_DESTROY(&(su->su_xdrs)); (void) mem_free(rpc_buffer(xprt), su->su_iosz); (void) mem_free(su, sizeof (*su)); + (void) mem_free(ext, sizeof (*ext)); if (xprt->xp_rtaddr.buf) (void) mem_free(xprt->xp_rtaddr.buf, xprt->xp_rtaddr.maxlen); if (xprt->xp_ltaddr.buf) |