├── .github └── workflows │ ├── codeql-analysis.yml │ ├── python-publish.yml │ └── python-tests.yml ├── .gitignore ├── .pylintrc ├── .style.yapf ├── LICENSE.txt ├── README.rst ├── openvpn_status_parser ├── __init__.py ├── exceptions.py └── openvpn-status-parser ├── requirements.txt ├── setup.py └── tests ├── __init__.py └── testfiles ├── broken ├── broken_1.status ├── broken_10.status ├── broken_2.status ├── broken_3.status ├── broken_4.status ├── broken_5.status ├── broken_6.status ├── broken_7.status ├── broken_8.status └── broken_9.status └── valid ├── valid_1.status └── valid_2.status /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | # For most projects, this workflow file will not need changing; you simply need 2 | # to commit it to your repository. 3 | # 4 | # You may wish to alter this file to override the set of languages analyzed, 5 | # or to provide custom queries or build logic. 6 | # 7 | # ******** NOTE ******** 8 | # We have attempted to detect the languages in your repository. Please check 9 | # the `language` matrix defined below to confirm you have the correct set of 10 | # supported CodeQL languages. 11 | # 12 | name: "CodeQL" 13 | 14 | on: 15 | push: 16 | branches: [ master ] 17 | pull_request: 18 | # The branches below must be a subset of the branches above 19 | branches: [ master ] 20 | schedule: 21 | - cron: '17 4 * * 6' 22 | 23 | jobs: 24 | analyze: 25 | name: Analyze 26 | runs-on: ubuntu-latest 27 | 28 | strategy: 29 | fail-fast: false 30 | matrix: 31 | language: [ 'python' ] 32 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] 33 | # Learn more: 34 | # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed 35 | 36 | steps: 37 | - name: Checkout repository 38 | uses: actions/checkout@v2 39 | 40 | # Initializes the CodeQL tools for scanning. 41 | - name: Initialize CodeQL 42 | uses: github/codeql-action/init@v1 43 | with: 44 | languages: ${{ matrix.language }} 45 | # If you wish to specify custom queries, you can do so here or in a config file. 46 | # By default, queries listed here will override any specified in a config file. 47 | # Prefix the list here with "+" to use these queries and those in the config file. 48 | # queries: ./path/to/local/query, your-org/your-repo/queries@main 49 | 50 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). 51 | # If this step fails, then you should remove it and run the build manually (see below) 52 | - name: Autobuild 53 | uses: github/codeql-action/autobuild@v1 54 | 55 | # ℹ️ Command-line programs to run using the OS shell. 56 | # 📚 https://git.io/JvXDl 57 | 58 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines 59 | # and modify them (or add more) to build your code if your project 60 | # uses a compiled language 61 | 62 | #- run: | 63 | # make bootstrap 64 | # make release 65 | 66 | - name: Perform CodeQL Analysis 67 | uses: github/codeql-action/analyze@v1 68 | -------------------------------------------------------------------------------- /.github/workflows/python-publish.yml: -------------------------------------------------------------------------------- 1 | # This workflow will upload a Python Package using Twine when a release is created 2 | # For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries 3 | 4 | name: Upload Python Package 5 | 6 | on: 7 | release: 8 | types: [created] 9 | 10 | jobs: 11 | deploy: 12 | 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - uses: actions/checkout@v2 17 | - name: Set up Python 18 | uses: actions/setup-python@v2 19 | with: 20 | python-version: '3.x' 21 | - name: Install dependencies 22 | run: | 23 | python -m pip install --upgrade pip 24 | pip install -r requirements.txt 25 | pip install setuptools wheel twine 26 | - name: Build and publish 27 | env: 28 | TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} 29 | TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} 30 | run: | 31 | python setup.py sdist bdist_wheel 32 | twine upload dist/* 33 | -------------------------------------------------------------------------------- /.github/workflows/python-tests.yml: -------------------------------------------------------------------------------- 1 | name: Run python tests 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | build: 7 | 8 | runs-on: ubuntu-latest 9 | strategy: 10 | matrix: 11 | python-version: [3.6, 3.7, 3.8] 12 | 13 | steps: 14 | - uses: actions/checkout@v2 15 | - name: Set up Python ${{ matrix.python-version }} 16 | uses: actions/setup-python@v2 17 | with: 18 | python-version: ${{ matrix.python-version }} 19 | - name: Install dependencies 20 | run: | 21 | python -m pip install --upgrade pip 22 | pip install pycodestyle isort pylint yapf 23 | if [ -f requirements.txt ]; then pip install -r requirements.txt; fi 24 | - name: Check pycodestyle 25 | run: | 26 | pycodestyle --ignore E501,E402 --exclude=.git,dev3 openvpn_status_parser tests 27 | - name: Run pylint 28 | run: | 29 | pylint openvpn_status_parser tests 30 | - name: Run tests 31 | run: | 32 | python3 setup.py test 33 | - name: Check formatting 34 | run: | 35 | isort openvpn_status_parser tests; yapf --recursive -i . 36 | git diff --exit-code # This fails if isort&yapf combo made any changes 37 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.py[co] 2 | 3 | # Packages 4 | *.egg 5 | *.egg-info 6 | dist 7 | build 8 | eggs 9 | parts 10 | bin 11 | var 12 | sdist 13 | develop-eggs 14 | .installed.cfg 15 | 16 | # Installer logs 17 | pip-log.txt 18 | 19 | # Unit test / coverage reports 20 | .coverage 21 | .tox 22 | 23 | #Translations 24 | *.mo 25 | 26 | #Mr Developer 27 | .mr.developer.cfg 28 | -------------------------------------------------------------------------------- /.pylintrc: -------------------------------------------------------------------------------- 1 | [format] 2 | max-line-length=125 3 | 4 | [messages control] 5 | disable=line-too-long,missing-docstring,no-self-use,fixme,bad-indentation,bad-continuation,invalid-name,too-many-locals,duplicate-code,too-many-branches,wrong-import-order 6 | -------------------------------------------------------------------------------- /.style.yapf: -------------------------------------------------------------------------------- 1 | [style] 2 | based_on_style = pep8 3 | allow_split_before_dict_value = false 4 | blank_line_before_nested_class_or_def = false 5 | coalesce_brackets = true 6 | column_limit = 125 7 | dedent_closing_brackets = true 8 | each_dict_entry_on_separate_line = true 9 | join_multiple_lines = true 10 | spaces_around_power_operator = true 11 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License: 2 | 3 | Copyright (C) 2012-2016, Olli Jarva 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a 6 | copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included 14 | in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 17 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | openvpn-status-parser 2 | ===================== 3 | 4 | Installation: 5 | 6 | :: 7 | 8 | pip install openvpn-status-parser 9 | 10 | or clone `the repository `_ and run 11 | 12 | :: 13 | 14 | python setup.py install 15 | 16 | Usage: 17 | 18 | - add `status-version 3` to openvpn server configuration. Reload/restart openvpn server. 19 | - locate openvpn status file. Usually it's under /var/run in Unix based systems. 20 | 21 | :: 22 | 23 | openvpn-status-parser /var/run/openvpn/openvpn.status 24 | 25 | Or using Python: 26 | 27 | :: 28 | 29 | import pprint 30 | from openvpn_status_parser import OpenVPNStatusParser 31 | 32 | parser = OpenVPNStatusParser("/var/run/openvpn/openvpn.status") 33 | pprint.pprint(parser.connected_clients) 34 | pprint.pprint(parser.routing_table) 35 | pprint.pprint(parser.details) 36 | 37 | License 38 | ------- 39 | 40 | MIT License; see LICENSE.txt for full details. -------------------------------------------------------------------------------- /openvpn_status_parser/__init__.py: -------------------------------------------------------------------------------- 1 | """ This is a parser for openvpn status files, version 3. 2 | 3 | MIT License: 4 | 5 | Copyright (C) 2012-2016, Olli Jarva 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a 8 | copy of this software and associated documentation files (the 9 | "Software"), to deal in the Software without restriction, including 10 | without limitation the rights to use, copy, modify, merge, publish, 11 | distribute, sublicense, and/or sell copies of the Software, and to 12 | permit persons to whom the Software is furnished to do so, subject to 13 | the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 21 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | 26 | """ 27 | 28 | import csv 29 | import datetime 30 | import logging 31 | import sys 32 | 33 | from . import exceptions 34 | 35 | 36 | class OpenVPNStatusParser: 37 | """ 38 | Usage: 39 | 40 | import pprint 41 | parser = OpenVPNStatusParser(filename) 42 | pprint.pprint(parser.connected_clients) 43 | """ 44 | def __init__(self, filename): 45 | self.filename = filename 46 | self._connected_clients = None 47 | self._routing_table = None 48 | self._details = None 49 | self.topics_for = None 50 | self.title_processors = { 51 | "TITLE": self._process_title, 52 | "TIME": self._process_time, 53 | "HEADER": self._process_header, 54 | "CLIENT_LIST": self._process_client_list, 55 | "ROUTING_TABLE": self._process_routing_table, 56 | "GLOBAL_STATS": self._process_global_stats, 57 | } 58 | 59 | def _process_title(self, row): 60 | try: 61 | self._details["title"] = row[1] 62 | except IndexError as err: 63 | logging.error("TITLE row is invalid: %s", row) 64 | raise exceptions.MalformedFileException("TITLE row is invalid") from err 65 | 66 | def _process_time(self, row): 67 | try: 68 | self._details["timestamp"] = datetime.datetime.fromtimestamp(int(row[2])) 69 | except (IndexError, ValueError) as err: 70 | logging.error("TIME row is invalid: %s", row) 71 | raise exceptions.MalformedFileException("TIME row is invalid") from err 72 | 73 | def _process_header(self, row): 74 | try: 75 | self.topics_for[row[1]] = row[2:] 76 | except IndexError as err: 77 | logging.error("HEADER row is invalid: %s", row) 78 | raise exceptions.MalformedFileException("HEADER row is invalid") from err 79 | 80 | def _process_client_list(self, row): 81 | try: 82 | self._connected_clients[row[1]] = dict(zip(self.topics_for["CLIENT_LIST"], row[1:])) 83 | self._connected_clients[row[1]]["connected_since"] = (datetime.datetime.fromtimestamp(int(row[-1]))) 84 | except IndexError as err: 85 | logging.error("CLIENT_LIST row is invalid: %s", row) 86 | raise exceptions.MalformedFileException("CLIENT_LIST row is invalid") from err 87 | except KeyError as err: 88 | raise exceptions.MalformedFileException("Topics for CLIENT_LIST are missing") from err 89 | 90 | def _process_routing_table(self, row): 91 | if len(row[1:]) != len(self.topics_for.get("ROUTING_TABLE", [])): 92 | raise exceptions.MalformedFileException("Invalid number of topics for ROUTING_TABLE row") 93 | try: 94 | self._routing_table[row[2]] = dict(zip(self.topics_for["ROUTING_TABLE"], row[1:])) 95 | self._routing_table[row[2]]["last_ref"] = datetime.datetime.fromtimestamp(int(row[-1])) 96 | except IndexError as err: 97 | logging.error("ROUTING_TABLE row is invalid: %s", row) 98 | raise exceptions.MalformedFileException("ROUTING_TABLE row is invalid") from err 99 | except ValueError as err: 100 | raise exceptions.MalformedFileException("Invalid timestamp") from err 101 | except KeyError as err: 102 | raise exceptions.MalformedFileException("Topics for ROUTING_TABLE are missing") from err 103 | 104 | def _process_global_stats(self, row): 105 | try: 106 | self._details[row[1]] = row[2] 107 | except IndexError as err: 108 | logging.error("GLOBAL_STATS row is invalid: %s", row) 109 | raise exceptions.MalformedFileException("GLOBAL_STATS row is invalid") from err 110 | 111 | def _parse_file(self): 112 | self._details = {} 113 | self._connected_clients = {} 114 | self._routing_table = {} 115 | self.topics_for = {} 116 | csvreader = csv.reader(open(self.filename), delimiter='\t') 117 | for row in csvreader: 118 | row_title = row[0] 119 | if row_title in self.title_processors: 120 | self.title_processors[row_title](row) 121 | elif row_title == "END": 122 | return True 123 | else: 124 | logging.warning("Line was not parsed. Keyword %s not recognized. %s", row_title, row) 125 | raise exceptions.MalformedFileException(f"Unhandled keyword {row_title}") 126 | 127 | logging.error("File was incomplete. END line was missing.") 128 | raise exceptions.MalformedFileException("END line was missing.") 129 | 130 | @property 131 | def details(self): 132 | """ Returns miscellaneous details from status file """ 133 | if not self._details: 134 | self._parse_file() 135 | return self._details 136 | 137 | @property 138 | def connected_clients(self): 139 | """ Returns dictionary of connected clients with details.""" 140 | if not self._connected_clients: 141 | self._parse_file() 142 | return self._connected_clients 143 | 144 | @property 145 | def routing_table(self): 146 | """ Returns dictionary of routing_table used by OpenVPN """ 147 | if not self._routing_table: 148 | self._parse_file() 149 | return self._routing_table 150 | -------------------------------------------------------------------------------- /openvpn_status_parser/exceptions.py: -------------------------------------------------------------------------------- 1 | class MalformedFileException(Exception): 2 | pass 3 | -------------------------------------------------------------------------------- /openvpn_status_parser/openvpn-status-parser: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """OpenVPN status parser 3 | 4 | Usage: 5 | openvpn-status-parser ... 6 | 7 | """ 8 | 9 | import os.path 10 | import pprint 11 | import sys 12 | 13 | import docopt 14 | 15 | import openvpn_status_parser 16 | 17 | 18 | def main(): 19 | arguments = docopt.docopt(__doc__, version='OpenVPN status parser') 20 | for filename in arguments[""]: 21 | if not os.path.exists(filename): 22 | print("File '%s' does not exist. Exiting." % filename) 23 | return 1 24 | parser = openvpn_status_parser.OpenVPNStatusParser(filename) 25 | print("=" * 79) 26 | print(filename) 27 | print("-" * 79) 28 | print("Connected clients") 29 | pprint.pprint(parser.connected_clients) 30 | print("-" * 79) 31 | print("Routing table") 32 | pprint.pprint(parser.routing_table) 33 | print("-" * 79) 34 | print("Additional details") 35 | pprint.pprint(parser.details) 36 | return 0 37 | 38 | 39 | if __name__ == '__main__': 40 | sys.exit(main()) 41 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | docopt==0.6.2 2 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from codecs import open 2 | from os import path 3 | 4 | from setuptools import find_packages, setup 5 | 6 | here = path.abspath(path.dirname(__file__)) 7 | 8 | with open(path.join(here, 'README.rst'), encoding='utf-8') as f: 9 | long_description = f.read() 10 | 11 | setup( 12 | name='openvpn-status-parser', 13 | version='0.0.3', 14 | description='OpenVPN status parser', 15 | long_description=long_description, 16 | url='https://github.com/ojarva/openvpn-status-parser', 17 | author='Olli Jarva', 18 | author_email='olli@jarva.fi', 19 | license='MIT', 20 | classifiers=[ 21 | 'Development Status :: 4 - Beta', 22 | 'Intended Audience :: Developers', 23 | 'License :: OSI Approved :: MIT License', 24 | 'Programming Language :: Python :: 3', 25 | 'Programming Language :: Python :: 3.2', 26 | 'Programming Language :: Python :: 3.3', 27 | 'Programming Language :: Python :: 3.4', 28 | 'Programming Language :: Python :: 3.5', 29 | 'Programming Language :: Python :: 3.6', 30 | 'Programming Language :: Python :: 3.7', 31 | 'Programming Language :: Python :: 3.8', 32 | 'Programming Language :: Python :: Implementation :: PyPy', 33 | ], 34 | keywords='openvpn', 35 | packages=["openvpn_status_parser"], 36 | install_requires=["docopt>=0.6.2"], 37 | test_suite="tests", 38 | scripts=["openvpn_status_parser/openvpn-status-parser"], 39 | extras_require={ 40 | 'dev': ['twine', 'wheel'], 41 | }, 42 | ) 43 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | import datetime 2 | import glob 3 | import unittest 4 | 5 | import openvpn_status_parser 6 | import openvpn_status_parser.exceptions 7 | 8 | 9 | class TestBroken(unittest.TestCase): 10 | def _test_file(self, filename): 11 | parsed = openvpn_status_parser.OpenVPNStatusParser(filename) 12 | 13 | def _call_details(): 14 | parsed.details # pylint: disable=pointless-statement 15 | 16 | self.assertRaises(openvpn_status_parser.exceptions.MalformedFileException, _call_details) 17 | 18 | 19 | def ch(filename): 20 | return lambda self: self._test_file(filename) # pylint: disable=protected-access 21 | 22 | 23 | for fn in glob.glob("tests/testfiles/broken/*.status"): 24 | print(f"Adding {fn}") 25 | test_func_name = fn.replace(".", "_") 26 | setattr(TestBroken, f"test_{test_func_name}", ch(fn)) 27 | 28 | if __name__ == '__main__': 29 | unittest.main() 30 | -------------------------------------------------------------------------------- /tests/testfiles/broken/broken_1.status: -------------------------------------------------------------------------------- 1 | TITLE OpenVPN 2.1.4 x86_64-unknown-openbsd5.0 [SSL] [LZO2] built on Aug 4 2011 2 | HEADER CLIENT_LIST Common Name Real Address Virtual Address Bytes Received Bytes Sent Connected Since Connected Since (time_t) 3 | CLIENT_LIST aefj-laptop 83.243.114.51:63714 10.201.6.55 13483768 22837245 Thu Aug 16 11:55:59 2012 1345107359 4 | CLIENT_LIST 3kjb-laptop 72.55.24.7:60477 10.201.6.58 14460410 10433581 Thu Aug 16 11:56:01 2012 1345107361 5 | CLIENT_LIST eijbk-ext-home-laptop 10.3.0.23:61674 10.201.6.56 7368376 5524424 Thu Aug 16 12:15:27 2012 1345108527 6 | CLIENT_LIST lkbi-laptop 10.3.0.191:53301 10.201.6.54 109197617 101758986 Thu Aug 16 11:55:58 2012 1345107358 7 | CLIENT_LIST ikal-laptop 72.55.24.7:59688 10.201.6.59 13349818 22770930 Thu Aug 16 11:56:01 2012 1345107361 8 | CLIENT_LIST oavk-laptop 10.3.0.55:56466 10.201.6.52 25728412 26288851 Thu Aug 16 11:55:52 2012 1345107352 9 | CLIENT_LIST ibja-laptop 72.55.24.7:16909 10.201.6.61 28005026 22487707 Thu Aug 16 12:14:24 2012 1345108479 10 | CLIENT_LIST lifk-laptop 10.3.0.73:52420 10.201.6.57 323045913 108230182 Thu Aug 16 11:56:00 2012 1345107360 11 | CLIENT_LIST alfb-laptop 204.184.94.179:41718 10.201.6.51 8689702 33241946 Thu Aug 16 11:55:43 2012 1345107343 12 | CLIENT_LIST ekl6-laptop 48.109.171.156:15916 10.201.6.53 6525908 14266028 Thu Aug 16 11:55:54 2012 1345107354 13 | ROUTING_TABLE 00:ff:e0:d5:76:ce ekl6-laptop 48.109.171.156:15916 Thu Aug 16 12:30:29 2012 1345109429 14 | ROUTING_TABLE 52:24:2d:3c:73:e4 aefj-laptop 83.243.114.51:63714 Thu Aug 16 11:56:01 2012 1345107361 15 | ROUTING_TABLE c2:bf:18:5e:bc:29 ikal-laptop 72.55.24.7:59688 Thu Aug 16 12:30:29 2012 1345109429 16 | ROUTING_TABLE b6:1e:b8:d2:2d:b5 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:30:29 2012 1345109429 17 | ROUTING_TABLE 8e:b8:7e:ff:65:4e lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:30:29 2012 1345109429 18 | ROUTING_TABLE 06:e1:36:5e:24:82 alfb-laptop 204.184.94.179:41718 Thu Aug 16 12:30:29 2012 1345109429 19 | ROUTING_TABLE 55:fb:d6:3b:40:ae eijbk-ext-home-laptop 10.3.0.23:61674 Thu Aug 16 12:30:29 2012 1345109429 20 | ROUTING_TABLE 3e:2e:ef:8a:d5:9d aefj-laptop 83.243.114.51:63714 Thu Aug 16 12:30:29 2012 1345109429 21 | ROUTING_TABLE be:91:89:97:5f:22 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:09:28 2012 1345108168 22 | ROUTING_TABLE 1a:6f:e2:52:0b:dc 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 12:30:29 2012 1345109429 23 | ROUTING_TABLE ea:94:a8:70:8b:0e oavk-laptop 10.3.0.55:56466 Thu Aug 16 12:30:29 2012 1345109429 24 | ROUTING_TABLE da:38:b0:73:ee:40 lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:05:21 2012 1345107551 25 | ROUTING_TABLE 7e:18:0d:f0:0f:b7 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 11:56:01 2012 1345107361 26 | ROUTING_TABLE d2:62:4e:c7:94:74 ibja-laptop 72.55.24.7:16909 Thu Aug 16 12:30:29 2012 1345109429 27 | GLOBAL_STATS Max bcast/mcast queue length 11 28 | END 29 | -------------------------------------------------------------------------------- /tests/testfiles/broken/broken_10.status: -------------------------------------------------------------------------------- 1 | TITLE OpenVPN 2.1.4 x86_64-unknown-openbsd5.0 [SSL] [LZO2] built on Aug 4 2011 2 | TIME Thu Aug 16 12:30:30 2012 1345109430 3 | CLIENT_LIST aefj-laptop 83.243.114.51:63714 10.201.6.55 13483768 22837245 Thu Aug 16 11:55:59 2012 1345107359 4 | CLIENT_LIST 3kjb-laptop 72.55.24.7:60477 10.201.6.58 14460410 10433581 Thu Aug 16 11:56:01 2012 1345107361 5 | CLIENT_LIST eijbk-ext-home-laptop 10.3.0.23:61674 10.201.6.56 7368376 5524424 Thu Aug 16 12:15:27 2012 1345108527 6 | CLIENT_LIST lkbi-laptop 10.3.0.191:53301 10.201.6.54 109197617 101758986 Thu Aug 16 11:55:58 2012 1345107358 7 | CLIENT_LIST ikal-laptop 72.55.24.7:59688 10.201.6.59 13349818 22770930 Thu Aug 16 11:56:01 2012 1345107361 8 | CLIENT_LIST oavk-laptop 10.3.0.55:56466 10.201.6.52 25728412 26288851 Thu Aug 16 11:55:52 2012 1345107352 9 | CLIENT_LIST ibja-laptop 72.55.24.7:16909 10.201.6.61 28005026 22487707 Thu Aug 16 12:14:24 2012 1345108479 10 | CLIENT_LIST lifk-laptop 10.3.0.73:52420 10.201.6.57 323045913 108230182 Thu Aug 16 11:56:00 2012 1345107360 11 | CLIENT_LIST alfb-laptop 204.184.94.179:41718 10.201.6.51 8689702 33241946 Thu Aug 16 11:55:43 2012 1345107343 12 | CLIENT_LIST ekl6-laptop 48.109.171.156:15916 10.201.6.53 6525908 14266028 Thu Aug 16 11:55:54 2012 1345107354 13 | HEADER ROUTING_TABLE Virtual Address Common Name Real Address Last Ref Last Ref (time_t) 14 | ROUTING_TABLE 00:ff:e0:d5:76:ce ekl6-laptop 48.109.171.156:15916 Thu Aug 16 12:30:29 2012 1345109429 15 | ROUTING_TABLE 52:24:2d:3c:73:e4 aefj-laptop 83.243.114.51:63714 Thu Aug 16 11:56:01 2012 1345107361 16 | ROUTING_TABLE c2:bf:18:5e:bc:29 ikal-laptop 72.55.24.7:59688 Thu Aug 16 12:30:29 2012 1345109429 17 | ROUTING_TABLE b6:1e:b8:d2:2d:b5 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:30:29 2012 1345109429 18 | ROUTING_TABLE 8e:b8:7e:ff:65:4e lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:30:29 2012 1345109429 19 | ROUTING_TABLE 06:e1:36:5e:24:82 alfb-laptop 204.184.94.179:41718 Thu Aug 16 12:30:29 2012 1345109429 20 | ROUTING_TABLE 55:fb:d6:3b:40:ae eijbk-ext-home-laptop 10.3.0.23:61674 Thu Aug 16 12:30:29 2012 1345109429 21 | ROUTING_TABLE 3e:2e:ef:8a:d5:9d aefj-laptop 83.243.114.51:63714 Thu Aug 16 12:30:29 2012 1345109429 22 | ROUTING_TABLE be:91:89:97:5f:22 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:09:28 2012 1345108168 23 | ROUTING_TABLE 1a:6f:e2:52:0b:dc 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 12:30:29 2012 1345109429 24 | ROUTING_TABLE ea:94:a8:70:8b:0e oavk-laptop 10.3.0.55:56466 Thu Aug 16 12:30:29 2012 1345109429 25 | ROUTING_TABLE da:38:b0:73:ee:40 lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:05:21 2012 1345107551 26 | ROUTING_TABLE 7e:18:0d:f0:0f:b7 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 11:56:01 2012 1345107361 27 | ROUTING_TABLE d2:62:4e:c7:94:74 ibja-laptop 72.55.24.7:16909 Thu Aug 16 12:30:29 2012 1345109429 28 | GLOBAL_STATS Max bcast/mcast queue length 11 29 | END 30 | -------------------------------------------------------------------------------- /tests/testfiles/broken/broken_2.status: -------------------------------------------------------------------------------- 1 | TITLE OpenVPN 2.1.4 x86_64-unknown-openbsd5.0 [SSL] [LZO2] built on Aug 4 2011 2 | TIME Thu Aug 16 12:30:30 2012 1345109430 3 | HEADER CLIENT_LIST Common Name Real Address Virtual Address Bytes Received Bytes Sent Connected Since Connected Since (time_t) 4 | CLIENT_LIST aefj-laptop 83.243.114.51:63714 10.201.6.55 13483768 22837245 Thu Aug 16 11:55:59 2012 1345107359 5 | CLIENT_LIST 3kjb-laptop 72.55.24.7:60477 10.201.6.58 14460410 10433581 Thu Aug 16 11:56:01 2012 1345107361 6 | CLIENT_LIST eijbk-ext-home-laptop 10.3.0.23:61674 10.201.6.56 7368376 5524424 Thu Aug 16 12:15:27 2012 1345108527 7 | CLIENT_LIST lkbi-laptop 10.3.0.191:53301 10.201.6.54 109197617 101758986 Thu Aug 16 11:55:58 2012 1345107358 8 | CLIENT_LIST ikal-laptop 72.55.24.7:59688 10.201.6.59 13349818 22770930 Thu Aug 16 11:56:01 2012 1345107361 9 | CLIENT_LIST oavk-laptop 10.3.0.55:56466 10.201.6.52 25728412 26288851 Thu Aug 16 11:55:52 2012 1345107352 10 | CLIENT_LIST ibja-laptop 72.55.24.7:16909 10.201.6.61 28005026 22487707 Thu Aug 16 12:14:24 2012 1345108479 11 | CLIENT_LIST lifk-laptop 10.3.0.73:52420 10.201.6.57 323045913 108230182 Thu Aug 16 11:56:00 2012 1345107360 12 | CLIENT_LIST alfb-laptop 204.184.94.179:41718 10.201.6.51 8689702 33241946 Thu Aug 16 11:55:43 2012 1345107343 13 | CLIENT_LIST ekl6-laptop 48.109.171.156:15916 10.201.6.53 6525908 14266028 Thu Aug 16 11:55:54 2012 1345107354 14 | HEADER ROUTING_TABLE Virtual Address Common Name Real Address Last Ref Last Ref (time_t) 15 | ROUTING_TABLE 00:ff:e0:d5:76:ce ekl6-laptop 48.109.171.156:15916 Thu Aug 16 12:30:29 2012 1345109429 16 | ROUTING_TABLE 52:24:2d:3c:73:e4 aefj-laptop 83.243.114.51:63714 Thu Aug 16 11:56:01 2012 1345107361 17 | ROUTING_TABLE c2:bf:18:5e:bc:29 ikal-laptop 72.55.24.7:59688 Thu Aug 16 12:30:29 2012 1345109429 18 | ROUTING_TABLE b6:1e:b8:d2:2d:b5 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:30:29 2012 1345109429 19 | ROUTING_TABLE 8e:b8:7e:ff:65:4e lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:30:29 2012 1345109429 20 | ROUTING_TABLE 06:e1:36:5e:24:82 alfb-laptop 204.184.94.179:41718 Thu Aug 16 12:30:29 2012 1345109429 21 | ROUTING_TABLE 55:fb:d6:3b:40:ae eijbk-ext-home-laptop 10.3.0.23:61674 Thu Aug 16 12:30:29 2012 1345109429 22 | ROUTING_TABLE 3e:2e:ef:8a:d5:9d aefj-laptop 83.243.114.51:63714 Thu Aug 16 12:30:29 2012 1345109429 23 | ROUTING_TABLE be:91:89:97:5f:22 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:09:28 2012 1345108168 24 | ROUTING_TABLE 1a:6f:e2:52:0b:dc 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 12:30:29 2012 1345109429 25 | ROUTING_TABLE ea:94:a8:70:8b:0e oavk-laptop 10.3.0.55:56466 Thu Aug 16 12:30:29 2012 1345109429 26 | da:38:b0:73:ee:40 lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:05:21 2012 1345107551 27 | ROUTING_TABLE 7e:18:0d:f0:0f:b7 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 11:56:01 2012 1345107361 28 | ROUTING_TABLE d2:62:4e:c7:94:74 ibja-laptop 72.55.24.7:16909 Thu Aug 16 12:30:29 2012 1345109429 29 | GLOBAL_STATS Max bcast/mcast queue length 11 30 | END 31 | -------------------------------------------------------------------------------- /tests/testfiles/broken/broken_3.status: -------------------------------------------------------------------------------- 1 | TITLE OpenVPN 2.1.4 x86_64-unknown-openbsd5.0 [SSL] [LZO2] built on Aug 4 2011 2 | TIME Thu Aug 16 12:30:30 2012 1345109430 3 | HEADER CLIENT_LIST Common Name Real Address Virtual Address Bytes Received Bytes Sent Connected Since Connected Since (time_t) 4 | CLIENT_LIST aefj-laptop 83.243.114.51:63714 10.201.6.55 13483768 22837245 Thu Aug 16 11:55:59 2012 1345107359 5 | CLIENT_LIST 3kjb-laptop 72.55.24.7:60477 10.201.6.58 14460410 10433581 Thu Aug 16 11:56:01 2012 1345107361 6 | CLIENT_LIST eijbk-ext-home-laptop 10.3.0.23:61674 10.201.6.56 7368376 5524424 Thu Aug 16 12:15:27 2012 1345108527 7 | CLIENT_LIST lkbi-laptop 10.3.0.191:53301 10.201.6.54 109197617 101758986 Thu Aug 16 11:55:58 2012 1345107358 8 | CLIENT_LIST ikal-laptop 72.55.24.7:59688 10.201.6.59 13349818 22770930 Thu Aug 16 11:56:01 2012 1345107361 9 | CLIENT_LIST oavk-laptop 10.3.0.55:56466 10.201.6.52 25728412 26288851 Thu Aug 16 11:55:52 2012 1345107352 10 | CLIENT_LIST ibja-laptop 72.55.24.7:16909 10.201.6.61 28005026 22487707 Thu Aug 16 12:14:24 2012 1345108479 11 | CLIENT_LIST lifk-laptop 10.3.0.73:52420 10.201.6.57 323045913 108230182 Thu Aug 16 11:56:00 2012 1345107360 12 | CLIENT_LIST alfb-laptop 204.184.94.179:41718 10.201.6.51 8689702 33241946 Thu Aug 16 11:55:43 2012 1345107343 13 | CLIENT_LIST ekl6-laptop 48.109.171.156:15916 10.201.6.53 6525908 14266028 Thu Aug 16 11:55:54 2012 1345107354 14 | HEADER ROUTING_TABLE Virtual Address Common Name Real Address Last Ref Last Ref (time_t) 15 | ROUTING_TABLE 00:ff:e0:d5:76:ce ekl6-laptop 48.109.171.156:15916 Thu Aug 16 12:30:29 2012 1345109429 16 | ROUTING_TABLE 52:24:2d:3c:73:e4 aefj-laptop 83.243.114.51:63714 Thu Aug 16 11:56:01 2012 1345107361 17 | -------------------------------------------------------------------------------- /tests/testfiles/broken/broken_4.status: -------------------------------------------------------------------------------- 1 | TITLE OpenVPN 2.1.4 x86_64-unknown-openbsd5.0 [SSL] [LZO2] built on Aug 4 2011 2 | TIME Thu Aug 16 12:30:30 3012 1345109430 3 | HEADER CLIENT_LIST Common Name Real Address Virtual Address Bytes Received Bytes Sent Connected Since Connected Since (time_t) 4 | CLIENT_LIST aefj-laptop 83.243.114.51:63714 10.201.6.55 13483768 22837245 Thu Aug 16 11:55:59 2012 1345107359 5 | CLIENT_LIST 3kjb-laptop 72.55.24.7:60477 10.201.6.58 14460410 10433581 Thu Aug 16 11:56:01 2012 1345107361 6 | CLIENT_LIST eijbk-ext-home-laptop 10.3.0.23:61674 10.201.6.56 7368376 5524424 Thu Aug 16 12:15:27 2012 1345108527 7 | CLIENT_LIST lkbi-laptop 10.3.0.191:53301 10.201.6.54 109197617 101758986 Thu Aug 16 11:55:58 2012 1345107358 8 | CLIENT_LIST ikal-laptop 72.55.24.7:59688 10.201.6.59 13349818 22770930 Thu Aug 16 11:56:01 2012 1345107361 9 | CLIENT_LIST oavk-laptop 10.3.0.55:56466 10.201.6.52 25728412 26288851 Thu Aug 16 11:55:52 2012 1345107352 10 | CLIENT_LIST ibja-laptop 72.55.24.7:16909 10.201.6.61 28005026 22487707 Thu Aug 16 12:14:24 2012 1345108479 11 | CLIENT_LIST lifk-laptop 10.3.0.73:52420 10.201.6.57 323045913 108230182 Thu Aug 16 11:56:00 2012 1345107360 12 | CLIENT_LIST alfb-laptop 204.184.94.179:41718 10.201.6.51 8689702 33241946 Thu Aug 16 11:55:43 2012 1345107343 13 | CLIENT_LIST ekl6-laptop 48.109.171.156:15916 10.201.6.53 6525908 14266028 Thu Aug 16 11:55:54 2012 1345107354 14 | HEADER ROUTING_TABLE Virtual Address Common Name Real Address Last Ref Last Ref (time_t) invalid 15 | ROUTING_TABLE 00:ff:e0:d5:76:ce ekl6-laptop 48.109.171.156:15916 Thu Aug 16 12:30:29 2012 1345109429 16 | ROUTING_TABLE 52:24:2d:3c:73:e4 aefj-laptop 83.243.114.51:63714 Thu Aug 16 11:56:01 2012 1345107361 17 | ROUTING_TABLE c2:bf:18:5e:bc:29 ikal-laptop 72.55.24.7:59688 Thu Aug 16 12:30:29 2012 1345109429 18 | ROUTING_TABLE b6:1e:b8:d2:2d:b5 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:30:29 2012 1345109429 19 | ROUTING_TABLE 8e:b8:7e:ff:65:4e lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:30:29 2012 1345109429 20 | ROUTING_TABLE 06:e1:36:5e:24:82 alfb-laptop 204.184.94.179:41718 Thu Aug 16 12:30:29 2012 1345109429 21 | ROUTING_TABLE 55:fb:d6:3b:40:ae eijbk-ext-home-laptop 10.3.0.23:61674 Thu Aug 16 12:30:29 2012 1345109429 22 | ROUTING_TABLE 3e:2e:ef:8a:d5:9d aefj-laptop 83.243.114.51:63714 Thu Aug 16 12:30:29 2012 1345109429 23 | ROUTING_TABLE be:91:89:97:5f:22 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:09:28 2012 1345108168 24 | ROUTING_TABLE 1a:6f:e2:52:0b:dc 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 12:30:29 2012 1345109429 25 | ROUTING_TABLE ea:94:a8:70:8b:0e oavk-laptop 10.3.0.55:56466 Thu Aug 16 12:30:29 2012 1345109429 26 | ROUTING_TABLE da:38:b0:73:ee:40 lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:05:21 2012 1345107551 27 | ROUTING_TABLE 7e:18:0d:f0:0f:b7 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 11:56:01 2012 1345107361 28 | ROUTING_TABLE d2:62:4e:c7:94:74 ibja-laptop 72.55.24.7:16909 Thu Aug 16 12:30:29 2012 1345109429 29 | GLOBAL_STATS Max bcast/mcast queue length 11 30 | END 31 | -------------------------------------------------------------------------------- /tests/testfiles/broken/broken_5.status: -------------------------------------------------------------------------------- 1 | TITLE OpenVPN 2.1.4 x86_64-unknown-openbsd5.0 [SSL] [LZO2] built on Aug 4 2011 2 | TIME Thu Aug 16 12:30:30 2012 1345109430 3 | HEADER CLIENT_LIST Common Name Real Address Virtual Address Bytes Received Bytes Sent Connected Since Connected Since (time_t) 4 | CLIENT_LIST aefj-laptop 83.243.114.51:63714 10.201.6.55 13483768 22837245 Thu Aug 16 11:55:59 2012 1345107359 5 | CLIENT_LIST 3kjb-laptop 72.55.24.7:60477 10.201.6.58 14460410 10433581 Thu Aug 16 11:56:01 2012 1345107361 6 | CLIENT_LIST eijbk-ext-home-laptop 10.3.0.23:61674 10.201.6.56 7368376 5524424 Thu Aug 16 12:15:27 2012 1345108527 7 | CLIENT_LIST lkbi-laptop 10.3.0.191:53301 10.201.6.54 109197617 101758986 Thu Aug 16 11:55:58 2012 1345107358 8 | CLIENT_LIST ikal-laptop 72.55.24.7:59688 10.201.6.59 13349818 22770930 Thu Aug 16 11:56:01 2012 1345107361 9 | CLIENT_LIST oavk-laptop 10.3.0.55:56466 10.201.6.52 25728412 26288851 Thu Aug 16 11:55:52 2012 1345107352 10 | CLIENT_LIST 72.55.24.7:16909 10.201.6.61 28005026 22487707 Thu Aug 16 12:14:24 2012 1345108479 11 | CLIENT_LIST lifk-laptop 10.3.0.73:52420 10.201.6.57 323045913 108230182 Thu Aug 16 11:56:00 2012 1345107360 12 | CLIENT_LIST alfb-laptop 204.184.94.179:41718 10.201.6.51 8689702 33241946 Thu Aug 16 11:55:43 2012 1345107343 13 | CLIENT_LIST ekl6-laptop 48.109.171.156:15916 10.201.6.53 6525908 14266028 Thu Aug 16 11:55:54 2012 1345107354 14 | HEADER ROUTING_TABLE Virtual Address Common Name Real Address Last Ref Last Ref (time_t) 15 | ROUTING_TABLE 00:ff:e0:d5:76:ce ekl6-laptop 48.109.171.156:15916 Thu Aug 16 12:30:29 2012 1345109429 16 | ROUTING_TABLE 52:24:2d:3c:73:e4 aefj-laptop 83.243.114.51:63714 Thu Aug 16 11:56:01 2012 1345107361 17 | ROUTING_TABLE c2:bf:18:5e:bc:29 ikal-laptop 72.55.24.7:59688 Thu Aug 16 12:30:29 2012 1345109429 18 | ROUTING_TABLE b6:1e:b8:d2:2d:b5 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:30:29 2012 1345109429 19 | ROUTING_TABLE 8e:b8:7e:ff:65:4e lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:30:29 2012 1345109429 20 | ROUTING_TABLE 06:e1:36:5e:24:82 alfb-laptop 204.184.94.179:41718 Thu Aug 16 12:30:29 2012 1345109429 21 | ROUTING_TABLE 55:fb:d6:3b:40:ae eijbk-ext-home-laptop 10.3.0.23:61674 Thu Aug 16 12:30:29 2012 1345109429 22 | ROUTING_TABLE 3e:2e:ef:8a:d5:9d aefj-laptop 83.243.114.51:63714 Thu Aug 16 12:30:29 2012 1345109429 23 | ROUTING_TABLE be:91:89:97:5f:22 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:09:28 2012 1345108168 24 | ROUTING_TABLE 1a:6f:e2:52:0b:dc 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 12:30:29 2012 1345109429 25 | ROUTING_TABLE ea:94:a8:70:8b:0e oavk-laptop 10.3.0.55:56466 Thu Aug 16 12:30:29 2012 1345109429 26 | ROUTING_TABLE da:38:b0:73:ee:40 lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:05:21 2012 1345107551 27 | ROUTING_TABLE 7e:18:0d:f0:0f:b7 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 11:56:01 2012 1345107361 28 | ROUTING_TABLE d2:62:4e:c7:94:74 ibja-laptop 72.55.24.7:16909 Thu Aug 16 12:30:29 2012 1345109429 29 | GLOBAL_STATS Max bcast/mcast queue length 11 30 | END 31 | -------------------------------------------------------------------------------- /tests/testfiles/broken/broken_6.status: -------------------------------------------------------------------------------- 1 | TITLE OpenVPN 2.1.4 x86_64-unknown-openbsd5.0 [SSL] [LZO2] built on Aug 4 2011 2 | TIME Thu Aug 16 12:30:30 2012 1345109430 3 | HEADER CLIENT_LIST Common Name Real Address Virtual Address Bytes Received Bytes Sent Connected Since Connected Since (time_t) 4 | CLIENT_LIST aefj-laptop 83.243.114.51:63714 10.201.6.55 13483768 22837245 Thu Aug 16 11:55:59 2012 1345107359 5 | CLIENT_LIST 3kjb-laptop 72.55.24.7:60477 10.201.6.58 14460410 10433581 Thu Aug 16 11:56:01 2012 1345107361 6 | CLIENT_LIST eijbk-ext-home-laptop 10.3.0.23:61674 10.201.6.56 7368376 5524424 Thu Aug 16 12::27 2012 1345108527 7 | CLIENT_LIST lkbi-laptop 10.3.0.191:53301 10.201.6.54 109197617 101758986 Thu Aug 16 11:55:58 2012 1345107358 8 | CLIENT_LIST ikal-laptop 72.55.24.7:59688 10.201.6.59 13349818 22770930 Thu Aug 16 11:56:01 2012 1345107361 9 | CLIENT_LIST oavk-laptop 10.3.0.55:56466 10.201.6.52 25728412 26288851 Thu Aug 16 11:55:52 2012 1345107352 10 | CLIENT_LIST ibja-laptop 72.55.24.7:16909 10.201.6.61 28005026 22487707 Thu Aug 16 12:14:24 2012 1345108479 11 | CLIENT_LIST lifk-laptop 10.3.0.73:52420 10.201.6.57 323045913 108230182 Thu Aug 16 11:56:00 2012 1345107360 12 | CLIENT_LIST alfb-laptop 204.184.94.179:41718 10.201.6.51 8689702 33241946 Thu Aug 16 11:55:43 2012 1345107343 13 | CLIENT_LIST ekl6-laptop 48.109.171.156:15916 10.201.6.53 6525908 14266028 Thu Aug 16 11:55:54 2012 1345107354 14 | HEADER ROUTING_TABLE Virtual Address Common Name Real Address Last Ref Last Ref (time_t) 15 | ROUTING_TABLE 00:ff:e0:d5:76:ce ekl6-laptop 48.109.171.156:15916 Thu Aug 16 12:30:29 2012 1345109429 16 | ROUTING_TABLE 52:24:2d:3c:73:e4 aefj-laptop 83.243.114.51:63714 Thu Aug 16 11:56:01 2012 1345107361 17 | ROUTING_TABLE c2:bf:18:5e:bc:29 ikal-laptop 72.55.24.7:59688 Thu Aug 16 12:30:29 2012 1345109429 18 | ROUTING_TABLE b6:1e:b8:d2:2d:b5 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:30:29 2012 1345109429 19 | ROUTING_TABLE 8e:b8:7e:ff:65:4e lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:30:29 2012 29 20 | ROUTING_TABLE 06:e1:36:5e:24:82 alfb-laptop 204.184.94.179:41718 Thu Aug 16 12:30:29 2012 1345109429 21 | ROUTING_TABLE 55:fb:d6:3b:40:ae eijbk-ext-home-laptop 10.3.0.23:61674 Thu Aug 16 12:30:29 2012 1345109429 22 | ROUTING_TABLE 3e:2e:ef:8a:d5:9d aefj-laptop 83.243.114.51:63714 Thu Aug 16 12:30:29 2012 1345109429 23 | ROUTING_TABLE be:91:89:97:5f:22 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:09:28 2012 1345108168 24 | ROUTING_TABLE 1a:6f:e2:52:0b:dc 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 12:30:29 2012 1345109429 25 | ROUTING_TABLE ea:94:a8:70:8b:0e oavk-laptop 10.3.0.55:56466 Thu Aug 16 12:30:29 2012 1345109429 26 | ROUTING_TABLE da:38:b0:73:ee:40 lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:05:21 2012 1345107551 27 | ROUTING_TABLE 7e:18:0d:f0:0f:b7 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 11:56:01 2012 1345107361 28 | ROUTING_TABLE d2:62:4e:c7:94:74 ibja-laptop 72.55.24.7:16909 Thu Aug 16 12:30:29 2012 1345109429 29 | GLOBAL_STATS Max bcast/mcast queue length 11 30 | END 31 | -------------------------------------------------------------------------------- /tests/testfiles/broken/broken_7.status: -------------------------------------------------------------------------------- 1 | TITLE OpenVPN 2.1.4 x86_64-unknown-openbsd5.0 [SSL] [LZO2] built on Aug 4 2011 2 | TIME Thu Aug 16 12:30:30 2012 1345109430 3 | HEADER CLIENT_LIST Common Name Real Address Virtual Address Bytes Received Bytes Sent Connected Since Connected Since (time_t) 4 | CLIENT_LIST aefj-laptop 83.243.114.51:63714 10.201.6.55 13483768 22837245 Thu Aug 16 11:55:59 2012 1345107359 5 | CLIENT_LIST 3kjb-laptop 72.55.24.7:60477 10.201.6.58 14460410 10433581 Thu Aug 16 11:56:01 2012 1345107361 6 | LIENT_LIST eijbk-ext-home-laptop 10.3.0.23:61674 10.201.6.56 7368376 5524424 Thu Aug 16 12:15:27 2012 1345108527 7 | CLIENT_LIST lkbi-laptop 10.3.0.191:53301 10.201.6.54 109197617 101758986 Thu Aug 16 11:55:58 2012 1345107358 8 | CLIENT_LIST ikal-laptop 72.55.24.7:59688 10.201.6.59 13349818 22770930 Thu Aug 16 11:56:01 2012 1345107361 9 | CLIENT_LIST oavk-laptop 10.3.0.55:56466 10.201.6.52 25728412 26288851 Thu Aug 16 11:55:52 2012 1345107352 10 | CLIENT_LIST ibja-laptop 72.55.24.7:16909 10.201.6.61 28005026 22487707 Thu Aug 16 12:14:24 2012 1345108479 11 | CLIENT_LIST lifk-laptop 10.3.0.73:52420 10.201.6.57 323045913 108230182 Thu Aug 16 11:56:00 2012 1345107360 12 | CLIENT_LIST alfb-laptop 204.184.94.179:41718 10.201.6.51 8689702 33241946 Thu Aug 16 11:55:43 2012 1345107343 13 | CLIENT_LIST ekl6-laptop 48.109.171.156:15916 10.201.6.53 6525908 14266028 Thu Aug 16 11:55:54 2012 1345107354 14 | HEADER ROUTING_TABLE Virtual Address Common Name Real Address Last Ref Last Ref (time_t) 15 | ROUTING_TABLE 00:ff:e0:d5:76:ce ekl6-laptop 48.109.171.156:15916 Thu Aug 16 12:30:29 2012 1345109429 16 | ROUTING_TABLE 52:24:2d:3c:73:e4 aefj-laptop 83.243.114.51:63714 Thu Aug 16 11:56:01 2012 1345107361 17 | ROUTING_TABLE c2:bf:18:5e:bc:29 ikal-laptop 72.55.24.7:59688 Thu Aug 16 12:30:29 2012 1345109429 18 | ROUTING_TABLE b6:1e:b8:d2:2d:b5 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:30:29 2012 1345109429 19 | ROUTING_TABLE 8e:b8:7e:ff:65:4e lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:30:29 2012 1345109429 20 | ROUTING_TABLE 06:e1:36:5e:24:82 alfb-laptop 204.184.94.179:41718 Thu Aug 16 12:30:29 2012 1345109429 21 | ROUTING_TABLE 55:fb:d6:3b:40:ae eijbk-ext-home-laptop 10.3.0.23:61674 Thu Aug 16 12:30:29 2012 1345109429 22 | ROUTING_TABLE 3e:2e:ef:8a:d5:9d aefj-laptop 83.243.114.51:63714 Thu Aug 16 12:30:29 2012 1345109429 23 | ROUTING_TABLE be:91:89:97:5f:22 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:09:28 2012 1345108168 24 | ROUTING_TABLE 1a:6f:e2:52:0b:dc 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 12:30:29 2012 1345109429 25 | ROUTING_TABLE ea:94:a8:70:8b:0e oavk-laptop 10.3.0.55:56466 Thu Aug 16 12:30:29 2012 1345109429 26 | ROUTING_TABLE da:38:b0:73:ee:40 lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:05:21 2012 1345107551 27 | ROUTING_TABLE 7e:18:0d:f0:0f:b7 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 11:56:01 2012 1345107361 28 | ROUTING_TABLE d2:62:4e:c7:94:74 ibja-laptop 72.55.24.7:16909 Thu Aug 16 12:30:29 2012 1345109429 29 | GLOBAL_STATS Max bcast/mcast queue length 11 30 | END 31 | -------------------------------------------------------------------------------- /tests/testfiles/broken/broken_8.status: -------------------------------------------------------------------------------- 1 | TITLE OpenVPN 2.1.4 x86_64-unknown-openbsd5.0 [SSL] [LZO2] built on Aug 4 2011 2 | TIME Thu Aug 16 12:30:30 2012 1345109430 3 | HEADER CLIENT_LIST Common Name Real Address Virtual Address Bytes Received Bytes Sent Connected Since Connected Since (time_t) 4 | CLIENT_LIST aefj-laptop 83.243.114.51:63714 10.201.6.55 13483768 22837245 Thu Aug 16 11:55:59 2012 1345107359 5 | CLIENT_LIST 3kjb-laptop 72.55.24.7:60477 10.201.6.58 14460410 10433581 Thu Aug 16 11:56:01 2012 1345107361 6 | CLIENT_LIST eijbk-ext-home-laptop 10.3.0.23:61674 10.201.6.56 7368376 5524424 Thu Aug 16 12:15:27 2012 1345108527 7 | CLIENT_LIST lkbi-laptop 10.3.0.191:53301 10.201.6.54 109197617 101758986 Thu Aug 16 11:55:58 2012 1345107358 8 | CLIENT_LIST ikal-laptop 72.55.24.7:59688 10.201.6.59 13349818 22770930 Thu Aug 16 11:56:01 2012 1345107361 9 | CLIENT_LIST oavk-laptop 10.3.0.55:56466 10.201.6.52 25728412 26288851 Thu Aug 16 11:55:52 2012 1345107352 10 | CLIENT_LIST ibja-laptop 72.55.24.7:16909 10.201.6.61 28005026 22487707 Thu Aug 16 12:14:24 2012 1345108479 11 | CLIENT_LIST lifk-laptop 10.3.0.73:52420 10.201.6.57 323045913 108230182 Thu Aug 16 11:56:00 2012 1345107360 12 | CLIENT_LIST alfb-laptop 204.184.94.179:41718 10.201.6.51 8689702 33241946 Thu Aug 16 11:55:43 2012 1345107343 13 | CLIENT_LIST ekl6-laptop 48.109.171.156:15916 10.201.6.53 6525908 14266028 Thu Aug 16 11:55:54 2012 1345107354 14 | HEDER ROUTING_TABLE irtual Address Common Name Real Address Last Ref Last Ref (time_t) 15 | ROUTING_TABLE 00:ff:e0:d5:76:ce ekl6-laptop 48.109.171.156:15916 Thu Aug 16 12:30:29 2012 1345109429 16 | ROUTING_TABLE 52:24:2d:3c:73:e4 aefj-laptop 83.243.114.51:63714 Thu Aug 16 11:56:01 2012 1345107361 17 | ROUTING_TABLE c2:bf:18:5e:bc:29 ikal-laptop 72.55.24.7:59688 Thu Aug 16 12:30:29 2012 1345109429 18 | ROUTING_TABLE b6:1e:b8:d2:2d:b5 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:30:29 2012 1345109429 19 | ROUTING_TABLE 8e:b8:7e:ff:65:4e lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:30:29 2012 1345109429 20 | ROUTING_TABLE 06:e1:36:5e:24:82 alfb-laptop 204.184.94.179:41718 Thu Aug 16 12:30:29 2012 1345109429 21 | ROUTING_TABLE 55:fb:d6:3b:40:ae eijbk-ext-home-laptop 10.3.0.23:61674 Thu Aug 16 12:30:29 2012 1345109429 22 | ROUTING_TABLE 3e:2e:ef:8a:d5:9d aefj-laptop 83.243.114.51:63714 Thu Aug 16 12:30:29 2012 1345109429 23 | ROUTING_TABLE be:91:89:97:5f:22 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:09:28 2012 1345108168 24 | ROUTING_TABLE 1a:6f:e2:52:0b:dc 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 12:30:29 2012 1345109429 25 | ROUTING_TABLE ea:94:a8:70:8b:0e oavk-laptop 10.3.0.55:56466 Thu Aug 16 12:30:29 2012 1345109429 26 | ROUTING_TABLE da:38:b0:73:ee:40 lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:05:21 2012 1345107551 27 | ROUTING_TABLE 7e:18:0d:f0:0f:b7 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 11:56:01 2012 1345107361 28 | ROUTING_TABLE d2:62:4e:c7:94:74 ibja-laptop 72.55.24.7:16909 Thu Aug 16 12:30:29 2012 1345109429 29 | GLOBAL_STATS Max bcast/mcast queue length 11 30 | END 31 | -------------------------------------------------------------------------------- /tests/testfiles/broken/broken_9.status: -------------------------------------------------------------------------------- 1 | TITLE OpenVPN 2.1.4 x86_64-unknown-openbsd5.0 [SSL] [LZO2] built on Aug 4 2011 2 | TIME Thu Aug 16 12:30:30 2012 1345109430 3 | HEADER CLIENT_LIST Common Name Real Address Virtual Address Bytes Received Bytes Sent Connected Since Connected Since (time_t) 4 | CLIENT_LIST aefj-laptop 83.243.114.51:63714 10.201.6.55 13483768 22837245 Thu Aug 16 11:55:59 2012 1345107359 5 | CLIENT_LIST 3kjb-laptop 72.55.24.7:60477 10.201.6.58 14460410 10433581 Thu Aug 16 11:56:01 2012 1345107361 6 | CLIENT_LIST eijbk-ext-home-laptop 10.3.0.23:61674 10.201.6.56 7368376 5524424 Thu Aug 16 12:15:27 2012 1345108527 7 | CLIENT_LIST lkbi-laptop 10.3.0.191:53301 10.201.6.54 109197617 101758986 Thu Aug 16 11:55:58 2012 1345107358 8 | CLIENT_LIST ikal-laptop 72.55.24.7:59688 10.201.6.59 13349818 22770930 Thu Aug 16 11:56:01 2012 1345107361 9 | CLIENT_LIST oavk-laptop 10.3.0.55:56466 10.201.6.52 25728412 26288851 Thu Aug 16 11:55:52 2012 1345107352 10 | CLIENT_LIST ibja-laptop 72.55.24.7:16909 10.201.6.61 28005026 22487707 Thu Aug 16 12:14:24 2012 1345108479 11 | CLIENT_LIST lifk-laptop 10.3.0.73:52420 10.201.6.57 323045913 108230182 Thu Aug 16 11:56:00 2012 1345107360 12 | CLIENT_LIST alfb-laptop 204.184.94.179:41718 10.201.6.51 8689702 33241946 Thu Aug 16 11:55:43 2012 1345107343 13 | CLIENT_LIST ekl6-laptop 48.109.171.156:15916 10.201.6.53 6525908 14266028 Thu Aug 16 11:55:54 2012 1345107354 14 | HEADER ROUTING_TABLE Virtual Address Common Name Real Address Last Ref Last Ref (time_t) 15 | ROUTING_TABLE 00:ff:e0:d5:76:ce ekl6-laptop 48.109.171.156:15916 Thu Aug 16 12:30:29 2012 1345109429 16 | ROUTING_TABLE 52:24:2d:3c:73:e4 aefj-laptop 83.243.114.51:63714 Thu Aug 16 11:56:01 2012 1345107361 17 | ROUTING_TABLE c2:bf:18:5e:bc:29 ikal-laptop 72.55.24.7:59688 Thu Aug 16 12:30:29 2012 1345109429 18 | ROUTING_TABLE b6:1e:b8:d2:2d:b5 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:30:29 2012 1345109429 19 | ROUTING_TABLE 8e:b8:7e:ff:65:4e lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:30:29 2012 1345109429 20 | ROUTING_TABLE 06:e1:36:5e:24:82 alfb-laptop 204.184.94.179:41718 12:30:29 2012 21 | ROUTING_TABLE 55:fb:d6:3b:40:ae eijbk-ext-home-laptop 10.3.0.23:61674 Thu Aug 16 12:30:29 2012 1345109429 22 | ROUTING_TABLE 3e:2e:ef:8a:d5:9d aefj-laptop 83.243.114.51:63714 Thu Aug 16 12:30:29 2012 1345109429 23 | ROUTING_TABLE be:91:89:97:5f:22 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:09:28 2012 1345108168 24 | ROUTING_TABLE 1a:6f:e2:52:0b:dc 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 12:30:29 2012 1345109429 25 | ROUTING_TABLE ea:94:a8:70:8b:0e oavk-laptop 10.3.0.55:56466 Thu Aug 16 12:30:29 2012 1345109429 26 | ROUTING_TABLE da:38:b0:73:ee:40 lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:05:21 2012 1345107551 27 | ROUTING_TABLE 7e:18:0d:f0:0f:b7 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 11:56:01 2012 1345107361 28 | ROUTING_TABLE d2:62:4e:c7:94:74 ibja-laptop 72.55.24.7:16909 Thu Aug 16 12:30:29 2012 1345109429 29 | GLOBAL_STATS Max bcast/mcast queue length 11 30 | END 31 | -------------------------------------------------------------------------------- /tests/testfiles/valid/valid_1.status: -------------------------------------------------------------------------------- 1 | TITLE OpenVPN 2.1.4 x86_64-unknown-openbsd5.0 [SSL] [LZO2] built on Aug 4 2011 2 | TIME Thu Aug 16 12:30:30 2012 1345109430 3 | HEADER CLIENT_LIST Common Name Real Address Virtual Address Bytes Received Bytes Sent Connected Since Connected Since (time_t) 4 | CLIENT_LIST aefj-laptop 83.243.114.51:63714 10.201.6.55 13483768 22837245 Thu Aug 16 11:55:59 2012 1345107359 5 | CLIENT_LIST 3kjb-laptop 72.55.24.7:60477 10.201.6.58 14460410 10433581 Thu Aug 16 11:56:01 2012 1345107361 6 | CLIENT_LIST eijbk-ext-home-laptop 10.3.0.23:61674 10.201.6.56 7368376 5524424 Thu Aug 16 12:15:27 2012 1345108527 7 | CLIENT_LIST lkbi-laptop 10.3.0.191:53301 10.201.6.54 109197617 101758986 Thu Aug 16 11:55:58 2012 1345107358 8 | CLIENT_LIST ikal-laptop 72.55.24.7:59688 10.201.6.59 13349818 22770930 Thu Aug 16 11:56:01 2012 1345107361 9 | CLIENT_LIST oavk-laptop 10.3.0.55:56466 10.201.6.52 25728412 26288851 Thu Aug 16 11:55:52 2012 1345107352 10 | CLIENT_LIST ibja-laptop 72.55.24.7:16909 10.201.6.61 28005026 22487707 Thu Aug 16 12:14:24 2012 1345108479 11 | CLIENT_LIST lifk-laptop 10.3.0.73:52420 10.201.6.57 323045913 108230182 Thu Aug 16 11:56:00 2012 1345107360 12 | CLIENT_LIST alfb-laptop 204.184.94.179:41718 10.201.6.51 8689702 33241946 Thu Aug 16 11:55:43 2012 1345107343 13 | CLIENT_LIST ekl6-laptop 48.109.171.156:15916 10.201.6.53 6525908 14266028 Thu Aug 16 11:55:54 2012 1345107354 14 | HEADER ROUTING_TABLE Virtual Address Common Name Real Address Last Ref Last Ref (time_t) 15 | ROUTING_TABLE 00:ff:e0:d5:76:ce ekl6-laptop 48.109.171.156:15916 Thu Aug 16 12:30:29 2012 1345109429 16 | ROUTING_TABLE 52:24:2d:3c:73:e4 aefj-laptop 83.243.114.51:63714 Thu Aug 16 11:56:01 2012 1345107361 17 | ROUTING_TABLE c2:bf:18:5e:bc:29 ikal-laptop 72.55.24.7:59688 Thu Aug 16 12:30:29 2012 1345109429 18 | ROUTING_TABLE b6:1e:b8:d2:2d:b5 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:30:29 2012 1345109429 19 | ROUTING_TABLE 8e:b8:7e:ff:65:4e lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:30:29 2012 1345109429 20 | ROUTING_TABLE 06:e1:36:5e:24:82 alfb-laptop 204.184.94.179:41718 Thu Aug 16 12:30:29 2012 1345109429 21 | ROUTING_TABLE 55:fb:d6:3b:40:ae eijbk-ext-home-laptop 10.3.0.23:61674 Thu Aug 16 12:30:29 2012 1345109429 22 | ROUTING_TABLE 3e:2e:ef:8a:d5:9d aefj-laptop 83.243.114.51:63714 Thu Aug 16 12:30:29 2012 1345109429 23 | ROUTING_TABLE be:91:89:97:5f:22 lkbi-laptop 10.3.0.191:53301 Thu Aug 16 12:09:28 2012 1345108168 24 | ROUTING_TABLE 1a:6f:e2:52:0b:dc 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 12:30:29 2012 1345109429 25 | ROUTING_TABLE ea:94:a8:70:8b:0e oavk-laptop 10.3.0.55:56466 Thu Aug 16 12:30:29 2012 1345109429 26 | ROUTING_TABLE da:38:b0:73:ee:40 lifk-laptop 10.3.0.73:52420 Thu Aug 16 12:05:21 2012 1345107551 27 | ROUTING_TABLE 7e:18:0d:f0:0f:b7 3kjb-laptop 72.55.24.7:60477 Thu Aug 16 11:56:01 2012 1345107361 28 | ROUTING_TABLE d2:62:4e:c7:94:74 ibja-laptop 72.55.24.7:16909 Thu Aug 16 12:30:29 2012 1345109429 29 | GLOBAL_STATS Max bcast/mcast queue length 11 30 | END 31 | -------------------------------------------------------------------------------- /tests/testfiles/valid/valid_2.status: -------------------------------------------------------------------------------- 1 | TITLE OpenVPN 2.1.4 x86_64-unknown-openbsd5.0 [SSL] [LZO2] built on Aug 4 2011 2 | TIME Thu Aug 16 12:30:30 2012 1345109430 3 | HEADER CLIENT_LIST Common Name Real Address Virtual Address Bytes Received Bytes Sent Connected Since Connected Since (time_t) 4 | HEADER ROUTING_TABLE Virtual Address Common Name Real Address Last Ref Last Ref (time_t) 5 | GLOBAL_STATS Max bcast/mcast queue length 11 6 | END 7 | --------------------------------------------------------------------------------