Software / code / prosody
Comparison
plugins/mod_s2s.lua @ 13516:078780f262d5
mod_s2s: Fix traceback due to type confusion (Thanks Menel)
The code assumed a 2-d sparse array but it could also be a string.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Mon, 26 Aug 2024 19:21:03 +0200 |
| parent | 13504:2159a206684e |
| child | 13534:d532176d4334 |
comparison
equal
deleted
inserted
replaced
| 13514:a1bc6533bbba | 13516:078780f262d5 |
|---|---|
| 984 end | 984 end |
| 985 | 985 |
| 986 -- Complete the sentence "Your certificate " with what's wrong | 986 -- Complete the sentence "Your certificate " with what's wrong |
| 987 local function friendly_cert_error(session) --> string | 987 local function friendly_cert_error(session) --> string |
| 988 if session.cert_chain_status == "invalid" then | 988 if session.cert_chain_status == "invalid" then |
| 989 if session.cert_chain_errors then | 989 if type(session.cert_chain_errors) == "table" then |
| 990 local cert_errors = set.new(session.cert_chain_errors[1]); | 990 local cert_errors = set.new(session.cert_chain_errors[1]); |
| 991 if cert_errors:contains("certificate has expired") then | 991 if cert_errors:contains("certificate has expired") then |
| 992 return "has expired"; | 992 return "has expired"; |
| 993 elseif cert_errors:contains("self signed certificate") then | 993 elseif cert_errors:contains("self signed certificate") then |
| 994 return "is self-signed"; | 994 return "is self-signed"; |
| 1004 return "has an expired certificate chain"; | 1004 return "has an expired certificate chain"; |
| 1005 elseif chain_errors:contains("no matching DANE TLSA records") then | 1005 elseif chain_errors:contains("no matching DANE TLSA records") then |
| 1006 return "does not match any DANE TLSA records"; | 1006 return "does not match any DANE TLSA records"; |
| 1007 end | 1007 end |
| 1008 end | 1008 end |
| 1009 -- TODO cert_chain_errors can be a string, handle that | |
| 1009 return "is not trusted"; -- for some other reason | 1010 return "is not trusted"; -- for some other reason |
| 1010 elseif session.cert_identity_status == "invalid" then | 1011 elseif session.cert_identity_status == "invalid" then |
| 1011 return "is not valid for this name"; | 1012 return "is not valid for this name"; |
| 1012 end | 1013 end |
| 1013 -- this should normally be unreachable except if no s2s auth module was loaded | 1014 -- this should normally be unreachable except if no s2s auth module was loaded |