Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 30 additions & 32 deletions lib/resty/core/socket.lua
Original file line number Diff line number Diff line change
Expand Up @@ -424,52 +424,50 @@ local function sslhandshake(cosocket, reused_session, server_name, ssl_verify,
error("no request ctx found", 2)
end

if rc == FFI_OK then
if reused_session == false then
return true
if rc == FFI_ERROR then
if openssl_error_code[0] ~= 0 then
return nil, openssl_error_code[0] .. ": " .. ffi_str(errmsg[0])
end

rc = C.ngx_http_lua_ffi_socket_tcp_get_sslhandshake_result(r, u,
session_ptr, errmsg, openssl_error_code)
return nil, ffi_str(errmsg[0])
end

while true do
if rc == FFI_ERROR then
if openssl_error_code[0] ~= 0 then
return nil, openssl_error_code[0] .. ": " .. ffi_str(errmsg[0])
end

return nil, ffi_str(errmsg[0])
end

if rc == FFI_DONE then
return reused_session
end
if rc == FFI_DONE then
return reused_session
end

if rc == FFI_OK then
if reused_session == false then
return true
end
local res

rc = C.ngx_http_lua_ffi_socket_tcp_get_sslhandshake_result(r, u,
session_ptr, errmsg, openssl_error_code)
if rc == FFI_OK then
res = C.ngx_http_lua_ffi_socket_tcp_get_sslhandshake_result(r, u,
session_ptr, errmsg, openssl_error_code)
else
Comment on lines +441 to +444
assert(rc == FFI_AGAIN)

assert(rc == FFI_OK)
co_yield()

if session_ptr[0] == nil then
return session_ptr[0]
end
res = C.ngx_http_lua_ffi_socket_tcp_get_sslhandshake_result(r, u,
session_ptr, errmsg, openssl_error_code)
end

return ffi_gc(session_ptr[0], C.ngx_http_lua_ffi_ssl_free_session)
if res == FFI_ERROR then
if openssl_error_code[0] ~= 0 then
return nil, openssl_error_code[0] .. ": " .. ffi_str(errmsg[0])
end
return nil, ffi_str(errmsg[0])
end

assert(rc == FFI_AGAIN)
assert(res == FFI_OK)
Comment on lines +439 to +460

co_yield()
if reused_session == false then
return true
end

rc = C.ngx_http_lua_ffi_socket_tcp_get_sslhandshake_result(r, u,
session_ptr, errmsg, openssl_error_code)
if session_ptr[0] == nil then
return session_ptr[0]
end

return ffi_gc(session_ptr[0], C.ngx_http_lua_ffi_ssl_free_session)
end


Expand Down
Loading