Index: doc/tls.html
==================================================================
--- doc/tls.html
+++ doc/tls.html
@@ -484,11 +484,11 @@
- info channel major minor message
+ info channel major minor message type
This form of callback is invoked by the OpenSSL function
SSL_CTX_set_info_callback()
.
@@ -503,10 +503,14 @@
The message argument is a descriptive string which may
be generated either by
SSL_state_string_long()
or by
SSL_alert_desc_string_long()
,
depending on context.
+ For alerts, the possible values for type are:
+
+ warning, fatal, and unknown
.
+
Index: generic/tls.c
==================================================================
--- generic/tls.c
+++ generic/tls.c
@@ -154,26 +154,26 @@
else if (where & SSL_CB_LOOP) minor = "loop";
else if (where & SSL_CB_EXIT) minor = "exit";
else minor = "unknown";
}
+ /* info channel major minor message type */
Tcl_ListObjAppendElement(interp, cmdPtr, Tcl_NewStringObj("info", -1));
Tcl_ListObjAppendElement(interp, cmdPtr,
Tcl_NewStringObj(Tcl_GetChannelName(statePtr->self), -1));
Tcl_ListObjAppendElement(interp, cmdPtr, Tcl_NewStringObj(major, -1));
Tcl_ListObjAppendElement(interp, cmdPtr, Tcl_NewStringObj(minor, -1));
- if (where & (SSL_CB_LOOP|SSL_CB_EXIT)) {
+ if (where & SSL_CB_ALERT) {
+ Tcl_ListObjAppendElement(interp, cmdPtr,
+ Tcl_NewStringObj(SSL_alert_desc_string_long(ret), -1));
Tcl_ListObjAppendElement(interp, cmdPtr,
- Tcl_NewStringObj(SSL_state_string_long(ssl), -1));
- } else if (where & SSL_CB_ALERT) {
- const char *cp = (char *) SSL_alert_desc_string_long(ret);
-
- Tcl_ListObjAppendElement(interp, cmdPtr, Tcl_NewStringObj(cp, -1));
+ Tcl_NewStringObj(SSL_alert_type_string_long(ret), -1));
} else {
Tcl_ListObjAppendElement(interp, cmdPtr,
Tcl_NewStringObj(SSL_state_string_long(ssl), -1));
+ Tcl_ListObjAppendElement(interp, cmdPtr, Tcl_NewStringObj("info", -1));
}
Tcl_Preserve((ClientData) interp);
Tcl_Preserve((ClientData) statePtr);
Tcl_IncrRefCount(cmdPtr);