Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 7a4cee2

Browse files
Review changes
See #2106
1 parent 9082801 commit 7a4cee2

2 files changed

Lines changed: 33 additions & 22 deletions

File tree

library.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3274,9 +3274,8 @@ PHP_REDIS_API int
32743274
redis_sock_write(RedisSock *redis_sock, char *cmd, size_t sz)
32753275
{
32763276
if (redis_check_eof(redis_sock, 0, 0) == 0 &&
3277-
php_stream_write(redis_sock->stream, cmd, sz) == sz)
3277+
redis_sock_write_raw(redis_sock, cmd, sz) == sz)
32783278
{
3279-
redis_sock->txBytes += sz;
32803279
return sz;
32813280
}
32823281

redis_cluster.c

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1717,21 +1717,41 @@ PHP_METHOD(RedisCluster, clearlasterror) {
17171717
RETURN_TRUE;
17181718
}
17191719

1720+
static void redisSumNodeBytes(redisClusterNode *node, zend_long *tx, zend_long *rx) {
1721+
struct redisClusterNode *slave;
1722+
1723+
*tx += node->sock->txBytes;
1724+
*rx += node->sock->rxBytes;
1725+
1726+
if (node->slaves) {
1727+
ZEND_HASH_FOREACH_PTR(node->slaves, slave) {
1728+
*tx += slave->sock->txBytes;
1729+
*rx += slave->sock->rxBytes;
1730+
} ZEND_HASH_FOREACH_END();
1731+
}
1732+
}
1733+
1734+
static void redisClearNodeBytes(redisClusterNode *node) {
1735+
struct redisClusterNode *slave;
1736+
1737+
node->sock->txBytes = 0;
1738+
node->sock->rxBytes = 0;
1739+
1740+
if (node->slaves) {
1741+
ZEND_HASH_FOREACH_PTR(node->slaves, slave) {
1742+
slave->sock->txBytes = 0;
1743+
slave->sock->rxBytes = 0;
1744+
} ZEND_HASH_FOREACH_END();
1745+
}
1746+
}
1747+
17201748
PHP_METHOD(RedisCluster, gettransferredbytes) {
17211749
redisCluster *c = GET_CONTEXT();
1722-
redisClusterNode *node, *slave;
17231750
zend_long rx = 0, tx = 0;
1751+
redisClusterNode *node;
17241752

17251753
ZEND_HASH_FOREACH_PTR(c->nodes, node) {
1726-
tx += node->sock->txBytes;
1727-
rx += node->sock->rxBytes;
1728-
1729-
if (node->slaves) {
1730-
ZEND_HASH_FOREACH_PTR(node->slaves, slave) {
1731-
tx += slave->sock->txBytes;
1732-
rx += slave->sock->rxBytes;
1733-
} ZEND_HASH_FOREACH_END();
1734-
}
1754+
redisSumNodeBytes(node, &tx, &rx);
17351755
} ZEND_HASH_FOREACH_END();
17361756

17371757
array_init_size(return_value, 2);
@@ -1742,18 +1762,10 @@ PHP_METHOD(RedisCluster, gettransferredbytes) {
17421762

17431763
PHP_METHOD(RedisCluster, cleartransferredbytes) {
17441764
redisCluster *c = GET_CONTEXT();
1745-
redisClusterNode *node, *slave;
1765+
redisClusterNode *node;
17461766

17471767
ZEND_HASH_FOREACH_PTR(c->nodes, node) {
1748-
node->sock->txBytes = 0;
1749-
node->sock->rxBytes = 0;
1750-
1751-
if (node->slaves) {
1752-
ZEND_HASH_FOREACH_PTR(node->slaves, slave) {
1753-
slave->sock->txBytes = 0;
1754-
slave->sock->rxBytes = 0;
1755-
} ZEND_HASH_FOREACH_END();
1756-
}
1768+
redisClearNodeBytes(node);
17571769
} ZEND_HASH_FOREACH_END();
17581770
}
17591771

0 commit comments

Comments
 (0)