summaryrefslogtreecommitdiff
path: root/ext/mysqlnd/mysqlnd_wireprotocol.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysqlnd/mysqlnd_wireprotocol.h')
-rw-r--r--ext/mysqlnd/mysqlnd_wireprotocol.h35
1 files changed, 12 insertions, 23 deletions
diff --git a/ext/mysqlnd/mysqlnd_wireprotocol.h b/ext/mysqlnd/mysqlnd_wireprotocol.h
index d6855580b4..6e531b0e54 100644
--- a/ext/mysqlnd/mysqlnd_wireprotocol.h
+++ b/ext/mysqlnd/mysqlnd_wireprotocol.h
@@ -31,13 +31,13 @@ PHPAPI extern const char mysqlnd_read_body_name[];
/* Packet handling */
-#define PACKET_WRITE(packet) ((packet)->header.m->write_to_net((packet)))
-#define PACKET_READ(packet) ((packet)->header.m->read_from_net((packet)))
+#define PACKET_WRITE(conn, packet) ((packet)->header.m->write_to_net((conn), (packet)))
+#define PACKET_READ(conn, packet) ((packet)->header.m->read_from_net((conn), (packet)))
#define PACKET_FREE(packet) \
do { \
DBG_INF_FMT("PACKET_FREE(%p)", packet); \
- if ((packet)) { \
- ((packet)->header.m->free_mem((packet), FALSE)); \
+ if ((packet)->header.m->free_mem) { \
+ ((packet)->header.m->free_mem((packet))); \
} \
} while (0);
@@ -45,27 +45,17 @@ PHPAPI extern const char * const mysqlnd_command_to_text[COM_END];
/* Low-level extraction functionality */
typedef struct st_mysqlnd_packet_methods {
- size_t struct_size;
- enum_func_status (*read_from_net)(void * packet);
- size_t (*write_to_net)(void * packet);
- void (*free_mem)(void *packet, zend_bool stack_allocation);
+ enum_func_status (*read_from_net)(MYSQLND_CONN_DATA * conn, void * packet);
+ size_t (*write_to_net)(MYSQLND_CONN_DATA * conn, void * packet);
+ void (*free_mem)(void *packet);
} mysqlnd_packet_methods;
typedef struct st_mysqlnd_packet_header {
size_t size;
zend_uchar packet_no;
- zend_bool persistent;
mysqlnd_packet_methods *m;
-
- MYSQLND_CONN_DATA * conn;
- MYSQLND_PFC * protocol_frame_codec;
- MYSQLND_VIO * vio;
- MYSQLND_ERROR_INFO * error_info;
- MYSQLND_STATS * stats;
- MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * factory;
- MYSQLND_CONNECTION_STATE * connection_state;
} MYSQLND_PACKET_HEADER;
/* Server greets the client */
@@ -206,10 +196,10 @@ typedef struct st_mysqlnd_packet_rset_header {
/* Result set field packet */
typedef struct st_mysqlnd_packet_res_field {
MYSQLND_PACKET_HEADER header;
+ MYSQLND_MEMORY_POOL *memory_pool;
MYSQLND_FIELD *metadata;
/* For table definitions, empty for result sets */
zend_bool skip_parsing;
- zend_bool persistent_alloc;
MYSQLND_ERROR_INFO error_info;
} MYSQLND_PACKET_RES_FIELD;
@@ -228,12 +218,11 @@ typedef struct st_mysqlnd_packet_row {
uint16_t warning_count;
uint16_t server_status;
- struct st_mysqlnd_memory_pool_chunk *row_buffer;
+ MYSQLND_ROW_BUFFER row_buffer;
MYSQLND_MEMORY_POOL * result_set_memory_pool;
zend_bool skip_extraction;
zend_bool binary_protocol;
- zend_bool persistent_alloc;
MYSQLND_FIELD *fields_metadata;
/* If error packet, we use these */
@@ -299,16 +288,16 @@ size_t php_mysqlnd_net_store_length_size(uint64_t length);
PHPAPI extern const char * const mysqlnd_empty_string;
-enum_func_status php_mysqlnd_rowp_read_binary_protocol(MYSQLND_MEMORY_POOL_CHUNK * row_buffer, zval * fields,
+enum_func_status php_mysqlnd_rowp_read_binary_protocol(MYSQLND_ROW_BUFFER * row_buffer, zval * fields,
unsigned int field_count, const MYSQLND_FIELD * fields_metadata,
zend_bool as_int_or_float, MYSQLND_STATS * stats);
-enum_func_status php_mysqlnd_rowp_read_text_protocol_zval(MYSQLND_MEMORY_POOL_CHUNK * row_buffer, zval * fields,
+enum_func_status php_mysqlnd_rowp_read_text_protocol_zval(MYSQLND_ROW_BUFFER * row_buffer, zval * fields,
unsigned int field_count, const MYSQLND_FIELD * fields_metadata,
zend_bool as_int_or_float, MYSQLND_STATS * stats);
-enum_func_status php_mysqlnd_rowp_read_text_protocol_c(MYSQLND_MEMORY_POOL_CHUNK * row_buffer, zval * fields,
+enum_func_status php_mysqlnd_rowp_read_text_protocol_c(MYSQLND_ROW_BUFFER * row_buffer, zval * fields,
unsigned int field_count, const MYSQLND_FIELD * fields_metadata,
zend_bool as_int_or_float, MYSQLND_STATS * stats);