115 |
gift_register_call(msg.xid, callback, user_data); |
gift_register_call(msg.xid, callback, user_data); |
116 |
} |
} |
117 |
|
|
118 |
|
void GIFTSRV_SearchCancel(RPCfunc callback, gpointer user_data, |
119 |
|
GString *searchobj) |
120 |
|
{ |
121 |
|
struct rpc_msg msg; |
122 |
|
gc_xdr_data *data_out = gc_xdr_new(); |
123 |
|
|
124 |
|
gc_rpc_init_call(&msg, GIFTSRV_PROGNUM, GIFTSRV_VERSION, 51); |
125 |
|
gc_rpc_process(&msg, data_out, XDR_ENCODE); |
126 |
|
gc_xdr_vopaque(data_out, (gpointer*) &searchobj->str, &searchobj->len, -1); |
127 |
|
if (gift_write(data_out) < 0) |
128 |
|
callback(NULL, NULL, user_data); |
129 |
|
gc_xdr_free(data_out); |
130 |
|
|
131 |
|
gift_register_call(msg.xid, callback, user_data); |
132 |
|
} |
133 |
|
|
134 |
|
void GIFTSRV_SearchFinish(RPCfunc callback, gpointer user_data, |
135 |
|
GString *searchobj) |
136 |
|
{ |
137 |
|
struct rpc_msg msg; |
138 |
|
gc_xdr_data *data_out = gc_xdr_new(); |
139 |
|
|
140 |
|
gc_rpc_init_call(&msg, GIFTSRV_PROGNUM, GIFTSRV_VERSION, 52); |
141 |
|
gc_rpc_process(&msg, data_out, XDR_ENCODE); |
142 |
|
gc_xdr_vopaque(data_out, (gpointer*) &searchobj->str, &searchobj->len, -1); |
143 |
|
if (gift_write(data_out) < 0) |
144 |
|
callback(NULL, NULL, user_data); |
145 |
|
gc_xdr_free(data_out); |
146 |
|
|
147 |
|
gift_register_call(msg.xid, callback, user_data); |
148 |
|
} |
149 |
|
|
150 |
/***** Functions to translate giFT specific data structures to/from XDR *****/ |
/***** Functions to translate giFT specific data structures to/from XDR *****/ |
151 |
|
|
152 |
static void GIFT_hash_encode(gc_xdr_data *blob, struct GIFT_hash_t *hash) |
static void GIFT_hash_encode(gc_xdr_data *blob, struct GIFT_hash_t *hash) |