diff --git a/session.go b/session.go index 2902ecbb..c040d191 100644 --- a/session.go +++ b/session.go @@ -27,18 +27,17 @@ type StreamCallback func(*Session, *Stream) type Session struct { streamCallback StreamCallback - Connection *net.UDPConn - CurrentRemoteAddr *net.UDPAddr + connection *net.UDPConn + currentRemoteAddr *net.UDPAddr - Streams map[protocol.StreamID]*Stream + streams map[protocol.StreamID]*Stream streamsMutex sync.RWMutex outgoingAckHandler ackhandler.OutgoingPacketAckHandler incomingAckHandler ackhandler.IncomingPacketAckHandler - unpacker *packetUnpacker - packer *packetPacker - batchMode bool + unpacker *packetUnpacker + packer *packetPacker receivedPackets chan receivedPacket } @@ -46,9 +45,9 @@ type Session struct { // NewSession makes a new session func NewSession(conn *net.UDPConn, v protocol.VersionNumber, connectionID protocol.ConnectionID, sCfg *handshake.ServerConfig, streamCallback StreamCallback) PacketHandler { session := &Session{ - Connection: conn, + connection: conn, streamCallback: streamCallback, - Streams: make(map[protocol.StreamID]*Stream), + streams: make(map[protocol.StreamID]*Stream), outgoingAckHandler: ackhandler.NewOutgoingPacketAckHandler(), incomingAckHandler: ackhandler.NewIncomingPacketAckHandler(), receivedPackets: make(chan receivedPacket), @@ -83,8 +82,8 @@ func (s *Session) Run() { func (s *Session) handlePacket(addr *net.UDPAddr, publicHeader *PublicHeader, r *bytes.Reader) error { // TODO: Only do this after authenticating - if addr != s.CurrentRemoteAddr { - s.CurrentRemoteAddr = addr + if addr != s.currentRemoteAddr { + s.currentRemoteAddr = addr } packet, err := s.unpacker.Unpack(publicHeader.Raw, publicHeader, r) @@ -134,7 +133,7 @@ func (s *Session) handleStreamFrame(frame *frames.StreamFrame) error { return errors.New("Session: 0 is not a valid Stream ID") } s.streamsMutex.RLock() - stream, existingStream := s.Streams[frame.StreamID] + stream, existingStream := s.streams[frame.StreamID] s.streamsMutex.RUnlock() if !existingStream { @@ -161,7 +160,6 @@ func (s *Session) Close(e error) error { if ok { errorCode = quicError.ErrorCode } - s.batchMode = false return s.QueueFrame(&frames.ConnectionCloseFrame{ ErrorCode: errorCode, ReasonPhrase: reasonPhrase, @@ -182,7 +180,7 @@ func (s *Session) sendPacket() error { EntropyBit: packet.entropyBit, }) fmt.Printf("-> Sending packet %d (%d bytes)\n", packet.number, len(packet.raw)) - _, err = s.Connection.WriteToUDP(packet.raw, s.CurrentRemoteAddr) + _, err = s.connection.WriteToUDP(packet.raw, s.currentRemoteAddr) if err != nil { return err } @@ -200,10 +198,10 @@ func (s *Session) NewStream(id protocol.StreamID) (*Stream, error) { s.streamsMutex.Lock() defer s.streamsMutex.Unlock() stream := NewStream(s, id) - if s.Streams[id] != nil { + if s.streams[id] != nil { return nil, fmt.Errorf("Session: stream with ID %d already exists", id) } - s.Streams[id] = stream + s.streams[id] = stream return stream, nil } @@ -211,6 +209,6 @@ func (s *Session) NewStream(id protocol.StreamID) (*Stream, error) { // and has fininshed reading its data. func (s *Session) closeStream(id protocol.StreamID) { s.streamsMutex.Lock() - s.Streams[id] = nil + s.streams[id] = nil s.streamsMutex.Unlock() } diff --git a/session_test.go b/session_test.go index e4bda671..fd228082 100644 --- a/session_test.go +++ b/session_test.go @@ -19,7 +19,7 @@ var _ = Describe("Session", func() { BeforeEach(func() { callbackCalled = false session = &Session{ - Streams: make(map[protocol.StreamID]*Stream), + streams: make(map[protocol.StreamID]*Stream), streamCallback: func(*Session, *Stream) { callbackCalled = true }, } }) @@ -30,10 +30,10 @@ var _ = Describe("Session", func() { StreamID: 5, Data: []byte{0xde, 0xca, 0xfb, 0xad}, }) - Expect(session.Streams).To(HaveLen(1)) + Expect(session.streams).To(HaveLen(1)) Expect(callbackCalled).To(BeTrue()) p := make([]byte, 4) - _, err := session.Streams[5].Read(p) + _, err := session.streams[5].Read(p) Expect(err).ToNot(HaveOccurred()) Expect(p).To(Equal([]byte{0xde, 0xca, 0xfb, 0xad})) }) @@ -43,16 +43,16 @@ var _ = Describe("Session", func() { StreamID: 5, Data: []byte{0xde, 0xca}, }) - Expect(session.Streams).To(HaveLen(1)) + Expect(session.streams).To(HaveLen(1)) Expect(callbackCalled).To(BeTrue()) session.handleStreamFrame(&frames.StreamFrame{ StreamID: 5, Offset: 2, Data: []byte{0xfb, 0xad}, }) - Expect(session.Streams).To(HaveLen(1)) + Expect(session.streams).To(HaveLen(1)) p := make([]byte, 4) - _, err := session.Streams[5].Read(p) + _, err := session.streams[5].Read(p) Expect(err).ToNot(HaveOccurred()) Expect(p).To(Equal([]byte{0xde, 0xca, 0xfb, 0xad})) }) @@ -63,15 +63,15 @@ var _ = Describe("Session", func() { Data: []byte{0xde, 0xca, 0xfb, 0xad}, FinBit: true, }) - Expect(session.Streams).To(HaveLen(1)) - Expect(session.Streams[5]).ToNot(BeNil()) + Expect(session.streams).To(HaveLen(1)) + Expect(session.streams[5]).ToNot(BeNil()) Expect(callbackCalled).To(BeTrue()) p := make([]byte, 4) - _, err := session.Streams[5].Read(p) + _, err := session.streams[5].Read(p) Expect(err).To(Equal(io.EOF)) Expect(p).To(Equal([]byte{0xde, 0xca, 0xfb, 0xad})) - Expect(session.Streams).To(HaveLen(1)) - Expect(session.Streams[5]).To(BeNil()) + Expect(session.streams).To(HaveLen(1)) + Expect(session.streams[5]).To(BeNil()) }) It("rejects streams that existed previously", func() { @@ -80,7 +80,7 @@ var _ = Describe("Session", func() { Data: []byte{}, FinBit: true, }) - _, err := session.Streams[5].Read([]byte{0}) + _, err := session.streams[5].Read([]byte{0}) Expect(err).To(Equal(io.EOF)) err = session.handleStreamFrame(&frames.StreamFrame{ StreamID: 5,