mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-13 20:11:19 -04:00
add confirmation to ReadWriteCloser should preserve message boundary
This commit is contained in:
parent
0d9bef7794
commit
3a2b2fc969
2 changed files with 21 additions and 6 deletions
|
@ -7,18 +7,33 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
type ReadWriteCloserPreservesBoundary interface {
|
||||
io.ReadWriteCloser
|
||||
MessageBoundaryPreserved()
|
||||
}
|
||||
|
||||
func ConfirmsReadWriteCloserPreservesMessageBoundary(rwc io.ReadWriteCloser) ReadWriteCloserPreservesBoundary {
|
||||
return &messageBoundaryPreservedReadWriteCloser{rwc}
|
||||
}
|
||||
|
||||
type messageBoundaryPreservedReadWriteCloser struct {
|
||||
io.ReadWriteCloser
|
||||
}
|
||||
|
||||
func (m *messageBoundaryPreservedReadWriteCloser) MessageBoundaryPreserved() {}
|
||||
|
||||
var errENOSYS = errors.New("not implemented")
|
||||
|
||||
func newPacketConnWrapper(localAddr, remoteAddr net.Addr, rwc io.ReadWriteCloser) net.PacketConn {
|
||||
func newPacketConnWrapper(localAddr, remoteAddr net.Addr, rwc ReadWriteCloserPreservesBoundary) net.PacketConn {
|
||||
return &packetConnWrapper{
|
||||
ReadWriteCloser: rwc,
|
||||
ReadWriteCloserPreservesBoundary: rwc,
|
||||
remoteAddr: remoteAddr,
|
||||
localAddr: localAddr,
|
||||
}
|
||||
}
|
||||
|
||||
type packetConnWrapper struct {
|
||||
io.ReadWriteCloser
|
||||
ReadWriteCloserPreservesBoundary
|
||||
remoteAddr net.Addr
|
||||
localAddr net.Addr
|
||||
}
|
||||
|
|
|
@ -345,7 +345,7 @@ func newSession(snowflakes SnowflakeCollector, clientIDCandid turbotunnel.Client
|
|||
}
|
||||
log.Println("---- Handler: snowflake assigned ----")
|
||||
|
||||
packetConnWrapper := newPacketConnWrapper(dummyAddr{}, dummyAddr{}, conn)
|
||||
packetConnWrapper := newPacketConnWrapper(dummyAddr{}, dummyAddr{}, ConfirmsReadWriteCloserPreservesMessageBoundary(conn))
|
||||
return packetConnWrapper, nil
|
||||
}
|
||||
pconn := turbotunnel.NewRedialPacketConn(dummyAddr{}, dummyAddr{}, dialContext)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue