|
|
|
@ -64,6 +64,7 @@ func (this *Listener) OnReceive(payload *alloc.Buffer, src v2net.Destination) {
|
|
|
|
|
conn, found := this.sessions[sourceId]
|
|
|
|
|
if !found {
|
|
|
|
|
writer := &Writer{
|
|
|
|
|
id: sourceId,
|
|
|
|
|
hub: this.hub,
|
|
|
|
|
dest: src,
|
|
|
|
|
listener: this,
|
|
|
|
@ -135,6 +136,7 @@ func (this *Listener) Addr() net.Addr {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type Writer struct {
|
|
|
|
|
id string
|
|
|
|
|
dest v2net.Destination
|
|
|
|
|
hub *udp.UDPHub
|
|
|
|
|
listener *Listener
|
|
|
|
@ -145,7 +147,7 @@ func (this *Writer) Write(payload []byte) (int, error) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (this *Writer) Close() error {
|
|
|
|
|
this.listener.Remove(this.dest.NetAddr())
|
|
|
|
|
this.listener.Remove(this.id)
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|