18
18
+----------------------------------------------------------------------+
19
19
*/
20
20
21
- /* $Id$ */
22
21
#include "php.h"
23
22
#include "mysqlnd.h"
24
23
#include "mysqlnd_vio.h"
24
+ #include "mysqlnd_protocol_frame_codec.h"
25
25
#include "mysqlnd_wireprotocol.h"
26
26
#include "mysqlnd_priv.h"
27
27
#include "mysqlnd_result.h"
@@ -267,8 +267,8 @@ MYSQLND_METHOD(mysqlnd_conn_data, free_contents)(MYSQLND_CONN_DATA * conn)
267
267
conn -> current_result = NULL ;
268
268
}
269
269
270
- if (conn -> net ) {
271
- conn -> net -> data -> m .free_contents (conn -> net );
270
+ if (conn -> protocol_frame_codec ) {
271
+ conn -> protocol_frame_codec -> data -> m .free_contents (conn -> protocol_frame_codec );
272
272
}
273
273
274
274
if (conn -> vio ) {
@@ -341,9 +341,9 @@ MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, dtor)(MYSQLND_CONN_DATA * conn)
341
341
conn -> m -> free_contents (conn );
342
342
conn -> m -> free_options (conn );
343
343
344
- if (conn -> net ) {
345
- mysqlnd_ppec_free (conn -> net , conn -> stats , conn -> error_info );
346
- conn -> net = NULL ;
344
+ if (conn -> protocol_frame_codec ) {
345
+ mysqlnd_pfc_free (conn -> protocol_frame_codec , conn -> stats , conn -> error_info );
346
+ conn -> protocol_frame_codec = NULL ;
347
347
}
348
348
349
349
if (conn -> vio ) {
@@ -540,7 +540,7 @@ mysqlnd_run_authentication(
540
540
scrambled_data =
541
541
auth_plugin -> methods .get_auth_data (NULL , & scrambled_data_len , conn , user , passwd , passwd_len ,
542
542
plugin_data , plugin_data_len , session_options ,
543
- & conn -> net -> data -> options , mysql_flags );
543
+ & conn -> protocol_frame_codec -> data -> options , mysql_flags );
544
544
if (conn -> error_info -> error_no ) {
545
545
goto end ;
546
546
}
@@ -664,7 +664,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, execute_init_commands)(MYSQLND_CONN_DATA * con
664
664
static unsigned int
665
665
MYSQLND_METHOD (mysqlnd_conn_data , get_updated_connect_flags )(MYSQLND_CONN_DATA * conn , unsigned int mysql_flags )
666
666
{
667
- MYSQLND_PPEC * net = conn -> net ;
667
+ MYSQLND_PFC * pfc = conn -> protocol_frame_codec ;
668
668
MYSQLND_VIO * vio = conn -> vio ;
669
669
670
670
DBG_ENTER ("mysqlnd_conn_data::get_updated_connect_flags" );
@@ -682,7 +682,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, get_updated_connect_flags)(MYSQLND_CONN_DATA *
682
682
mysql_flags &= ~CLIENT_COMPRESS ;
683
683
}
684
684
#else
685
- if (net && net -> data -> options .flags & MYSQLND_NET_FLAG_USE_COMPRESSION ) {
685
+ if (pfc && pfc -> data -> options .flags & MYSQLND_NET_FLAG_USE_COMPRESSION ) {
686
686
mysql_flags |= CLIENT_COMPRESS ;
687
687
}
688
688
#endif
@@ -713,12 +713,12 @@ MYSQLND_METHOD(mysqlnd_conn_data, connect_handshake)(MYSQLND_CONN_DATA * conn,
713
713
const unsigned int mysql_flags )
714
714
{
715
715
enum_func_status ret = FAIL ;
716
- size_t client_flags = mysql_flags ;
717
716
DBG_ENTER ("mysqlnd_conn_data::connect_handshake" );
718
717
719
- if (FAIL == conn -> vio -> data -> m .connect (conn -> vio , * scheme , conn -> persistent , conn -> stats , conn -> error_info )) {
720
- DBG_RETURN (FAIL );
721
- } else if (PASS == conn -> net -> data -> m .connect (conn -> net , * scheme , conn -> persistent , conn -> stats , conn -> error_info )) {
718
+ if (PASS == conn -> vio -> data -> m .connect (conn -> vio , * scheme , conn -> persistent , conn -> stats , conn -> error_info ) &&
719
+ PASS == conn -> protocol_frame_codec -> data -> m .reset (conn -> protocol_frame_codec , conn -> stats , conn -> error_info ))
720
+ {
721
+ size_t client_flags = mysql_flags ;
722
722
struct st_mysqlnd_protocol_command * command = conn -> command_factory (COM_HANDSHAKE , conn , username , password , database , client_flags );
723
723
if (command ) {
724
724
ret = command -> run (command );
@@ -784,7 +784,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, connect)(MYSQLND_CONN_DATA * conn,
784
784
zend_bool reconnect = FALSE;
785
785
zend_bool saved_compression = FALSE;
786
786
zend_bool local_tx_started = FALSE;
787
- MYSQLND_PPEC * net = conn -> net ;
787
+ MYSQLND_PFC * pfc = conn -> protocol_frame_codec ;
788
788
MYSQLND_STRING transport = { NULL , 0 };
789
789
790
790
DBG_ENTER ("mysqlnd_conn_data::connect" );
@@ -813,17 +813,17 @@ MYSQLND_METHOD(mysqlnd_conn_data, connect)(MYSQLND_CONN_DATA * conn,
813
813
814
814
conn -> m -> free_contents (conn );
815
815
/* Now reconnect using the same handle */
816
- if (net -> data -> compressed ) {
816
+ if (pfc -> data -> compressed ) {
817
817
/*
818
- we need to save the state. As we will re-connect, net ->compressed should be off, or
818
+ we need to save the state. As we will re-connect, pfc ->compressed should be off, or
819
819
we will look for a compression header as part of the greet message, but there will
820
820
be none.
821
821
*/
822
822
saved_compression = TRUE;
823
- net -> data -> compressed = FALSE;
823
+ pfc -> data -> compressed = FALSE;
824
824
}
825
- if (net -> data -> ssl ) {
826
- net -> data -> ssl = FALSE;
825
+ if (pfc -> data -> ssl ) {
826
+ pfc -> data -> ssl = FALSE;
827
827
}
828
828
} else {
829
829
unsigned int max_allowed_size = MYSQLND_ASSEMBLED_PACKET_MAX_SIZE ;
@@ -867,14 +867,14 @@ MYSQLND_METHOD(mysqlnd_conn_data, connect)(MYSQLND_CONN_DATA * conn,
867
867
SET_CONNECTION_STATE (& conn -> state , CONN_READY );
868
868
869
869
if (saved_compression ) {
870
- net -> data -> compressed = TRUE;
870
+ pfc -> data -> compressed = TRUE;
871
871
}
872
872
/*
873
873
If a connect on a existing handle is performed and mysql_flags is
874
874
passed which doesn't CLIENT_COMPRESS, then we need to overwrite the value
875
875
which we set based on saved_compression.
876
876
*/
877
- net -> data -> compressed = mysql_flags & CLIENT_COMPRESS ? TRUE:FALSE;
877
+ pfc -> data -> compressed = mysql_flags & CLIENT_COMPRESS ? TRUE:FALSE;
878
878
879
879
880
880
conn -> scheme .s = mnd_pestrndup (transport .s , transport .l , conn -> persistent );
@@ -1435,15 +1435,15 @@ MYSQLND_METHOD(mysqlnd_conn_data, ssl_set)(MYSQLND_CONN_DATA * const conn, const
1435
1435
{
1436
1436
const size_t this_func = STRUCT_OFFSET (MYSQLND_CLASS_METHODS_TYPE (mysqlnd_conn_data ), ssl_set );
1437
1437
enum_func_status ret = FAIL ;
1438
- MYSQLND_VIO * net = conn -> vio ;
1438
+ MYSQLND_VIO * vio = conn -> vio ;
1439
1439
DBG_ENTER ("mysqlnd_conn_data::ssl_set" );
1440
1440
1441
1441
if (PASS == conn -> m -> local_tx_start (conn , this_func )) {
1442
- ret = (PASS == net -> data -> m .set_client_option (net , MYSQLND_OPT_SSL_KEY , key ) &&
1443
- PASS == net -> data -> m .set_client_option (net , MYSQLND_OPT_SSL_CERT , cert ) &&
1444
- PASS == net -> data -> m .set_client_option (net , MYSQLND_OPT_SSL_CA , ca ) &&
1445
- PASS == net -> data -> m .set_client_option (net , MYSQLND_OPT_SSL_CAPATH , capath ) &&
1446
- PASS == net -> data -> m .set_client_option (net , MYSQLND_OPT_SSL_CIPHER , cipher )) ? PASS : FAIL ;
1442
+ ret = (PASS == vio -> data -> m .set_client_option (vio , MYSQLND_OPT_SSL_KEY , key ) &&
1443
+ PASS == vio -> data -> m .set_client_option (vio , MYSQLND_OPT_SSL_CERT , cert ) &&
1444
+ PASS == vio -> data -> m .set_client_option (vio , MYSQLND_OPT_SSL_CA , ca ) &&
1445
+ PASS == vio -> data -> m .set_client_option (vio , MYSQLND_OPT_SSL_CAPATH , capath ) &&
1446
+ PASS == vio -> data -> m .set_client_option (vio , MYSQLND_OPT_SSL_CIPHER , cipher )) ? PASS : FAIL ;
1447
1447
1448
1448
conn -> m -> local_tx_end (conn , this_func , ret );
1449
1449
}
@@ -1688,12 +1688,10 @@ MYSQLND_METHOD(mysqlnd_conn_data, send_close)(MYSQLND_CONN_DATA * const conn)
1688
1688
enum_func_status ret = PASS ;
1689
1689
MYSQLND_VIO * vio = conn -> vio ;
1690
1690
php_stream * net_stream = vio -> data -> m .get_stream (vio );
1691
- enum mysqlnd_connection_state state ;
1691
+ enum mysqlnd_connection_state state = GET_CONNECTION_STATE ( & conn -> state ) ;
1692
1692
1693
1693
DBG_ENTER ("mysqlnd_send_close" );
1694
- DBG_INF_FMT ("conn=%llu net->data->stream->abstract=%p" , conn -> thread_id , net_stream ? net_stream -> abstract :NULL );
1695
-
1696
- state = GET_CONNECTION_STATE (& conn -> state );
1694
+ DBG_INF_FMT ("conn=%llu vio->data->stream->abstract=%p" , conn -> thread_id , net_stream ? net_stream -> abstract :NULL );
1697
1695
DBG_INF_FMT ("state=%u" , state );
1698
1696
1699
1697
if (state >= CONN_READY ) {
@@ -2116,7 +2114,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option)(MYSQLND_CONN_DATA * const c
2116
2114
ret = conn -> vio -> data -> m .set_client_option (conn -> vio , option , value );
2117
2115
break ;
2118
2116
case MYSQL_SERVER_PUBLIC_KEY :
2119
- ret = conn -> net -> data -> m .set_client_option (conn -> net , option , value );
2117
+ ret = conn -> protocol_frame_codec -> data -> m .set_client_option (conn -> protocol_frame_codec , option , value );
2120
2118
break ;
2121
2119
#ifdef MYSQLND_STRING_TO_INT_CONVERSION
2122
2120
case MYSQLND_OPT_INT_AND_FLOAT_NATIVE :
0 commit comments