Skip to content

Commit

Permalink
add additional scan ports as backups in case 4028 doesn't respond
Browse files Browse the repository at this point in the history
  • Loading branch information
UpstreamData committed Jul 18, 2022
1 parent 36b30a2 commit ae749f4
Showing 1 changed file with 23 additions and 7 deletions.
30 changes: 23 additions & 7 deletions pyasic/network/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from typing import Union

from pyasic.network.net_range import MinerNetworkRange
from pyasic.miners.miner_factory import MinerFactory
from pyasic.miners.miner_factory import MinerFactory, AnyMiner
from pyasic.settings import (
NETWORK_PING_RETRIES as PING_RETRIES,
NETWORK_PING_TIMEOUT as PING_TIMEOUT,
Expand Down Expand Up @@ -150,13 +150,31 @@ async def scan_network_generator(self):

@staticmethod
async def ping_miner(ip: ipaddress.ip_address) -> None or ipaddress.ip_address:
return await ping_miner(ip)
miner = await ping_miner(ip)
if miner:
return miner
miner = await ping_miner(ip, port=4029)
if miner:
return miner
miner = await ping_miner(ip, port=8889)
if miner:
return miner
return None

@staticmethod
async def ping_and_get_miner(
ip: ipaddress.ip_address,
) -> None or ipaddress.ip_address:
return await ping_and_get_miner(ip)
) -> None or AnyMiner:
miner = await ping_and_get_miner(ip)
if miner:
return miner
miner = await ping_and_get_miner(ip, port=4029)
if miner:
return miner
miner = await ping_and_get_miner(ip, port=8889)
if miner:
return miner
return None


async def ping_miner(
Expand Down Expand Up @@ -188,9 +206,7 @@ async def ping_miner(
return


async def ping_and_get_miner(
ip: ipaddress.ip_address, port=4028
) -> None or ipaddress.ip_address:
async def ping_and_get_miner(ip: ipaddress.ip_address, port=4028) -> None or AnyMiner:
for i in range(PING_RETRIES):
connection_fut = asyncio.open_connection(str(ip), port)
try:
Expand Down

0 comments on commit ae749f4

Please sign in to comment.