X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Ffilter_z3950_client.cpp;h=fe3049e4e650f80569d71d53d7d5cda4ca6346fe;hb=9a318d33c4c99ee4158d39e3a62988af0229d7cf;hp=6d91c5443e71636a3c0bb3caa936c99af7b41cf1;hpb=c03de7dafac23351fed3dd22486f5362f9ff7232;p=metaproxy-moved-to-github.git diff --git a/src/filter_z3950_client.cpp b/src/filter_z3950_client.cpp index 6d91c54..fe3049e 100644 --- a/src/filter_z3950_client.cpp +++ b/src/filter_z3950_client.cpp @@ -1,5 +1,5 @@ /* This file is part of Metaproxy. - Copyright (C) 2005-2011 Index Data + Copyright (C) 2005-2012 Index Data Metaproxy is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -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()); } }