@@ -789,8 +789,13 @@ void metadata_set_user(Client *user, const char *key, const char *value, Client
789
789
}
790
790
}
791
791
}
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
+ }
794
799
if (changed && (client == & me || IsUser (client ) || IsServer (client )))
795
800
user_metadata_changed (target , key , value , client );
796
801
}
@@ -860,8 +865,13 @@ void metadata_set_channel(Channel *channel, const char *key, const char *value,
860
865
}
861
866
}
862
867
}
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
+ }
865
875
if (changed && (IsUser (client ) || IsServer (client )))
866
876
channel_metadata_changed (channel , key , value , client );
867
877
}
@@ -1169,11 +1179,11 @@ CMD_FUNC(cmd_metadata_local)
1169
1179
return ;
1170
1180
}
1171
1181
1172
- if (!unrl_utf8_validate (value , NULL )) {
1182
+ if (value && !unrl_utf8_validate (value , NULL )) {
1173
1183
sendto_one (client , NULL , STR_FAIL_VALUE_INVALID_UTF8 , me .name );
1174
1184
return ;
1175
1185
}
1176
- if (strlen (value ) > MAX_VALUE_BYTES ) {
1186
+ if (value && strlen (value ) > MAX_VALUE_BYTES ) {
1177
1187
sendto_one (client , NULL , STR_FAIL_VALUE_INVALID_SIZE , me .name );
1178
1188
return ;
1179
1189
}
0 commit comments