From 93d411d50aa7f13178dbb37d31b49c00e69cd090 Mon Sep 17 00:00:00 2001 From: TaeGit Date: Sun, 14 Aug 2022 04:52:31 +0900 Subject: [PATCH] Add 'library', 'reason' Attribute to ssl.SSLError --- stdlib/src/ssl.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/stdlib/src/ssl.rs b/stdlib/src/ssl.rs index b9dfab55b..a1c353a40 100644 --- a/stdlib/src/ssl.rs +++ b/stdlib/src/ssl.rs @@ -1150,10 +1150,17 @@ mod _ssl { // TODO: map the error codes to code names, e.g. "CERTIFICATE_VERIFY_FAILED", just requires a big hashmap/dict let errstr = e.reason().unwrap_or("unknown error"); let msg = if let Some(lib) = e.library() { + // add `library` attribute + let attr_name = vm.ctx.as_ref().intern_str("library"); + cls.set_attr(attr_name, vm.ctx.new_str(lib).into()); format!("[{}] {} ({}:{})", lib, errstr, file, line) } else { format!("{} ({}:{})", errstr, file, line) }; + // add `reason` attribute + let attr_name = vm.ctx.as_ref().intern_str("reason"); + cls.set_attr(attr_name, vm.ctx.new_str(errstr).into()); + let reason = sys::ERR_GET_REASON(e.code()); vm.new_exception( cls,