question: Validation of list in ID command
- Dominant language
- Rust
- Stars
- 52
- Forks
- 25
- Avg merge
- 21h 53m
- Merged PRs (30d)
- 2
Description
RFC 2971 tells us that ...
* "Strings are not case-sensitive."
* "Implementations MUST NOT send the same field name more than once."
... and that ...
* "Field strings MUST NOT be longer than 30 octets."
* "Value strings MUST NOT be longer than 1024 octets."
* "Implementations MUST NOT send more than 30 field-value pairs."
I'm not sure what to do with this information, really. Sure, we *could* enforce all of this. But... does that mean we reject longer, dulicate, or too much fields?
I'm leaning towards not doing anything of this until there is a good reason. Resource exhaustion probably needs to be handled more generically, anyway?
If we want to do this, we probably should use a wrapper struct that holds a hash-map.
# Dovecot (out of curiosity)
```imap
A ID ("012345678901234567890123456789" "")
* ID ("name" "Dovecot")
A OK ID completed.
A ID ("012345678901234567890123456789X" "")
A BAD Invalid ID parameters
A ID ("name" "A" "name2" "B")
* ID ("name" "Dovecot")
A OK ID completed.
A ID ("name" "A" "name" "B")
* ID ("name" "Dovecot")
A OK ID completed.
```
Contributor guide
Assessment
This issue has not been assessed yet.