I've been tossing an idea around for the last 24 hours for a very simple feature to add to TarProxy. There's always a battle agains scope creep, but this seems like it could have a nice payoff. I'd like to hear your thoughts.
As the doc on the project site (which needs some minor updating) describes, Tokenizers generate tokens, which are fed to Classifiers, which tell us how spammy the connection is. I'm thinking about adding another class that can receive tokens in the same way as Classifiers, which for the moment I'm calling Referees. A Referee's job is simpler than a Classifier's job. It looks for behavior that breaks a set of rules, and puts the connection in a penalty box upon seeing any such behavior. For example, if a Tokenizer generates a meta-token when it sees "we do not relay" sent by the proxied server, a Classifier can take that into account in its classification calculations and eventually have an effect on the connection. A Referee can see that same token and IMMEDIATELY impose, say a 1-minute penalty on the connection. The connection will essentially go to sleep for 1 minute before the server's response is forwarded to the remote host. Another Referee might notice attempts to send mail to bad email addresses, and impose a 30-second penalty on the connection on each attempt. This is much less elegant than letting the Classifier process every token and the Throttle change the connection parameters, but I think there are several situations in which we can be certain enough to respond immediately to various events. It also provides some functionality in a new installation with an untrained Classifier. Once the penalty is over, the connection will resume at whatever rate the Throttle decides is appropriate. It won't "catch up" to keep the *net* data rate the same; time will simply stop for the connection during the penalty. Any thoughts? -- Marty Lamb Martian Software <mlamb at martiansoftware dot com> ---- : The tarproxy-list mailing list is archived at : http://www.mail-archive.com/tarproxy-list%40martiansoftware.com/ : : To unsubscribe from this list, follow the instructions at : http://www.martiansoftware.com/contact.html : : TarProxy's project page can be found at : http://www.martiansoftware.com/tarproxy
