summaryrefslogtreecommitdiff
path: root/src/networking.c
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2019-06-29 20:08:41 -0400
committerantirez <antirez@gmail.com>2019-06-29 20:08:41 -0400
commit45d64f229eaa0fa17e56bf0589da78d81065344c (patch)
treee6acd28984763701ae8b40de3cf94aa7af217b3c /src/networking.c
parenta28d7918d7ba229666670f29f8202cc67f4f3a1a (diff)
downloadredis-45d64f229eaa0fa17e56bf0589da78d81065344c.tar.gz
Client side caching: fields and flags for tracking mode.
Diffstat (limited to 'src/networking.c')
-rw-r--r--src/networking.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/networking.c b/src/networking.c
index 4bc22120a..44979770c 100644
--- a/src/networking.c
+++ b/src/networking.c
@@ -158,6 +158,7 @@ client *createClient(int fd) {
c->pubsub_patterns = listCreate();
c->peerid = NULL;
c->client_list_node = NULL;
+ c->client_tracking_redirection = 0;
listSetFreeMethod(c->pubsub_patterns,decrRefCountVoid);
listSetMatchMethod(c->pubsub_patterns,listMatchObjects);
if (fd != -1) linkClient(c);
@@ -966,6 +967,9 @@ void unlinkClient(client *c) {
listDelNode(server.unblocked_clients,ln);
c->flags &= ~CLIENT_UNBLOCKED;
}
+
+ /* Clear the tracking status. */
+ if (c->flags & CLIENT_TRACKING) disableTracking(c);
}
void freeClient(client *c) {
@@ -1849,6 +1853,7 @@ sds catClientInfoString(sds s, client *client) {
if (client->flags & CLIENT_PUBSUB) *p++ = 'P';
if (client->flags & CLIENT_MULTI) *p++ = 'x';
if (client->flags & CLIENT_BLOCKED) *p++ = 'b';
+ if (client->flags & CLIENT_TRACKING) *p++ = 't';
if (client->flags & CLIENT_DIRTY_CAS) *p++ = 'd';
if (client->flags & CLIENT_CLOSE_AFTER_REPLY) *p++ = 'c';
if (client->flags & CLIENT_UNBLOCKED) *p++ = 'u';