- char *ztarget = sdb->database->url;
- //char *ztarget = sdb->url;
- char *zproxy = session_setting_oneval(sdb, PZ_ZPROXY);
-
- if (*zproxy)
- yaz_oi_set_string_oid(&req->otherInfo,
- global_parameters.odr_out,
- yaz_oid_userinfo_proxy,
- 1, ztarget);
-}
-
-
-static void client_init_request(struct client *cl)
-{
- Z_APDU *a = zget_APDU(global_parameters.odr_out, Z_APDU_initRequest);
-
- a->u.initRequest->implementationId = global_parameters.implementationId;
- a->u.initRequest->implementationName = global_parameters.implementationName;
- a->u.initRequest->implementationVersion =
- global_parameters.implementationVersion;
- ODR_MASK_SET(a->u.initRequest->options, Z_Options_search);
- ODR_MASK_SET(a->u.initRequest->options, Z_Options_present);
- ODR_MASK_SET(a->u.initRequest->options, Z_Options_namedResultSets);
-
- ODR_MASK_SET(a->u.initRequest->protocolVersion, Z_ProtocolVersion_1);
- ODR_MASK_SET(a->u.initRequest->protocolVersion, Z_ProtocolVersion_2);
- ODR_MASK_SET(a->u.initRequest->protocolVersion, Z_ProtocolVersion_3);
-
- init_authentication(cl, a->u.initRequest);
- init_zproxy(cl, a->u.initRequest);
-
- if (send_apdu(cl, a) >= 0)
- client_set_state(cl, Client_Initializing);
+ struct connection *co = client_get_connection(cl);
+ ZOOM_connection link = connection_get_link(co);
+ ZOOM_resultset rs;
+ char *databaseName = sdb->database->databases[0];
+ const char *opt_piggyback = session_setting_oneval(sdb, PZ_PIGGYBACK);
+ const char *opt_queryenc = session_setting_oneval(sdb, PZ_QUERYENCODING);
+ const char *opt_elements = session_setting_oneval(sdb, PZ_ELEMENTS);
+ const char *opt_requestsyn = session_setting_oneval(sdb, PZ_REQUESTSYNTAX);
+ const char *opt_maxrecs = session_setting_oneval(sdb, PZ_MAXRECS);
+ const char *opt_sru = session_setting_oneval(sdb, PZ_SRU);
+
+ assert(link);
+
+ cl->hits = -1;
+ cl->record_offset = 0;
+ cl->diagnostic = 0;
+ client_set_state(cl, Client_Working);
+
+ if (*opt_piggyback)
+ ZOOM_connection_option_set(link, "piggyback", opt_piggyback);