no message
This commit is contained in:
@ -131,8 +131,20 @@ func (s *MuxBridge) callback(inConn net.Conn, key string) {
|
||||
continue
|
||||
}
|
||||
log.Printf("server stream %s created", ID)
|
||||
go io.Copy(stream, inConn)
|
||||
die1 := make(chan bool, 1)
|
||||
die2 := make(chan bool, 1)
|
||||
go func() {
|
||||
io.Copy(stream, inConn)
|
||||
die1 <- true
|
||||
}()
|
||||
go func() {
|
||||
io.Copy(inConn, stream)
|
||||
die2 <- true
|
||||
}()
|
||||
select {
|
||||
case <-die1:
|
||||
case <-die2:
|
||||
}
|
||||
stream.Close()
|
||||
inConn.Close()
|
||||
log.Printf("server stream %s released", ID)
|
||||
|
||||
@ -74,20 +74,23 @@ func (s *MuxClient) Start(args interface{}) (err error) {
|
||||
time.Sleep(time.Second * 3)
|
||||
break
|
||||
}
|
||||
go func() {
|
||||
var ID, clientLocalAddr, serverID string
|
||||
err = utils.ReadPacketData(stream, &ID, &clientLocalAddr, &serverID)
|
||||
if err != nil {
|
||||
log.Printf("read connection signal err: %s, retrying...", err)
|
||||
break
|
||||
log.Printf("read stream signal err: %s", err)
|
||||
stream.Close()
|
||||
return
|
||||
}
|
||||
log.Printf("signal revecived:%s %s %s", serverID, ID, clientLocalAddr)
|
||||
protocol := clientLocalAddr[:3]
|
||||
localAddr := clientLocalAddr[4:]
|
||||
if protocol == "udp" {
|
||||
go s.ServeUDP(stream, localAddr, ID)
|
||||
s.ServeUDP(stream, localAddr, ID)
|
||||
} else {
|
||||
go s.ServeConn(stream, localAddr, ID)
|
||||
s.ServeConn(stream, localAddr, ID)
|
||||
}
|
||||
}()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user