diff -r 9d7ce34704c8 -r b564fb5fd78b commsfwsupport/commselements/meshmachine/inc/mm_nodepeer.h --- a/commsfwsupport/commselements/meshmachine/inc/mm_nodepeer.h Tue Aug 31 16:25:36 2010 +0300 +++ b/commsfwsupport/commselements/meshmachine/inc/mm_nodepeer.h Wed Sep 01 12:35:48 2010 +0100 @@ -65,20 +65,35 @@ return Peer().Type(); } - TUint32 Flags() const - { - return Peer().Flags(); - } + TUint32 Flags() const + { + // Non-client peers lack flags (a state early in relationship) + if(PeerPtr()) + { + return PeerPtr()->Flags(); + } + return 0; + } - TUint32 SetFlags(TUint32 aFlags) - { - return Peer().SetFlags(aFlags); - } + TUint32 SetFlags(TUint32 aFlags) + { + // We only require peer info to be present if an actual state change is occurring (as opposed to default handling) + if(aFlags) + { + return Peer().SetFlags(aFlags); + } + return Flags(); + } - TUint32 ClearFlags(TUint32 aFlags) - { - return Peer().ClearFlags(aFlags); - } + TUint32 ClearFlags(TUint32 aFlags) + { + // We only require peer info to be present if an actual state change is occurring (as opposed to default handling) + if(aFlags) + { + return Peer().ClearFlags(aFlags); + } + return Flags(); + } const RNodeInterface& Peer() const {