]> granicus.if.org Git - php/commitdiff
move network creation to the init hook
authorAndrey Hristov <andrey@php.net>
Mon, 28 Dec 2009 11:17:10 +0000 (11:17 +0000)
committerAndrey Hristov <andrey@php.net>
Mon, 28 Dec 2009 11:17:10 +0000 (11:17 +0000)
ext/mysqlnd/mysqlnd.c
ext/mysqlnd/mysqlnd_structs.h

index e76d9ab05ec2f956e069d65302a5cfb6b22357aa..fea5f6988b66964458ed351621e5c8ca8cb6ecb5 100644 (file)
@@ -2019,8 +2019,11 @@ MYSQLND_METHOD(mysqlnd_conn, get_connection_stats)(const MYSQLND * const conn,
 
 
 MYSQLND_STMT * _mysqlnd_stmt_init(MYSQLND * const conn TSRMLS_DC);
+static void MYSQLND_METHOD(mysqlnd_conn, init)(MYSQLND * conn TSRMLS_DC);
+
 
 MYSQLND_CLASS_METHODS_START(mysqlnd_conn)
+       MYSQLND_METHOD(mysqlnd_conn, init),
        MYSQLND_METHOD(mysqlnd_conn, connect),
 
        MYSQLND_METHOD(mysqlnd_conn, escape_string),
@@ -2086,6 +2089,20 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_conn)
 MYSQLND_CLASS_METHODS_END;
 
 
+/* {{{ mysqlnd_conn::init */
+static void
+MYSQLND_METHOD(mysqlnd_conn, init)(MYSQLND * conn TSRMLS_DC)
+{
+       DBG_ENTER("mysqlnd_conn::init");
+       conn->net = mysqlnd_net_init(conn->persistent TSRMLS_CC);
+
+       SET_ERROR_AFF_ROWS(conn);
+
+       DBG_VOID_RETURN;
+}
+/* }}} */
+
+
 /* {{{ mysqlnd_init */
 PHPAPI MYSQLND *_mysqlnd_init(zend_bool persistent TSRMLS_DC)
 {
@@ -2095,20 +2112,18 @@ PHPAPI MYSQLND *_mysqlnd_init(zend_bool persistent TSRMLS_DC)
        DBG_ENTER("mysqlnd_init");
        DBG_INF_FMT("persistent=%d", persistent);
 
-       SET_ERROR_AFF_ROWS(ret);
        ret->persistent = persistent;
-
        ret->m = mysqlnd_conn_methods;
+       CONN_SET_STATE(ret, CONN_ALLOCED);
        ret->m->get_reference(ret TSRMLS_CC);
 
-       ret->net = mysqlnd_net_init(persistent TSRMLS_CC);
-
-       CONN_SET_STATE(ret, CONN_ALLOCED);
+       ret->m->init(ret TSRMLS_CC);
 
        DBG_RETURN(ret);
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_library_init */
 void mysqlnd_library_init(TSRMLS_D)
 {
index 7a85eecc07e060f96acc2daf75875a62098f3b2c..ddfc77de6411cd5cfbff651c49b5016922dc5394 100644 (file)
@@ -245,6 +245,7 @@ struct st_mysqlnd_net_methods
 
 struct st_mysqlnd_conn_methods
 {
+       void                            (*init)(MYSQLND * conn TSRMLS_DC);
        enum_func_status        (*connect)(MYSQLND *conn, const char *host, const char * user, const char * passwd, unsigned int passwd_len, const char * db, unsigned int db_len, unsigned int port, const char * socket, unsigned int mysql_flags TSRMLS_DC);
        ulong                           (*escape_string)(const MYSQLND * const conn, char *newstr, const char *escapestr, size_t escapestr_len TSRMLS_DC);
        enum_func_status        (*set_charset)(MYSQLND * const conn, const char * const charset TSRMLS_DC);