diff options
-rw-r--r-- | networkAddress.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/networkAddress.h b/networkAddress.h index 44c5b59..4217b4a 100644 --- a/networkAddress.h +++ b/networkAddress.h @@ -79,10 +79,13 @@ private: void serialize(Archive & ar, const unsigned int version) { ar & network_address_type_; - ar & ipv4_address_.s_addr; - for(int i=0;i<4;i++) - ar & ipv6_address_.s6_addr32; - ar & ethernet_address_; + if (network_address_type_==ipv4) + ar & ipv4_address_.s_addr; + if (network_address_type_==ipv6) + for(int i=0;i<4;i++) + ar & ipv6_address_.s6_addr32; + if (network_address_type_==ethernet_address_) + ar & ethernet_address_; } }; |