#include <ngx_config.h>
#include <ngx_core.h>
static u_char *ngx_sprintf_num(u_char *buf, u_char *last, uint64_t ui64,
u_char zero, ngx_uint_t hexadecimal, ngx_uint_t width);
static u_char *ngx_sprintf_str(u_char *buf, u_char *last, u_char *src,
size_t len, ngx_uint_t hexadecimal);
static void ngx_encode_base64_internal(ngx_str_t *dst, ngx_str_t *src,
const u_char *basis, ngx_uint_t padding);
static ngx_int_t ngx_decode_base64_internal(ngx_str_t *dst, ngx_str_t *src,
const u_char *basis);
void
ngx_strlow(u_char *dst, u_char *src, size_t n)
{ … }
size_t
ngx_strnlen(u_char *p, size_t n)
{ … }
u_char *
ngx_cpystrn(u_char *dst, u_char *src, size_t n)
{ … }
u_char *
ngx_pstrdup(ngx_pool_t *pool, ngx_str_t *src)
{ … }
u_char * ngx_cdecl
ngx_sprintf(u_char *buf, const char *fmt, ...)
{ … }
u_char * ngx_cdecl
ngx_snprintf(u_char *buf, size_t max, const char *fmt, ...)
{ … }
u_char * ngx_cdecl
ngx_slprintf(u_char *buf, u_char *last, const char *fmt, ...)
{ … }
u_char *
ngx_vslprintf(u_char *buf, u_char *last, const char *fmt, va_list args)
{ … }
static u_char *
ngx_sprintf_num(u_char *buf, u_char *last, uint64_t ui64, u_char zero,
ngx_uint_t hexadecimal, ngx_uint_t width)
{ … }
static u_char *
ngx_sprintf_str(u_char *buf, u_char *last, u_char *src, size_t len,
ngx_uint_t hexadecimal)
{ … }
ngx_int_t
ngx_strcasecmp(u_char *s1, u_char *s2)
{ … }
ngx_int_t
ngx_strncasecmp(u_char *s1, u_char *s2, size_t n)
{ … }
u_char *
ngx_strnstr(u_char *s1, char *s2, size_t len)
{ … }
u_char *
ngx_strstrn(u_char *s1, char *s2, size_t n)
{ … }
u_char *
ngx_strcasestrn(u_char *s1, char *s2, size_t n)
{ … }
u_char *
ngx_strlcasestrn(u_char *s1, u_char *last, u_char *s2, size_t n)
{ … }
ngx_int_t
ngx_rstrncmp(u_char *s1, u_char *s2, size_t n)
{ … }
ngx_int_t
ngx_rstrncasecmp(u_char *s1, u_char *s2, size_t n)
{ … }
ngx_int_t
ngx_memn2cmp(u_char *s1, u_char *s2, size_t n1, size_t n2)
{ … }
ngx_int_t
ngx_dns_strcmp(u_char *s1, u_char *s2)
{ … }
ngx_int_t
ngx_filename_cmp(u_char *s1, u_char *s2, size_t n)
{ … }
ngx_int_t
ngx_atoi(u_char *line, size_t n)
{ … }
ngx_int_t
ngx_atofp(u_char *line, size_t n, size_t point)
{ … }
ssize_t
ngx_atosz(u_char *line, size_t n)
{ … }
off_t
ngx_atoof(u_char *line, size_t n)
{ … }
time_t
ngx_atotm(u_char *line, size_t n)
{ … }
ngx_int_t
ngx_hextoi(u_char *line, size_t n)
{ … }
u_char *
ngx_hex_dump(u_char *dst, u_char *src, size_t len)
{ … }
void
ngx_encode_base64(ngx_str_t *dst, ngx_str_t *src)
{ … }
void
ngx_encode_base64url(ngx_str_t *dst, ngx_str_t *src)
{ … }
static void
ngx_encode_base64_internal(ngx_str_t *dst, ngx_str_t *src, const u_char *basis,
ngx_uint_t padding)
{ … }
ngx_int_t
ngx_decode_base64(ngx_str_t *dst, ngx_str_t *src)
{ … }
ngx_int_t
ngx_decode_base64url(ngx_str_t *dst, ngx_str_t *src)
{ … }
static ngx_int_t
ngx_decode_base64_internal(ngx_str_t *dst, ngx_str_t *src, const u_char *basis)
{ … }
uint32_t
ngx_utf8_decode(u_char **p, size_t n)
{ … }
size_t
ngx_utf8_length(u_char *p, size_t n)
{ … }
u_char *
ngx_utf8_cpystrn(u_char *dst, u_char *src, size_t n, size_t len)
{ … }
uintptr_t
ngx_escape_uri(u_char *dst, u_char *src, size_t size, ngx_uint_t type)
{ … }
void
ngx_unescape_uri(u_char **dst, u_char **src, size_t size, ngx_uint_t type)
{ … }
uintptr_t
ngx_escape_html(u_char *dst, u_char *src, size_t size)
{ … }
uintptr_t
ngx_escape_json(u_char *dst, u_char *src, size_t size)
{ … }
void
ngx_str_rbtree_insert_value(ngx_rbtree_node_t *temp,
ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel)
{ … }
ngx_str_node_t *
ngx_str_rbtree_lookup(ngx_rbtree_t *rbtree, ngx_str_t *val, uint32_t hash)
{ … }
void
ngx_sort(void *base, size_t n, size_t size,
ngx_int_t (*cmp)(const void *, const void *))
{ … }
void
ngx_explicit_memzero(void *buf, size_t n)
{ … }
#if (NGX_MEMCPY_LIMIT)
void *
ngx_memcpy(void *dst, const void *src, size_t n)
{
if (n > NGX_MEMCPY_LIMIT) {
ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, 0, "memcpy %uz bytes", n);
ngx_debug_point();
}
return memcpy(dst, src, n);
}
#endif