diff --git a/src/t_string.c b/src/t_string.c index b619cbc7cf79183986f2cfda32fee77001b02f9c..cbd069d3c9d880f1e0329287b6b7a7990b1f6fc5 100644 --- a/src/t_string.c +++ b/src/t_string.c @@ -101,15 +101,19 @@ void setCommand(redisClient *c) { char *a = c->argv[j]->ptr; robj *next = (j == c->argc-1) ? NULL : c->argv[j+1]; - if (a[0] == 'n' && a[1] == 'x' && a[2] == '\0') { + if ((a[0] == 'n' || a[0] == 'N') && + (a[1] == 'x' || a[1] == 'X') && a[2] == '\0') { flags |= REDIS_SET_NX; - } else if (a[0] == 'x' && a[1] == 'x' && a[2] == '\0') { + } else if ((a[0] == 'x' || a[0] == 'X') && + (a[1] == 'x' || a[1] == 'X') && a[2] == '\0') { flags |= REDIS_SET_XX; - } else if (a[0] == 'e' && a[1] == 'x' && a[2] == '\0' && next) { + } else if ((a[0] == 'e' || a[0] == 'E') && + (a[1] == 'x' || a[1] == 'X') && a[2] == '\0' && next) { unit = UNIT_SECONDS; expire = next; j++; - } else if (a[0] == 'p' && a[1] == 'x' && a[2] == '\0' && next) { + } else if ((a[0] == 'p' || a[0] == 'P') && + (a[1] == 'x' || a[1] == 'X') && a[2] == '\0' && next) { unit = UNIT_MILLISECONDS; expire = next; j++;