Add variables for ISO8601 format for ssl_client_v_start/end #477

This commit is contained in:
u5surf 2025-02-07 20:58:18 +09:00
parent ecb809305e
commit c8c9f0bafb
2 changed files with 35 additions and 1 deletions

View File

@ -104,7 +104,7 @@ typedef void (*ngx_connection_handler_pt)(ngx_connection_t *c);
#define LF (u_char) '\n'
#define CR (u_char) '\r'
#define CRLF "\r\n"
#define ngx_ascii_is_digit(c) (c >= 0x30 && c <= 0x39)
#define ngx_abs(value) (((value) >= 0) ? (value) : - (value))
#define ngx_max(val1, val2) ((val1 < val2) ? (val2) : (val1))

View File

@ -5755,6 +5755,40 @@ ngx_ssl_get_client_v_start(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s)
return NGX_OK;
}
ngx_int_t
ngx_ssl_print_time(BIO *bio, ASN1_TIME *tm, long flag)
{
ngx_int_t ret;
struct tm stm;
const char period = 0x2E;
int l, f_len;
char *v, *f;
ret = ASN1_TIME_to_tm(tm, &stm);
if (ret != NGX_OK) {
return ret;
}
l = tm->length;
v = (char *)tm->data;
f = NULL;
f_len = 0;
if (tm->length > 15 && v[14] == period) {
f = &v[15];
while(15 + f_len < l && ngx_ascii_is_digit(f[f_len]))
++f_len;
}
if (flag) {
BIO_printf(bio, "%4d-%02d-%02d %02d:%02d:%02d.%.*sZ",
stm.tm_year + 1900, stm.tm_mon + 1,
stm.tm_mday, stm.tm_hour,
stm.tm_min, stm.tm_sec, f_len, f);
} else {
ASN1_TIME_print(bio, tm);
}
return NGX_OK;
}
ngx_int_t
ngx_ssl_get_client_v_end(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s)