diff --git a/pro/local.go b/pro/local.go index 9153dcf..08ac633 100644 --- a/pro/local.go +++ b/pro/local.go @@ -56,14 +56,14 @@ func GetLocalQuicConn(conn_type int, count int) (*tun.TunActive, *tun.TunPassive if RedisGet(&redisJson) != nil { log.Println("会话超时") - return nil, nil, nil, nil, nil + return tun_active, tun_passive, nil, nil, nil } utils.Log().SetDebugSate(redisJson.State) if !strings.EqualFold(redisJson.SessionID, SessionID) { utils.Log().Debug("会话被重置") - return nil, nil, nil, nil, nil + return tun_active, tun_passive, nil, nil, nil } switch redisJson.State { @@ -80,7 +80,7 @@ func GetLocalQuicConn(conn_type int, count int) (*tun.TunActive, *tun.TunPassive redisJson.LocalIP, redisJson.LocalPort1, redisJson.LocalPort2 = LocalIP, LocalPort1, LocalPort2 if redisJson.LocalIP == redisJson.RemoteIP { RedisDel() - return nil, nil, nil, nil, fmt.Errorf("已经和对端处在同一个公网下") + return tun_active, tun_passive, nil, nil, fmt.Errorf("已经和对端处在同一个公网下") } tun_passive = tun.CteateTunPassive([]byte(redisJson.SessionID), conn, redisJson.RemoteIP, redisJson.RemotePort1, redisJson.RemotePort2, redisJson.SendPortCount) @@ -98,7 +98,7 @@ func GetLocalQuicConn(conn_type int, count int) (*tun.TunActive, *tun.TunPassive if redisJson.LocalIP == redisJson.RemoteIP { RedisDel() - return nil, nil, nil, nil, fmt.Errorf("已经和对端处在同一个公网下") + return tun_active, tun_passive, nil, nil, fmt.Errorf("已经和对端处在同一个公网下") } tun_active = tun.CreateTunActive([]byte(redisJson.SessionID), conn, 15*time.Second) @@ -111,28 +111,28 @@ func GetLocalQuicConn(conn_type int, count int) (*tun.TunActive, *tun.TunPassive if tun_passive != nil { if tun_passive.TunQuicConn != nil { utils.Log().DebugF("连接成功") - return nil, tun_passive, tun_passive.TunQuicConn, tun_passive.TunHealthStream, nil + return tun_active, tun_passive, tun_passive.TunQuicConn, tun_passive.TunHealthStream, nil } } if tun_active != nil { if tun_active.TunQuicConn != nil { utils.Log().DebugF("连接成功") - return tun_active, nil, tun_active.TunQuicConn, tun_active.TunHealthStream, nil + return tun_active, tun_passive, tun_active.TunQuicConn, tun_active.TunHealthStream, nil } } utils.Log().Debug("连接失败") - return nil, nil, nil, nil, nil + return tun_active, tun_passive, nil, nil, nil case 4: utils.Log().Debug("连接超时") - return nil, nil, nil, nil, nil + return tun_active, tun_passive, nil, nil, nil default: utils.Log().Debug("等待对端状态") } } - return nil, nil, nil, nil, nil + return tun_active, tun_passive, nil, nil, nil } func GetLocalStats() int { diff --git a/pro/remote.go b/pro/remote.go index c1d9d10..8b919a0 100644 --- a/pro/remote.go +++ b/pro/remote.go @@ -43,26 +43,26 @@ func GetRemoteQuicConn(time_out time.Duration) (*tun.TunActive, *tun.TunPassive, if RedisGet(&redisJson) != nil { log.Println("会话超时") - return nil, nil, nil, nil + return tun_active, tun_passive, nil, nil } utils.Log().SetDebugSate(redisJson.State) if !strings.EqualFold(redisJson.SessionID, SessionID) { utils.Log().Debug("会话被重置") - return nil, nil, nil, nil + return tun_active, tun_passive, nil, nil } if redisJson.State < last_state { m_redis_db.Del(m_md5_tun_key) utils.Log().DebugF("状态异常: %d -> %d", last_state, redisJson.State) - return nil, nil, nil, nil + return tun_active, tun_passive, nil, nil } if redisJson.State != 3 && redisJson.State != 4 && redisJson.State-last_state > 1 { m_redis_db.Del(m_md5_tun_key) utils.Log().DebugF("状态异常: %d -> %d", last_state, redisJson.State) - return nil, nil, nil, nil + return tun_active, tun_passive, nil, nil } redisJson.SocketTimeOut = time_out @@ -129,24 +129,24 @@ func GetRemoteQuicConn(time_out time.Duration) (*tun.TunActive, *tun.TunPassive, utils.Log().Debug("对端被动连接成功") RedisSet(redisJson.RedisTimeOut, &redisJson) if tun_active != nil { - return tun_active, nil, tun_active.TunQuicConn, tun_active.TunHealthStream + return tun_active, tun_passive, tun_active.TunQuicConn, tun_active.TunHealthStream } - return nil, nil, nil, nil + return tun_active, tun_passive, nil, nil case <-tun_passive_chain: redisJson.State = 3 utils.Log().Debug("对端主动连接成功") RedisSet(redisJson.RedisTimeOut, &redisJson) if tun_passive != nil { - return nil, tun_passive, tun_passive.TunQuicConn, tun_passive.TunHealthStream + return tun_active, tun_passive, tun_passive.TunQuicConn, tun_passive.TunHealthStream } - return nil, nil, nil, nil + return tun_active, tun_passive, nil, nil case <-time.After(time_out): redisJson.State = 4 utils.Log().Debug("对端连接超时") RedisSet(redisJson.RedisTimeOut, &redisJson) - return nil, nil, nil, nil + return tun_active, tun_passive, nil, nil } case 3, 4: @@ -158,7 +158,7 @@ func GetRemoteQuicConn(time_out time.Duration) (*tun.TunActive, *tun.TunPassive, last_state = redisJson.State } - return nil, nil, nil, nil + return tun_active, tun_passive, nil, nil } var (