From dbb2e9fa0e61dbe288ae155a8141e3bc71d7e25e Mon Sep 17 00:00:00 2001 From: joe Date: Tue, 29 May 2018 21:43:56 -0400 Subject: setContactAddr : update ip address for tox friend. --- src/Network/Tox/ContactInfo.hs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/Network') diff --git a/src/Network/Tox/ContactInfo.hs b/src/Network/Tox/ContactInfo.hs index 880740bf..d9d9a510 100644 --- a/src/Network/Tox/ContactInfo.hs +++ b/src/Network/Tox/ContactInfo.hs @@ -13,7 +13,6 @@ import Data.Maybe import qualified Data.Set as Set ;import Data.Set (Set) import Network.Tox.DHT.Transport as DHT -import Network.Tox.NodeId import Network.Tox.Onion.Transport as Onion import System.IO import Network.Socket @@ -32,6 +31,7 @@ data Account = Account data ContactEvent = OnionRouted { contact :: PublicKey, onionRouted :: OnionData } | PolicyChange { contact :: PublicKey, policyChange :: Policy } + | AddrChange { contact :: PublicKey, addrChange :: SockAddr } data Contact = Contact { contactKeyPacket :: Maybe (DHT.DHTPublicKey) @@ -103,6 +103,9 @@ onionUpdate (Onion.OnionFriendRequest fr) policyUpdate :: Policy -> Maybe Contact -> Maybe Contact policyUpdate policy = mergeContact nullContact { contactPolicy = Just policy } +addrUpdate :: SockAddr -> Maybe Contact -> Maybe Contact +addrUpdate addr = mergeContact nullContact { contactLastSeenAddr = Just addr } + updateAccount :: PublicKey -> Onion.OnionData -> Account -> STM () updateAccount remoteUserKey omsg acc = do modifyTVar' (contacts acc) $ HashMap.alter (onionUpdate omsg) (key2id remoteUserKey) @@ -113,6 +116,10 @@ setContactPolicy remoteUserKey policy acc = do modifyTVar' (contacts acc) $ HashMap.alter (policyUpdate policy) (key2id remoteUserKey) writeTChan (eventChan acc) $ PolicyChange remoteUserKey policy +setContactAddr :: PublicKey -> SockAddr -> Account -> STM () +setContactAddr remoteUserKey addr acc = do + modifyTVar' (contacts acc) $ HashMap.alter (addrUpdate addr) (key2id remoteUserKey) + writeTChan (eventChan acc) $ AddrChange remoteUserKey addr dnsPresentation :: ContactInfo -> STM String dnsPresentation (ContactInfo accsvar) = do -- cgit v1.2.3