<commit_before>### What is OpenVPN?###

OpenVPN  is  a robust and highly flexible VPN daemon.  OpenVPN supports  SSL/TLS security,  ethernet  bridging,  TCP  or  UDP  tunnel  transport through  proxies  or  NAT,  support  for dynamic IP addresses and DHCP, scalability to hundreds or thousands of users, and portability to  most major OS platforms.

OpenVPN  is  tightly  bound to the OpenSSL library, and derives much of its crypto capabilities from it.

### What is OpenVPN Event Viewer?###

OpenVPN Event Viewer offers a human readable format of the open vpn connection logs.

###--client-connect script ### - Run script on client connection
###--client-disconnect ###– Run script on client instance shutdown.


### Tech Stack ###

* Asp.NET Web API
* RavenDB
* Python<commit_msg>README.md edited online with Bitbucket<commit_after>### What is OpenVPN?###

OpenVPN  is  a robust and highly flexible VPN daemon.  OpenVPN supports  SSL/TLS security,  ethernet  bridging,  TCP  or  UDP  tunnel  transport through  proxies  or  NAT,  support  for dynamic IP addresses and DHCP, scalability to hundreds or thousands of users, and portability to  most major OS platforms.

OpenVPN  is  tightly  bound to the OpenSSL library, and derives much of its crypto capabilities from it.

### What is OpenVPN Event Viewer?###

OpenVPN Event Viewer offers a human readable format of the open vpn connection logs.


### How does it work?###

 OpenVPN allows any option to be placed either on the command line or in a configuration file. To intercept the client's connection and disconnections we have to use the following options:

###--client-connect script ### - Run script on client connection
###--client-disconnect ###– Run script on client instance shutdown.

For this to work, you have to add the following lines in you openvpn server config file:

script-security 2

--client-connect "client-connect.bat"

--client-disconnect "client-disconnect.bat"



### Tech Stack ###

* Asp.NET Web API
* RavenDB
* Python
{'fraction_non_alphanumeric': 0.07115009746588694, 'fraction_numerical': 0.0004873294346978557, 'mean_word_length': 3.5825892857142856, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1386735', 'n_tokens_mistral': 608, 'n_tokens_neox': 559, 'n_words': 275}