From: antirez <antirez@gmail.com>
Date: Tue, 13 Mar 2012 12:05:08 +0000 (+0100)
Subject: Client creation time in redisClient structure. New age field in CLIENT LIST output.
X-Git-Url: https://git.saurik.com/redis.git/commitdiff_plain/e74dca73d9818b42e7ee34c0a686133813e8d3a3

Client creation time in redisClient structure. New age field in CLIENT LIST output.
---

diff --git a/src/networking.c b/src/networking.c
index 14c5dcce..b0f45054 100644
--- a/src/networking.c
+++ b/src/networking.c
@@ -51,7 +51,7 @@ redisClient *createClient(int fd) {
     c->bulklen = -1;
     c->sentlen = 0;
     c->flags = 0;
-    c->lastinteraction = time(NULL);
+    c->ctime = c->lastinteraction = time(NULL);
     c->authenticated = 0;
     c->replstate = REDIS_REPL_NONE;
     c->reply = listCreate();
@@ -1111,8 +1111,9 @@ sds getClientInfoString(redisClient *client) {
     if (emask & AE_WRITABLE) *p++ = 'w';
     *p = '\0';
     return sdscatprintf(sdsempty(),
-        "addr=%s:%d fd=%d idle=%ld flags=%s db=%d sub=%d psub=%d qbuf=%lu obl=%lu oll=%lu omem=%lu events=%s cmd=%s",
+        "addr=%s:%d fd=%d age=%ld idle=%ld flags=%s db=%d sub=%d psub=%d qbuf=%lu obl=%lu oll=%lu omem=%lu events=%s cmd=%s",
         ip,port,client->fd,
+        (long)(now - client->ctime),
         (long)(now - client->lastinteraction),
         flags,
         client->db->id,
diff --git a/src/redis.h b/src/redis.h
index 6ead029d..1d1f572b 100644
--- a/src/redis.h
+++ b/src/redis.h
@@ -332,6 +332,7 @@ typedef struct redisClient {
     list *reply;
     unsigned long reply_bytes; /* Tot bytes of objects in reply list */
     int sentlen;
+    time_t ctime;           /* Client creation time */
     time_t lastinteraction; /* time of the last interaction, used for timeout */
     time_t obuf_soft_limit_reached_time;
     int flags;              /* REDIS_SLAVE | REDIS_MONITOR | REDIS_MULTI ... */