Skip to content

Commit ab873d2

Browse files
committed
git commit -m "refactor(service): revert dynamic IPv6 override and restore early peer check in StreamHandler"
1 parent b130ab6 commit ab873d2

3 files changed

Lines changed: 12 additions & 5 deletions

File tree

application_gateway_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -951,6 +951,7 @@ func TestGatewayServeAsVPNGatewayPropagatesViaStatus(t *testing.T) {
951951
// the same peer must let SetGatewayPeer succeed again and resume packet flow.
952952
// HandleReadPackets must not panic on packets sent during the gap.
953953
func TestGatewayRebindOnPeerReadd(t *testing.T) {
954+
skipIfVPNGatewayUnsupported(t)
954955
ts := NewTestSuite(t)
955956
client, exitNode, _ := setupGatewayPeers(ts)
956957

service/auth_status.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ func (s *AuthStatus) processPeerStatusInfo(peerID string, peerInfo protocol.Peer
215215
if peer.Alias == "" {
216216
peer.Alias = s.conf.GenUniqPeerAliasUnlocked(peer.Name, peer.Alias)
217217
}
218-
if peerInfo.IPv6Addr != "" && peer.IPAddrV6 != peerInfo.IPv6Addr {
218+
if peerInfo.IPv6Addr != "" && peer.IPAddrV6 == "" {
219219
peer.IPAddrV6 = peerInfo.IPv6Addr
220220
}
221221
peer.AllowedUsingAsExitNode = peerInfo.AllowUsingAsExitNode

service/tunnel.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,19 @@ func (t *Tunnel) SetDNSHandler(dnsIP net.IP, h DNSPacketHandler) {
114114
}
115115

116116
func (t *Tunnel) StreamHandler(stream network.Stream) {
117-
peerID := stream.Conn().RemotePeer()
118-
119117
defer func() {
120118
_ = stream.Close()
121119
}()
122120

121+
peerID := stream.Conn().RemotePeer()
122+
t.peersLock.RLock()
123+
_, ok := t.peerIDToPeer[peerID]
124+
t.peersLock.RUnlock()
125+
if !ok {
126+
t.logger.Infof("Unknown peer %s tried to tunnel packet", peerID)
127+
return
128+
}
129+
123130
wrappedStream := &io.LimitedReader{}
124131
for {
125132
packet := t.device.GetTempPacket()
@@ -144,9 +151,8 @@ func (t *Tunnel) StreamHandler(stream network.Stream) {
144151
t.peersLock.RLock()
145152
vpnPeer, ok := t.peerIDToPeer[peerID]
146153
if !ok {
147-
t.peersLock.RUnlock()
148-
t.logger.Infof("Unknown peer %s tried to tunnel packet", peerID)
149154
t.device.PutTempPacket(packet)
155+
t.peersLock.RUnlock()
150156
return
151157
}
152158

0 commit comments

Comments
 (0)