refactor: cleanup main logic to reduce branches
fix: undo linting cheat
This commit is contained in:
parent
6c5c368e68
commit
5c4171758c
2 changed files with 20 additions and 12 deletions
|
@ -557,7 +557,7 @@ max-attributes=7
|
||||||
max-bool-expr=5
|
max-bool-expr=5
|
||||||
|
|
||||||
# Maximum number of branch for function / method body.
|
# Maximum number of branch for function / method body.
|
||||||
max-branches=15
|
max-branches=12
|
||||||
|
|
||||||
# Maximum number of locals for function / method body.
|
# Maximum number of locals for function / method body.
|
||||||
max-locals=15
|
max-locals=15
|
||||||
|
|
|
@ -17,7 +17,7 @@ HostInfo = namedtuple(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def get_certificate(hostname, port):
|
def get_certificate(hostname, port) -> HostInfo:
|
||||||
"""retrieve certificate details and return HostInfo tuple of values"""
|
"""retrieve certificate details and return HostInfo tuple of values"""
|
||||||
hostname_idna = idna.encode(hostname)
|
hostname_idna = idna.encode(hostname)
|
||||||
sock = socket()
|
sock = socket()
|
||||||
|
@ -40,7 +40,7 @@ def get_certificate(hostname, port):
|
||||||
cert=crypto_cert,
|
cert=crypto_cert,
|
||||||
peername=peername,
|
peername=peername,
|
||||||
hostname=hostname,
|
hostname=hostname,
|
||||||
is_valid=not cert.has_expired(),
|
is_valid=not cert.has_expired(), # is_valid is the inverse of has_expired
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,6 +76,22 @@ def get_issuer(cert):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def get_host_list_tuple(hosts: list) -> list:
|
||||||
|
"""create a tuple of host and port based on hosts given to us in the form
|
||||||
|
host:port
|
||||||
|
"""
|
||||||
|
all_hosts = []
|
||||||
|
for host in hosts:
|
||||||
|
# if a host has a : in it, split on the :, first field will be host
|
||||||
|
# second field will be the port
|
||||||
|
if ":" in host:
|
||||||
|
host_info = host.split(":")
|
||||||
|
all_hosts.append((host_info[0], int(host_info[1])))
|
||||||
|
else:
|
||||||
|
all_hosts.append((host, 443))
|
||||||
|
return all_hosts
|
||||||
|
|
||||||
|
|
||||||
@click.command()
|
@click.command()
|
||||||
@click.version_option(__version__, prog_name="checkcert")
|
@click.version_option(__version__, prog_name="checkcert")
|
||||||
@click.option("--san", is_flag=True, help="Output Subject Alternate Names")
|
@click.option("--san", is_flag=True, help="Output Subject Alternate Names")
|
||||||
|
@ -100,7 +116,6 @@ def get_issuer(cert):
|
||||||
def main(san, dump, color, filename, valid, hosts):
|
def main(san, dump, color, filename, valid, hosts):
|
||||||
"""Return information about certificates given including their validity"""
|
"""Return information about certificates given including their validity"""
|
||||||
# setup the list of tuples
|
# setup the list of tuples
|
||||||
all_hosts = []
|
|
||||||
# handle a domain given with a : in it to specify the port
|
# handle a domain given with a : in it to specify the port
|
||||||
if filename:
|
if filename:
|
||||||
hosts = []
|
hosts = []
|
||||||
|
@ -108,14 +123,7 @@ def main(san, dump, color, filename, valid, hosts):
|
||||||
for line in infile:
|
for line in infile:
|
||||||
line = line.strip()
|
line = line.strip()
|
||||||
hosts.append(line)
|
hosts.append(line)
|
||||||
for host in hosts:
|
all_hosts = get_host_list_tuple(hosts)
|
||||||
# if a host has a : in it, split on the :, first field will be host
|
|
||||||
# second field will be the port
|
|
||||||
if ":" in host:
|
|
||||||
host_info = host.split(":")
|
|
||||||
all_hosts.append((host_info[0], int(host_info[1])))
|
|
||||||
else:
|
|
||||||
all_hosts.append((host, 443))
|
|
||||||
with concurrent.futures.ThreadPoolExecutor(max_workers=4) as epool:
|
with concurrent.futures.ThreadPoolExecutor(max_workers=4) as epool:
|
||||||
for hostinfo in epool.map(lambda x: get_certificate(x[0], x[1]), all_hosts):
|
for hostinfo in epool.map(lambda x: get_certificate(x[0], x[1]), all_hosts):
|
||||||
output_string = "\n"
|
output_string = "\n"
|
||||||
|
|
Loading…
Reference in a new issue