Skip to content

Commit 22ecea0

Browse files
committed
win32 build fixes
1 parent 7c52f3a commit 22ecea0

File tree

9 files changed

+235
-224
lines changed

9 files changed

+235
-224
lines changed

CREDITS

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Redis client extension for PHP
2-
Alfonso Jimenez <yo@alfonsojimenez.com>
3-
Nasreddine Bouafif <n.bouafif@owlient.eu>
4-
Nicolas Favre-Felix <n.favre-felix@owlient.eu>
2+
Alfonso Jimenez (yo@alfonsojimenez.com)
3+
Nasreddine Bouafif (n.bouafif@owlient.eu)
4+
Nicolas Favre-Felix (n.favre-felix@owlient.eu)

config.w32

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,21 @@
22

33
ARG_ENABLE("redis", "whether to enable redis support", "yes");
44
ARG_ENABLE("redis-session", "whether to enable sessions", "yes");
5+
ARG_ENABLE("redis-igbinary", "whether to enable igbinary serializer support", "no");
56

67
if (PHP_REDIS != "no") {
7-
var sources = "redis.c library.c igbinary\\igbinary.c igbinary\\hash_si.c igbinary\\hash_function.c";
8+
var sources = "redis.c library.c redis_array.c redis_array_impl.c";
9+
810
if (PHP_REDIS_SESSION != "no") {
911
AC_DEFINE('PHP_SESSION', 1);
1012
sources += " redis_session.c";
1113
}
12-
13-
AC_DEFINE("PHP_EXPORTS", 1);
14+
15+
if (PHP_REDIS_IGBINARY != "no") {
16+
CHECK_HEADER_ADD_INCLUDE("igbinary.h", "CFLAGS_REDIS", "ext\\igbinary");
17+
AC_DEFINE('HAVE_REDIS_IGBINARY', 1);
18+
ADD_EXTENSION_DEP('redis', 'igbinary');
19+
}
20+
1421
EXTENSION("redis", sources);
1522
}

library.c

Lines changed: 44 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,26 @@
1818
#include "library.h"
1919
#include <ext/standard/php_math.h>
2020

21+
#ifdef _MSC_VER
22+
#define atoll _atoi64
23+
#endif
24+
2125
#define UNSERIALIZE_ONLY_VALUES 0
2226
#define UNSERIALIZE_ALL 1
2327

2428
extern zend_class_entry *redis_ce;
2529
extern zend_class_entry *redis_exception_ce;
2630
extern zend_class_entry *spl_ce_RuntimeException;
2731

