Skip to content

Commit 2c5b189

Browse files
halfcrazydoujiang24
authored andcommitted
feature: implemented the new ngx.ssl.server_port() API to get server port.
1 parent d8b408a commit 2c5b189

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

src/ngx_http_lua_ssl_certby.c

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -858,6 +858,39 @@ ngx_http_lua_ffi_ssl_server_name(ngx_http_request_t *r, char **name,
858858
}
859859

860860

861+
int
862+
ngx_http_lua_ffi_ssl_server_port(ngx_http_request_t *r,
863+
unsigned short *server_port, char **err)
864+
{
865+
ngx_ssl_conn_t *ssl_conn;
866+
ngx_connection_t *c;
867+
868+
if (r->connection == NULL || r->connection->ssl == NULL) {
869+
*err = "bad request";
870+
return NGX_ERROR;
871+
}
872+
873+
ssl_conn = r->connection->ssl->connection;
874+
if (ssl_conn == NULL) {
875+
*err = "bad ssl conn";
876+
return NGX_ERROR;
877+
}
878+
879+
c = ngx_ssl_get_connection(ssl_conn);
880+
881+
switch (c->local_sockaddr->sa_family) {
882+
883+
case AF_UNIX:
884+
*err = "unix domain has no port";
885+
return NGX_ERROR;
886+
887+
default:
888+
*server_port = (unsigned short) ngx_inet_get_port(c->local_sockaddr);
889+
return NGX_OK;
890+
}
891+
}
892+
893+
861894
int
862895
ngx_http_lua_ffi_ssl_raw_client_addr(ngx_http_request_t *r, char **addr,
863896
size_t *addrlen, int *addrtype, char **err)

0 commit comments

Comments
 (0)