void fcgi_set_mgmt_var(const char * name, size_t name_len, const char * value, size_t value_len)
{
- zval * zvalue;
- zvalue = pemalloc(sizeof(*zvalue), 1);
- Z_TYPE_P(zvalue) = IS_STRING;
- Z_STRVAL_P(zvalue) = pestrndup(value, value_len, 1);
- Z_STRLEN_P(zvalue) = value_len;
- zend_hash_add(&fcgi_mgmt_vars, name, name_len + 1, &zvalue, sizeof(zvalue), NULL);
+ zval zvalue;
+ ZVAL_NEW_STR(&zvalue, zend_string_init(value, value_len, 1));
+ zend_hash_str_add(&fcgi_mgmt_vars, name, name_len, &zvalue);
}
-void fcgi_free_mgmt_var_cb(void * ptr)
+void fcgi_free_mgmt_var_cb(zval *zv)
{
- zval ** var = (zval **)ptr;
- pefree(Z_STRVAL_PP(var), 1);
- pefree(*var, 1);
+ zend_string_free(Z_STR_P(zv));
}
- char *fcgi_get_last_client_ip() /* {{{ */
+ const char *fcgi_get_last_client_ip() /* {{{ */
{
+ static char str[INET6_ADDRSTRLEN];
+
if (client_sa.sa.sa_family == AF_UNIX) {
return NULL;
}
int fcgi_flush(fcgi_request *req, int close);
void fcgi_set_mgmt_var(const char * name, size_t name_len, const char * value, size_t value_len);
-void fcgi_free_mgmt_var_cb(void * ptr);
+void fcgi_free_mgmt_var_cb(zval *ptr);
- char *fcgi_get_last_client_ip();
+ const char *fcgi_get_last_client_ip();
/*
* Local variables: