• You are losing out on amazing benefits because you are not a member. Join for free. Register now.
  • Big Two-Day Giveaway - Win an Amazon Kindle, a Mystery Gadget and Branded Gear. Enter Here.
  • Test your broadband speed and win prizes worth R5,000. Enter here.

Testbunnies required for my app similar to RouteSentry

Pada

Executive Member
Joined
Feb 18, 2009
Messages
8,165
#1
Traffic Splitter app (like RouteSentry)

I've written an application (in C# Express 2008) to split traffic for Windows users, which works much like RouteSentry. It works on Windows XP SP2 and newer versions of Windows, including Windows 7 x64.
My aim was to create something like RouteSentry, but without all the shortcomings and problems that exist due to RouteSentry.
Project home: http://code.google.com/p/traffic-splitter/

Latest version, Traffic Splitter Beta 6.17:Setup guide for older version (Beta 6.6): http://gaming.do.co.za/articles/localnews/traffic_splitter_lowers_bandwidth_cost.htm * The guide should apply to all newer versions too.
Screenshots: Main tab, Options tab, Statistics tab & DynDNS tab
Changelog: http://traffic-splitter.googlecode.com/files/changelog.txt

Features:
  • Splitting traffic of international/local/auxilary accounts
  • Easy updating of list of local routes (since Beta 4)
  • Quick testing of international & local IP addresses (since Beta 5.2)
  • Statistics per interface (since Beta 6.3)
  • Dynamic DNS updater for local account (since Beta 6.10)

Prerequisites:
  • Microsoft .NET Framework 2.0 & Windows Installer 3.1 (or newer) are required for the application to run - both of which are included by default in Windows Vista & 7
    .Net Framework 2.0 (22.4MB) can be downloaded locally from this link.
    .Net Framework 3.5 SP1 (231.5MB) can be downloaded locally from this link.
  • The application requires administrative privileges to manipulate the routing table. The application would request administrative privileges if it doesn't have.
  • If you want to have more than 1 PPPoE connection to be connected at the same time, then you need to have to:

Nice to have:
Credits:List of known issues with Beta 6.17:
  1. Sometimes the setup is unable to update the version, giving the following error: "You cannot start application Traffic Splitter Beta from this location because it is already installed from a different location"
    Solution A: Move the setup to the location where you've run the setup from in the first place
    Solution B: Uninstall the old Traffic Splitter version first from Add/Remove programs and then run the new setup from any desired folder
  2. No automatic updates, although it does have a button to check for updates
  3. No documentation
  4. Persistent routes not supported yet
  5. [-]Critical: The adapters' state doesn't always update automatically, resulting in TS not automatically reconnecting.[/-]
    Resolved: Implemented a timer to frequently update the adapters' states, instead of simply relying on the RasDial ConnectionWatcher.
  6. [-]Critical: The implementation of the timer (see issue above) resulted in my application using considerable memory after a while (like a couple of KB/s).[/-]
    Resolved: Fixed memory leak in IpxConfig library (that I'm using to get the network interface information from), which existed from the first beta versions!
 
Last edited:

Gnome

Executive Member
Joined
Sep 19, 2005
Messages
5,579
#2
Good work, it's about time someone wrote a replacement for RouteSentry (no offense to Antib0dy but that program was starting to have serious OS issues) and the features you've added are welcome.

I'd love to see some source code, I was going to write a program like this myself but then I got a WRT54GL :D

Seriously though it's lots of effort, when I looked into it I wanted to do it in C++ but if not using .NET you're pretty much tied into using Windows API calls and those have UNICODE and ANSI types, functions, etc. and it was just a mess to support both, gave up before I began :p
 

wikus

Senior Member
Joined
Feb 24, 2008
Messages
822
#4
Does not work on Windows 7.

Just shows "TrafficSplitter2 has stopped working" and here is a copy of the error details:

Description:
Stopped working

Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01: trafficsplitter2.exe
Problem Signature 02: 0.3.0.0
Problem Signature 03: 4af30645
Problem Signature 04: System
Problem Signature 05: 2.0.0.0
Problem Signature 06: 4a275e12
Problem Signature 07: 377f
Problem Signature 08: 62
Problem Signature 09: System.ArgumentException
OS Version: 6.1.7600.2.0.0.256.1
Locale ID: 1033

Some kind of exception.
 

wikus

Senior Member
Joined
Feb 24, 2008
Messages
822
#5
Oh, and btw, good to see you actually did as you said you would, by going ahead and developing the app.

Great stuff
 

Pada

Executive Member
Joined
Feb 18, 2009
Messages
8,165
#6
badprop0210, I've stated in my README file:
Prerequisite: b) For dialing more than 1 connection, you either need RASPPPoE (for WinXP) or the registry entries (for WinVista/7) found at http://www.quickshare.co.za/files/v2mxeto9/WanEndPoints.reg.html
So simply download that registry file if you're using Vista or Windows 7. Then restart your PC. Once it's in Windows again, you should be able to dial more than 1 connection at once.

