roster: Make an empty name be None instead.

Emmanuel Gil Peyrot created

RFC 6121 §2.4.1:
“Implementation Note: Including an empty 'name' attribute is equivalent
to including no 'name' attribute; both actions set the name to the
empty string.”

Change summary

src/roster.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Detailed changes

src/roster.rs 🔗

@@ -70,7 +70,7 @@ impl TryFrom<Element> for Item {
 
         let mut item = Item {
             jid: get_attr!(elem, "jid", required),
-            name: get_attr!(elem, "name", optional),
+            name: get_attr!(elem, "name", optional).and_then(|name| if name == "" { None } else { Some(name) }),
             subscription: get_attr!(elem, "subscription", optional),
             groups: vec!(),
         };