Signed-off-by: arraykeys@gmail.com <arraykeys@gmail.com>

This commit is contained in:
arraykeys@gmail.com
2017-12-04 10:35:44 +08:00
parent 6aa4b3c8a9
commit bf43b3adee
4 changed files with 21 additions and 16 deletions

View File

@ -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
}
}

View File

@ -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)
})
}
}

View File

@ -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

View File

@ -1,4 +1,3 @@
#!/bin/bash
rm -rf /usr/bin/proxy
rm -rf /usr/bin/proxyd
echo "uninstall done"