From bb2a55cf0ed476ec219c059d5bbe45e8864b2cc7 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Mon, 9 Nov 2026 21:17:14 +0100 Subject: [PATCH] Reformats and use odr_strdup_null to simplify --- src/yaz-ir-assoc.cpp | 69 ++++++++++++------------ src/yaz-marc-sample.cpp | 2 +- src/yaz-my-server.cpp | 104 +++++++++++++++++------------------- src/yaz-z-databases.cpp | 28 +++++----- src/yaz-z-query.cpp | 2 +- src/yaz-z-server-ill.cpp | 4 +- src/yaz-z-server-sr.cpp | 29 +++++----- src/yaz-z-server-update.cpp | 10 ++-- src/yaz-z-server.cpp | 12 ++--- 9 files changed, 123 insertions(+), 137 deletions(-) diff --git a/src/yaz-ir-assoc.cpp b/src/yaz-ir-assoc.cpp index a681bf0..75be419 100644 --- a/src/yaz-ir-assoc.cpp +++ b/src/yaz-ir-assoc.cpp @@ -1,5 +1,5 @@ /* This file is part of the yazpp toolkit. - * Copyright (C) Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ @@ -42,24 +42,24 @@ IR_Assoc::~IR_Assoc() delete [] m_cookie; } -void IR_Assoc::get_databaseNames (int *num, char ***list) +void IR_Assoc::get_databaseNames(int *num, char ***list) { *num = m_num_databaseNames; *list = m_databaseNames; } typedef char *charp; -void IR_Assoc::set_databaseNames (int num, const char **list) +void IR_Assoc::set_databaseNames(int num, const char **list) { int i; - yaz_log (m_log, "IR_Assoc::set_databaseNames num=%d", num); - for (i = 0; iu.generic; @@ -124,12 +124,12 @@ void IR_Assoc::set_elementSetName (const char *elementSetName) } } -void IR_Assoc::get_elementSetName (Z_ElementSetNames **elementSetNames) +void IR_Assoc::get_elementSetName(Z_ElementSetNames **elementSetNames) { *elementSetNames = m_elementSetNames; } -void IR_Assoc::get_elementSetName (const char **elementSetName) +void IR_Assoc::get_elementSetName(const char **elementSetName) { if (!m_elementSetNames || m_elementSetNames->which != Z_ElementSetNames_generic) @@ -144,7 +144,7 @@ void IR_Assoc::get_elementSetName (const char **elementSetName) void IR_Assoc::recv_GDU(Z_GDU *apdu, int len) { if (apdu->which == Z_GDU_Z3950) - recv_Z_PDU(apdu->u.z3950, len); + recv_Z_PDU(apdu->u.z3950, len); } void IR_Assoc::recv_Z_PDU(Z_APDU *apdu, int len) @@ -154,39 +154,38 @@ void IR_Assoc::recv_Z_PDU(Z_APDU *apdu, int len) switch (apdu->which) { case Z_APDU_initResponse: - yaz_log (m_log, "recv InitResponse"); + yaz_log(m_log, "recv InitResponse"); recv_initResponse(apdu->u.initResponse); break; case Z_APDU_initRequest: - yaz_log (m_log, "recv InitRequest"); + yaz_log(m_log, "recv InitRequest"); recv_initRequest(apdu->u.initRequest); break; case Z_APDU_searchRequest: - yaz_log (m_log, "recv searchRequest"); + yaz_log(m_log, "recv searchRequest"); recv_searchRequest(apdu->u.searchRequest); break; case Z_APDU_searchResponse: - yaz_log (m_log, "recv searchResponse"); + yaz_log(m_log, "recv searchResponse"); recv_searchResponse(apdu->u.searchResponse); break; case Z_APDU_presentRequest: - yaz_log (m_log, "recv presentRequest"); + yaz_log(m_log, "recv presentRequest"); recv_presentRequest(apdu->u.presentRequest); break; case Z_APDU_presentResponse: - yaz_log (m_log, "recv presentResponse"); + yaz_log(m_log, "recv presentResponse"); recv_presentResponse(apdu->u.presentResponse); break; case Z_APDU_extendedServicesResponse: - yaz_log (m_log, "recv extendedServiceResponse"); + yaz_log(m_log, "recv extendedServiceResponse"); recv_extendedServicesResponse(apdu->u.extendedServicesResponse); break; } } int IR_Assoc::send_searchRequest(Yaz_Z_Query *query, - char* pResultSetId, - char* pRefId) + char* pResultSetId, char* pRefId) { Z_APDU *apdu = create_Z_PDU(Z_APDU_searchRequest); Z_SearchRequest *req = apdu->u.searchRequest; @@ -203,8 +202,8 @@ int IR_Assoc::send_searchRequest(Yaz_Z_Query *query, = yaz_string_to_oid_odr(yaz_oid_std(), CLASS_RECSYN, recordSyntax, odr_encode()); } - yaz_log (m_log, "send_searchRequest"); - assert (req->otherInfo == 0); + yaz_log(m_log, "send_searchRequest"); + assert(req->otherInfo == 0); if (m_cookie) { set_otherInformationString(&req->otherInfo, yaz_oid_userinfo_cookie, @@ -212,12 +211,12 @@ int IR_Assoc::send_searchRequest(Yaz_Z_Query *query, assert (req->otherInfo); } - if ( pRefId ) + if (pRefId) { req->referenceId = getRefID(pRefId); } - if ( pResultSetId ) + if (pResultSetId) { req->resultSetName = pResultSetId; } @@ -226,9 +225,7 @@ int IR_Assoc::send_searchRequest(Yaz_Z_Query *query, } int IR_Assoc::send_presentRequest(Odr_int start, - Odr_int number, - char* pResultSetId, - char* pRefId) + Odr_int number, char* pResultSetId, char* pRefId) { Z_APDU *apdu = create_Z_PDU(Z_APDU_presentRequest); Z_PresentRequest *req = apdu->u.presentRequest; @@ -237,7 +234,7 @@ int IR_Assoc::send_presentRequest(Odr_int start, req->numberOfRecordsRequested = &number; const char *recordSyntax; - get_preferredRecordSyntax (&recordSyntax); + get_preferredRecordSyntax(&recordSyntax); if (recordSyntax && *recordSyntax) { req->preferredRecordSyntax = @@ -246,7 +243,7 @@ int IR_Assoc::send_presentRequest(Odr_int start, } Z_RecordComposition compo; Z_ElementSetNames *elementSetNames; - get_elementSetName (&elementSetNames); + get_elementSetName(&elementSetNames); if (elementSetNames) { req->recordComposition = &compo; @@ -258,12 +255,12 @@ int IR_Assoc::send_presentRequest(Odr_int start, set_otherInformationString(&req->otherInfo, yaz_oid_userinfo_cookie, 1, m_cookie); - if ( pRefId ) + if (pRefId) { req->referenceId = getRefID(pRefId); } - if ( pResultSetId ) + if (pResultSetId) { req->resultSetId = pResultSetId; } @@ -306,7 +303,7 @@ void IR_Assoc::client(const char *addr) const char *dbpart = 0; cs_get_host_args(m_host, &dbpart); if (dbpart && *dbpart) - set_databaseNames (dbpart, "+ "); + set_databaseNames(dbpart, "+ "); Z_Assoc::client(m_proxy ? m_proxy : m_host); } @@ -382,7 +379,7 @@ int IR_Assoc::send_initRequest(char* pRefId) ODR_MASK_SET(req->protocolVersion, Z_ProtocolVersion_2); ODR_MASK_SET(req->protocolVersion, Z_ProtocolVersion_3); - if ( pRefId ) + if (pRefId) { req->referenceId = getRefID(pRefId); } @@ -403,7 +400,7 @@ int IR_Assoc::send_deleteResultSetRequest(char* pResultSetId, char* pRefId) Z_APDU *apdu = create_Z_PDU(Z_APDU_deleteResultSetRequest); Z_DeleteResultSetRequest *req = apdu->u.deleteResultSetRequest; - if ( pResultSetId ) + if (pResultSetId) { *req->deleteFunction = Z_DeleteResultSetRequest_list; req->num_resultSetList = 1; @@ -415,7 +412,7 @@ int IR_Assoc::send_deleteResultSetRequest(char* pResultSetId, char* pRefId) *req->deleteFunction = Z_DeleteResultSetRequest_all; } - if ( pRefId ) + if (pRefId) { req->referenceId = getRefID(pRefId); } diff --git a/src/yaz-marc-sample.cpp b/src/yaz-marc-sample.cpp index 2b32d23..8fc0721 100644 --- a/src/yaz-marc-sample.cpp +++ b/src/yaz-marc-sample.cpp @@ -1,5 +1,5 @@ /* This file is part of the yazpp toolkit. - * Copyright (C) Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ diff --git a/src/yaz-my-server.cpp b/src/yaz-my-server.cpp index 5663a1e..d50e63f 100644 --- a/src/yaz-my-server.cpp +++ b/src/yaz-my-server.cpp @@ -1,5 +1,5 @@ /* This file is part of the yazpp toolkit. - * Copyright (C) Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ @@ -19,17 +19,17 @@ using namespace yazpp_1; class MyILL : public Yaz_Facility_ILL { public: - void ill_service (Z_ExtendedServicesRequest *req, - Z_ItemOrder *io, - Z_ExtendedServicesResponse *res); + void ill_service(Z_ExtendedServicesRequest *req, + Z_ItemOrder *io, + Z_ExtendedServicesResponse *res); }; class MyUpdate : public Yaz_Facility_Update { public: - void update_service (Z_ExtendedServicesRequest *req, - Z_IUUpdate *io, - Z_ExtendedServicesResponse *res); - void update_service0 (Z_ExtendedServicesRequest *req, + void update_service(Z_ExtendedServicesRequest *req, + Z_IUUpdate *io, + Z_ExtendedServicesResponse *res); + void update_service0(Z_ExtendedServicesRequest *req, Z_IU0Update *io, Z_ExtendedServicesResponse *res); }; @@ -37,18 +37,18 @@ class MyUpdate : public Yaz_Facility_Update { class MyRetrieval : public Yaz_Facility_Retrieval, Yaz_USMARC { public: - int sr_init (Z_InitRequest *initRequest, - Z_InitResponse *initResponse); - void sr_search (Z_SearchRequest *searchRequest, - Z_SearchResponse *searchResponse); - void sr_present (Z_PresentRequest *presentRequest, - Z_PresentResponse *presentResponse); - void sr_record (const char *resultSetName, - int position, - Odr_oid *format, - Z_RecordComposition *comp, - Z_NamePlusRecord *namePlusRecord, - Z_Records *records); + int sr_init(Z_InitRequest *initRequest, + Z_InitResponse *initResponse); + void sr_search(Z_SearchRequest *searchRequest, + Z_SearchResponse *searchResponse); + void sr_present(Z_PresentRequest *presentRequest, + Z_PresentResponse *presentResponse); + void sr_record(const char *resultSetName, + int position, + Odr_oid *format, + Z_RecordComposition *comp, + Z_NamePlusRecord *namePlusRecord, + Z_Records *records); }; class MyServer : public Z_Server { @@ -68,38 +68,35 @@ class MyServer : public Z_Server { int m_no; }; -void MyILL::ill_service (Z_ExtendedServicesRequest *req, - Z_ItemOrder *io, - Z_ExtendedServicesResponse *res) +void MyILL::ill_service(Z_ExtendedServicesRequest *req, + Z_ItemOrder *io, Z_ExtendedServicesResponse *res) { - yaz_log (YLOG_LOG, "MyServer::ill_service"); + yaz_log(YLOG_LOG, "MyServer::ill_service"); } -void MyUpdate::update_service (Z_ExtendedServicesRequest *req, - Z_IUUpdate *io, - Z_ExtendedServicesResponse *res) +void MyUpdate::update_service(Z_ExtendedServicesRequest *req, + Z_IUUpdate *io, Z_ExtendedServicesResponse *res) { - yaz_log (YLOG_LOG, "MyServer::update_service (v1.1)"); + yaz_log(YLOG_LOG, "MyServer::update_service (v1.1)"); } -void MyUpdate::update_service0 (Z_ExtendedServicesRequest *req, - Z_IU0Update *io, - Z_ExtendedServicesResponse *res) +void MyUpdate::update_service0(Z_ExtendedServicesRequest *req, + Z_IU0Update *io, Z_ExtendedServicesResponse *res) { - yaz_log (YLOG_LOG, "MyServer::update_service (v1.0)"); + yaz_log(YLOG_LOG, "MyServer::update_service (v1.0)"); } -int MyRetrieval::sr_init (Z_InitRequest *initRequest, - Z_InitResponse *initResponse) +int MyRetrieval::sr_init(Z_InitRequest *initRequest, + Z_InitResponse *initResponse) { - yaz_log (YLOG_LOG, "MyServer::sr_init"); + yaz_log(YLOG_LOG, "MyServer::sr_init"); return 1; } -void MyRetrieval::sr_search (Z_SearchRequest *searchRequest, - Z_SearchResponse *searchResponse) +void MyRetrieval::sr_search(Z_SearchRequest *searchRequest, + Z_SearchResponse *searchResponse) { - yaz_log (YLOG_LOG, "MyServer::recv_Z_search"); + yaz_log(YLOG_LOG, "MyServer::recv_Z_search"); if (searchRequest->query->which == Z_Query_type_1) { Z_RPNStructure *s = searchRequest->query->u.type_1->RPNStructure; @@ -108,7 +105,7 @@ void MyRetrieval::sr_search (Z_SearchRequest *searchRequest, s->u.simple->u.attributesPlusTerm->term->which == Z_Term_general) { Odr_oct *term = s->u.simple->u.attributesPlusTerm->term->u.general; - char *str = (char *) odr_malloc (odr_encode(), term->len+1); + char *str = (char *) odr_malloc(odr_encode(), term->len+1); if (term->len) memcpy (str, term->buf, term->len); str[term->len] = '\0'; @@ -117,20 +114,17 @@ void MyRetrieval::sr_search (Z_SearchRequest *searchRequest, } } -void MyRetrieval::sr_present (Z_PresentRequest *presentRequest, - Z_PresentResponse *presentResponse) +void MyRetrieval::sr_present(Z_PresentRequest *presentRequest, + Z_PresentResponse *presentResponse) { - yaz_log (YLOG_LOG, "MyServer::recv_Z_present"); + yaz_log(YLOG_LOG, "MyServer::recv_Z_present"); } -void MyRetrieval::sr_record (const char *resultSetName, - int position, - Odr_oid *format, - Z_RecordComposition *comp, - Z_NamePlusRecord *namePlusRecord, - Z_Records *records) +void MyRetrieval::sr_record(const char *resultSetName, + int position, Odr_oid *format, Z_RecordComposition *comp, + Z_NamePlusRecord *namePlusRecord, Z_Records *records) { - yaz_log (YLOG_LOG, "MyServer::recv_Z_record"); + yaz_log(YLOG_LOG, "MyServer::recv_Z_record"); const char *rec = get_record(position); if (rec) create_databaseRecord(odr_encode(), namePlusRecord, 0, @@ -167,13 +161,13 @@ MyServer::MyServer(IPDU_Observable *the_PDU_Observable) : void MyServer::timeoutNotify() { - yaz_log (YLOG_LOG, "connection timed out"); + yaz_log(YLOG_LOG, "connection timed out"); delete this; } void MyServer::failNotify() { - yaz_log (YLOG_LOG, "connection closed by client"); + yaz_log(YLOG_LOG, "connection closed by client"); delete this; } @@ -183,8 +177,8 @@ void MyServer::connectNotify() void usage(const char *prog) { - fprintf (stderr, "%s: [-a log] [-v level] [-T] @:port\n", prog); - exit (1); + fprintf(stderr, "%s: [-a log] [-v level] [-T] @:port\n", prog); + exit(1); } int main(int argc, char **argv) @@ -217,7 +211,7 @@ int main(int argc, char **argv) cert_fname = xstrdup(arg); break; case 'v': - yaz_log_init_level (yaz_log_mask_str(arg)); + yaz_log_init_level(yaz_log_mask_str(arg)); break; case 'T': thread_flag = 1; @@ -242,7 +236,7 @@ int main(int argc, char **argv) z->server(addr); if (apdu_log) { - yaz_log (YLOG_LOG, "set_APDU_log %s", apdu_log); + yaz_log(YLOG_LOG, "set_APDU_log %s", apdu_log); z->set_APDU_log(apdu_log); } diff --git a/src/yaz-z-databases.cpp b/src/yaz-z-databases.cpp index cac80d5..993429d 100644 --- a/src/yaz-z-databases.cpp +++ b/src/yaz-z-databases.cpp @@ -1,5 +1,5 @@ /* This file is part of the yazpp toolkit. - * Copyright (C) Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ @@ -24,45 +24,45 @@ Yaz_Z_Databases::~Yaz_Z_Databases() nmem_destroy (nmem); } -void Yaz_Z_Databases::set (int num, const char **db) +void Yaz_Z_Databases::set(int num, const char **db) { - nmem_reset (nmem); + nmem_reset(nmem); - m_list = (char **) nmem_malloc (nmem, num * sizeof(char*)); + m_list = (char **) nmem_malloc(nmem, num * sizeof(char*)); m_num = num; for (int i = 0; imem, num, db); + get(o->mem, num, db); } -int Yaz_Z_Databases::match (Yaz_Z_Databases &db) +int Yaz_Z_Databases::match(Yaz_Z_Databases &db) { if (db.m_num != m_num) return 0; for (int i = 0; itaskSpecificParameters || req->taskSpecificParameters->which != Z_External_itemOrder) return 0; - yaz_log (YLOG_LOG, "got ill p=%p", this); + yaz_log(YLOG_LOG, "got ill p=%p", this); apdu_response = s->create_Z_PDU(Z_APDU_extendedServicesResponse); ill_service(req, req->taskSpecificParameters->u.itemOrder, apdu_response->u.extendedServicesResponse); diff --git a/src/yaz-z-server-sr.cpp b/src/yaz-z-server-sr.cpp index 3646ab9..ef6db98 100644 --- a/src/yaz-z-server-sr.cpp +++ b/src/yaz-z-server-sr.cpp @@ -15,21 +15,18 @@ using namespace yazpp_1; const int fetch_max = 10000; -Z_Records *Yaz_Facility_Retrieval::pack_records (Z_Server *s, - const char *resultSetName, - int start, int xnum, - Z_RecordComposition *comp, - Odr_int *next, Odr_int *pres, - Odr_oid *format) +Z_Records *Yaz_Facility_Retrieval::pack_records(Z_Server *s, + const char *resultSetName, int start, int xnum, Z_RecordComposition *comp, + Odr_int *next, Odr_int *pres, Odr_oid *format) { int total_length = 0, toget = xnum, dumped_records = 0; Z_Records *records = - (Z_Records *) odr_malloc (odr_encode(), sizeof(*records)); + (Z_Records *) odr_malloc(odr_encode(), sizeof(*records)); Z_NamePlusRecordList *reclist = - (Z_NamePlusRecordList *) odr_malloc (odr_encode(), sizeof(*reclist)); + (Z_NamePlusRecordList *) odr_malloc(odr_encode(), sizeof(*reclist)); Z_NamePlusRecord **list = - (Z_NamePlusRecord **) odr_malloc (odr_encode(), sizeof(*list) * toget); + (Z_NamePlusRecord **) odr_malloc(odr_encode(), sizeof(*list) * toget); records->which = Z_Records_DBOSD; records->u.databaseOrSurDiagnostics = reclist; @@ -41,14 +38,14 @@ Z_Records *Yaz_Facility_Retrieval::pack_records (Z_Server *s, for (int recno = start; reclist->num_records < toget; recno++) { Z_NamePlusRecord *this_rec = - (Z_NamePlusRecord *) odr_malloc (odr_encode(), sizeof(*this_rec)); + (Z_NamePlusRecord *) odr_malloc(odr_encode(), sizeof(*this_rec)); this_rec->databaseName = 0; this_rec->which = Z_NamePlusRecord_databaseRecord; this_rec->u.databaseRecord = 0; int this_length = 0; - sr_record (resultSetName, recno, format, comp, this_rec, records); + sr_record(resultSetName, recno, format, comp, this_rec, records); if (records->which != Z_Records_DBOSD) { @@ -112,9 +109,8 @@ Z_Records *Yaz_Facility_Retrieval::pack_records (Z_Server *s, return records; } -void Yaz_Facility_Retrieval::fetch_via_piggyback (Z_Server *s, - Z_SearchRequest *req, - Z_SearchResponse *res) +void Yaz_Facility_Retrieval::fetch_via_piggyback(Z_Server *s, + Z_SearchRequest *req, Z_SearchResponse *res) { if (*req->smallSetUpperBound < 0 || *req->mediumSetPresentNumber < 0 || @@ -176,9 +172,8 @@ void Yaz_Facility_Retrieval::fetch_via_piggyback (Z_Server *s, } } -void Yaz_Facility_Retrieval::fetch_via_present (Z_Server *s, - Z_PresentRequest *req, - Z_PresentResponse *res) +void Yaz_Facility_Retrieval::fetch_via_present(Z_Server *s, + Z_PresentRequest *req, Z_PresentResponse *res) { Odr_int toget = *req->numberOfRecordsRequested; if (toget < 0 || toget > INT_MAX || toget > fetch_max) diff --git a/src/yaz-z-server-update.cpp b/src/yaz-z-server-update.cpp index 8f6793c..a7a5937 100644 --- a/src/yaz-z-server-update.cpp +++ b/src/yaz-z-server-update.cpp @@ -1,5 +1,5 @@ /* This file is part of the yazpp toolkit. - * Copyright (C) Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ @@ -12,7 +12,7 @@ using namespace yazpp_1; int Yaz_Facility_Update::init(Z_Server *s, Z_InitRequest *initRequest, - Z_InitResponse *initResponse) + Z_InitResponse *initResponse) { Z_Options *req = initRequest->options; Z_Options *res = initResponse->options; @@ -34,7 +34,7 @@ int Yaz_Facility_Update::recv(Z_Server *s, Z_APDU *apdu_request) { apdu_response = s->create_Z_PDU(Z_APDU_extendedServicesResponse); update_service(req, req->taskSpecificParameters->u.update, - apdu_response->u.extendedServicesResponse); + apdu_response->u.extendedServicesResponse); s->transfer_referenceId(apdu_request, apdu_response); s->send_Z_PDU(apdu_response, 0); return 1; @@ -43,8 +43,8 @@ int Yaz_Facility_Update::recv(Z_Server *s, Z_APDU *apdu_request) req->taskSpecificParameters->which == Z_External_update0) { apdu_response = s->create_Z_PDU(Z_APDU_extendedServicesResponse); - update_service0 (req, req->taskSpecificParameters->u.update0, - apdu_response->u.extendedServicesResponse); + update_service0(req, req->taskSpecificParameters->u.update0, + apdu_response->u.extendedServicesResponse); s->transfer_referenceId(apdu_request, apdu_response); s->send_Z_PDU(apdu_response, 0); return 1; diff --git a/src/yaz-z-server.cpp b/src/yaz-z-server.cpp index 6dfc49d..4b325ce 100644 --- a/src/yaz-z-server.cpp +++ b/src/yaz-z-server.cpp @@ -1,5 +1,5 @@ /* This file is part of the yazpp toolkit. - * Copyright (C) Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ @@ -23,7 +23,7 @@ Z_Server::~Z_Server() facility_reset(); } -void Z_Server::facility_reset () +void Z_Server::facility_reset() { Z_Server_Facility_Info *p = m_facilities; while (p) @@ -52,7 +52,7 @@ void Z_Server::facility_add(IServer_Facility *facility, (*p)->m_facility = facility; } -void Z_Server::recv_GDU (Z_GDU *apdu, int len) +void Z_Server::recv_GDU(Z_GDU *apdu, int len) { if (apdu->which == Z_GDU_Z3950) recv_Z_PDU(apdu->u.z3950, len); @@ -60,7 +60,7 @@ void Z_Server::recv_GDU (Z_GDU *apdu, int len) delete this; } -void Z_Server::recv_Z_PDU (Z_APDU *apdu_request, int len) +void Z_Server::recv_Z_PDU(Z_APDU *apdu_request, int len) { Z_Server_Facility_Info *f = m_facilities; @@ -113,12 +113,12 @@ void Z_Server::recv_Z_PDU (Z_APDU *apdu_request, int len) /* * database record. */ -void Z_ServerUtility::create_databaseRecord ( +void Z_ServerUtility::create_databaseRecord( ODR odr, Z_NamePlusRecord *rec, const char *dbname, const Odr_oid *format, const void *buf, int len) { Odr_oid *oid = odr_oiddup(odr, format); - rec->databaseName = dbname ? odr_strdup (odr, dbname) : 0; + rec->databaseName = odr_strdup_null(odr, dbname); rec->which = Z_NamePlusRecord_databaseRecord; rec->u.databaseRecord = z_ext_record_oid(odr, oid, (const char *) buf, len);