8000 redis_sock_write refactoring · jrtkcoder/phpredis@12a3335 · GitHub
[go: up one dir, main page]

Skip to content

Commit 12a3335

Browse files
committed
redis_sock_write refactoring
Check the number of bytes returned by `php_stream_write`. Use SOCKET_WRITE_COMMAND macro.
1 parent c90649a commit 12a3335

File tree

2 files changed

+11
-23
lines changed

2 files changed

+11
-23
lines changed

library.c

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1680,10 +1680,7 @@ PHP_REDIS_API void redis_send_discard(INTERNAL_FUNCTION_PARAMETERS,
16801680

16811681
cmd_len = redis_cmd_format_static(&cmd, "DISCARD", "");
16821682

1683-
if (redis_sock_write(redis_sock, cmd, cmd_len TSRMLS_CC) < 0) {
1684-
efree(cmd);
1685-
RETURN_FALSE;
1686-
}
1683+
SOCKET_WRITE_COMMAND(redis_sock, cmd, cmd_len)
16871684
efree(cmd);
16881685

16891686
if ((response = redis_sock_read(redis_sock, &response_len TSRMLS_CC))
@@ -1920,18 +1917,18 @@ PHP_REDIS_API int redis_mbulk_reply_assoc(INTERNAL_FUNCTION_PARAMETERS, RedisSoc
19201917
/**
19211918
* redis_sock_write
19221919
*/
1923-
PHP_REDIS_API int redis_sock_write(RedisSock *redis_sock, char *cmd, size_t sz
1924-
TSRMLS_DC)
1920+
PHP_REDIS_API int
1921+
redis_sock_write(RedisSock *redis_sock, char *cmd, size_t sz TSRMLS_DC)
19251922
{
19261923
if (!redis_sock || redis_sock->status == REDIS_SOCK_STATUS_DISCONNECTED) {
19271924
zend_throw_exception(redis_exception_ce, "Connection closed",
19281925
0 TSRMLS_CC);
1929-
return -1;
1926+
} else if (redis_check_eof(redis_sock, 0 TSRMLS_CC) == 0 &&
1927+
php_stream_write(redis_sock->stream, cmd, sz) == sz
1928+
) {
1929+
return sz;
19301930
}
1931-
if(-1 == redis_check_eof(redis_sock, 0 TSRMLS_CC)) {
1932-
return -1;
1933-
}
1934-
return php_stream_write(redis_sock->stream, cmd, sz);
1931+
return -1;
19351932
}
19361933

19371934
/**

redis.c

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2228,10 +2228,7 @@ PHP_METHOD(Redis, multi)
22282228
IF_MULTI() {
22292229
cmd_len = redis_cmd_format_static(&cmd, "MULTI", "");
22302230

2231-
if (redis_sock_write(redis_sock, cmd, cmd_len TSRMLS_CC) < 0) {
2232-
efree(cmd);
2233-
RETURN_FALSE;
2234-
}
2231+
SOCKET_WRITE_COMMAND(redis_sock, cmd, cmd_len)
22352232
efree(cmd);
22362233

22372234
if ((response = redis_sock_read(redis_sock, &response_len TSRMLS_CC))
@@ -2361,10 +2358,7 @@ PHP_METHOD(Redis, exec)
23612358
IF_MULTI() {
23622359
cmd_len = redis_cmd_format_static(&cmd, "EXEC", "");
23632360

2364-
if (redis_sock_write(redis_sock, cmd, cmd_len TSRMLS_CC) < 0) {
2365-
efree(cmd);
2366-
RETURN_FALSE;
2367-
}
2361+
SOCKET_WRITE_COMMAND(redis_sock, cmd, cmd_len)
23682362
efree(cmd);
23692363

23702364
if(redis_sock_read_multibulk_multi_reply(
@@ -2551,10 +2545,7 @@ PHP_REDIS_API void generic_unsubscribe_cmd(INTERNAL_FUNCTION_PARAMETERS,
25512545
cmd_len = spprintf(&cmd, 0, "%s %s\r\n", unsub_cmd, cmd);
25522546
efree(old_cmd);
25532547

2554-
if (redis_sock_write(redis_sock, cmd, cmd_len TSRMLS_CC) < 0) {
2555-
efree(cmd);
2556-
RETURN_FALSE;
2557-
}
2548+
SOCKET_WRITE_COMMAND(redis_sock, cmd, cmd_len)
25582549
efree(cmd);
25592550

25602551
array_init(return_value);

0 commit comments

Comments
 (0)
0