Skip to content

Commit

Permalink
When running against multiple hosts, now prints each target host rega…
Browse files Browse the repository at this point in the history
…rdless of output level. (#309)
  • Loading branch information
jtesta committed Dec 5, 2024
1 parent 28a1e23 commit d9c703c
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 13 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@ For convenience, a web front-end on top of the command-line tool is available at
### v3.4.0-dev
- Added warning to all key exchanges that do not include protections against quantum attacks due to the Harvest Now, Decrypt Later strategy (see https://en.wikipedia.org/wiki/Harvest_now,_decrypt_later).
- Migrated from deprecated `getopt` module to `argparse`; partial credit [oam7575](https://github.com/oam7575).
- When running against multiple hosts, now prints each target host regardless of output level.

### v3.3.0 (2024-10-15)
- Added Python 3.13 support.
Expand Down
22 changes: 11 additions & 11 deletions src/ssh_audit/outputbuffer.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,11 @@ def __init__(self, buffer_output: bool = True) -> None:
self.__is_color_supported = ('colorama' in sys.modules) or (os.name == 'posix')
self.line_ended = True

def _print(self, level: str, s: str = '', line_ended: bool = True) -> None:
def _print(self, level: str, s: str = '', line_ended: bool = True, always_print: bool = False) -> None:
'''Saves output to buffer (if in buffered mode), or immediately prints to stdout otherwise.'''

# If we're logging only 'warn' or above, and this is an 'info', ignore message.
if self.get_level(level) < self.__level:
# If we're logging only 'warn' or above, and this is an 'info', ignore message, unless always_print is True (useful for printing informational lines regardless of the level setting).
if (always_print is False) and (self.get_level(level) < self.__level):
return

if self.use_colors and self.colors_supported and len(s) > 0 and level != 'info':
Expand Down Expand Up @@ -145,22 +145,22 @@ def head(self, s: str, line_ended: bool = True) -> 'OutputBuffer':
self._print('head', s, line_ended)
return self

def fail(self, s: str, line_ended: bool = True, write_now: bool = False) -> 'OutputBuffer':
self._print('fail', s, line_ended)
def fail(self, s: str, line_ended: bool = True, write_now: bool = False, always_print: bool = False) -> 'OutputBuffer':
self._print('fail', s, line_ended, always_print=always_print)
if write_now:
self.write()
return self

def warn(self, s: str, line_ended: bool = True) -> 'OutputBuffer':
self._print('warn', s, line_ended)
def warn(self, s: str, line_ended: bool = True, always_print: bool = False) -> 'OutputBuffer':
self._print('warn', s, line_ended, always_print=always_print)
return self

def info(self, s: str, line_ended: bool = True) -> 'OutputBuffer':
self._print('info', s, line_ended)
def info(self, s: str, line_ended: bool = True, always_print: bool = False) -> 'OutputBuffer':
self._print('info', s, line_ended, always_print=always_print)
return self

def good(self, s: str, line_ended: bool = True) -> 'OutputBuffer':
self._print('good', s, line_ended)
def good(self, s: str, line_ended: bool = True, always_print: bool = False) -> 'OutputBuffer':
self._print('good', s, line_ended, always_print=always_print)
return self

def sep(self) -> 'OutputBuffer':
Expand Down
4 changes: 2 additions & 2 deletions src/ssh_audit/ssh_audit.py
Original file line number Diff line number Diff line change
Expand Up @@ -532,9 +532,9 @@ def output(out: OutputBuffer, aconf: AuditConf, banner: Optional[Banner], header
else:
host = '%s:%d' % (aconf.host, aconf.port)

out.good('(gen) target: {}'. format(host))
out.good('(gen) target: {}'. format(host), always_print=True)
if client_audit:
out.good('(gen) client IP: {}'.format(client_host))
out.good('(gen) client IP: {}'.format(client_host), always_print=True)
if len(header) > 0:
out.info('(gen) header: ' + '\n'.join(header))
if banner is not None:
Expand Down

0 comments on commit d9c703c

Please sign in to comment.