@ -166,15 +166,37 @@ namespace net_utils
BEGIN_KV_SERIALIZE_MAP ( )
uint8_t type = is_store ? this_ref . get_type_id ( ) : 0 ;
epee : : serialization : : selector < is_store > : : serialize ( type , stg , hparent_section , " type " ) ;
if ( ! epee : : serialization : : selector < is_store > : : serialize ( type , stg , hparent_section , " type " ) )
return false ;
switch ( type )
{
case ipv4_network_address : : ID :
{
if ( ! is_store )
{
const_cast < network_address & > ( this_ref ) = ipv4_network_address { 0 , 0 } ;
KV_SERIALIZE ( template as_mutable < ipv4_network_address > ( ) ) ;
auto & addr = this_ref . template as_mutable < ipv4_network_address > ( ) ;
if ( epee : : serialization : : selector < is_store > : : serialize ( addr , stg , hparent_section , " addr " ) )
MDEBUG ( " Found as addr: " < < this_ref . str ( ) ) ;
else if ( epee : : serialization : : selector < is_store > : : serialize ( addr , stg , hparent_section , " template as<ipv4_network_address>() " ) )
MDEBUG ( " Found as template as<ipv4_network_address>(): " < < this_ref . str ( ) ) ;
else if ( epee : : serialization : : selector < is_store > : : serialize ( addr , stg , hparent_section , " template as_mutable<ipv4_network_address>() " ) )
MDEBUG ( " Found as template as_mutable<ipv4_network_address>(): " < < this_ref . str ( ) ) ;
else
{
MWARNING ( " Address not found " ) ;
return false ;
}
}
else
{
auto & addr = this_ref . template as_mutable < ipv4_network_address > ( ) ;
if ( ! epee : : serialization : : selector < is_store > : : serialize ( addr , stg , hparent_section , " addr " ) )
return false ;
}
break ;
default : MERROR ( " Unsupported network address type: " < < type ) ; return false ;
}
default : MERROR ( " Unsupported network address type: " < < ( unsigned ) type ) ; return false ;
}
END_KV_SERIALIZE_MAP ( )
} ;