- php_http_request_datashare_t *s = NULL, **s_ptr;
- char *lower_str = php_strtolower(estrndup(driver_str, driver_len), driver_len);
-
-#ifdef ZTS
- tsrm_mutex_lock(php_http_request_datashare_global_shares_lock);
-#endif
- if (zend_hash_find(&php_http_request_datashare_global_shares, lower_str, driver_len + 1, (void *) &s_ptr)) {
- s = *s_ptr;
- } else {
- php_http_request_factory_driver_t driver;
-
- if ((SUCCESS == php_http_request_factory_get_driver(driver_str, driver_len, &driver)) && driver.request_datashare_ops) {
- s = php_http_request_datashare_init(NULL, driver.request_datashare_ops, NULL, 1 TSRMLS_CC);
- zend_hash_add(&php_http_request_datashare_global_shares, lower_str, driver_len + 1, &s, sizeof(php_http_request_datashare_t *), NULL);
- }
- }
-#ifdef ZTS
- tsrm_mutex_unlock(php_http_request_datashare_global_shares_lock);
-#endif
-
- efree(lower_str);
- return s;
-}
-
-PHP_HTTP_API php_http_request_datashare_t *php_http_request_datashare_init(php_http_request_datashare_t *h, php_http_request_datashare_ops_t *ops, void *init_arg, zend_bool persistent TSRMLS_DC)
-{
- php_http_request_datashare_t *free_h;