From e683f156b7eb8e761c254704538914d86f309801 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 28 Apr 2017 17:00:17 -0400 Subject: control window and chatting Works! --- ProtocolBuffers.hs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'ProtocolBuffers.hs') diff --git a/ProtocolBuffers.hs b/ProtocolBuffers.hs index 53dfca0..51cc552 100644 --- a/ProtocolBuffers.hs +++ b/ProtocolBuffers.hs @@ -7,6 +7,9 @@ - The message types in here define protocol buffers, so should be changed - with care. These messages correspond to the main data types in the Types - module. + - + - Note that the type level numbers used with fields should never be + - changed. -} module ProtocolBuffers where @@ -63,6 +66,10 @@ data ControlActionP { sessionKeyAcceptedP :: Required 14 (Message PublicKeyP) } | SessionKeyRejectedP { sessionKeyRejectedP :: Required 15 (Message PublicKeyP) } + | ChatMessageP + { chatMessageSenderName :: Required 16 (Value B.ByteString) + , chatMessage :: Required 17 (Value B.ByteString) + } deriving (Generic) data SignatureP @@ -166,6 +173,10 @@ instance ProtocolBuffer ControlActionP T.ControlAction where { sessionKeyAcceptedP = putField $ toProtocolBuffer t } toProtocolBuffer (T.SessionKeyRejected t) = SessionKeyRejectedP { sessionKeyRejectedP = putField $ toProtocolBuffer t } + toProtocolBuffer (T.ChatMessage sendername t) = ChatMessageP + { chatMessageSenderName = putField (val sendername) + , chatMessage = putField (val t) + } fromProtocolBuffer p@(RejectedP {}) = T.Rejected $ fromProtocolBuffer $ getField $ rejectedP p fromProtocolBuffer p@(SessionKeyP {}) = T.SessionKey $ @@ -174,6 +185,9 @@ instance ProtocolBuffer ControlActionP T.ControlAction where fromProtocolBuffer $ getField $ sessionKeyAcceptedP p fromProtocolBuffer p@(SessionKeyRejectedP {}) = T.SessionKeyRejected $ fromProtocolBuffer $ getField $ sessionKeyRejectedP p + fromProtocolBuffer p@(ChatMessageP {}) = T.ChatMessage + (Val $ getField $ chatMessageSenderName p) + (Val $ getField $ chatMessage p) instance ProtocolBuffer SignatureP T.Signature where toProtocolBuffer (T.Ed25519Signature t) = Ed25519SignatureP -- cgit v1.2.3