Systemsicherheit/Assignment 4 - Protokollsicherheit (Praxis)/proxy/proxymodules/log.py

42 lines
1.5 KiB
Python
Raw Permalink Normal View History

2024-05-25 10:25:40 +02:00
#!/usr/bin/env python3
import os.path as path
import time
class Module:
def __init__(self, incoming=False, verbose=False, options=None):
# extract the file name from __file__. __file__ is proxymodules/name.py
self.name = path.splitext(path.basename(__file__))[0]
self.description = 'Log data in the module chain. Use in addition to general logging (-l/--log).'
self.incoming = incoming # incoming means module is on -im chain
self.find = None # if find is not None, this text will be highlighted
# file: the file name, format is (in|out)-20160601-112233.13413
self.file = ('in-' if incoming else 'out-') + \
time.strftime('%Y%m%d-%H%M%S.') + str(time.time()).split('.')[1]
if options is not None:
if 'file' in options.keys():
self.file = options['file']
self.handle = None
def __del__(self):
if self.handle is not None:
self.handle.close()
def execute(self, data):
if self.handle is None:
self.handle = open(self.file, 'wb', 0) # unbuffered
print('Logging to file', self.file)
logentry = bytes(time.strftime('%Y%m%d-%H%M%S') + ' ' + str(time.time()) + '\n', 'ascii')
logentry += data
logentry += b'-' * 20 + b'\n'
self.handle.write(logentry)
return data
def help(self):
h = '\tfile: name of logfile'
return h
if __name__ == '__main__':
print('This module is not supposed to be executed alone!')