add additional scan ports as backups in case 4028 doesn't respond

This commit is contained in:
UpstreamData
2022-07-18 10:03:39 -06:00
parent 36b30a2cdd
commit ae749f4a90

View File

@@ -4,7 +4,7 @@ import logging
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,
@@ -150,13 +150,31 @@ class MinerNetwork:
@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(
@@ -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: