Skip to content

Commit 52d6777

Browse files
committed
reuse array to store cert/pkey
1 parent 4eeddcd commit 52d6777

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

lib/resty/core/socket.lua

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,19 @@ ngx_http_lua_ffi_ssl_free_session(void *sess);
6262

6363

6464
local output_value_buf = ffi_new("int[1]")
65-
local FFI_OK = base.FFI_OK
66-
local FFI_ERROR = base.FFI_ERROR
67-
local FFI_DONE = base.FFI_DONE
68-
local FFI_AGAIN = base.FFI_AGAIN
69-
local FFI_NO_REQ_CTX = base.FFI_NO_REQ_CTX
70-
local SOCKET_CTX_INDEX = 1
7165
local ERR_BUF_SIZE = 4096
7266

67+
local FFI_OK = base.FFI_OK
68+
local FFI_ERROR = base.FFI_ERROR
69+
local FFI_DONE = base.FFI_DONE
70+
local FFI_AGAIN = base.FFI_AGAIN
71+
local FFI_NO_REQ_CTX = base.FFI_NO_REQ_CTX
72+
73+
local SOCKET_CTX_INDEX = 1
74+
local SOCKET_CLIENT_CERT_INDEX = 6
75+
local SOCKET_CLIENT_PKEY_INDEX = 7
76+
77+
7378
local function get_tcp_socket(cosocket)
7479
local tcp_socket = cosocket[SOCKET_CTX_INDEX]
7580
if not tcp_socket then
@@ -148,8 +153,8 @@ local openssl_error_code = ffi_new("int[1]")
148153

149154
local function setclientcert(cosocket, cert, pkey)
150155
if not cert and not pkey then
151-
cosocket.client_cert = nil
152-
cosocket.client_pkey = nil
156+
cosocket[SOCKET_CLIENT_CERT_INDEX] = nil
157+
cosocket[SOCKET_CLIENT_PKEY_INDEX] = nil
153158
return true
154159
end
155160

@@ -167,8 +172,8 @@ local function setclientcert(cosocket, cert, pkey)
167172
return nil, "bad client pkey type"
168173
end
169174

170-
cosocket.client_cert = cert
171-
cosocket.client_pkey = pkey
175+
cosocket[SOCKET_CLIENT_CERT_INDEX] = cert
176+
cosocket[SOCKET_CLIENT_PKEY_INDEX] = pkey
172177

173178
return true
174179
end
@@ -207,7 +212,9 @@ local function sslhandshake(cosocket, reused_session, server_name, ssl_verify,
207212
server_name_str,
208213
ssl_verify and 1 or 0,
209214
send_status_req and 1 or 0,
210-
cosocket.client_cert, cosocket.client_pkey, errmsg)
215+
cosocket[SOCKET_CLIENT_CERT_INDEX],
216+
cosocket[SOCKET_CLIENT_PKEY_INDEX],
217+
errmsg)
211218

212219
if rc == FFI_NO_REQ_CTX then
213220
error("no request ctx found", 2)

0 commit comments

Comments
 (0)