diff --git a/services/mux_bridge.go b/services/mux_bridge.go index f6bc0ab..c7e551c 100644 --- a/services/mux_bridge.go +++ b/services/mux_bridge.go @@ -57,7 +57,13 @@ func (s *MuxBridge) Start(args interface{}) (err error) { } switch connType { case CONN_SERVER: - log.Printf("server connection %s", key) + var serverID string + err = utils.ReadPacketData(reader, &serverID) + if err != nil { + log.Printf("read error,ERR:%s", err) + return + } + log.Printf("server connection %s %s connected", serverID, key) session, err := smux.Server(inConn, nil) if err != nil { utils.CloseConn(&inConn) @@ -71,11 +77,11 @@ func (s *MuxBridge) Start(args interface{}) (err error) { utils.CloseConn(&inConn) return } - go s.callback(stream, key) + go s.callback(stream, serverID, key) } case CONN_CLIENT: - log.Printf("client connection %s", key) + log.Printf("client connection %s connected", key) session, err := smux.Client(inConn, nil) if err != nil { utils.CloseConn(&inConn) @@ -96,7 +102,7 @@ func (s *MuxBridge) Start(args interface{}) (err error) { func (s *MuxBridge) Clean() { s.StopService() } -func (s *MuxBridge) callback(inConn net.Conn, key string) { +func (s *MuxBridge) callback(inConn net.Conn, serverID, key string) { try := 20 for { try-- @@ -105,17 +111,17 @@ func (s *MuxBridge) callback(inConn net.Conn, key string) { } session, ok := s.clientControlConns.Get(key) if !ok { - log.Printf("client %s session not exists", key) + log.Printf("client %s session not exists for server stream %s", key, serverID) time.Sleep(time.Second * 3) continue } stream, err := session.(*smux.Session).OpenStream() if err != nil { - log.Printf("%s client session open stream fail, err: %s, retrying...", key, err) + log.Printf("%s client session open stream %s fail, err: %s, retrying...", key, serverID, err) time.Sleep(time.Second * 3) continue } else { - log.Printf("%s stream created", key) + log.Printf("%s server %s stream created", key, serverID) die1 := make(chan bool, 1) die2 := make(chan bool, 1) go func() { @@ -132,7 +138,7 @@ func (s *MuxBridge) callback(inConn net.Conn, key string) { } stream.Close() inConn.Close() - log.Printf("%s stream released", key) + log.Printf("%s server %s stream released", key, serverID) break } } diff --git a/services/mux_client.go b/services/mux_client.go index c2cdf55..ec14c92 100644 --- a/services/mux_client.go +++ b/services/mux_client.go @@ -84,7 +84,7 @@ func (s *MuxClient) Start(args interface{}) (err error) { stream.Close() return } - log.Printf("signal revecived:%s %s %s", serverID, ID, clientLocalAddr) + log.Printf("signal revecived,server %s stream %s %s", serverID, ID, clientLocalAddr) protocol := clientLocalAddr[:3] localAddr := clientLocalAddr[4:] if protocol == "udp" { @@ -179,7 +179,7 @@ func (s *MuxClient) ServeConn(inConn *smux.Stream, localAddr, ID string) { return } - log.Printf("conn %s created", ID) + log.Printf("stream %s created", ID) if *s.cfg.IsCompress { die1 := make(chan bool, 1) die2 := make(chan bool, 1) @@ -200,7 +200,7 @@ func (s *MuxClient) ServeConn(inConn *smux.Stream, localAddr, ID string) { log.Printf("%s stream %s released", *s.cfg.Key, ID) } else { utils.IoBind(inConn, outConn, func(err interface{}) { - log.Printf("conn %s released", ID) + log.Printf("stream %s released", ID) }) } } diff --git a/services/mux_server.go b/services/mux_server.go index 204d3bc..2db2c68 100644 --- a/services/mux_server.go +++ b/services/mux_server.go @@ -154,7 +154,7 @@ func (s *MuxServer) Start(args interface{}) (err error) { err = s.sc.ListenTCP(func(inConn net.Conn) { defer func() { if err := recover(); err != nil { - log.Printf("server conn handler crashed with err : %s \nstack: %s", err, string(debug.Stack())) + log.Printf("connection handler crashed with err : %s \nstack: %s", err, string(debug.Stack())) } }() var outConn net.Conn @@ -191,7 +191,7 @@ func (s *MuxServer) Start(args interface{}) (err error) { log.Printf("%s stream %s released", *s.cfg.Key, ID) } else { utils.IoBind(inConn, outConn, func(err interface{}) { - log.Printf("%s conn %s released", *s.cfg.Key, ID) + log.Printf("%s stream %s released", *s.cfg.Key, ID) }) } }) @@ -218,7 +218,7 @@ func (s *MuxServer) GetOutConn() (outConn net.Conn, ID string, err error) { ID = utils.Uniqueid() _, err = outConn.Write(utils.BuildPacketData(ID, remoteAddr, s.cfg.Mgr.serverID)) if err != nil { - log.Printf("write connection data err: %s ,retrying...", err) + log.Printf("write stream data err: %s ,retrying...", err) utils.CloseConn(&outConn) return } @@ -242,7 +242,7 @@ func (s *MuxServer) GetConn() (conn net.Conn, err error) { return } c := net.Conn(&_conn) - _, err = c.Write(utils.BuildPacket(CONN_SERVER, *s.cfg.Key)) + _, err = c.Write(utils.BuildPacket(CONN_SERVER, *s.cfg.Key, s.cfg.Mgr.serverID)) if err != nil { c.Close() s.session = nil diff --git a/uninstall.sh b/uninstall.sh index 3f7e9d5..7152384 100644 --- a/uninstall.sh +++ b/uninstall.sh @@ -1,4 +1,3 @@ #!/bin/bash rm -rf /usr/bin/proxy -rm -rf /usr/bin/proxyd echo "uninstall done"