mysqlnd_plugin__get_plugin_vio_data, }; /* {{{ _mysqlnd_object_factory_get_methods */ static MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) * _mysqlnd_object_factory_get_methods() { return &MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory); } /* }}} */ /* {{{ mysqlnd_conn_set_methods */ static void _mysqlnd_object_factory_set_methods(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) *methods) { MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory) = *methods; } /* }}} */ /* {{{ _mysqlnd_conn_get_methods */ static MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn) * _mysqlnd_conn_get_methods() { return mysqlnd_conn_methods; } /* }}} */ /* {{{ _mysqlnd_conn_set_methods */
} #if defined(MYSQLND_DBG_ENABLED) && MYSQLND_DBG_ENABLED == 1 mysqlnd_example_plugin_register(); #endif mysqlnd_debug_trace_plugin_register(); mysqlnd_register_builtin_authentication_plugins(); mysqlnd_reverse_api_init(); } } /* }}} */ /* {{{ mysqlnd_object_factory::get_connection */ static MYSQLND * MYSQLND_METHOD(mysqlnd_object_factory, get_connection)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) *factory, const zend_bool persistent) { size_t alloc_size_ret = sizeof(MYSQLND) + mysqlnd_plugin_count() * sizeof(void *); size_t alloc_size_ret_data = sizeof(MYSQLND_CONN_DATA) + mysqlnd_plugin_count() * sizeof(void *); MYSQLND * new_object; MYSQLND_CONN_DATA * data; DBG_ENTER("mysqlnd_driver::get_connection"); DBG_INF_FMT("persistent=%u", persistent); new_object = mnd_pecalloc(1, alloc_size_ret, persistent); if (!new_object) { DBG_RETURN(NULL); } new_object->data = mnd_pecalloc(1, alloc_size_ret_data, persistent); if (!new_object->data) { mnd_pefree(new_object, persistent);
MYSQLND_METHOD(mysqlnd_vio, enable_ssl), MYSQLND_METHOD(mysqlnd_vio, disable_ssl), MYSQLND_METHOD(mysqlnd_vio, network_read), MYSQLND_METHOD(mysqlnd_vio, network_write), MYSQLND_METHOD(mysqlnd_vio, consume_uneaten_data), MYSQLND_METHOD(mysqlnd_vio, free_contents), MYSQLND_CLASS_METHODS_END; /* {{{ mysqlnd_vio_init */ PHPAPI MYSQLND_VIO * mysqlnd_vio_init(zend_bool persistent, MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) *object_factory, MYSQLND_STATS * stats, MYSQLND_ERROR_INFO * error_info) { MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) *factory = object_factory? object_factory : &MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory); MYSQLND_VIO * vio; DBG_ENTER("mysqlnd_vio_init"); vio = factory->get_vio(persistent, stats, error_info); DBG_RETURN(vio); } /* }}} */ /* {{{ mysqlnd_vio_free */ PHPAPI void mysqlnd_vio_free(MYSQLND_VIO * const vio, MYSQLND_STATS * stats, MYSQLND_ERROR_INFO * error_info) { DBG_ENTER("mysqlnd_vio_free");