From 82b69f7729d964e88d21f73ae0ad5c8f7d0c9e50 Mon Sep 17 00:00:00 2001 From: "jim@bo" Date: Sat, 23 Jun 2018 05:54:30 -0400 Subject: atox: subProcess exe launch from dhtd netcrypto command --- src/Network/Tox/Crypto/Handlers.hs | 17 +++++++++++++++++ src/Network/Tox/Crypto/Transport.hs | 10 ++++++++++ src/Network/Tox/NodeId.hs | 6 ++++++ 3 files changed, 33 insertions(+) (limited to 'src') diff --git a/src/Network/Tox/Crypto/Handlers.hs b/src/Network/Tox/Crypto/Handlers.hs index fabbf21d..d8ba19eb 100644 --- a/src/Network/Tox/Crypto/Handlers.hs +++ b/src/Network/Tox/Crypto/Handlers.hs @@ -241,6 +241,23 @@ data ViewSnapshot = ViewSnapshot , vGroups :: Map.Map GroupChatId (Set.Set SockAddr) } +instance Serialize ViewSnapshot where + get = ViewSnapshot <$> get <*> get <*> get <*> get <*> get + <*> get <*> get <*> get <*> get <*> get <*> (pure Map.empty) + put (ViewSnapshot nick status statusmsg typing nospam + nick' status' statusmsg' typing' nospam' grps) + = do + put nick + put status + put statusmsg + put typing + put nospam + put nick' + put status' + put statusmsg' + put typing' + put nospam' + -- | Take snapshot of SessionView -- -- This is useful for storing the context of diff --git a/src/Network/Tox/Crypto/Transport.hs b/src/Network/Tox/Crypto/Transport.hs index ea8565b2..68e3d8e1 100644 --- a/src/Network/Tox/Crypto/Transport.hs +++ b/src/Network/Tox/Crypto/Transport.hs @@ -235,8 +235,18 @@ instance Serialize CryptoData where -- The Enum instance on 'UserStatus' is not arbitrary. It corresponds -- to on-the-wire id numbers. data UserStatus = Online | Away | Busy deriving (Show,Read,Eq,Ord,Enum) +instance Serialize UserStatus where + get = do + x <- get :: Get Word8 + return (toEnum8 x) + put x = put (fromEnum8 x) data TypingStatus = NotTyping | Typing deriving (Show,Read,Eq,Ord,Enum) +instance Serialize TypingStatus where + get = do + x <- get :: Get Word8 + return (toEnum8 x) + put x = put (fromEnum8 x :: Word8) unpadCryptoMsg :: CryptoMessage -> CryptoMessage unpadCryptoMsg x@(TwoByte Padding (toEnum8 -> mid)) diff --git a/src/Network/Tox/NodeId.hs b/src/Network/Tox/NodeId.hs index f9cf22a8..e3c6fb36 100644 --- a/src/Network/Tox/NodeId.hs +++ b/src/Network/Tox/NodeId.hs @@ -498,6 +498,12 @@ instance OnionPacket 3 where mkOnion = OnionResponse3 data NoSpam = NoSpam !Word32 !(Maybe Word16) deriving (Eq,Ord,Show) +instance Serialize NoSpam where + get = NoSpam <$> get <*> get + put (NoSpam w32 w16) = do + put w32 + put w16 + -- Utilizes Data.Serialize format for Word32 nospam and Word16 checksum. instance Read NoSpam where readsPrec d s = case break isSpace s of -- cgit v1.2.3