]> arthur.barton.de Git - netatalk.git/commitdiff
Byte swap CNID
authorFrank Lahm <franklahm@googlemail.com>
Tue, 21 Feb 2012 16:27:19 +0000 (17:27 +0100)
committerFrank Lahm <franklahm@googlemail.com>
Tue, 21 Feb 2012 16:27:19 +0000 (17:27 +0100)
libatalk/adouble/ad_flush.c

index c8ff4ef4bdd13b8972a912a77b45e8a893046b40..3d5060d1c25b5d25a2dba1dfad11fb160d229f9e 100644 (file)
@@ -203,6 +203,14 @@ int ad_copy_header(struct adouble *add, struct adouble *ads)
         }
     }
     add->ad_rlen = ads->ad_rlen;
+
+    if ((ads->ad_vers == AD_VERSION2) && (add->ad_vers = AD_VERSION_EA)
+        || (ads->ad_vers == AD_VERSION_EA) && (add->ad_vers = AD_VERSION2)) {
+        cnid_t id;
+        memcpy(&id, ad_entry(add, ADEID_PRIVID), sizeof(cnid_t));
+        id = htonl(id);
+        memcpy(ad_entry(add, ADEID_PRIVID), &id, sizeof(cnid_t));
+    }
     return 0;
 }