it works.. great as far as I can see, but I haven't had more than 60 users on my system so far.
bugs
- on the first serious run, it SEGFAULTed after ~1.5hrs. but then I didn't have core dumps enabled. so I have nothing to show for it.
now it has run for 4:20hrs.. and it's still looking good. - the +stats shows "0:04:23:00 (CPU time used: 0:00:00:05)", 5 seconds CPU time. but actually it's one thread that used 5 secs.
Code: Select all
18580 pts/4 S 0:00 \_ ./dchpp eth0
18581 pts/4 S 0:00 \_ ./dchpp eth0
18582 pts/4 S 0:05 \_ ./dchpp eth0
18583 pts/4 S 0:24 \_ ./dchpp eth0
features
- Core
- ip allow lists (the inverse of ip ban lists). ipban works with subnet ranges already, so implementing an ipallow should not be hard.
- OpCom plugin
- +ipinfo <ip> = lookup user(s) by IP
- +cleartemp = clear the tempban list (important)
- +reload = reload configuration from disk (compare refresh)
- more precise specification of subnets. it's a pain to enter x.x.x.x/17 and there are often big cable (slow) blocks in fast subnets
- DCPPChecker plugin
- <CheckISP> does not allow dots in names... (which blocked most of my guinea pigs on the first testing round). it would be nice if it either allowed dots, or a regex could be specified.
I hope the segfault was caused by physically corrupted memory on my box (I've had strange problems before that would probably indicate some hardware failure). at least now I have enabled core dumps.
most feature suggestions could be implemented in Lua, but like you said.. lua is slow ;)
some of the above thingies aren't even that hard to implement. (I would try, if I had the source)
or do you have the C++ plugin API docs laying around somewhere?
/sed