ERR_SECURE_CONNECT_FAIL.
This is a Measurement Factory project
#include "rfc1738.h"
#include "SquidTime.h"
#include "Store.h"
+#if USE_SSL
+#include "ssl/ErrorDetail.h"
+#endif
+
/// Convert a string to NULL pointer if it is ""
#define strOrNull(s) ((s)==NULL||(s)[0]=='\0'?NULL:(s))
break;
case LFT_SQUID_ERROR_DETAIL:
+#if USE_SSL
+ if (al->request && al->request->errType == ERR_SECURE_CONNECT_FAIL) {
+ if (! (out = Ssl::GetErrorName(al->request->errDetail))) {
+ snprintf(tmp, sizeof(tmp), "SSL_ERR=%d", al->request->errDetail);
+ out = tmp;
+ }
+ } else
+#endif
if (al->request && al->request->errDetail != ERR_DETAIL_NONE) {
if (al->request->errDetail > ERR_DETAIL_START &&
al->request->errDetail < ERR_DETAIL_MAX)
if (!errorState->request)
errorState->request = HTTPMSGLOCK(request);
+#if USE_SSL
+ if (errorState->type == ERR_SECURE_CONNECT_FAIL && errorState->detail)
+ request->detailError(errorState->type, errorState->detail->errorNo());
+ else
+#endif
request->detailError(errorState->type, errorState->xerrno);
}
void useRequest(HttpRequest *aRequest) { if (aRequest != NULL) request = aRequest;}
/// The error name to embed in squid error pages
const char *errorName() const {return err_code();}
+ /// The error no
+ ssl_error_t errorNo() const {return error_no;}
///Sets the low-level error returned by OpenSSL ERR_get_error()
void setLibError(unsigned long lib_err_no) {lib_error_no = lib_err_no;}