summaryrefslogtreecommitdiff
path: root/src/svc_dg.c
diff options
context:
space:
mode:
authorPeter Rosin <peda@lysator.liu.se>2015-10-30 10:37:48 -0400
committerSteve Dickson <steved@redhat.com>2015-10-30 10:53:12 -0400
commitb7c2ade67a49ea8a25bdf4333cf62cbd284d5dcd (patch)
tree59511d38d8a9364294c578f10f006ae582339ec9 /src/svc_dg.c
parent0e7488474a127cb96caa191336c65e5c86fa4837 (diff)
downloadti-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.c11
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)