/* This file is part of Metaproxy.
- Copyright (C) 2005-2011 Index Data
+ Copyright (C) 2005-2013 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
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;
}
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)
default:
os << "Z_DiagRec" ;
}
-
+
return os;
}
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;
}
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;
dump_opt_string(os, a->u.open);
else
dump_opt_string(os, 0);
-
+
os << " ";
std::list<std::string> vhosts;
mp::util::get_vhost_otherinfo(ir->otherInfo, vhosts);
if (vhosts.size()){
- copy(vhosts.begin(), vhosts.end(),
+ copy(vhosts.begin(), vhosts.end(),
ostream_iterator<string>(os, " "));
}
else
os << "-" ;
-
+
dump_opt_string(os, ir->implementationId);
dump_opt_string(os, ir->implementationName);
dump_opt_string(os, ir->implementationVersion);
case Z_APDU_initResponse:
os << " " << "initResponse ";
{
- Z_InitResponse *ir
+ Z_InitResponse *ir
= zapdu.u.initResponse;
if (ir->result && *(ir->result))
{
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];
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:
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);
}
}
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
case Z_APDU_presentResponse:
os << " " << "presentResponse" << " ";
{
- Z_PresentResponse *pr
+ Z_PresentResponse *pr
= zapdu.u.presentResponse;
if (!pr->presentStatus)
os << "Unknown";
break;
case Z_APDU_scanRequest:
os << " " << "scanRequest" << " ";
- {
+ {
Z_ScanRequest *sr = zapdu.u.scanRequest;
-
+
if (sr)
{
for (int i = 0; i < sr->num_databaseNames; i++)
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 << "-";
break;
case Z_APDU_extendedServicesRequest:
os << " " << "extendedServicesRequest";
- {
- Z_ExtendedServicesRequest *er
+ {
+ Z_ExtendedServicesRequest *er
= zapdu.u.extendedServicesRequest;
if (er)
{
}
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
break;
case Z_APDU_extendedServicesResponse:
os << " " << "extendedServicesResponse";
- {
- Z_ExtendedServicesResponse *er
+ {
+ Z_ExtendedServicesResponse *er
= zapdu.u.extendedServicesResponse;
if (er)
{
break;
case Z_APDU_close:
os << " " << "close" << " ";
- {
+ {
Z_Close *c = zapdu.u.close;
if (c)
{
os << "unknown";
}
}
-
+
if (c->diagnosticInformation)
os << " " << c->diagnosticInformation;
}
case Z_APDU_duplicateDetectionResponse:
os << " " << "duplicateDetectionResponse";
break;
- default:
+ default:
os << " " << "Z_APDU " << "UNKNOWN";
}