18
18
#include "library.h"
19
19
#include <ext/standard/php_math.h>
20
20
21
+ #ifdef _MSC_VER
22
+ #define atoll _atoi64
23
+ #endif
24
+
21
25
#define UNSERIALIZE_ONLY_VALUES 0
22
26
#define UNSERIALIZE_ALL 1
23
27
24
28
extern zend_class_entry * redis_ce ;
25
29
extern zend_class_entry * redis_exception_ce ;
26
30
extern zend_class_entry * spl_ce_RuntimeException ;
27
31
28
- PHPAPI void redis_stream_close (RedisSock * redis_sock TSRMLS_DC ) {
32
+ void redis_stream_close (RedisSock * redis_sock TSRMLS_DC ) {
29
33
if (!redis_sock -> persistent ) {
30
34
php_stream_close (redis_sock -> stream );
31
35
} else {
32
36
php_stream_pclose (redis_sock -> stream );
33
37
}
34
38
}
35
39
36
- PHPAPI int redis_check_eof (RedisSock * redis_sock TSRMLS_DC )
40
+ int redis_check_eof (RedisSock * redis_sock TSRMLS_DC )
37
41
{
38
42
int eof ;
39
43
int count = 0 ;
@@ -93,7 +97,7 @@ PHPAPI int redis_check_eof(RedisSock *redis_sock TSRMLS_DC)
93
97
return 0 ;
94
98
}
95
99
96
- PHPAPI zval * redis_sock_read_multibulk_reply_zval (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock ) {
100
+ zval * redis_sock_read_multibulk_reply_zval (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock ) {
97
101
char inbuf [1024 ];
98
102
int numElems ;
99
103
zval * z_tab ;
@@ -128,7 +132,7 @@ PHPAPI zval *redis_sock_read_multibulk_reply_zval(INTERNAL_FUNCTION_PARAMETERS,
128
132
/**
129
133
* redis_sock_read_bulk_reply
130
134
*/
131
- PHPAPI char * redis_sock_read_bulk_reply (RedisSock * redis_sock , int bytes TSRMLS_DC )
135
+ char * redis_sock_read_bulk_reply (RedisSock * redis_sock , int bytes TSRMLS_DC )
132
136
{
133
137
int offset = 0 ;
134
138
size_t got ;
@@ -144,7 +148,7 @@ PHPAPI char *redis_sock_read_bulk_reply(RedisSock *redis_sock, int bytes TSRMLS_
144
148
} else {
145
149
char c ;
146
150
int i ;
147
-
151
+
148
152
reply = emalloc (bytes + 1 );
149
153
150
154
while (offset < bytes ) {
@@ -168,7 +172,7 @@ PHPAPI char *redis_sock_read_bulk_reply(RedisSock *redis_sock, int bytes TSRMLS_
168
172
/**
169
173
* redis_sock_read
170
174
*/
171
- PHPAPI char * redis_sock_read (RedisSock * redis_sock , int * buf_len TSRMLS_DC )
175
+ char * redis_sock_read (RedisSock * redis_sock , int * buf_len TSRMLS_DC )
172
176
{
173
177
char inbuf [1024 ];
174
178
char * resp = NULL ;
@@ -474,7 +478,7 @@ int redis_cmd_append_int(char **cmd, int cmd_len, int append) {
474
478
return redis_cmd_append_str (cmd , cmd_len , int_buf , int_len );
475
479
}
476
480
477
- PHPAPI void redis_bulk_double_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
481
+ void redis_bulk_double_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
478
482
479
483
char * response ;
480
484
int response_len ;
@@ -498,7 +502,7 @@ PHPAPI void redis_bulk_double_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *
498
502
}
499
503
}
500
504
501
- PHPAPI void redis_type_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
505
+ void redis_type_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
502
506
char * response ;
503
507
int response_len ;
504
508
long l ;
@@ -533,7 +537,7 @@ PHPAPI void redis_type_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_s
533
537
}
534
538
}
535
539
536
- PHPAPI void redis_info_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
540
+ void redis_info_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
537
541
char * response ;
538
542
int response_len ;
539
543
char * pos , * cur ;
@@ -608,7 +612,7 @@ PHPAPI void redis_info_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_s
608
612
}
609
613
}
610
614
611
- PHPAPI void redis_boolean_response_impl (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx , SuccessCallback success_callback ) {
615
+ void redis_boolean_response_impl (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx , SuccessCallback success_callback ) {
612
616
613
617
char * response ;
614
618
int response_len ;
@@ -645,11 +649,11 @@ PHPAPI void redis_boolean_response_impl(INTERNAL_FUNCTION_PARAMETERS, RedisSock
645
649
}
646
650
}
647
651
648
- PHPAPI void redis_boolean_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
652
+ void redis_boolean_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
649
653
redis_boolean_response_impl (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , z_tab , ctx , NULL );
650
654
}
651
655
652
- PHPAPI void redis_long_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
656
+ void redis_long_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
653
657
654
658
char * response ;
655
659
int response_len ;
@@ -692,7 +696,7 @@ PHPAPI void redis_long_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_s
692
696
693
697
694
698
695
- PHPAPI int redis_sock_read_multibulk_reply_zipped_with_flag (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , int flag ) {
699
+ int redis_sock_read_multibulk_reply_zipped_with_flag (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , int flag ) {
696
700
697
701
/*
698
702
int ret = redis_sock_read_multibulk_reply(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock, z_tab TSRMLS_CC);
@@ -745,16 +749,16 @@ PHPAPI int redis_sock_read_multibulk_reply_zipped_with_flag(INTERNAL_FUNCTION_PA
745
749
return 0 ;
746
750
}
747
751
748
- PHPAPI int redis_sock_read_multibulk_reply_zipped (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
752
+ int redis_sock_read_multibulk_reply_zipped (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
749
753
750
754
return redis_sock_read_multibulk_reply_zipped_with_flag (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , z_tab , 1 );
751
755
}
752
756
753
- PHPAPI int redis_sock_read_multibulk_reply_zipped_strings (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
757
+ int redis_sock_read_multibulk_reply_zipped_strings (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
754
758
return redis_sock_read_multibulk_reply_zipped_with_flag (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , z_tab , 0 );
755
759
}
756
760
757
- PHPAPI void redis_1_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
761
+ void redis_1_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
758
762
759
763
char * response ;
760
764
int response_len ;
@@ -786,7 +790,7 @@ PHPAPI void redis_1_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock
786
790
}
787
791
}
788
792
789
- PHPAPI void redis_string_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
793
+ void redis_string_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
790
794
791
795
char * response ;
792
796
int response_len ;
@@ -816,7 +820,7 @@ PHPAPI void redis_string_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis
816
820
}
817
821
818
822
/* like string response, but never unserialized. */
819
- PHPAPI void redis_ping_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
823
+ void redis_ping_response (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx ) {
820
824
821
825
char * response ;
822
826
int response_len ;
@@ -839,7 +843,7 @@ PHPAPI void redis_ping_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_s
839
843
/**
840
844
* redis_sock_create
841
845
*/
842
- PHPAPI RedisSock * redis_sock_create (char * host , int host_len , unsigned short port ,
846
+ RedisSock * redis_sock_create (char * host , int host_len , unsigned short port ,
843
847
double timeout , int persistent , char * persistent_id )
844
848
{
845
849
RedisSock * redis_sock ;
@@ -884,7 +888,7 @@ PHPAPI RedisSock* redis_sock_create(char *host, int host_len, unsigned short por
884
888
/**
885
889
* redis_sock_connect
886
890
*/
887
- PHPAPI int redis_sock_connect (RedisSock * redis_sock TSRMLS_DC )
891
+ int redis_sock_connect (RedisSock * redis_sock TSRMLS_DC )
888
892
{
889
893
struct timeval tv , read_tv , * tv_ptr = NULL ;
890
894
char * host = NULL , * persistent_id = NULL , * errstr = NULL ;
@@ -960,7 +964,7 @@ PHPAPI int redis_sock_connect(RedisSock *redis_sock TSRMLS_DC)
960
964
/**
961
965
* redis_sock_server_open
962
966
*/
963
- PHPAPI int redis_sock_server_open (RedisSock * redis_sock , int force_connect TSRMLS_DC )
967
+ int redis_sock_server_open (RedisSock * redis_sock , int force_connect TSRMLS_DC )
964
968
{
965
969
int res = -1 ;
966
970
@@ -987,7 +991,7 @@ PHPAPI int redis_sock_server_open(RedisSock *redis_sock, int force_connect TSRML
987
991
/**
988
992
* redis_sock_disconnect
989
993
*/
990
- PHPAPI int redis_sock_disconnect (RedisSock * redis_sock TSRMLS_DC )
994
+ int redis_sock_disconnect (RedisSock * redis_sock TSRMLS_DC )
991
995
{
992
996
if (redis_sock == NULL ) {
993
997
return 1 ;
@@ -1012,7 +1016,7 @@ PHPAPI int redis_sock_disconnect(RedisSock *redis_sock TSRMLS_DC)
1012
1016
return 0 ;
1013
1017
}
1014
1018
1015
- PHPAPI void redis_send_discard (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock )
1019
+ void redis_send_discard (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock )
1016
1020
{
1017
1021
char * cmd ;
1018
1022
int response_len , cmd_len ;
@@ -1039,7 +1043,7 @@ PHPAPI void redis_send_discard(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_so
1039
1043
/**
1040
1044
* redis_sock_set_err
1041
1045
*/
1042
- PHPAPI int redis_sock_set_err (RedisSock * redis_sock , const char * msg , int msg_len ) {
1046
+ int redis_sock_set_err (RedisSock * redis_sock , const char * msg , int msg_len ) {
1043
1047
// Allocate/Reallocate our last error member
1044
1048
if (msg != NULL && msg_len > 0 ) {
1045
1049
if (redis_sock -> err == NULL ) {
@@ -1070,7 +1074,7 @@ PHPAPI int redis_sock_set_err(RedisSock *redis_sock, const char *msg, int msg_le
1070
1074
/**
1071
1075
* redis_sock_read_multibulk_reply
1072
1076
*/
1073
- PHPAPI int redis_sock_read_multibulk_reply (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx )
1077
+ int redis_sock_read_multibulk_reply (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx )
1074
1078
{
1075
1079
char inbuf [1024 ];
1076
1080
int numElems ;
@@ -1117,7 +1121,7 @@ PHPAPI int redis_sock_read_multibulk_reply(INTERNAL_FUNCTION_PARAMETERS, RedisSo
1117
1121
/**
1118
1122
* Like multibulk reply, but don't touch the values, they won't be compressed. (this is used by HKEYS).
1119
1123
*/
1120
- PHPAPI int redis_sock_read_multibulk_reply_raw (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx )
1124
+ int redis_sock_read_multibulk_reply_raw (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx )
1121
1125
{
1122
1126
char inbuf [1024 ];
1123
1127
int numElems ;
@@ -1161,7 +1165,7 @@ PHPAPI int redis_sock_read_multibulk_reply_raw(INTERNAL_FUNCTION_PARAMETERS, Red
1161
1165
return 0 ;
1162
1166
}
1163
1167
1164
- PHPAPI int
1168
+ int
1165
1169
redis_sock_read_multibulk_reply_loop (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock ,
1166
1170
zval * z_tab , int numElems , int unwrap_key , int unserialize_even_only )
1167
1171
{
@@ -1193,7 +1197,7 @@ redis_sock_read_multibulk_reply_loop(INTERNAL_FUNCTION_PARAMETERS, RedisSock *re
1193
1197
/**
1194
1198
* redis_sock_read_multibulk_reply_assoc
1195
1199
*/
1196
- PHPAPI int redis_sock_read_multibulk_reply_assoc (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx )
1200
+ int redis_sock_read_multibulk_reply_assoc (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab , void * ctx )
1197
1201
{
1198
1202
char inbuf [1024 ], * response ;
1199
1203
int response_len ;
@@ -1260,7 +1264,7 @@ PHPAPI int redis_sock_read_multibulk_reply_assoc(INTERNAL_FUNCTION_PARAMETERS, R
1260
1264
/**
1261
1265
* redis_sock_write
1262
1266
*/
1263
- PHPAPI int redis_sock_write (RedisSock * redis_sock , char * cmd , size_t sz TSRMLS_DC )
1267
+ int redis_sock_write (RedisSock * redis_sock , char * cmd , size_t sz TSRMLS_DC )
1264
1268
{
1265
1269
if (redis_sock && redis_sock -> status == REDIS_SOCK_STATUS_DISCONNECTED ) {
1266
1270
zend_throw_exception (redis_exception_ce , "Connection closed" , 0 TSRMLS_CC );
@@ -1275,7 +1279,7 @@ PHPAPI int redis_sock_write(RedisSock *redis_sock, char *cmd, size_t sz TSRMLS_D
1275
1279
/**
1276
1280
* redis_free_socket
1277
1281
*/
1278
- PHPAPI void redis_free_socket (RedisSock * redis_sock )
1282
+ void redis_free_socket (RedisSock * redis_sock )
1279
1283
{
1280
1284
if (redis_sock -> prefix ) {
1281
1285
efree (redis_sock -> prefix );
@@ -1293,7 +1297,7 @@ PHPAPI void redis_free_socket(RedisSock *redis_sock)
1293
1297
efree (redis_sock );
1294
1298
}
1295
1299
1296
- PHPAPI int
1300
+ int
1297
1301
redis_serialize (RedisSock * redis_sock , zval * z , char * * val , int * val_len TSRMLS_DC ) {
1298
1302
#if ZEND_MODULE_API_NO >= 20100000
1299
1303
php_serialize_data_t ht ;
@@ -1369,7 +1373,7 @@ redis_serialize(RedisSock *redis_sock, zval *z, char **val, int *val_len TSRMLS_
1369
1373
return 0 ;
1370
1374
}
1371
1375
1372
- PHPAPI int
1376
+ int
1373
1377
redis_unserialize (RedisSock * redis_sock , const char * val , int val_len , zval * * return_value TSRMLS_DC ) {
1374
1378
1375
1379
php_unserialize_data_t var_hash ;
@@ -1420,11 +1424,11 @@ redis_unserialize(RedisSock *redis_sock, const char *val, int val_len, zval **re
1420
1424
return 0 ;
1421
1425
}
1422
1426
1423
- PHPAPI int
1427
+ int
1424
1428
redis_key_prefix (RedisSock * redis_sock , char * * key , int * key_len TSRMLS_DC ) {
1425
1429
int ret_len ;
1426
1430
char * ret ;
1427
-
1431
+
1428
1432
if (redis_sock -> prefix == NULL || redis_sock -> prefix_len == 0 ) {
1429
1433
return 0 ;
1430
1434
}
@@ -1443,7 +1447,7 @@ redis_key_prefix(RedisSock *redis_sock, char **key, int *key_len TSRMLS_DC) {
1443
1447
* Processing for variant reply types (think EVAL)
1444
1448
*/
1445
1449
1446
- PHPAPI int
1450
+ int
1447
1451
redis_sock_gets (RedisSock * redis_sock , char * buf , int buf_size , size_t * line_size TSRMLS_DC ) {
1448
1452
// Handle EOF
1449
1453
if (-1 == redis_check_eof (redis_sock TSRMLS_CC )) {
@@ -1471,7 +1475,7 @@ redis_sock_gets(RedisSock *redis_sock, char *buf, int buf_size, size_t *line_siz
1471
1475
return 0 ;
1472
1476
}
1473
1477
1474
- PHPAPI int
1478
+ int
1475
1479
redis_read_reply_type (RedisSock * redis_sock , REDIS_REPLY_TYPE * reply_type , int * reply_info TSRMLS_DC ) {
1476
1480
// Make sure we haven't lost the connection, even trying to reconnect
1477
1481
if (-1 == redis_check_eof (redis_sock TSRMLS_CC )) {
@@ -1505,7 +1509,7 @@ redis_read_reply_type(RedisSock *redis_sock, REDIS_REPLY_TYPE *reply_type, int *
1505
1509
/*
1506
1510
* Read a single line response, having already consumed the reply-type byte
1507
1511
*/
1508
- PHPAPI int
1512
+ int
1509
1513
redis_read_variant_line (RedisSock * redis_sock , REDIS_REPLY_TYPE reply_type , zval * * z_ret TSRMLS_DC ) {
1510
1514
// Buffer to read our single line reply
1511
1515
char inbuf [1024 ];
@@ -1535,7 +1539,7 @@ redis_read_variant_line(RedisSock *redis_sock, REDIS_REPLY_TYPE reply_type, zval
1535
1539
return 0 ;
1536
1540
}
1537
1541
1538
- PHPAPI int
1542
+ int
1539
1543
redis_read_variant_bulk (RedisSock * redis_sock , int size , zval * * z_ret TSRMLS_DC ) {
1540
1544
// Attempt to read the bulk reply
1541
1545
char * bulk_resp = redis_sock_read_bulk_reply (redis_sock , size TSRMLS_CC );
@@ -1550,7 +1554,7 @@ redis_read_variant_bulk(RedisSock *redis_sock, int size, zval **z_ret TSRMLS_DC)
1550
1554
}
1551
1555
}
1552
1556
1553
- PHPAPI int
1557
+ int
1554
1558
redis_read_multibulk_recursive (RedisSock * redis_sock , int elements , zval * * z_ret TSRMLS_DC ) {
1555
1559
int reply_info ;
1556
1560
REDIS_REPLY_TYPE reply_type ;
@@ -1598,7 +1602,7 @@ redis_read_multibulk_recursive(RedisSock *redis_sock, int elements, zval **z_ret
1598
1602
return 0 ;
1599
1603
}
1600
1604
1601
- PHPAPI int
1605
+ int
1602
1606
redis_read_variant_reply (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock , zval * z_tab ) {
1603
1607
// Reply type, and reply size vars
1604
1608
REDIS_REPLY_TYPE reply_type ;
0 commit comments