Mercurial > hg > nginx-quic
view src/mysql/ngx_mysql.h @ 4624:df93068953c0
realip: chains of trusted proxies and IPv6 support.
The module now supports recursive search of client address through
the chain of trusted proxies, controlled by the "real_ip_recursive"
directive (closes #2). It also gets full IPv6 support (closes #44)
and canonical value of the $client_addr variable on address change.
Example:
real_ip_header X-Forwarded-For;
set_real_ip_from 127.0.0.0/8;
set_real_ip_from ::1;
set_real_ip_from unix:;
real_ip_recursive on;
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Mon, 14 May 2012 12:41:03 +0000 |
parents | d620f497c50f |
children |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_MYSQL_H_INCLUDED_ #define _NGX_MYSQL_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> #include <ngx_event_connect.h> typedef struct ngx_mysql_s ngx_mysql_t; typedef void (*ngx_mysql_handler_pt)(ngx_mysql_t *m); struct ngx_mysql_s { ngx_peer_connection_t peer; ngx_buf_t *buf; ngx_pool_t *pool; ngx_str_t *login; ngx_str_t *passwd; ngx_str_t *database; ngx_str_t query; ngx_uint_t pktn; ngx_mysql_handler_pt handler; void *data; ngx_int_t state; }; #define NGX_MYSQL_CMDPKT_LEN 5 #if (NGX_HAVE_LITTLE_ENDIAN && NGX_HAVE_NONALIGNED && 0) #define ngx_m16toh(n) (*(uint32_t *) n & 0x0000ffff) #define ngx_m24toh(n) (*(uint32_t *) n & 0x00ffffff) #define ngx_m32toh(n) *(uint32_t *) n #define ngx_htom16(n, m) *(uint16_t *) n = (uint16_t) ((m) & 0xffff) #define ngx_htom24(n, m) (n)[0] = (u_char) ((m) & 0xff); \ (n)[1] = (u_char) (((m) >> 8) & 0xff); \ (n)[2] = (u_char) (((m) >> 16) & 0xff) #define ngx_htom32(n, m) *(uint32_t *) (n) = (m) #else #define ngx_m16toh(n) (n[0] | n[1] << 8) #define ngx_m24toh(n) (n[0] | n[1] << 8 | n[2] << 16) #define ngx_m32toh(n) (n[0] | n[1] << 8 | n[2] << 16 | n[3] << 24) #define ngx_htom16(n, m) (n)[0] = (u_char) (m); (n)[1] = (u_char) ((m) >> 8) #define ngx_htom24(n, m) (n)[0] = (u_char) ((m) & 0xff); \ (n)[1] = (u_char) (((m) >> 8) & 0xff); \ (n)[2] = (u_char) (((m) >> 16) & 0xff) #define ngx_htom32(n, m) (n)[0] = (u_char) ((m) & 0xff); \ (n)[1] = (u_char) (((m) >> 8) & 0xff); \ (n)[2] = (u_char) (((m) >> 16) & 0xff); \ (n)[3] = (u_char) (((m) >> 24) & 0xff) #endif ngx_int_t ngx_mysql_connect(ngx_mysql_t *m); ngx_int_t ngx_mysql_query(ngx_mysql_t *m); #endif /* _NGX_MYSQL_H_INCLUDED_ */