28-
PHPAPI void redis_stream_close(RedisSock *redis_sock TSRMLS_DC) {
32+
void redis_stream_close(RedisSock *redis_sock TSRMLS_DC) {
2933
if (!redis_sock->persistent) {
3034
php_stream_close(redis_sock->stream);
3135
} else {
3236
php_stream_pclose(redis_sock->stream);
3337
}
3438
}
3539

36-
PHPAPI int redis_check_eof(RedisSock *redis_sock TSRMLS_DC)
40+
int redis_check_eof(RedisSock *redis_sock TSRMLS_DC)
3741
{
3842
int eof;
3943
int count = 0;
@@ -93,7 +97,7 @@ PHPAPI int redis_check_eof(RedisSock *redis_sock TSRMLS_DC)
9397
return 0;
9498
}
9599

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) {
97101
char inbuf[1024];
98102
int numElems;
99103
zval *z_tab;
@@ -128,7 +132,7 @@ PHPAPI zval *redis_sock_read_multibulk_reply_zval(INTERNAL_FUNCTION_PARAMETERS,
128132
/**
129133
* redis_sock_read_bulk_reply
130134
*/
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)
132136
{
133137
int offset = 0;
134138
size_t got;
@@ -144,7 +148,7 @@ PHPAPI char *redis_sock_read_bulk_reply(RedisSock *redis_sock, int bytes TSRMLS_
144148
} else {
145149
char c;
146150
int i;
147-
151+
148152
reply = emalloc(bytes+1);
149153

150154
while(offset < bytes) {
@@ -168,7 +172,7 @@ PHPAPI char *redis_sock_read_bulk_reply(RedisSock *redis_sock, int bytes TSRMLS_
168172
/**
169173
* redis_sock_read
170174
*/
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)
172176
{
173177
char inbuf[1024];
174178
char *resp = NULL;
@@ -474,7 +478,7 @@ int redis_cmd_append_int(char **cmd, int cmd_len, int append) {
474478
return redis_cmd_append_str(cmd, cmd_len, int_buf, int_len);
475479
}
476480

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) {
478482

479483
char *response;
480484
int response_len;
@@ -498,7 +502,7 @@ PHPAPI void redis_bulk_double_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *
498502
}
499503
}
500504

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) {
502506
char *response;
503507
int response_len;
504508
long l;
@@ -533,7 +537,7 @@ PHPAPI void redis_type_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_s
533537
}
534538
}
535539

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) {
537541
char *response;
538542
int response_len;
539543
char *pos, *cur;
@@ -608,7 +612,7 @@ PHPAPI void redis_info_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_s
608612
}
609613
}
610614

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) {
612616

613617
char *response;
614618
int response_len;
@@ -645,11 +649,11 @@ PHPAPI void redis_boolean_response_impl(INTERNAL_FUNCTION_PARAMETERS, RedisSock
645649
}
646650
}
647651

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) {
649653
redis_boolean_response_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock, z_tab, ctx, NULL);
650654
}
651655

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) {
653657

654658
char *response;
655659
int response_len;
@@ -692,7 +696,7 @@ PHPAPI void redis_long_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_s
692696

693697

694698

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) {
696700

697701
/*
698702
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
745749
return 0;
746750
}
747751

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) {
749753

750754
return redis_sock_read_multibulk_reply_zipped_with_flag(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock, z_tab, 1);
751755
}
752756

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) {
754758
return redis_sock_read_multibulk_reply_zipped_with_flag(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock, z_tab, 0);
755759
}
756760

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) {
758762

759763
char *response;
760764
int response_len;
@@ -786,7 +790,7 @@ PHPAPI void redis_1_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock
786790
}
787791
}
788792

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) {
790794

791795
char *response;
792796
int response_len;
@@ -816,7 +820,7 @@ PHPAPI void redis_string_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis
816820
}
817821

818822
/* 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) {
820824

821825
char *response;
822826
int response_len;
@@ -839,7 +843,7 @@ PHPAPI void redis_ping_response(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_s
839843
/**
840844
* redis_sock_create
841845
*/
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,
843847
double timeout, int persistent, char *persistent_id)
844848
{
845849
RedisSock *redis_sock;
@@ -884,7 +888,7 @@ PHPAPI RedisSock* redis_sock_create(char *host, int host_len, unsigned short por
884888
/**
885889
* redis_sock_connect
886890
*/
887-
PHPAPI int redis_sock_connect(RedisSock *redis_sock TSRMLS_DC)
891+
int redis_sock_connect(RedisSock *redis_sock TSRMLS_DC)
888892
{
889893
struct timeval tv, read_tv, *tv_ptr = NULL;
890894
char *host = NULL, *persistent_id = NULL, *errstr = NULL;
@@ -960,7 +964,7 @@ PHPAPI int redis_sock_connect(RedisSock *redis_sock TSRMLS_DC)
960964
/**
961965
* redis_sock_server_open
962966
*/
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)
964968
{
965969
int res = -1;
966970

@@ -987,7 +991,7 @@ PHPAPI int redis_sock_server_open(RedisSock *redis_sock, int force_connect TSRML
987991
/**
988992
* redis_sock_disconnect
989993
*/
990-
PHPAPI int redis_sock_disconnect(RedisSock *redis_sock TSRMLS_DC)
994+
int redis_sock_disconnect(RedisSock *redis_sock TSRMLS_DC)
991995
{
992996
if (redis_sock == NULL) {
993997
return 1;
@@ -1012,7 +1016,7 @@ PHPAPI int redis_sock_disconnect(RedisSock *redis_sock TSRMLS_DC)
10121016
return 0;
10131017
}
10141018

1015-
PHPAPI void redis_send_discard(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock)
1019+
void redis_send_discard(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock)
10161020
{
10171021
char *cmd;
10181022
int response_len, cmd_len;
@@ -1039,7 +1043,7 @@ PHPAPI void redis_send_discard(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_so
10391043
/**
10401044
* redis_sock_set_err
10411045
*/
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) {
10431047
// Allocate/Reallocate our last error member
10441048
if(msg != NULL && msg_len > 0) {
10451049
if(redis_sock->err == NULL) {
@@ -1070,7 +1074,7 @@ PHPAPI int redis_sock_set_err(RedisSock *redis_sock, const char *msg, int msg_le
10701074
/**
10711075
* redis_sock_read_multibulk_reply
10721076
*/
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)
10741078
{
10751079
char inbuf[1024];
10761080
int numElems;
@@ -1117,7 +1121,7 @@ PHPAPI int redis_sock_read_multibulk_reply(INTERNAL_FUNCTION_PARAMETERS, RedisSo
11171121
/**
11181122
* Like multibulk reply, but don't touch the values, they won't be compressed. (this is used by HKEYS).
11191123
*/
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)
11211125
{
11221126
char inbuf[1024];
11231127
int numElems;
@@ -1161,7 +1165,7 @@ PHPAPI int redis_sock_read_multibulk_reply_raw(INTERNAL_FUNCTION_PARAMETERS, Red
11611165
return 0;
11621166
}
11631167

1164-
PHPAPI int
1168+
int
11651169
redis_sock_read_multibulk_reply_loop(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
11661170
zval *z_tab, int numElems, int unwrap_key, int unserialize_even_only)
11671171
{
@@ -1193,7 +1197,7 @@ redis_sock_read_multibulk_reply_loop(INTERNAL_FUNCTION_PARAMETERS, RedisSock *re
11931197
/**
11941198
* redis_sock_read_multibulk_reply_assoc
11951199
*/
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)
11971201
{
11981202
char inbuf[1024], *response;
11991203
int response_len;
@@ -1260,7 +1264,7 @@ PHPAPI int redis_sock_read_multibulk_reply_assoc(INTERNAL_FUNCTION_PARAMETERS, R
12601264
/**
12611265
* redis_sock_write
12621266
*/
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)
12641268
{
12651269
if(redis_sock && redis_sock->status == REDIS_SOCK_STATUS_DISCONNECTED) {
12661270
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
12751279
/**
12761280
* redis_free_socket
12771281
*/
1278-
PHPAPI void redis_free_socket(RedisSock *redis_sock)
1282+
void redis_free_socket(RedisSock *redis_sock)
12791283
{
12801284
if(redis_sock->prefix) {
12811285
efree(redis_sock->prefix);
@@ -1293,7 +1297,7 @@ PHPAPI void redis_free_socket(RedisSock *redis_sock)
12931297
efree(redis_sock);
12941298
}
12951299

1296-
PHPAPI int
1300+
int
12971301
redis_serialize(RedisSock *redis_sock, zval *z, char **val, int *val_len TSRMLS_DC) {
12981302
#if ZEND_MODULE_API_NO >= 20100000
12991303
php_serialize_data_t ht;
@@ -1369,7 +1373,7 @@ redis_serialize(RedisSock *redis_sock, zval *z, char **val, int *val_len TSRMLS_
13691373
return 0;
13701374
}
13711375

1372-
PHPAPI int
1376+
int
13731377
redis_unserialize(RedisSock *redis_sock, const char *val, int val_len, zval **return_value TSRMLS_DC) {
13741378

13751379
php_unserialize_data_t var_hash;
@@ -1420,11 +1424,11 @@ redis_unserialize(RedisSock *redis_sock, const char *val, int val_len, zval **re
14201424
return 0;
14211425
}
14221426

1423-
PHPAPI int
1427+
int
14241428
redis_key_prefix(RedisSock *redis_sock, char **key, int *key_len TSRMLS_DC) {
14251429
int ret_len;
14261430
char *ret;
1427-
1431+
14281432
if(redis_sock->prefix == NULL || redis_sock->prefix_len == 0) {
14291433
return 0;
14301434
}
@@ -1443,7 +1447,7 @@ redis_key_prefix(RedisSock *redis_sock, char **key, int *key_len TSRMLS_DC) {
14431447
* Processing for variant reply types (think EVAL)
14441448
*/
14451449

1446-
PHPAPI int
1450+
int
14471451
redis_sock_gets(RedisSock *redis_sock, char *buf, int buf_size, size_t *line_size TSRMLS_DC) {
14481452
// Handle EOF
14491453
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
14711475
return 0;
14721476
}
14731477

1474-
PHPAPI int
1478+
int
14751479
redis_read_reply_type(RedisSock *redis_sock, REDIS_REPLY_TYPE *reply_type, int *reply_info TSRMLS_DC) {
14761480
// Make sure we haven't lost the connection, even trying to reconnect
14771481
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 *
15051509
/*
15061510
* Read a single line response, having already consumed the reply-type byte
15071511
*/
1508-
PHPAPI int
1512+
int
15091513
redis_read_variant_line(RedisSock *redis_sock, REDIS_REPLY_TYPE reply_type, zval **z_ret TSRMLS_DC) {
15101514
// Buffer to read our single line reply
15111515
char inbuf[1024];
@@ -1535,7 +1539,7 @@ redis_read_variant_line(RedisSock *redis_sock, REDIS_REPLY_TYPE reply_type, zval
15351539
return 0;
15361540
}
15371541

1538-
PHPAPI int
1542+
int
15391543
redis_read_variant_bulk(RedisSock *redis_sock, int size, zval **z_ret TSRMLS_DC) {
15401544
// Attempt to read the bulk reply
15411545
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)
15501554
}
15511555
}
15521556

1553-
PHPAPI int
1557+
int
15541558
redis_read_multibulk_recursive(RedisSock *redis_sock, int elements, zval **z_ret TSRMLS_DC) {
15551559
int reply_info;
15561560
REDIS_REPLY_TYPE reply_type;
@@ -1598,7 +1602,7 @@ redis_read_multibulk_recursive(RedisSock *redis_sock, int elements, zval **z_ret
15981602
return 0;
15991603
}
16001604

1601-
PHPAPI int
1605+
int
16021606
redis_read_variant_reply(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, zval *z_tab) {
16031607
// Reply type, and reply size vars
16041608
REDIS_REPLY_TYPE reply_type;

0 commit comments

Comments
 (0)