Use constants for Closing value

This commit is contained in:
Andy Wang 2019-11-03 20:28:43 +00:00
parent c26be98e79
commit fbee919f47
2 changed files with 10 additions and 4 deletions

View File

@ -1,5 +1,11 @@
package multiplex
const (
C_NOOP = iota
C_STREAM
C_SESSION
)
type Frame struct {
StreamID uint32
Seq uint64

View File

@ -144,7 +144,7 @@ func (sesh *Session) closeStream(s *Stream, active bool) error {
f := &Frame{
StreamID: s.id,
Seq: atomic.AddUint64(&s.nextSendSeq, 1) - 1,
Closing: 1,
Closing: C_STREAM,
Payload: pad,
}
i, err := s.session.Obfs(f, s.obfsBuf)
@ -185,10 +185,10 @@ func (sesh *Session) recvDataFromRemote(data []byte) error {
stream := streamI.(*Stream)
return stream.writeFrame(*frame)
} else {
if frame.Closing == 1 {
if frame.Closing == C_STREAM {
// If the stream has been closed and the current frame is a closing frame, we do noop
return nil
} else if frame.Closing == 2 {
} else if frame.Closing == C_SESSION {
// Closing session
sesh.SetTerminalMsg("Received a closing notification frame")
return sesh.passiveClose()
@ -268,7 +268,7 @@ func (sesh *Session) Close() error {
f := &Frame{
StreamID: 0xffffffff,
Seq: 0,
Closing: 2,
Closing: C_SESSION,
Payload: pad,
}
obfsBuf := make([]byte, len(pad)+64)