diff options
author | Simo Sorce <simo@redhat.com> | 2012-01-30 14:03:58 -0500 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2012-02-01 17:56:34 -0500 |
commit | 6b02375bc7189acb11517063fc5acec3c1214ec8 (patch) | |
tree | f2f54a19bac7968bab0e5927eae1f64faf7cea15 | |
parent | dcf1205c60ca59dfe1060f9d8c4b927e1c0777cf (diff) | |
download | gss-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.h | 10 | ||||
-rw-r--r-- | proxy/rpcgen/gss_proxy_xdr.c | 6 | ||||
-rw-r--r-- | proxy/src/gp_conv.c | 15 | ||||
-rw-r--r-- | x-files/gss_proxy.x | 4 |
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 */ |