size_t kvlen = strlen(key) + 2 + 1 +
(value == NULL ? 3 : strlen(value)) + 2;
- if (value == NULL) {
- /* do not try to process NIL value */
- client_id_str = FALSE;
- } else if (client->common.trusted && !client->id_logged) {
- client_id_str = !client_update_info(client, key, value);
- i_assert(client_id_str == !client_id_reserved_word(key));
+ if (client->common.trusted && !client->id_logged) {
+ if (value == NULL) {
+ /* do not try to process NIL values as client-info,
+ but store them for non-reserved keys */
+ client_id_str = !client_id_reserved_word(key);
+ } else {
+ client_id_str = !client_update_info(client, key, value);
+ i_assert(client_id_str == !client_id_reserved_word(key));
+ }
} else {
client_id_str = !client_id_reserved_word(key);
}