-
- os << *(c->closeReason) << " ";
- switch (*(c->closeReason)) {
- case Z_Close_finished:
- os << "finished";
- break;
- case Z_Close_shutdown:
- os << "shutdown";
- break;
- case Z_Close_systemProblem:
- os << "systemProblem";
- break;
- case Z_Close_costLimit:
- os << "costLimit";
- break;
- case Z_Close_resources:
- os << "resources";
- break;
- case Z_Close_securityViolation:
- os << "securityViolation";
- break;
- case Z_Close_protocolError:
- os << "protocolError";
- break;
- case Z_Close_lackOfActivity:
- os << "";
- break;
- case Z_Close_peerAbort:
- os << "peerAbort";
- break;
- case Z_Close_unspecified:
- os << "unspecified";
- break;
- default:
- os << "unknown";
- break;
+ if (c)
+ {
+ if (c->closeReason)
+ {
+ os << *(c->closeReason) << " ";
+
+ switch (*(c->closeReason)) {
+ case Z_Close_finished:
+ os << "finished";
+ break;
+ case Z_Close_shutdown:
+ os << "shutdown";
+ break;
+ case Z_Close_systemProblem:
+ os << "systemProblem";
+ break;
+ case Z_Close_costLimit:
+ os << "costLimit";
+ break;
+ case Z_Close_resources:
+ os << "resources";
+ break;
+ case Z_Close_securityViolation:
+ os << "securityViolation";
+ break;
+ case Z_Close_protocolError:
+ os << "protocolError";
+ break;
+ case Z_Close_lackOfActivity:
+ os << "lackOfActivity";
+ break;
+ case Z_Close_peerAbort:
+ os << "peerAbort";
+ break;
+ case Z_Close_unspecified:
+ os << "unspecified";
+ break;
+ default:
+ os << "unknown";
+ }
+ }
+
+ if (c->diagnosticInformation)
+ os << " " << c->diagnosticInformation;