Dana Dahlstrom dana+ngIRCd@cs.ucsd.edu wrote:
Brandon Beresini sent me a patch yesterday adding tests for JOIN under various circumstances, which I believe he worked on with Bryan Caldwell and Ali Shemiran. I made a few modifications; the result is below.
Also applied to my tree, thanks.
We couldn't seem to come up with a good way to elicit a proper ERR_BANNEDFROMCHAN reply because, while the configuration file can specify channel modes, it apparently can't pass the required parameter to the +b mode in order to effect a ban. Any proposals?
Thats bug 55: http://arthur.barton.de/cgi-bin/bugzilla/show_bug.cgi?id=55
Also in the process of investigating this we discovered some rather unusual behavior. A user who has already joined a channel and tries to join the channel again will normally receive no reply---this is how other IRC daemons behave as well. However, if a ban is in effect for that user, the user receives an ERR_BANNEDFROMCHAN reply even though the user is already in the channel---other servers don't do this:
[..]
Not sure. Depends on how intrusive the change is (i have not looked at this closely). Right now ban/invite lists are checked before Channel_Join() gets called (which detects the 'already joined' case).