コード例 #1
0
ファイル: cpFunction.c プロジェクト: Janson-Leung/php-cp
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
ファイル: cpFunction.c プロジェクト: Janson-Leung/php-cp
void cp_ser_and_setdis(zval *arr) {
    smart_str ser_data = {0};
    cp_serialize(&ser_data, arr);
#if PHP_MAJOR_VERSION < 7
    memcpy(CPGL.ping_mem_addr + CP_PING_MD5_LEN + CP_PING_PID_LEN, ser_data.c, ser_data.len);
#else
    zend_string *str = ser_data.s;
    memcpy(CPGL.ping_mem_addr + CP_PING_MD5_LEN + CP_PING_PID_LEN, str->val, str->len);
#endif
    smart_str_free(&ser_data);
}
コード例 #3
0
ファイル: cpFunction.c プロジェクト: damaainan/php-cp
CPINLINE 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;
    ZVAL_STRING(&fun_name, "md5", 0);

    MAKE_STD_ZVAL(str);
    ZVAL_STRINGL(str, ser_data.c, ser_data.len, 1);
    args[0] = &str;

    if (call_user_function_ex(CG(function_table), NULL, &fun_name, &retval, 1, args, 0, NULL TSRMLS_CC) != SUCCESS)
    {
        zval_ptr_dtor(&str);
        smart_str_free(&ser_data);
        return NULL;
    }
    zval_ptr_dtor(&str);
    smart_str_free(&ser_data);
    return retval;
}
コード例 #4
0
ファイル: cpFunction.c プロジェクト: damaainan/php-cp
CPINLINE void cp_ser_and_setdis(zval *arr) {
    smart_str ser_data = {0};
    cp_serialize(&ser_data, arr);
    memcpy(CPGL.ping_mem_addr + CP_PING_MD5_LEN + CP_PING_PID_LEN, ser_data.c, ser_data.len);
    smart_str_free(&ser_data);
}