Ver Fonte

Don't fail entire sync for one bad name

Billy Barrow há 2 anos atrás
pai
commit
2eda5556b6
1 ficheiros alterados com 17 adições e 7 exclusões
  1. 17 7
      src/lib/Client.vala

+ 17 - 7
src/lib/Client.vala

@@ -151,15 +151,25 @@ namespace Riddle {
                 var name = parts[0];
                 var data = parts[1];
                 
-                NameInfo info;
-                if(name.has_suffix(".rns")) {
-                    info = new DecentralisedNameInfo.from_string(data);
+                try {
+                    NameInfo info;
+                    if(name.has_suffix(".rns")) {
+                        info = new DecentralisedNameInfo.from_string(data);
+                    }
+                    else {
+                        info = new CertifiedNameInfo.from_string(data);
+                    }
+
+                    if(name != info.name) {
+                        warning(@"Read information for $(name) but information object reported name of $(info.name), skipping");
+                        continue;
+                    }
+
+                    store.save_name(info);
                 }
-                else {
-                    info = new CertifiedNameInfo.from_string(data);
+                catch(Error e) {
+                    warning(@"Did not add name info for name \"$(name)\" due to invalid information");
                 }
-
-                store.save_name(info);
             }
         }