From f7a44b23d29c36ada743bbdb2898b3a81e7deaf9 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Wed, 18 Jan 2012 15:31:30 +0100 Subject: [PATCH 1/1] Fix diagnostic fix up The diagnostic fix up where (backend host) is added would not be added for v3addinfo. --- src/filter_z3950_client.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/filter_z3950_client.cpp b/src/filter_z3950_client.cpp index 53d0762..fe3049e 100644 --- a/src/filter_z3950_client.cpp +++ b/src/filter_z3950_client.cpp @@ -174,18 +174,20 @@ void yf::Z3950Client::Assoc::fixup_nsd(ODR odr, Z_Records *records) if (records && records->which == Z_Records_NSD) { Z_DefaultDiagFormat *nsd = records->u.nonSurrogateDiagnostic; - if (nsd->which == Z_DiagRec_defaultFormat) - { - std::string addinfo; + std::string addinfo; + + // should really check for nsd->which.. But union has two members + // containing almost same data + // char *v2Addinfo; + // Z_InternationalString *v3Addinfo; - if (nsd->u.v2Addinfo) - { - addinfo.assign(nsd->u.v2Addinfo); - addinfo += " "; - } - addinfo += "(backend=" + m_host + ")"; - nsd->u.v2Addinfo = odr_strdup(odr, addinfo.c_str()); + if (nsd->u.v2Addinfo) + { + addinfo.assign(nsd->u.v2Addinfo); + addinfo += " "; } + addinfo += "(backend=" + m_host + ")"; + nsd->u.v2Addinfo = odr_strdup(odr, addinfo.c_str()); } } -- 1.7.10.4