11package p2p
22
33import (
4+ "fmt"
5+ "strings"
6+
47 "github.com/libp2p/go-libp2p/core/control"
58 "github.com/libp2p/go-libp2p/core/network"
69 "github.com/rs/zerolog"
@@ -40,7 +43,7 @@ func (wg *WhitelistConnectionGater) InterceptPeerDial(p peer.ID) (allow bool) {
4043}
4144
4245func (wg * WhitelistConnectionGater ) InterceptAddrDial (p peer.ID , m maddr.Multiaddr ) (allow bool ) {
43- wg .logger .Info ().Msgf ("InterceptAddrDial %s" , p .String ())
46+ wg .logger .Info ().Msgf ("InterceptAddrDial %s %s " , p . String (), m .String ())
4447 if ! wg .disableWhitelist {
4548 wg .logger .Info ().Msgf ("peer allowed %t" , wg .whitelistedPeers [p .String ()])
4649 return wg .whitelistedPeers [p .String ()]
@@ -49,12 +52,16 @@ func (wg *WhitelistConnectionGater) InterceptAddrDial(p peer.ID, m maddr.Multiad
4952 return true
5053}
5154
52- func (wg * WhitelistConnectionGater ) InterceptAccept (network.ConnMultiaddrs ) (allow bool ) {
55+ func (wg * WhitelistConnectionGater ) InterceptAccept (m network.ConnMultiaddrs ) (allow bool ) {
56+ hasAllowedPort := hasAllowedPort (m , "6668" )
57+ wg .logger .Info ().Msgf ("InterceptAccept %t" , hasAllowedPort )
58+
5359 return true
5460}
5561
56- func (wg * WhitelistConnectionGater ) InterceptSecured (direction network.Direction , p peer.ID , _ network.ConnMultiaddrs ) (allow bool ) {
57- wg .logger .Info ().Msgf ("InterceptSecured %s" , p .String ())
62+ func (wg * WhitelistConnectionGater ) InterceptSecured (direction network.Direction , p peer.ID , m network.ConnMultiaddrs ) (allow bool ) {
63+ hasAllowedPort := hasAllowedPort (m , "6668" )
64+ wg .logger .Info ().Msgf ("InterceptSecured %t %s" , hasAllowedPort , p .String ())
5865 if ! wg .disableWhitelist {
5966 wg .logger .Info ().Msgf ("peer allowed %t" , wg .whitelistedPeers [p .String ()])
6067 return wg .whitelistedPeers [p .String ()]
@@ -67,3 +74,9 @@ func (wg *WhitelistConnectionGater) InterceptUpgraded(network.Conn) (bool, contr
6774 // Allow connection upgrades
6875 return true , 0
6976}
77+
78+ // Helper function to check if multiaddr has the correct TCP port
79+ func hasAllowedPort (multiaddrs network.ConnMultiaddrs , allowedPort string ) bool {
80+ fmt .Println ("multiaddrs" , multiaddrs .RemoteMultiaddr ().String (), multiaddrs .RemoteMultiaddr ().Protocols ())
81+ return strings .Contains (multiaddrs .RemoteMultiaddr ().String (), "/tcp/" + allowedPort )
82+ }
0 commit comments