- req.referenceId = 0;
- req.smallSetUpperBound = &p->set_inher.smallSetUpperBound;
- req.largeSetLowerBound = &p->set_inher.largeSetLowerBound;
- req.mediumSetPresentNumber = &p->set_inher.mediumSetPresentNumber;
- req.replaceIndicator = &p->set_inher.replaceIndicator;
- req.resultSetName = obj->setName ? obj->setName : "Default";
- logf (LOG_DEBUG, "Search, resultSetName %s", req.resultSetName);
- req.num_databaseNames = p->set_inher.num_databaseNames;
- req.databaseNames = p->set_inher.databaseNames;
- for (r=0; r < p->set_inher.num_databaseNames; r++)
- logf (LOG_DEBUG, " Database %s", p->set_inher.databaseNames[r]);
- req.smallSetElementSetNames = 0;
- req.mediumSetElementSetNames = 0;
- req.preferredRecordSyntax = 0;
- req.query = &query;
-
- if (!strcmp (p->set_inher.queryType, "rpn"))
+ set_referenceId (p->odr_out, &req->referenceId,
+ obj->set_inher.referenceId);
+
+ req->smallSetUpperBound = &obj->set_inher.smallSetUpperBound;
+ req->largeSetLowerBound = &obj->set_inher.largeSetLowerBound;
+ req->mediumSetPresentNumber = &obj->set_inher.mediumSetPresentNumber;
+ req->replaceIndicator = &obj->set_inher.replaceIndicator;
+ req->resultSetName = obj->setName ? obj->setName : "Default";
+ logf (LOG_DEBUG, "Search, resultSetName %s", req->resultSetName);
+ req->num_databaseNames = obj->set_inher.num_databaseNames;
+ req->databaseNames = obj->set_inher.databaseNames;
+ for (r=0; r < obj->set_inher.num_databaseNames; r++)
+ logf (LOG_DEBUG, " Database %s", obj->set_inher.databaseNames[r]);
+ req->smallSetElementSetNames = 0;
+ req->mediumSetElementSetNames = 0;
+ if (obj->set_inher.preferredRecordSyntax)
+ {
+ struct oident ident;
+
+ ident.proto = p->protocol_type;
+ ident.class = CLASS_RECSYN;
+ ident.value = *obj->set_inher.preferredRecordSyntax;
+ req->preferredRecordSyntax = odr_oiddup (p->odr_out,
+ oid_getoidbyent (&ident));
+ }
+ else
+ req->preferredRecordSyntax = 0;
+ req->query = &query;
+
+ if (!strcmp (obj->set_inher.queryType, "rpn"))