diff options
Diffstat (limited to 'ext/mysqlnd/mysqlnd_wireprotocol.h')
-rw-r--r-- | ext/mysqlnd/mysqlnd_wireprotocol.h | 35 |
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); |