| |
| /* |
| * 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_ */ |