Пример #1
0
zval * cpMD5(zval *arr) {//pass in array , out md5 zval
    smart_str ser_data = {0};
    cp_serialize(&ser_data, arr);

    zval fun_name, **args[1], *retval, *str;
    CP_ZVAL_STRING(&fun_name, "md5", 0);

    CP_MAKE_STD_ZVAL(str);
#if PHP_MAJOR_VERSION < 7
    CP_ZVAL_STRINGL(str, ser_data.c, ser_data.len, 1);
#else
    zend_string *str_data = ser_data.s;
    CP_ZVAL_STRINGL(str, str_data->val, str_data->len, 1);
#endif
    args[0] = &str;

    if (cp_call_user_function_ex(CG(function_table), NULL, &fun_name, &retval, 1, args, 0, NULL TSRMLS_CC) != SUCCESS)
    {
        cp_zval_ptr_dtor(&str);
        smart_str_free(&ser_data);
        return NULL;
    }
    cp_zval_ptr_dtor(&str);
    smart_str_free(&ser_data);
    return retval;
}
Пример #2
0
void cpSettitle(char *title_name)
{

    //    assert(MAX_TITLE_LENGTH > strlen(title) + 5);
    int len = 0;
    char name[MAX_TITLE_LENGTH + 5] = {0};
    strcat(name, "pool_");
    if (strlen(title_name) >= MAX_TITLE_LENGTH)
    {
        len = MAX_TITLE_LENGTH;
    }
    else
    {
        len = strlen(title_name);
    }
    memcpy(name + 5, title_name, len);
    zval *zname;
    CP_MAKE_STD_ZVAL(zname);
    CP_ZVAL_STRING(zname, name, 0);

#if PHP_MAJOR_VERSION >= 7 || (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 4)
    zval *retval;
    zval **args[1];
    args[0] = &zname;

    zval *function;
    CP_MAKE_STD_ZVAL(function);
    CP_ZVAL_STRING(function, "cli_set_process_title", 1);

    if (cp_call_user_function_ex(EG(function_table), NULL, function, &retval, 1, args, 0, NULL TSRMLS_CC) == FAILURE)
    {
        return;
    }
    cp_zval_ptr_dtor(&function);
    if (retval)
    {
        cp_zval_ptr_dtor(&retval);
    }
#else
    bzero(sapi_module.executable_location, 127);
    memcpy(sapi_module.executable_location, Z_STRVAL_P(zname), Z_STRLEN_P(zname));
#endif
}
Пример #3
0
void cpSettitle(char *title_name) {

//    assert(MAX_TITLE_LENGTH > strlen(title) + 5);

    char title[MAX_TITLE_LENGTH + 5] = {0};
    strcat(title, "pool_");
    strcat(title, title_name);

#if PHP_MAJOR_VERSION > 5 && PHP_MINOR_VERSION > 4 ||PHP_MAJOR_VERSION==7

    zval *name_ptr, name;
    name_ptr = &name;
    CP_ZVAL_STRING(name_ptr, title, 1);
    cp_zval_add_ref(&name_ptr);
    zval *retval;
    zval **args[1];
    args[0] = &name_ptr;

    zval *function;
    CP_MAKE_STD_ZVAL(function);
    CP_ZVAL_STRING(function, "cli_set_process_title", 1);

    if (cp_call_user_function_ex(EG(function_table), NULL, function, &retval, 1, args, 0, NULL TSRMLS_CC) == FAILURE)
    {
        return;
    }
    cp_zval_ptr_dtor(&function);
    if (retval)
    {
        cp_zval_ptr_dtor(&retval);
    }

#else
    bzero(sapi_module.executable_location, MAX_TITLE_LENGTH);
    memcpy(sapi_module.executable_location, title, strlen(title));
#endif
}
Пример #4
0
PHP_METHOD(pdo_connect_pool_PDOStatement, rewind)
{
    zval *object = getThis();
    zval *method_ptr, method, *ret_value = NULL;
    method_ptr = &method;
    zend_class_entry *ce;
    ce = Z_OBJCE_P(object);
    CP_ZVAL_STRING(method_ptr, "fetchAll", 0);
    if (cp_call_user_function_ex(EG(function_table), &object, method_ptr, &ret_value, 0, NULL, 0, NULL TSRMLS_CC) == FAILURE)
    {
        return;
    }
    zend_update_property_long(ce, object, "pos", sizeof ("pos") - 1, 0 TSRMLS_CC);
    zend_update_property(ce, object, "rs", sizeof ("rs") - 1, ret_value TSRMLS_CC);
    cp_zval_ptr_dtor(&ret_value);

}