@ -10,19 +10,22 @@ import (
type ProtocolMessageIDType string
const (
MsgIDSenderInitRequest = "SenderInitRequest"
MsgIDSenderInitReply = "SenderInitReply"
MsgIDReceiverInitRequest = "ReceiverInitRequest"
MsgIDReceiverInitReply = "ReceiverInitReply"
MsgIDWrite = "Write"
MsgIDWinSize = "WinSize"
MsgIDSenderInitRequest = "SenderInitRequest"
MsgIDSenderInitReply = "SenderInitReply"
MsgIDSenderNewReceiverConnected = "SenderNewReceiverConnected"
MsgIDReceiverInitRequest = "ReceiverInitRequest"
MsgIDReceiverInitReply = "ReceiverInitReply"
MsgIDWrite = "Write"
MsgIDWinSize = "WinSize"
)
// Message used to encapsulate the rest of the bessages bellow
type MsgAll struct {
Type ProtocolMessageIDType
Data [ ] byte
}
// These messages are used between the server and the sender/receiver
type MsgTTYSenderInitRequest struct {
Salt string
PasswordVerifierA string
@ -32,6 +35,10 @@ type MsgTTYSenderInitReply struct {
ReceiverURLWebReadWrite string
}
type MsgTTYSenderNewReceiverConnected struct {
Name string
}
type MsgTTYReceiverInitRequest struct {
ChallengeReply string
}
@ -39,6 +46,8 @@ type MsgTTYReceiverInitRequest struct {
type MsgTTYReceiverInitReply struct {
}
// These messages are not intended for the server, so they are just forwarded by it to the remote
// side.
type MsgTTYWrite struct {
Data [ ] byte
Size int
@ -107,6 +116,15 @@ func MarshalMsg(aMessage interface{}) (_ []byte, err error) {
return json . Marshal ( msg )
}
if newRcvMsg , ok := aMessage . ( MsgTTYSenderNewReceiverConnected ) ; ok {
msg . Type = MsgIDSenderNewReceiverConnected
msg . Data , err = json . Marshal ( newRcvMsg )
if err != nil {
return
}
return json . Marshal ( msg )
}
return nil , nil
}