Skip to content

Commit 22ff1dd

Browse files
committed
Use RPL_KEYNOTSET instead of RPL_KEYVALUE with empty trailing
1 parent 7309f6c commit 22ff1dd

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

files/metadata2.c

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -789,8 +789,13 @@ void metadata_set_user(Client *user, const char *key, const char *value, Client
789789
}
790790
}
791791
}
792-
if (!IsServer(client) && MyConnect(client))
793-
sendnumeric(client, RPL_KEYVALUE, target_name, key, "*", value?value:""); /* all OK */
792+
if (!IsServer(client) && MyConnect(client)) {
793+
/* all OK */
794+
if (value)
795+
sendnumeric(client, RPL_KEYVALUE, target_name, key, "*", value);
796+
else
797+
sendnumeric(client, RPL_KEYNOTSET, target_name, key);
798+
}
794799
if (changed && (client == &me || IsUser(client) || IsServer(client)))
795800
user_metadata_changed(target, key, value, client);
796801
}
@@ -860,8 +865,13 @@ void metadata_set_channel(Channel *channel, const char *key, const char *value,
860865
}
861866
}
862867
}
863-
if (IsUser(client) && MyUser(client))
864-
sendnumeric(client, RPL_KEYVALUE, channel->name, key, "*", value?value:""); /* all OK */
868+
if (IsUser(client) && MyUser(client)) {
869+
/* all OK */
870+
if (value)
871+
sendnumeric(client, RPL_KEYVALUE, channel->name, key, "*", value);
872+
else
873+
sendnumeric(client, RPL_KEYNOTSET, channel->name, key);
874+
}
865875
if (changed && (IsUser(client) || IsServer(client)))
866876
channel_metadata_changed(channel, key, value, client);
867877
}
@@ -1169,11 +1179,11 @@ CMD_FUNC(cmd_metadata_local)
11691179
return;
11701180
}
11711181

1172-
if (!unrl_utf8_validate(value, NULL)) {
1182+
if (value && !unrl_utf8_validate(value, NULL)) {
11731183
sendto_one(client, NULL, STR_FAIL_VALUE_INVALID_UTF8, me.name);
11741184
return;
11751185
}
1176-
if (strlen(value) > MAX_VALUE_BYTES) {
1186+
if (value && strlen(value) > MAX_VALUE_BYTES) {
11771187
sendto_one(client, NULL, STR_FAIL_VALUE_INVALID_SIZE, me.name);
11781188
return;
11791189
}

0 commit comments

Comments
 (0)