This allows a server to disable named result sets. Until now
all negoation was handled exclusively by the GFS(server) and the
client. The server implementation had no way to tell the system
that it does not handle named result sets.
+Added member named_result_sets for init handler struct for the GFS. This
+allows a server to disable named result sets.
+
--- 3.0.41 2008/12/29
Fixed Fixed test that makes VERSION_SHA1 appear on dist versions too.
--- 3.0.41 2008/12/29
Fixed Fixed test that makes VERSION_SHA1 appear on dist versions too.
/** \brief SRU record update handler */
int (*bend_srw_update)(void *handle, bend_update_rr *rr);
/** \brief SRU record update handler */
int (*bend_srw_update)(void *handle, bend_update_rr *rr);
+ /** \brief whether named result sets are supported (0=disable, 1=enable) */
+ int named_result_sets;
} bend_initrequest;
typedef struct bend_initresult
} bend_initrequest;
typedef struct bend_initresult
/** \brief SRU record update handler */
int (*bend_srw_update)(void *handle, bend_update_rr *rr);
/** \brief SRU record update handler */
int (*bend_srw_update)(void *handle, bend_update_rr *rr);
+ /** \brief whether named result sets are supported (0=disable, 1=enable) */
+ int named_result_sets;
} bend_initrequest;
/** \brief result for init handler (must be filled by handler) */
} bend_initrequest;
/** \brief result for init handler (must be filled by handler) */
assoc->init->bend_explain = NULL;
assoc->init->bend_srw_scan = NULL;
assoc->init->bend_srw_update = NULL;
assoc->init->bend_explain = NULL;
assoc->init->bend_srw_scan = NULL;
assoc->init->bend_srw_update = NULL;
+ assoc->init->named_result_sets = 0;
assoc->init->charneg_request = NULL;
assoc->init->charneg_response = NULL;
assoc->init->charneg_request = NULL;
assoc->init->charneg_response = NULL;
assoc->init->charneg_request = negotiation;
}
assoc->init->charneg_request = negotiation;
}
+ /* by default named_result_sets is 0 .. Enable it if client asks for it. */
+ if (ODR_MASK_GET(req->options, Z_Options_namedResultSets))
+ assoc->init->named_result_sets = 1;
+
assoc->backend = 0;
if (cb)
{
assoc->backend = 0;
if (cb)
{
ODR_MASK_SET(resp->options, Z_Options_extendedServices);
strcat(options, " extendedServices");
}
ODR_MASK_SET(resp->options, Z_Options_extendedServices);
strcat(options, " extendedServices");
}
- if (ODR_MASK_GET(req->options, Z_Options_namedResultSets))
+ if (ODR_MASK_GET(req->options, Z_Options_namedResultSets)
+ && assoc->init->named_result_sets)
{
ODR_MASK_SET(resp->options, Z_Options_namedResultSets);
strcat(options, " namedresults");
{
ODR_MASK_SET(resp->options, Z_Options_namedResultSets);
strcat(options, " namedresults");