For those of you that are interested in the source code: Traffic Splitter Beta 3 Source
If there's a big enough demand for it, I can maybe try and host the source on google code for SVN access. I'm just not that keen on administrating a project like this. I'm open to suggestions or people willing to manage it :D
 
Last edited:

Gnome

Executive Member
Joined
Sep 19, 2005
Messages
5,579
#7
Why SVN, just zip the source as is and upload.

On the other hand if it is on the SVN it would make it easier to create patches. You don't really have to administer it but that kinda defeats the purpose of the SVN (IE. people write patches but they never make it to trunk).

Either way, thanks for adding the source!
 

Pada

Executive Member
Joined
Feb 18, 2009
Messages
8,165
#10
czc, I'll have to code something specific for Windows 2000, because it doesn't support the WMI query that I'm currently using, which would result in the app not showing any network adapters. Although, it would still show the PPPoE connections.

I've fixed a small, but critical bug causing the app not to load the route entries correctly. I've also changed it to .NET Framework 3.0 instead of requiring 3.5 SP1.
The new Traffic Splitter Beta 3R3 can be downloaded here: http://www.quickshare.co.za/files/qm9j3v59/TrafficSplitterBeta3R3.zip.html
Source code: http://www.quickshare.co.za/files/bwnx5euc/TrafficSplitterBeta3R3Src.zip.html
 

ponder

Honorary Master
Joined
Jan 22, 2005
Messages
70,942
#13
I'm not exactly sure on what License type I should use, so I've just picked the MIT one :)
People are esentially free to do with your code what they want now, even commercialise it if I'm not mistaken.
 

Pada

Executive Member
Joined
Feb 18, 2009
Messages
8,165
#15
Thanks for the input. I've now selected LGPL.
Basically I want to allow other people to have access to the source code, as long as they don't redistribute it claiming it to be their own or to make a profit out of it without having made any modifications to it.
 

Joker

Expert Member
Joined
Aug 10, 2004
Messages
1,595
#16
Nice work Pada.

I've given up on RS after numerous issues trying to get it to work properly on Windows 7 - anyone tested it yet?
 

Pada

Executive Member
Joined
Feb 18, 2009
Messages
8,165
#17
One thing that I forgot to mention. With RouteSentry, you HAD to untick the "Use default gateway on remote network" option for the local connection.
With my Traffic Splitter app, its not necessary to uncheck that option. I would actually recommend to do the opposite.
The reason behind this is: RouteSentry is using 0.0.0.0/0 for attempting to make the international connection the default route, where as I'm using the routes 0.0.0.0/1 & 128.0.0.0/1 to force the international connection to be the default - since it overrides 0.0.0.0/0 without deleting that route. Meaning that as soon as you disconnect your international connection, the previously default connection would be the default again - unlike with RouteSentry!

Another thing, if you wanted to add specific routes to your Local interface, rather add those route entries to the auxroutes.dat or aux2routes.dat - simply because then you can always just update your localroutes.dat from http://developers.locality.co.za/routes-rs.txt without losing your custom route entries. This way, you have to select the same interface both as an Local interface & auxilary interface though. I've done exactly this in the screenshot, given in my first post.
 
Last edited:

PsyWulf

Executive Member
Joined
Nov 22, 2006
Messages
8,148
#18
A known problem in the past has been that if PPPoE connectivity is lost on the local connection ( assuming PPPoE is used for Local,and Intl is dialed by the router and thus routed through eth0 ) the international connections would default back to the Eth interface nailing your bandwidth unless you explicitly removed the gateway from your Lan device IP configuration
 

Pada

Executive Member
Joined
Feb 18, 2009
Messages
8,165
#19
Unfortunately that would happen to my application too, although only for a short while if I have implemented the automatic redialing & route setup features. Setting up of all the 690 local routes usually takes a while.
If you let your router dial the local connection, then I should maybe include a persistent routes option for the local only interface. This would imply that you only have to add the local routes once, then it will remain permanently setup on your PC.
 

Pada

Executive Member
Joined
Feb 18, 2009
Messages
8,165
#20
OK, I've updated it once again - this time with major changes. I think the application is currently as good as RouteSentry, if not better :)

Latest version, Traffic Splitter Beta 4:

Changes:
  • Removed RouteSentry tab
  • Merged automatically connect checkboxes
  • Added Auxilary3 interface
  • Added Options tab
  • Added Update of Local Routes list button
  • Added Edit & Import of Routes buttons
  • Added Load & Save features
  • Implemented automatically (re)connect and automatic setup of routes features
  • Added route lists to setup
  • Changed source filenames


My next objectives are to:
  • Fix all the bugs (that I don't know of yet)
  • Minimize to tray
  • Add an About tab
  • Add help documentation

Sorry for those that already checked out the SVN trunk... I'm not clued up on how to use SVN that well + I've changed most of my filenames :(
 
Last edited:
Top