The programmers actually said that? What I propose *really* isn't complicated at all. I could do it if this was a C/C++ monster - Unfortunately I've never seen Delphi code.
In the same thread that XoloX updates the average upload speed, it simply needs to keep a second, longer-intervalled, average of the totals of the individual averages. Then, it could compare that total to the predetermined Max, minus the total bandwidth being used by the link connections to the gnutella network (and possibly minus some other small percentage for fluctuations).
The only 'complicated' part of this, as far as I can see, is determining the connections max upload capacity. I know they want the value to be truthful, but I don't see any problem with letting the user specify/change this in an options dialog. After all, having it set very low will *not* stop your total bandwith from being used by a single connection, it will merely stop additional connections from robbing the bandwidth currently going to that first user.
At the end of every download, XoloX could then subtract 1 from the number of currently allowed upload connections, and let the aforementioned comparison determine if the connection should be re-added. Of course, there should be some maximum number of connections (max upload capacity / 1 ?) to prevent a glitch from allowing hundreds of uploads - giving everyone almost zero bandwidth.
-JL
www.eternaldusk.com