fix CLIENT SETINFO to use error replies instead of status replies (#11952)

This commit is contained in:
Oran Agra 2023-03-22 14:32:36 +02:00 committed by GitHub
parent 9c4c90c1bf
commit d38df59a3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 5 deletions

View File

@ -2909,12 +2909,12 @@ void clientSetinfoCommand(client *c) {
} else if (!strcasecmp(attr,"lib-ver")) {
destvar = &c->lib_ver;
} else {
addReplyStatusFormat(c,"Unrecognized option '%s'", attr);
addReplyErrorFormat(c,"Unrecognized option '%s'", attr);
return;
}
if (validateClientAttr(val)==C_ERR) {
addReplyStatusFormat(c,
addReplyErrorFormat(c,
"%s cannot contain spaces, newlines or special characters.", attr);
return;
}

View File

@ -333,9 +333,9 @@ start_server {tags {"introspection"}} {
test {CLIENT SETINFO invalid args} {
assert_error {*wrong number of arguments*} {r CLIENT SETINFO lib-name}
assert_match {*cannot contain spaces*} [r CLIENT SETINFO lib-name "redis py"]
assert_match {*newlines*} [r CLIENT SETINFO lib-name "redis.py\n"]
assert_match {*Unrecognized*} [r CLIENT SETINFO badger hamster]
assert_error {*cannot contain spaces*} {r CLIENT SETINFO lib-name "redis py"}
assert_error {*newlines*} {r CLIENT SETINFO lib-name "redis.py\n"}
assert_error {*Unrecognized*} {r CLIENT SETINFO badger hamster}
# test that all of these didn't affect the previously set values
r client info
} {*lib-name=redis.py lib-ver=1.2.3*}