|
18 | 18 |
|
19 | 19 | from structlog import get_logger
|
20 | 20 | from twisted.internet.defer import Deferred
|
21 |
| -from twisted.internet.interfaces import IDelayedCall, ITCPTransport, ITransport |
| 21 | +from twisted.internet.interfaces import IAddress, IDelayedCall, ITCPTransport, ITransport |
22 | 22 | from twisted.internet.protocol import connectionDone
|
23 | 23 | from twisted.protocols.basic import LineReceiver
|
24 | 24 | from twisted.python.failure import Failure
|
@@ -92,11 +92,12 @@ class WarningFlags(str, Enum):
|
92 | 92 | capabilities: set[str] # capabilities received from the peer in HelloState
|
93 | 93 |
|
94 | 94 | def __init__(self, network: str, my_peer: PeerId, p2p_manager: 'ConnectionsManager',
|
95 |
| - *, use_ssl: bool, inbound: bool) -> None: |
| 95 | + *, use_ssl: bool, inbound: bool, remote_address: IAddress) -> None: |
96 | 96 | self._settings = get_settings()
|
97 | 97 | self.network = network
|
98 | 98 | self.my_peer = my_peer
|
99 | 99 | self.connections = p2p_manager
|
| 100 | + self.remote_address = remote_address |
100 | 101 |
|
101 | 102 | assert p2p_manager.manager is not None
|
102 | 103 | self.node = p2p_manager.manager
|
@@ -181,8 +182,11 @@ def is_state(self, state_enum: PeerState) -> bool:
|
181 | 182 |
|
182 | 183 | def get_short_remote(self) -> str:
|
183 | 184 | """Get remote for logging."""
|
184 |
| - assert self.transport is not None |
185 |
| - return format_address(self.transport.getPeer()) |
| 185 | + return format_address(self.remote_address) |
| 186 | + |
| 187 | + def get_remote_ip_address(self) -> Optional[str]: |
| 188 | + """Return remote address (ipv4 or ipv6).""" |
| 189 | + return getattr(self.remote_address, 'host', None) |
186 | 190 |
|
187 | 191 | def get_peer_id(self) -> Optional[str]:
|
188 | 192 | """Get peer id for logging."""
|
@@ -230,6 +234,8 @@ def on_connect(self) -> None:
|
230 | 234 | """ Executed when the connection is established.
|
231 | 235 | """
|
232 | 236 | assert not self.aborting
|
| 237 | + assert self.transport is not None |
| 238 | + assert self.remote_address == self.transport.getPeer() |
233 | 239 | self.update_log_context()
|
234 | 240 | self.log.debug('new connection')
|
235 | 241 |
|
|
0 commit comments