Mercurial > hg > nginx-quic
view src/mysql/ngx_mysql.h @ 5091:d3e256c67d6d
SSL: do not treat SSL handshake as request.
The request object will not be created until SSL handshake is complete.
This simplifies adding another connection handler that does not need
request object right after handshake (e.g., SPDY).
There are also a few more intentional effects:
- the "client_header_buffer_size" directive will be taken from the
server configuration that was negotiated by SNI;
- SSL handshake errors and timeouts are not logged into access log
as bad requests;
- ngx_ssl_create_connection() is not called until the first byte of
ClientHello message was received. This also decreases memory
consumption if plain HTTP request is sent to SSL socket.
author | Valentin Bartenev <vbart@nginx.com> |
---|---|
date | Wed, 27 Feb 2013 17:21:21 +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_ */