Tasks that I’ve got in mind at the moment:
I’ve started implementing IPv6 support in the backend of tollgate in a seperate branch. At the moment it’s got some basic backend support but I haven’t implemented the frontend code just yet (or the scanning module for ipv6). There’s some stuff to consider though:
This is a fairly general task, anyone can pick this up. Particularly a step-by-step installation guide would be helpful, or some sort of bootstrap script so you can put that on a system, it pulls deps and then the git repo.
This has been now started in the form of the tollgatebuilder project: https://github.com/micolous/tollgatebuilder
There’s no test cases, we probably should have some.
Started an Esperanto translation of the project a while ago, haven’t really touched it since. Many strings aren’t in the translation files, and the setup of where the strings actually are could be improved a lot, because it’s a mess.
I’d like to see this software ported to non-Linux systems. I’ve done some preliminary research that’s come up empty as yet as to operating systems with firewalls that meet all of the following requirements for tollgate’s backend to work properly.
The majority of the work you’d need to do in porting the software is in the backend. There’s a little bit of Linux-specific frontend code to print out the contents of the ARP table. All the backend is setup in a way that it calls from the frontend are abstracted away from iptables.
Before you start work porting it to a new operating system, please consider the following list of requirements. If you can’t get it to do everything in this list, then tollgate won’t work.
TODO: Finish writing this.
This is how a packet is handled inside tollgate when running on Linux.
All the patch management for the project is handled via the GitHub project. Please file a pull request using the GitHub interface.
As for coding “style”, we use mostly follow PEP-8, with the exception that we use tabs instead of spaces. Anything that is thrown as an error by the pep8 tool should be fixed.
We target Python 2.6 and 2.7, and Django 1.2 - 1.4.
Please make sure that any platform-specific (Linux) code you write has a fallback for development on non-Linux systems. There’s a platform support module in frontend for this. backend doesn’t matter – that should only ever work on platforms that actually are supported.
Never include any project files in the source tree, or any editor-specific garbage in the headers of files.
Port forwarding doesn’t work correctly when the internal and external ports are different.
There’s no way to deregister a console from an account that hasn’t signed in to the current event. (ie: Previous event the console is marked as being owned by user X, next event user Y can’t sign it in because user X hasn’t attended)