ullerrm

Untitled

Oct 23rd, 2019 (edited)
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. def process_file(filename, protocol):
  2.    output_filename = '{0}-{1}.pcap'.format(filename, protocol)
  3.    stdout_filename = '{0}.stdout'.format(filename)
  4.    stderr_filename = '{0}.stderr'.format(filename)
  5.    exitcode_filename = '{0}.exitcode'.format(filename)
  6.  
  7.    cmdline = ['tshark', '-r', filename, '-Y', protocol, 'P', '-w', output_filename]
  8.    print('Command line: {0}'.format(repr(cmdline)))
  9.  
  10.    stdout_file = open(stdout_filename, 'w')
  11.    stderr_file = open(stderr_filename, 'w')
  12.    exitcode_file = open(exitcode_filename, 'w')
  13.    exit_code = None
  14.    try:
  15.        shell_cmdline = ' '.join(cmdline)
  16.        process = subprocess.Popen(shell_cmdline,
  17.                                   stdin=subprocess.PIPE,
  18.                                   stdout=stdout_file,
  19.                                   stderr=stderr_file,
  20.                                   shell=True)
  21.        process.stdin.close()
  22.        exit_code = process.wait()
  23.    except:
  24.        # Exception raised while waiting on process; kill child process,
  25.        # then re-raise exception.
  26.        exit_code = process.poll()
  27.        process.kill()
  28.        raise
  29.    finally:
  30.        # These file handles should have been closed already, but it doesn't hurt
  31.        # to close them again.
  32.        stdout_file.close()
  33.        stderr_file.close()
  34.        exitcode_file.write('%s\n' % str(exit_code))
  35.        exitcode_file.close()
  36.  
  37. def thread_worker():
  38.    while True:
  39.        try:
  40.            filename, protocol = global_q.get_nowait()
  41.            print("Processing " + filename + "\n")
  42.            process_file(filename, protocol)
  43.            global_q.task_done()
  44.        except queue.Empty:
  45.            break
Add Comment
Please, Sign In to add comment