summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2012-01-30 14:03:58 -0500
committerSimo Sorce <simo@redhat.com>2012-02-01 17:56:34 -0500
commit6b02375bc7189acb11517063fc5acec3c1214ec8 (patch)
treef2f54a19bac7968bab0e5927eae1f64faf7cea15
parentdcf1205c60ca59dfe1060f9d8c4b927e1c0777cf (diff)
downloadgss-proxy-6b02375bc7189acb11517063fc5acec3c1214ec8.tar.gz
gss-proxy-6b02375bc7189acb11517063fc5acec3c1214ec8.tar.xz
gss-proxy-6b02375bc7189acb11517063fc5acec3c1214ec8.zip
Simplify gssx_name struct
We do not need arrays here. When multiple names are required then an array of gssx_names is more appropriate.
-rw-r--r--proxy/rpcgen/gss_proxy.h10
-rw-r--r--proxy/rpcgen/gss_proxy_xdr.c6
-rw-r--r--proxy/src/gp_conv.c15
-rw-r--r--x-files/gss_proxy.x4
4 files changed, 8 insertions, 27 deletions
diff --git a/proxy/rpcgen/gss_proxy.h b/proxy/rpcgen/gss_proxy.h
index d49fe01..9986240 100644
--- a/proxy/rpcgen/gss_proxy.h
+++ b/proxy/rpcgen/gss_proxy.h
@@ -138,14 +138,8 @@ typedef struct gssx_call_ctx gssx_call_ctx;
struct gssx_name {
gssx_buffer *display_name;
gssx_OID name_type;
- struct {
- u_int exported_name_len;
- gssx_buffer *exported_name_val;
- } exported_name;
- struct {
- u_int exported_composite_name_len;
- gssx_buffer *exported_composite_name_val;
- } exported_composite_name;
+ gssx_buffer exported_name;
+ gssx_buffer exported_composite_name;
struct {
u_int name_attributes_len;
gssx_name_attr *name_attributes_val;
diff --git a/proxy/rpcgen/gss_proxy_xdr.c b/proxy/rpcgen/gss_proxy_xdr.c
index 22926d6..2853939 100644
--- a/proxy/rpcgen/gss_proxy_xdr.c
+++ b/proxy/rpcgen/gss_proxy_xdr.c
@@ -207,11 +207,9 @@ xdr_gssx_name (XDR *xdrs, gssx_name *objp)
return FALSE;
if (!xdr_gssx_OID (xdrs, &objp->name_type))
return FALSE;
- if (!xdr_array (xdrs, (char **)&objp->exported_name.exported_name_val, (u_int *) &objp->exported_name.exported_name_len, ~0,
- sizeof (gssx_buffer), (xdrproc_t) xdr_gssx_buffer))
+ if (!xdr_gssx_buffer (xdrs, &objp->exported_name))
return FALSE;
- if (!xdr_array (xdrs, (char **)&objp->exported_composite_name.exported_composite_name_val, (u_int *) &objp->exported_composite_name.exported_composite_name_len, ~0,
- sizeof (gssx_buffer), (xdrproc_t) xdr_gssx_buffer))
+ if (!xdr_gssx_buffer (xdrs, &objp->exported_composite_name))
return FALSE;
if (!xdr_array (xdrs, (char **)&objp->name_attributes.name_attributes_val, (u_int *) &objp->name_attributes.name_attributes_len, ~0,
sizeof (gssx_name_attr), (xdrproc_t) xdr_gssx_name_attr))
diff --git a/proxy/src/gp_conv.c b/proxy/src/gp_conv.c
index 573eb27..f79000d 100644
--- a/proxy/src/gp_conv.c
+++ b/proxy/src/gp_conv.c
@@ -302,14 +302,7 @@ int gp_conv_name_to_gssx(gss_name_t in, gssx_name *out)
goto done;
}
- out->exported_name.exported_name_len = 1;
- out->exported_name.exported_name_val = calloc(1, sizeof(gssx_buffer));
- if (!out->exported_name.exported_name_val) {
- ret = ENOMEM;
- goto done;
- }
- ret = gp_conv_buffer_to_gssx(&exported_name,
- out->exported_name.exported_name_val);
+ ret = gp_conv_buffer_to_gssx(&exported_name, &out->exported_name);
if (ret) {
goto done;
}
@@ -326,11 +319,7 @@ done:
free(out->display_name);
}
xdr_free((xdrproc_t)xdr_gssx_OID, (char *)&out->name_type);
- if (out->exported_name.exported_name_val) {
- xdr_free((xdrproc_t)xdr_gssx_buffer,
- (char *)out->exported_name.exported_name_val);
- free(out->exported_name.exported_name_val);
- }
+ xdr_free((xdrproc_t)xdr_gssx_buffer, (char *)&out->exported_name);
}
return ret;
}
diff --git a/x-files/gss_proxy.x b/x-files/gss_proxy.x
index 0e428d3..fb1c98c 100644
--- a/x-files/gss_proxy.x
+++ b/x-files/gss_proxy.x
@@ -251,8 +251,8 @@ struct gssx_name {
gssx_buffer *display_name;
gssx_OID name_type;
/* MNs MUST have at least one exported name form */
- gssx_buffer exported_name<>;
- gssx_buffer exported_composite_name<>;
+ gssx_buffer exported_name;
+ gssx_buffer exported_composite_name;
/* Name attributes */
gssx_name_attr name_attributes<>;
/* Future extensions */