@@ -1013,40 +1013,44 @@ int redis_cmd_append_sstr_arrkey(smart_string *cmd, zend_string *kstr, zend_ulon
1013
1013
return redis_cmd_append_sstr (cmd , arg , len );
1014
1014
}
1015
1015
1016
- PHP_REDIS_API void redis_bulk_double_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
1016
+ PHP_REDIS_API int
1017
+ redis_bulk_double_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
1017
1018
1018
1019
char * response ;
1019
1020
int response_len ;
1020
1021
double ret ;
1021
1022
1022
1023
if ((response = redis_sock_read (redis_sock , & response_len )) == NULL ) {
1023
1024
if (IS_ATOMIC (redis_sock )) {
1024
- RETURN_FALSE ;
1025
+ RETVAL_FALSE ;
1026
+ } else {
1027
+ add_next_index_bool (z_tab , 0 );
1025
1028
}
1026
- add_next_index_bool (z_tab , 0 );
1027
- return ;
1029
+ return FAILURE ;
1028
1030
}
1029
1031
1030
1032
ret = atof (response );
1031
1033
efree (response );
1032
1034
if (IS_ATOMIC (redis_sock )) {
1033
- RETURN_DOUBLE (ret );
1035
+ RETVAL_DOUBLE (ret );
1034
1036
} else {
1035
1037
add_next_index_double (z_tab , ret );
1036
1038
}
1039
+
1040
+ return SUCCESS ;
1037
1041
}
1038
1042
1039
- PHP_REDIS_API void redis_type_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
1043
+ PHP_REDIS_API int redis_type_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
1040
1044
char * response ;
1041
1045
int response_len ;
1042
1046
long l ;
1043
1047
1044
1048
if ((response = redis_sock_read (redis_sock , & response_len )) == NULL ) {
1045
1049
if (IS_ATOMIC (redis_sock )) {
1046
- RETURN_FALSE ;
1050
+ RETVAL_FALSE ;
1047
1051
}
1048
1052
add_next_index_bool (z_tab , 0 );
1049
- return ;
1053
+ return FAILURE ;
1050
1054
}
1051
1055
1052
1056
if (strncmp (response , "+string" , 7 ) == 0 ) {
@@ -1067,20 +1071,23 @@ PHP_REDIS_API void redis_type_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *
1067
1071
1068
1072
efree (response );
1069
1073
if (IS_ATOMIC (redis_sock )) {
1070
- RETURN_LONG (l );
1074
+ RETVAL_LONG (l );
1071
1075
} else {
1072
1076
add_next_index_long (z_tab , l );
1073
1077
}
1078
+
1079
+ return SUCCESS ;
1074
1080
}
1075
1081
1076
- PHP_REDIS_API void redis_info_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
1082
+ PHP_REDIS_API int redis_info_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
1077
1083
char * response ;
1078
1084
int response_len ;
1079
1085
zval z_ret ;
1080
1086
1081
1087
/* Read bulk response */
1082
1088
if ((response = redis_sock_read (redis_sock , & response_len )) == NULL ) {
1083
- RETURN_FALSE ;
1089
+ RETVAL_FALSE ;
1090
+ return FAILURE ;
1084
1091
}
1085
1092
1086
1093
/* Parse it into a zval array */
@@ -1095,6 +1102,8 @@ PHP_REDIS_API void redis_info_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *
1095
1102
} else {
1096
1103
add_next_index_zval (z_tab , & z_ret );
1097
1104
}
1105
+
1106
+ return SUCCESS ;
1098
1107
}
1099
1108
1100
1109
PHP_REDIS_API void
@@ -1151,14 +1160,16 @@ redis_parse_info_response(char *response, zval *z_ret)
1151
1160
* Specialized handling of the CLIENT LIST output so it comes out in a simple way for PHP userland code
1152
1161
* to handle.
1153
1162
*/
1154
- PHP_REDIS_API void redis_client_list_reply (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab ) {
1163
+ PHP_REDIS_API int
1164
+ redis_client_list_reply (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
1155
1165
char * resp ;
1156
1166
int resp_len ;
1157
1167
zval z_ret ;
1158
1168
1159
1169
/* Make sure we can read the bulk response from Redis */
1160
1170
if ((resp = redis_sock_read (redis_sock , & resp_len )) == NULL ) {
1161
- RETURN_FALSE ;
1171
+ RETVAL_FALSE ;
1172
+ return FAILURE ;
1162
1173
}
1163
1174
1164
1175
/* Parse it out */
@@ -1173,6 +1184,8 @@ PHP_REDIS_API void redis_client_list_reply(INTERNAL_FUNCTION_PARAMETERS, RedisSo
1173
1184
} else {
1174
1185
add_next_index_zval (z_tab , & z_ret );
1175
1186
}
1187
+
1188
+ return SUCCESS ;
1176
1189
}
1177
1190
1178
1191
PHP_REDIS_API void
@@ -1270,7 +1283,7 @@ redis_parse_client_list_response(char *response, zval *z_ret)
1270
1283
}
1271
1284
}
1272
1285
1273
- PHP_REDIS_API void
1286
+ PHP_REDIS_API int
1274
1287
redis_boolean_response_impl (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock ,
1275
1288
zval * z_tab , void * ctx ,
1276
1289
SuccessCallback success_callback )
@@ -1289,36 +1302,38 @@ redis_boolean_response_impl(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
1289
1302
success_callback (redis_sock );
1290
1303
}
1291
1304
if (IS_ATOMIC (redis_sock )) {
1292
- RETURN_BOOL (ret );
1305
+ RETVAL_BOOL (ret );
1293
1306
} else {
1294
1307
add_next_index_bool (z_tab , ret );
1295
1308
}
1309
+
1310
+ return ret ? SUCCESS : FAILURE ;
1296
1311
}
1297
1312
1298
- PHP_REDIS_API void redis_boolean_response (INTERNAL_FUNCTION_PARAMETERS ,
1313
+ PHP_REDIS_API int redis_boolean_response (INTERNAL_FUNCTION_PARAMETERS ,
1299
1314
RedisSock * redis_sock , zval * z_tab ,
1300
1315
void * ctx )
1301
1316
{
1302
- redis_boolean_response_impl (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock ,
1303
- z_tab , ctx , NULL );
1317
+ return redis_boolean_response_impl (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock ,
1318
+ z_tab , ctx , NULL );
1304
1319
}
1305
1320
1306
- PHP_REDIS_API void redis_long_response (INTERNAL_FUNCTION_PARAMETERS ,
1307
- RedisSock * redis_sock , zval * z_tab ,
1308
- void * ctx )
1321
+ PHP_REDIS_API int redis_long_response (INTERNAL_FUNCTION_PARAMETERS ,
1322
+ RedisSock * redis_sock , zval * z_tab ,
1323
+ void * ctx )
1309
1324
{
1310
1325
1311
1326
char * response ;
1312
1327
int response_len ;
1313
1328
1314
- if ((response = redis_sock_read (redis_sock , & response_len ))
1315
- == NULL )
1316
- {
1329
+ if ((response = redis_sock_read (redis_sock , & response_len )) == NULL ) {
1317
1330
if (IS_ATOMIC (redis_sock )) {
1318
- RETURN_FALSE ;
1331
+ RETVAL_FALSE ;
1332
+ } else {
1333
+ add_next_index_bool (z_tab , 0 );
1319
1334
}
1320
- add_next_index_bool ( z_tab , 0 );
1321
- return ;
1335
+
1336
+ return FAILURE ;
1322
1337
}
1323
1338
1324
1339
if (response [0 ] == ':' ) {
@@ -1343,8 +1358,12 @@ PHP_REDIS_API void redis_long_response(INTERNAL_FUNCTION_PARAMETERS,
1343
1358
} else {
1344
1359
add_next_index_null (z_tab );
1345
1360
}
1361
+ efree (response );
1362
+ return FAILURE ;
1346
1363
}
1364
+
1347
1365
efree (response );
1366
+ return SUCCESS ;
1348
1367
}
1349
1368
1350
1369
/* Helper method to convert [key, value, key, value] into [key => value,
@@ -1925,7 +1944,7 @@ PHP_REDIS_API int redis_mbulk_reply_zipped_vals(INTERNAL_FUNCTION_PARAMETERS, Re
1925
1944
z_tab , UNSERIALIZE_VALS , SCORE_DECODE_NONE );
1926
1945
}
1927
1946
1928
- PHP_REDIS_API void
1947
+ PHP_REDIS_API int
1929
1948
redis_1_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx )
1930
1949
{
1931
1950
char * response ;
@@ -1938,13 +1957,15 @@ redis_1_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, zval *z_ta
1938
1957
}
1939
1958
1940
1959
if (IS_ATOMIC (redis_sock )) {
1941
- RETURN_BOOL (ret );
1960
+ RETVAL_BOOL (ret );
1942
1961
} else {
1943
1962
add_next_index_bool (z_tab , ret );
1944
1963
}
1964
+
1965
+ return ret ? SUCCESS : FAILURE ;
1945
1966
}
1946
1967
1947
- PHP_REDIS_API void redis_string_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
1968
+ PHP_REDIS_API int redis_string_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
1948
1969
1949
1970
char * response ;
1950
1971
int response_len ;
@@ -1953,10 +1974,11 @@ PHP_REDIS_API void redis_string_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock
1953
1974
== NULL )
1954
1975
{
1955
1976
if (IS_ATOMIC (redis_sock )) {
1956
- RETURN_FALSE ;
1977
+ RETVAL_FALSE ;
1978
+ } else {
1979
+ add_next_index_bool (z_tab , 0 );
1957
1980
}
1958
- add_next_index_bool (z_tab , 0 );
1959
- return ;
1981
+ return FAILURE ;
1960
1982
}
1961
1983
if (IS_ATOMIC (redis_sock )) {
1962
1984
if (!redis_unpack (redis_sock , response , response_len , return_value )) {
@@ -1970,7 +1992,9 @@ PHP_REDIS_API void redis_string_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock
1970
1992
add_next_index_stringl (z_tab , response , response_len );
1971
1993
}
1972
1994
}
1995
+
1973
1996
efree (response );
1997
+ return SUCCESS ;
1974
1998
}
1975
1999
1976
2000
PHP_REDIS_API
@@ -1998,7 +2022,7 @@ void redis_single_line_reply(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock
1998
2022
}
1999
2023
2000
2024
/* like string response, but never unserialized. */
2001
- PHP_REDIS_API void
2025
+ PHP_REDIS_API int
2002
2026
redis_ping_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock ,
2003
2027
zval * z_tab , void * ctx )
2004
2028
{
@@ -2010,17 +2034,20 @@ redis_ping_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
2010
2034
== NULL )
2011
2035
{
2012
2036
if (IS_ATOMIC (redis_sock )) {
2013
- RETURN_FALSE ;
2037
+ RETVAL_FALSE ;
2038
+ } else {
2039
+ add_next_index_bool (z_tab , 0 );
2014
2040
}
2015
- add_next_index_bool (z_tab , 0 );
2016
- return ;
2041
+ return FAILURE ;
2017
2042
}
2018
2043
if (IS_ATOMIC (redis_sock )) {
2019
2044
RETVAL_STRINGL (response , response_len );
2020
2045
} else {
2021
2046
add_next_index_stringl (z_tab , response , response_len );
2022
2047
}
2048
+
2023
2049
efree (response );
2050
+ return SUCCESS ;
2024
2051
}
2025
2052
2026
2053
/* Response for DEBUG object which is a formatted single line reply */
0 commit comments