"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)
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.
RFC 2971 tells us that ...
... and that ...
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)