diff options
author | Kim Alvefur <zash@zash.se> | 2022-06-03 17:51:42 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2022-06-03 17:51:42 +0200 |
commit | 88a2c1ffe029818288cc86afd48d791f2b86f5ad (patch) | |
tree | 41c0e2395e8121532ffbd877ead8724236a094ed /net/server_epoll.lua | |
parent | 2048a7a762e619974557c4015429626443835b4c (diff) | |
download | prosody-88a2c1ffe029818288cc86afd48d791f2b86f5ad.tar.gz prosody-88a2c1ffe029818288cc86afd48d791f2b86f5ad.zip |
net.server: Fix multiple return values
return foo and foo() crops multiple return values to a single one, so
any second return values etc were last, mostly error details.
Introduced in 7e9ebdc75ce4
Diffstat (limited to 'net/server_epoll.lua')
-rw-r--r-- | net/server_epoll.lua | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/net/server_epoll.lua b/net/server_epoll.lua index d0ca3125..a546e1e3 100644 --- a/net/server_epoll.lua +++ b/net/server_epoll.lua @@ -627,22 +627,26 @@ end function interface:ssl_info() local sock = self.conn; - return sock.info and sock:info(); + if not sock.info then return nil, "not-implemented"; end + return sock:info(); end function interface:ssl_peercertificate() local sock = self.conn; - return sock.getpeercertificate and sock:getpeercertificate(); + if not sock.getpeercertificate then return nil, "not-implemented"; end + return sock:getpeercertificate(); end function interface:ssl_peerverification() local sock = self.conn; - return sock.getpeerverification and sock:getpeerverification(); + if not sock.getpeerverification then return nil, { { "Chain verification not supported" } }; end + return sock:getpeerverification(); end function interface:ssl_peerfinished() local sock = self.conn; - return sock.getpeerfinished and sock:getpeerfinished(); + if not sock.getpeerfinished then return nil, "not-implemented"; end + return sock:getpeerfinished(); end function interface:starttls(tls_ctx) |