mirror of
https://github.com/soypat/lneto.git
synced 2026-08-17 05:13:27 +00:00
add TCPConn type
This commit is contained in:
+1
-1
@@ -16,7 +16,7 @@ var (
|
||||
errDropSegment = errors.New("drop segment")
|
||||
errWindowTooLarge = errors.New("invalid window size > 2**16")
|
||||
|
||||
errBufferTooSmall = errors.New("buffer too small")
|
||||
errBufferTooSmall = errors.New("tcp buffer too small")
|
||||
errNeedClosedTCBToOpen = errors.New("need closed TCB to call open")
|
||||
errInvalidState = errors.New("invalid state")
|
||||
errConnNotExist = errors.New("connection does not exist")
|
||||
|
||||
+5
-2
@@ -73,12 +73,14 @@ func (h *Handler) OpenActive(localPort, remotePort uint16, iss Value) error {
|
||||
}
|
||||
if h.scb.State() != StateClosed {
|
||||
return errNeedClosedTCBToOpen
|
||||
} else if remotePort == 0 {
|
||||
return errors.New("zero port on open call")
|
||||
}
|
||||
h.reset(localPort, remotePort, iss)
|
||||
return nil
|
||||
}
|
||||
|
||||
// OpenListen prepares a passive connection. Set remote port to non-zero to
|
||||
// OpenListen prepares a passive connection.
|
||||
func (h *Handler) OpenListen(localPort uint16, iss Value) error {
|
||||
if h.bufRx.Size() < minBufferSize || h.bufTx.Size() < minBufferSize {
|
||||
return errBufferTooSmall
|
||||
@@ -230,7 +232,8 @@ func (h *Handler) Read(b []byte) (int, error) {
|
||||
return h.bufRx.Read(b)
|
||||
}
|
||||
|
||||
func (h *Handler) Buffered() int {
|
||||
// BufferedInput returns amount of bytes buffered in receive buffer.
|
||||
func (h *Handler) BufferedInput() int {
|
||||
if h.State().IsClosed() {
|
||||
return 0
|
||||
}
|
||||
|
||||
+2
-2
@@ -33,8 +33,8 @@ func sendDataFull(t *testing.T, client, server *Handler, data, packetBuf []byte)
|
||||
err = server.Recv(packetBuf[:n])
|
||||
if err != nil {
|
||||
t.Fatal("server receiving:", err)
|
||||
} else if server.Buffered() != len(data) {
|
||||
t.Fatal("server did not receive full data packet", server.Buffered(), len(data))
|
||||
} else if server.BufferedInput() != len(data) {
|
||||
t.Fatal("server did not receive full data packet", server.BufferedInput(), len(data))
|
||||
}
|
||||
clear(packetBuf)
|
||||
n, err = server.Read(packetBuf)
|
||||
|
||||
Reference in New Issue
Block a user