X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fgduutil.cpp;h=b39fd28ae87afd60b894c5367b6136224d72ea38;hb=586d78659d671683f33ec55f4a7d32b28e345ccd;hp=47b4eb194815cba985ba5e1854b8d8a1af83897c;hpb=50597d2f7d3607e91c94601eb8eb495d73be3eae;p=metaproxy-moved-to-github.git diff --git a/src/gduutil.cpp b/src/gduutil.cpp index 47b4eb1..b39fd28 100644 --- a/src/gduutil.cpp +++ b/src/gduutil.cpp @@ -1,5 +1,5 @@ /* This file is part of Metaproxy. - Copyright (C) 2005-2012 Index Data + Copyright (C) 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 @@ -58,14 +58,14 @@ std::ostream& std::operator<<(std::ostream& os, Z_GDU& zgdu) std::ostream& std::operator<<(std::ostream& os, Z_HTTP_Request& httpreq) { os << httpreq.method << " "; - os << httpreq.path; + os << httpreq.path; return os; } std::ostream& std::operator<<(std::ostream& os, Z_HTTP_Response& httpres) { os << httpres.code << " "; - os << httpres.content_len; + os << httpres.content_len; return os; } @@ -80,16 +80,29 @@ std::ostream& std::operator<<(std::ostream& os, Z_Records & rs) os << *(rs.u.nonSurrogateDiagnostic); break; case Z_Records_multipleNSD: - os << "Z_Records_multipleNSD"; - //os << *(rs.u.multipleNonSurDiagnostics); + os << *(rs.u.multipleNonSurDiagnostics); break; default: os << "Z_Records" ; } - + + return os; +} + +std::ostream& std::operator<<(std::ostream& os, Z_DiagRecs& dr) +{ + if (dr.num_diagRecs >= 1) + { + os << *dr.diagRecs[0]; + } + else + { + os << "multipleNSD"; + } return os; } + std::ostream& std::operator<<(std::ostream& os, Z_DiagRec& dr) { switch (dr.which) @@ -104,7 +117,7 @@ std::ostream& std::operator<<(std::ostream& os, Z_DiagRec& dr) default: os << "Z_DiagRec" ; } - + return os; } @@ -116,15 +129,19 @@ std::ostream& std::operator<<(std::ostream& os, Z_DefaultDiagFormat& ddf) switch (ddf.which) { case Z_DefaultDiagFormat_v2Addinfo: + os << "\""; os << ddf.u.v2Addinfo; + os << "\""; break; case Z_DefaultDiagFormat_v3Addinfo: + os << "\""; os << ddf.u.v3Addinfo; + os << "\""; break; default: - os << "Z_DefaultDiagFormat" ; + os << "-"; } - + return os; } @@ -137,24 +154,29 @@ static void dump_opt_string(std::ostream& os, const char *s) os << "-"; } -static void dump_opt_int(std::ostream& os, const Odr_int *i) +static void dump_opt_int_l(std::ostream& os, const Odr_int *i, const char *lead) { - os << " "; + os << lead; if (i) os << *i; else os << "-"; } +static void dump_opt_int(std::ostream& os, const Odr_int *i) +{ + dump_opt_int_l(os, i, " "); +} + std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) { switch(zapdu.which) { case Z_APDU_initRequest: os << " " << "initRequest"; - + { - Z_InitRequest *ir + Z_InitRequest *ir = zapdu.u.initRequest; Z_IdAuthentication *a = ir->idAuthentication; @@ -164,17 +186,17 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) dump_opt_string(os, a->u.open); else dump_opt_string(os, 0); - + os << " "; std::list vhosts; mp::util::get_vhost_otherinfo(ir->otherInfo, vhosts); if (vhosts.size()){ - copy(vhosts.begin(), vhosts.end(), + copy(vhosts.begin(), vhosts.end(), ostream_iterator(os, " ")); } else os << "-" ; - + dump_opt_string(os, ir->implementationId); dump_opt_string(os, ir->implementationName); dump_opt_string(os, ir->implementationVersion); @@ -183,7 +205,7 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) case Z_APDU_initResponse: os << " " << "initResponse "; { - Z_InitResponse *ir + Z_InitResponse *ir = zapdu.u.initResponse; if (ir->result && *(ir->result)) { @@ -200,10 +222,10 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) break; case Z_APDU_searchRequest: os << " " << "searchRequest" << " "; - { - Z_SearchRequest *sr + { + Z_SearchRequest *sr = zapdu.u.searchRequest; - + for (int i = 0; i < sr->num_databaseNames; i++) { os << sr->databaseNames[i]; @@ -217,19 +239,16 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) if (sr->preferredRecordSyntax) { char oid_name_str[OID_STR_MAX]; - const char *oid_name = yaz_oid_to_string_buf( + os << yaz_oid_to_string_buf( sr->preferredRecordSyntax, 0, oid_name_str); - - os << oid_name; } else os << "-"; os << " "; - WRBUF wr = wrbuf_alloc(); + mp::wrbuf wr; yaz_query_to_wrbuf(wr, sr->query); os << wrbuf_cstr(wr); - wrbuf_destroy(wr); } break; case Z_APDU_searchResponse: @@ -249,7 +268,7 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) else { dump_opt_int(os, sr->resultCount); - dump_opt_int(os, sr->numberOfRecordsReturned); + dump_opt_int_l(os, sr->numberOfRecordsReturned, " 1+"); dump_opt_int(os, sr->nextResultSetPosition); } } @@ -260,13 +279,13 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) Z_PresentRequest *pr = zapdu.u.presentRequest; dump_opt_string(os, pr->resultSetId); dump_opt_int(os, pr->resultSetStartPoint); - dump_opt_int(os, pr->numberOfRecordsRequested); + dump_opt_int_l(os, pr->numberOfRecordsRequested, "+"); if (pr->preferredRecordSyntax) { char oid_name_str[OID_STR_MAX]; const char *oid_name = yaz_oid_to_string_buf( pr->preferredRecordSyntax, 0, oid_name_str); - + os << " " << oid_name; } else @@ -280,7 +299,7 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) case Z_APDU_presentResponse: os << " " << "presentResponse" << " "; { - Z_PresentResponse *pr + Z_PresentResponse *pr = zapdu.u.presentResponse; if (!pr->presentStatus) os << "Unknown"; @@ -342,9 +361,9 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) break; case Z_APDU_scanRequest: os << " " << "scanRequest" << " "; - { + { Z_ScanRequest *sr = zapdu.u.scanRequest; - + if (sr) { for (int i = 0; i < sr->num_databaseNames; i++) @@ -360,11 +379,10 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) os << " "; if (sr->termListAndStartPoint) { - WRBUF wr = wrbuf_alloc(); - yaz_scan_to_wrbuf(wr, sr->termListAndStartPoint, + mp::wrbuf wr; + yaz_scan_to_wrbuf(wr, sr->termListAndStartPoint, sr->attributeSet); os << wrbuf_cstr(wr); - wrbuf_destroy(wr); } else os << "-"; @@ -425,8 +443,8 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) break; case Z_APDU_extendedServicesRequest: os << " " << "extendedServicesRequest"; - { - Z_ExtendedServicesRequest *er + { + Z_ExtendedServicesRequest *er = zapdu.u.extendedServicesRequest; if (er) { @@ -450,18 +468,18 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) } else os << " -"; - - + + if (er->userId) os << " " << er->userId ; else os << " -"; - + if (er->packageName) os << " " << er->packageName; else os << " -"; - + if (er->description) os << " " << er->description; else @@ -471,8 +489,8 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) break; case Z_APDU_extendedServicesResponse: os << " " << "extendedServicesResponse"; - { - Z_ExtendedServicesResponse *er + { + Z_ExtendedServicesResponse *er = zapdu.u.extendedServicesResponse; if (er) { @@ -504,7 +522,7 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) break; case Z_APDU_close: os << " " << "close" << " "; - { + { Z_Close *c = zapdu.u.close; if (c) { @@ -548,7 +566,7 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) os << "unknown"; } } - + if (c->diagnosticInformation) os << " " << c->diagnosticInformation; } @@ -560,7 +578,7 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) case Z_APDU_duplicateDetectionResponse: os << " " << "duplicateDetectionResponse"; break; - default: + default: os << " " << "Z_APDU " << "UNKNOWN"; }