| 1512 | } |
| 1513 | |
| 1514 | Reference<Peer> TransportData::getOrOpenPeer(NetworkAddress const& address, bool startConnectionKeeper) { |
| 1515 | auto peer = getPeer(address); |
| 1516 | if (!peer) { |
| 1517 | peer = makeReference<Peer>(this, address); |
| 1518 | if (startConnectionKeeper && !isLocalAddress(address)) { |
| 1519 | peer->connect = connectionKeeper(peer); |
| 1520 | } |
| 1521 | peers[address] = peer; |
| 1522 | if (address.isPublic()) { |
| 1523 | orderedAddresses.insert(address); |
| 1524 | } |
| 1525 | } |
| 1526 | |
| 1527 | return peer; |
| 1528 | } |
| 1529 | |
| 1530 | bool TransportData::isLocalAddress(const NetworkAddress& address) const { |
| 1531 | return address == localAddresses.getAddressList().address || |
no test coverage detected