[Apollon-cvs] apollon/apollon/libapollon proc_xdr.h,1.1.2.2,1.1.2.3 proc_xdr.c,1.1.2.2,1.1.2.3
Brought to you by:
bastiaannaber,
mkoebele
From: Martin K?b. <mko...@us...> - 2004-05-11 16:26:04
|
Update of /cvsroot/apollon/apollon/apollon/libapollon In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1897 Modified Files: Tag: APOLLON_RPC proc_xdr.h proc_xdr.c Log Message: updated version Index: proc_xdr.c =================================================================== RCS file: /cvsroot/apollon/apollon/apollon/libapollon/Attic/proc_xdr.c,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** proc_xdr.c 28 Apr 2004 09:46:21 -0000 1.1.2.2 --- proc_xdr.c 11 May 2004 16:25:50 -0000 1.1.2.3 *************** *** 24,27 **** --- 24,68 ---- /*****************************************************************************/ + #define XDR_ARRAY(xdrs,objp,membtype,max) \ + xdr_array_helper (xdrs, (GiArray **)objp, \ + (gi_xdrproc_t)gi_xdr_ ## membtype, sizeof (membtype), max) + + static bool xdr_array_helper (GiXdr *xdrs, GiArray **objp, + gi_xdrproc_t membproc, size_t membsize, + size_t max) + { + if (xdrs->op == GI_XDR_DECODE) + { + if (!(*objp = gi_array_new (membsize))) + return false; + } + + if (gi_xdr_array (xdrs, *objp, max, membproc) == false) + return false; + + return true; + } + + #define XDR_OPTIONAL(xdrs,objp,type) \ + xdr_optional_helper (xdrs, objp.bopt, objp.data, \ + (gi_xdrproc_t)gi_xdr_ ## type) + + static bool xdr_optional_helper (GiXdr *xdrs, bool *bopt, void *data, + gi_xdrproc_t proc) + { + if (gi_xdr_bool (xdrs, bopt) == false) + return false; + + if (*bopt == true) + { + if (proc (xdrs, data) == false) + return false; + } + + return true; + } + + /*****************************************************************************/ + bool gi_xdr_GIFT_clistr_t (GiXdr *xdrs, GIFT_clistr_t *objp) { *************** *** 128,131 **** --- 169,180 ---- } + bool gi_xdr_GIFT_hashes_t (GiXdr *xdrs, GIFT_hashes_t *objp) + { + if (XDR_ARRAY (xdrs, objp, GIFT_hash_t, UINT32_MAX) == false) + return false; + + return true; + } + /*****************************************************************************/ *************** *** 138,141 **** --- 187,198 ---- } + bool gi_xdr_GIFT_protostrs_t (GiXdr *xdrs, GIFT_protostrs_t *objp) + { + if (XDR_ARRAY (xdrs, objp, GIFT_protostr_t, UINT32_MAX) == false) + return false; + + return true; + } + bool gi_xdr_GIFT_pluginstate_t (GiXdr *xdrs, GIFT_pluginstate_t *objp) { *************** *** 165,177 **** bool gi_xdr_GIFT_plugins_t (GiXdr *xdrs, GIFT_plugins_t *objp) { ! gi_xdrproc_t proc = (gi_xdrproc_t)gi_xdr_GIFT_plugin_t; ! ! if (xdrs->op == GI_XDR_DECODE) ! { ! if (!(*objp = gi_array_new (sizeof (GIFT_plugin_t)))) ! return false; ! } ! ! if (gi_xdr_array (xdrs, *objp, UINT32_MAX, proc) == false) return false; --- 222,226 ---- bool gi_xdr_GIFT_plugins_t (GiXdr *xdrs, GIFT_plugins_t *objp) { ! if (XDR_ARRAY (xdrs, objp, GIFT_plugin_t, UINT32_MAX) == false) return false; *************** *** 261,273 **** bool gi_xdr_GIFT_netstates_t (GiXdr *xdrs, GIFT_netstates_t *objp) { ! gi_xdrproc_t proc = (gi_xdrproc_t)gi_xdr_GIFT_netstate_t; ! if (xdrs->op == GI_XDR_DECODE) ! { ! if (!(*objp = gi_array_new (sizeof (GIFT_netstate_t)))) ! return false; ! } ! if (gi_xdr_array (xdrs, *objp, UINT32_MAX, proc) == false) return false; --- 310,354 ---- bool gi_xdr_GIFT_netstates_t (GiXdr *xdrs, GIFT_netstates_t *objp) { ! if (XDR_ARRAY (xdrs, objp, GIFT_netstate_t, UINT32_MAX) == false) ! return false; ! return true; ! } ! /*****************************************************************************/ ! ! bool gi_xdr_GIFT_username_t (GiXdr *xdrs, GIFT_username_t *objp) ! { ! if (gi_xdr_string (xdrs, objp, UINT32_MAX) == false) ! return false; ! ! return true; ! } ! ! bool gi_xdr_GIFT_userobj_t (GiXdr *xdrs, GIFT_userobj_t *objp) ! { ! if (gi_xdr_bytes (xdrs, (unsigned char **)&objp->data, &objp->size, UINT32_MAX) == false) ! return false; ! ! return true; ! } ! ! bool gi_xdr_GIFT_userdata_t (GiXdr *xdrs, GIFT_userdata_t *objp) ! { ! if (gi_xdr_GIFT_username_t (xdrs, &objp->name) == false) ! return false; ! ! if (gi_xdr_GIFT_userobj_t (xdrs, &objp->id) == false) ! return false; ! ! return true; ! } ! ! bool gi_xdr_GIFT_user_t (GiXdr *xdrs, GIFT_user_t *objp) ! { ! if (gi_xdr_GIFT_protostr_t (xdrs, &objp->proto) == false) ! return false; ! ! if (gi_xdr_GIFT_userdata_t (xdrs, &objp->data) == false) return false; *************** *** 285,288 **** --- 366,377 ---- } + bool gi_xdr_GIFT_resultobj_t (GiXdr *xdrs, GIFT_resultobj_t *objp) + { + if (gi_xdr_bytes (xdrs, (unsigned char **)&objp->data, &objp->size, UINT32_MAX) == false) + return false; + + return true; + } + bool gi_xdr_GIFT_querystr_t (GiXdr *xdrs, GIFT_querystr_t *objp) { *************** *** 304,307 **** --- 393,429 ---- } + bool gi_xdr_GIFT_metacmp_t (GiXdr *xdrs, GIFT_metacmp_t *objp) + { + if (gi_xdr_enum (xdrs, (int32_t *)objp) == false) + return false; + + if (*objp < 0 || *objp > 6) + return false; + + return true; + } + + bool gi_xdr_GIFT_metaquerypair_t (GiXdr *xdrs, GIFT_metaquerypair_t *objp) + { + if (gi_xdr_GIFT_metakey_t (xdrs, &objp->key) == false) + return false; + + if (gi_xdr_GIFT_metacmp_t (xdrs, &objp->cmp) == false) + return false; + + if (gi_xdr_GIFT_metavalue_t (xdrs, &objp->value) == false) + return false; + + return true; + } + + bool gi_xdr_GIFT_metaqueryset_t (GiXdr *xdrs, GIFT_metaqueryset_t *objp) + { + if (XDR_ARRAY (xdrs, objp, GIFT_metaquerypair_t, UINT32_MAX) == false) + return false; + + return true; + } + bool gi_xdr_GIFT_metakey_t (GiXdr *xdrs, GIFT_metakey_t *objp) { *************** *** 333,345 **** bool gi_xdr_GIFT_metaset_t (GiXdr *xdrs, GIFT_metaset_t *objp) { ! gi_xdrproc_t proc = (gi_xdrproc_t)gi_xdr_GIFT_metapair_t; ! ! if (xdrs->op == GI_XDR_DECODE) ! { ! if (!(*objp = gi_array_new (sizeof (GIFT_metapair_t)))) ! return false; ! } ! ! if (gi_xdr_array (xdrs, *objp, UINT32_MAX, proc) == false) return false; --- 455,459 ---- bool gi_xdr_GIFT_metaset_t (GiXdr *xdrs, GIFT_metaset_t *objp) { ! if (XDR_ARRAY (xdrs, objp, GIFT_metapair_t, UINT32_MAX) == false) return false; *************** *** 365,381 **** return false; ! if (gi_xdr_bool (xdrs, &objp->exclude.bopt) == false) return false; - if (objp->exclude.bopt == true) - { - if (gi_xdr_GIFT_querystr_t (xdrs, &objp->exclude.data) == false) - return false; - } - if (gi_xdr_GIFT_realm_t (xdrs, &objp->realm) == false) return false; ! if (gi_xdr_GIFT_metaset_t (xdrs, &objp->meta) == false) return false; --- 479,489 ---- return false; ! if (XDR_OPTIONAL (xdrs, &objp->exclude, GIFT_querystr_t) == false) return false; if (gi_xdr_GIFT_realm_t (xdrs, &objp->realm) == false) return false; ! if (gi_xdr_GIFT_metaqueryset_t (xdrs, &objp->meta) == false) return false; *************** *** 410,425 **** bool gi_xdr_GIFT_query_t (GiXdr *xdrs, GIFT_query_t *objp) { - gi_xdrproc_t proc = (gi_xdrproc_t)gi_xdr_GIFT_protostr_t; - if (gi_xdr_GIFT_queryparams_t (xdrs, &objp->params) == false) return false; ! if (xdrs->op == GI_XDR_DECODE) ! { ! if (!(objp->plugins = gi_array_new (sizeof (GIFT_protostr_t)))) ! return false; ! } ! ! if (gi_xdr_array (xdrs, objp->plugins, UINT32_MAX, proc) == false) return false; --- 518,525 ---- bool gi_xdr_GIFT_query_t (GiXdr *xdrs, GIFT_query_t *objp) { if (gi_xdr_GIFT_queryparams_t (xdrs, &objp->params) == false) return false; ! if (gi_xdr_GIFT_protostrs_t (xdrs, &objp->plugins) == false) return false; *************** *** 431,454 **** bool gi_xdr_GIFT_searchresult_t (GiXdr *xdrs, GIFT_searchresult_t *objp) { - gi_xdrproc_t proc = (gi_xdrproc_t)gi_xdr_GIFT_hash_t; - if (gi_xdr_GIFT_searchobj_t (xdrs, &objp->obj) == false) return false; if (gi_xdr_GIFT_protostr_t (xdrs, &objp->proto) == false) return false; ! if (gi_xdr_array (xdrs, objp->hash, UINT32_MAX, proc) == false) return false; ! if (gi_xdr_bool (xdrs, &objp->avail.bopt) == false) return false; ! if (objp->avail.bopt == true) { ! if (gi_xdr_uint32_t (xdrs, &objp->avail.data) == false) ! return false; } if (gi_xdr_GIFT_metaset_t (xdrs, &objp->meta) == false) return false; --- 531,587 ---- bool gi_xdr_GIFT_searchresult_t (GiXdr *xdrs, GIFT_searchresult_t *objp) { if (gi_xdr_GIFT_searchobj_t (xdrs, &objp->obj) == false) return false; + if (gi_xdr_GIFT_resultobj_t (xdrs, &objp->result_obj) == false) + return false; + if (gi_xdr_GIFT_protostr_t (xdrs, &objp->proto) == false) return false; ! if (gi_xdr_GIFT_hashes_t (xdrs, &objp->hash) == false) return false; ! if (XDR_OPTIONAL (xdrs, &objp->size, uint32_t) == false) return false; ! return true; ! } ! ! bool gi_xdr_GIFT_resultusers_t (GiXdr *xdrs, GIFT_resultusers_t *objp) ! { ! bool ret; ! ! if (gi_xdr_bool (xdrs, &objp->has_users) == false) ! return false; ! ! switch (objp->has_users) { ! case true: ! ret = XDR_ARRAY (xdrs, &objp->u.users, GIFT_userdata_t, UINT32_MAX); ! break; ! ! case false: ! ret = gi_xdr_uint32_t (xdrs, &objp->u.count); ! break; } + return ret; + } + + bool gi_xdr_GIFT_resultdata_t (GiXdr *xdrs, GIFT_resultdata_t *objp) + { + if (gi_xdr_GIFT_searchobj_t (xdrs, &objp->search_obj) == false) + return false; + + if (gi_xdr_GIFT_resultobj_t (xdrs, &objp->result_obj) == false) + return false; + + if (XDR_OPTIONAL (xdrs, &objp->avail, uint32_t) == false) + return false; + + if (XDR_OPTIONAL (xdrs, &objp->userdata, GIFT_resultusers_t) == false) + return false; + if (gi_xdr_GIFT_metaset_t (xdrs, &objp->meta) == false) return false; *************** *** 491,496 **** bool gi_xdr_GIFT_xfer_t (GiXdr *xdrs, GIFT_xfer_t *objp) { - gi_xdrproc_t proc = (gi_xdrproc_t)gi_xdr_GIFT_hash_t; - if (gi_xdr_GIFT_xferobj_t (xdrs, &objp->handle) == false) return false; --- 624,627 ---- *************** *** 499,503 **** return false; ! if (gi_xdr_array (xdrs, objp->hash, UINT32_MAX, proc) == false) return false; --- 630,634 ---- return false; ! if (gi_xdr_GIFT_hashes_t (xdrs, &objp->hash) == false) return false; *************** *** 511,523 **** return false; ! if (gi_xdr_bool (xdrs, &objp->size.bopt) == false) return false; - if (objp->size.bopt == true) - { - if (gi_xdr_GIFT_off_t (xdrs, &objp->size.data) == false) - return false; - } - return true; } --- 642,648 ---- return false; ! if (XDR_OPTIONAL (xdrs, &objp->size, GIFT_off_t) == false) return false; return true; } Index: proc_xdr.h =================================================================== RCS file: /cvsroot/apollon/apollon/apollon/libapollon/Attic/proc_xdr.h,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** proc_xdr.h 28 Apr 2004 09:46:21 -0000 1.1.2.2 --- proc_xdr.h 11 May 2004 16:25:50 -0000 1.1.2.3 *************** *** 34,38 **** #include <libgift/gi_xdr.h> - #include <libgift/gi_xdr_rpc.h> #include <libgift/gi_array.h> --- 34,37 ---- *************** *** 43,48 **** */ #define XDR_USERTYPE(__type__,__def__) \ ! typedef __def__ __type__; \ ! bool gi_xdr_ ## __type__ (GiXdr *xdrs, __type__ *objp); /* C structure to map the opaque XDR type */ --- 42,47 ---- */ #define XDR_USERTYPE(__type__,__def__) \ ! typedef __def__ __type__; \ ! bool gi_xdr_ ## __type__ (GiXdr *xdrs, __type__ *objp) /* C structure to map the opaque XDR type */ *************** *** 55,60 **** /*****************************************************************************/ ! XDR_USERTYPE (GIFT_clistr_t, char * /* <128> */) ! XDR_USERTYPE (GIFT_verstr_t, char * /* <32> */) struct GIFT_cliinfo_t --- 54,59 ---- /*****************************************************************************/ ! XDR_USERTYPE (GIFT_clistr_t, char * /* <128> */); ! XDR_USERTYPE (GIFT_verstr_t, char * /* <32> */); struct GIFT_cliinfo_t *************** *** 64,68 **** }; ! XDR_USERTYPE (GIFT_cliinfo_t, struct GIFT_cliinfo_t) /*****************************************************************************/ --- 63,67 ---- }; ! XDR_USERTYPE (GIFT_cliinfo_t, struct GIFT_cliinfo_t); /*****************************************************************************/ *************** *** 75,90 **** }; ! XDR_USERTYPE (GIFT_shareinfo_t, struct GIFT_shareinfo_t) /*****************************************************************************/ ! XDR_USERTYPE (GIFT_path_t, char * /* <4096> */) ! XDR_USERTYPE (GIFT_mime_t, char * /* <128> */) ! XDR_USERTYPE (GIFT_off_t, off_t) ! XDR_USERTYPE (GIFT_hashtypestr_t, char * /* <16> */) ! XDR_USERTYPE (GIFT_hashstr_t, char *) ! XDR_USERTYPE (GIFT_hashdata_t, struct xdr_opaque) #if 0 --- 74,89 ---- }; ! XDR_USERTYPE (GIFT_shareinfo_t, struct GIFT_shareinfo_t); /*****************************************************************************/ ! XDR_USERTYPE (GIFT_path_t, char * /* <4096> */); ! XDR_USERTYPE (GIFT_mime_t, char * /* <128> */); ! XDR_USERTYPE (GIFT_off_t, off_t); ! XDR_USERTYPE (GIFT_hashtypestr_t, char * /* <16> */); ! XDR_USERTYPE (GIFT_hashstr_t, char *); ! XDR_USERTYPE (GIFT_hashdata_t, struct xdr_opaque); #if 0 *************** *** 95,99 **** }; ! XDR_USERTYPE (GIFT_hashtype_t, struct GIFT_hashtype_t) #endif --- 94,98 ---- }; ! XDR_USERTYPE (GIFT_hashtype_t, struct GIFT_hashtype_t); #endif *************** *** 104,112 **** }; ! XDR_USERTYPE (GIFT_hash_t, struct GIFT_hash_t) /*****************************************************************************/ ! XDR_USERTYPE (GIFT_protostr_t, char * /* <64> */) enum GIFT_pluginstate_t --- 103,127 ---- }; ! XDR_USERTYPE (GIFT_hash_t, struct GIFT_hash_t); ! XDR_USERTYPE (GIFT_hashes_t, GiArray *); /*****************************************************************************/ ! XDR_USERTYPE (GIFT_metakey_t, char * /* <128> */); ! XDR_USERTYPE (GIFT_metavalue_t, char *); ! ! struct GIFT_metapair_t ! { ! GIFT_metakey_t key; ! GIFT_metavalue_t value; ! }; ! ! XDR_USERTYPE (GIFT_metapair_t, struct GIFT_metapair_t); ! XDR_USERTYPE (GIFT_metaset_t, GiArray *); ! ! /*****************************************************************************/ ! ! XDR_USERTYPE (GIFT_protostr_t, char * /* <64> */); ! XDR_USERTYPE (GIFT_protostrs_t, GiArray *); enum GIFT_pluginstate_t *************** *** 117,121 **** }; ! XDR_USERTYPE (GIFT_pluginstate_t, enum GIFT_pluginstate_t) struct GIFT_plugin_t --- 132,136 ---- }; ! XDR_USERTYPE (GIFT_pluginstate_t, enum GIFT_pluginstate_t); struct GIFT_plugin_t *************** *** 126,131 **** }; ! XDR_USERTYPE (GIFT_plugin_t, struct GIFT_plugin_t) ! XDR_USERTYPE (GIFT_plugins_t, GiArray *) /*****************************************************************************/ --- 141,146 ---- }; ! XDR_USERTYPE (GIFT_plugin_t, struct GIFT_plugin_t); ! XDR_USERTYPE (GIFT_plugins_t, GiArray *); /*****************************************************************************/ *************** *** 137,141 **** }; ! XDR_USERTYPE (GIFT_netstateenum_t, enum GIFT_netstateenum_t) struct GIFT_netstats_t --- 152,156 ---- }; ! XDR_USERTYPE (GIFT_netstateenum_t, enum GIFT_netstateenum_t); struct GIFT_netstats_t *************** *** 146,150 **** }; ! XDR_USERTYPE (GIFT_netstats_t, struct GIFT_netstats_t) struct GIFT_netinfo_t --- 161,165 ---- }; ! XDR_USERTYPE (GIFT_netstats_t, struct GIFT_netstats_t); struct GIFT_netinfo_t *************** *** 157,161 **** }; ! XDR_USERTYPE (GIFT_netinfo_t, struct GIFT_netinfo_t) struct GIFT_netstateinfo_t --- 172,176 ---- }; ! XDR_USERTYPE (GIFT_netinfo_t, struct GIFT_netinfo_t); struct GIFT_netstateinfo_t *************** *** 168,172 **** }; ! XDR_USERTYPE (GIFT_netstateinfo_t, struct GIFT_netstateinfo_t) struct GIFT_netstate_t --- 183,187 ---- }; ! XDR_USERTYPE (GIFT_netstateinfo_t, struct GIFT_netstateinfo_t); struct GIFT_netstate_t *************** *** 176,187 **** }; ! XDR_USERTYPE (GIFT_netstate_t, struct GIFT_netstate_t) ! XDR_USERTYPE (GIFT_netstates_t, GiArray *) /*****************************************************************************/ ! XDR_USERTYPE (GIFT_searchobj_t, struct xdr_opaque) ! XDR_USERTYPE (GIFT_querystr_t, char *) enum GIFT_realm_t --- 191,224 ---- }; ! XDR_USERTYPE (GIFT_netstate_t, struct GIFT_netstate_t); ! XDR_USERTYPE (GIFT_netstates_t, GiArray *); /*****************************************************************************/ ! XDR_USERTYPE (GIFT_username_t, char *); ! XDR_USERTYPE (GIFT_userobj_t, struct xdr_opaque); ! struct GIFT_userdata_t ! { ! GIFT_username_t name; ! GIFT_userobj_t id; ! }; ! ! XDR_USERTYPE (GIFT_userdata_t, struct GIFT_userdata_t); ! ! struct GIFT_user_t ! { ! GIFT_protostr_t proto; ! GIFT_userdata_t data; ! }; ! ! XDR_USERTYPE (GIFT_user_t, struct GIFT_user_t); ! ! /*****************************************************************************/ ! ! XDR_USERTYPE (GIFT_searchobj_t, struct xdr_opaque); ! XDR_USERTYPE (GIFT_resultobj_t, struct xdr_opaque); ! ! XDR_USERTYPE (GIFT_querystr_t, char *); enum GIFT_realm_t *************** *** 195,211 **** }; ! XDR_USERTYPE (GIFT_realm_t, enum GIFT_realm_t) ! XDR_USERTYPE (GIFT_metakey_t, char * /* <128> */) ! XDR_USERTYPE (GIFT_metavalue_t, char *) ! struct GIFT_metapair_t { GIFT_metakey_t key; GIFT_metavalue_t value; }; ! XDR_USERTYPE (GIFT_metapair_t, struct GIFT_metapair_t) ! XDR_USERTYPE (GIFT_metaset_t, GiArray *) /*****************************************************************************/ --- 232,259 ---- }; ! XDR_USERTYPE (GIFT_realm_t, enum GIFT_realm_t); ! enum GIFT_metacmp_t ! { ! GIFT_METACMP_EQUALS = 0, ! GIFT_METACMP_ATMOST = 1, ! GIFT_METACMP_ATLEAST = 2, ! GIFT_METACMP_APPROX = 3, ! GIFT_METACMP_CONTAINS = 4, ! GIFT_METACMP_BEGINS_WITH = 5, ! GIFT_METACMP_ENDS_WITH = 6 ! }; ! XDR_USERTYPE (GIFT_metacmp_t, enum GIFT_metacmp_t); ! ! struct GIFT_metaquerypair_t { GIFT_metakey_t key; + GIFT_metacmp_t cmp; GIFT_metavalue_t value; }; ! XDR_USERTYPE (GIFT_metaquerypair_t, struct GIFT_metaquerypair_t); ! XDR_USERTYPE (GIFT_metaqueryset_t, GiArray *); /*****************************************************************************/ *************** *** 217,221 **** }; ! XDR_USERTYPE (GIFT_querytype_t, enum GIFT_querytype_t) struct GIFT_querytokens_t --- 265,269 ---- }; ! XDR_USERTYPE (GIFT_querytype_t, enum GIFT_querytype_t); struct GIFT_querytokens_t *************** *** 228,235 **** } exclude; GIFT_realm_t realm; ! GIFT_metaset_t meta; }; ! XDR_USERTYPE (GIFT_querytokens_t, struct GIFT_querytokens_t) struct GIFT_queryparams_t --- 276,283 ---- } exclude; GIFT_realm_t realm; ! GIFT_metaqueryset_t meta; }; ! XDR_USERTYPE (GIFT_querytokens_t, struct GIFT_querytokens_t); struct GIFT_queryparams_t *************** *** 243,255 **** }; ! XDR_USERTYPE (GIFT_queryparams_t, struct GIFT_queryparams_t) struct GIFT_query_t { GIFT_queryparams_t params; ! GiArray *plugins; /* GIFT_protostr_t */ }; ! XDR_USERTYPE (GIFT_query_t, struct GIFT_query_t) /*****************************************************************************/ --- 291,303 ---- }; ! XDR_USERTYPE (GIFT_queryparams_t, struct GIFT_queryparams_t); struct GIFT_query_t { GIFT_queryparams_t params; ! GIFT_protostrs_t plugins; }; ! XDR_USERTYPE (GIFT_query_t, struct GIFT_query_t); /*****************************************************************************/ *************** *** 258,276 **** { GIFT_searchobj_t obj; GIFT_protostr_t proto; ! GiArray *hash; /* GIFT_hash_t */ struct { bool bopt; ! uint32_t data; } avail; GIFT_metaset_t meta; }; ! XDR_USERTYPE (GIFT_searchresult_t, struct GIFT_searchresult_t) /*****************************************************************************/ ! XDR_USERTYPE (GIFT_xferobj_t, struct xdr_opaque) enum GIFT_xfertype_t --- 306,355 ---- { GIFT_searchobj_t obj; + GIFT_resultobj_t result_obj; GIFT_protostr_t proto; ! GIFT_hashes_t hash; ! union ! { ! bool bopt; ! GIFT_off_t data; ! } size; ! }; ! ! XDR_USERTYPE (GIFT_searchresult_t, struct GIFT_searchresult_t); ! ! struct GIFT_resultusers_t ! { ! bool has_users; ! union ! { ! GiArray *users; /* GIFT_userdata_t */ ! unsigned int count; ! } u; ! }; ! ! XDR_USERTYPE (GIFT_resultusers_t, struct GIFT_resultusers_t); ! ! struct GIFT_resultdata_t ! { ! GIFT_searchobj_t search_obj; ! GIFT_resultobj_t result_obj; struct { bool bopt; ! unsigned int data; } avail; + struct + { + bool bopt; + GIFT_resultusers_t data; + } userdata; GIFT_metaset_t meta; }; ! XDR_USERTYPE (GIFT_resultdata_t, struct GIFT_resultdata_t); /*****************************************************************************/ ! XDR_USERTYPE (GIFT_xferobj_t, struct xdr_opaque); enum GIFT_xfertype_t *************** *** 281,285 **** }; ! XDR_USERTYPE (GIFT_xfertype_t, enum GIFT_xfertype_t) enum GIFT_xferstate_t --- 360,364 ---- }; ! XDR_USERTYPE (GIFT_xfertype_t, enum GIFT_xfertype_t); enum GIFT_xferstate_t *************** *** 290,294 **** }; ! XDR_USERTYPE (GIFT_xferstate_t, enum GIFT_xferstate_t) struct GIFT_xfer_t --- 369,373 ---- }; ! XDR_USERTYPE (GIFT_xferstate_t, enum GIFT_xferstate_t); struct GIFT_xfer_t *************** *** 296,300 **** GIFT_xferobj_t handle; GIFT_xfertype_t type; ! GiArray *hash; /* GIFT_hash_t */ GIFT_path_t name; GIFT_xferstate_t state; --- 375,379 ---- GIFT_xferobj_t handle; GIFT_xfertype_t type; ! GIFT_hashes_t hash; GIFT_path_t name; GIFT_xferstate_t state; *************** *** 307,314 **** }; ! XDR_USERTYPE (GIFT_xfer_t, struct GIFT_xfer_t) ! XDR_USERTYPE (GIFT_xfers_t, GiArray *) /*****************************************************************************/ #ifdef __cplusplus } --- 386,394 ---- }; ! XDR_USERTYPE (GIFT_xfer_t, struct GIFT_xfer_t); ! XDR_USERTYPE (GIFT_xfers_t, GiArray *); /*****************************************************************************/ + #ifdef __cplusplus } |