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