splidge [Mon, 10 Mar 2008 20:29:45 +0000 (20:29 +0000)]
Assorted tweaks.
Changed L import so you can't be imported with +agov.
Changed some help text
Changed UNBANME so it just aborts if it bumps into a registered ban it can't remove.
splidge [Mon, 10 Mar 2008 18:07:57 +0000 (18:07 +0000)]
Removed NEEDAUTH flag since it didn't do anything useful.
We represent a user who has never authed with lastauth=0. Expiry of never-authed users can be done based on creation time.
Updated the import script to behave accordingly.
splidge [Mon, 10 Mar 2008 16:15:47 +0000 (16:15 +0000)]
Tightened up the auth code a bit.
The user limit check is now done before logging last user@host etc.
Messages are now sent to other account users when someone auths - and a different message sent if the account is at the auth limit.
Fixed up a couple of other incorrect error messages (in removeuser.c).
chancmds/commandlist.c seems to be a changeset or two behind so there's a new one of those too.
splidge [Mon, 10 Mar 2008 15:15:43 +0000 (15:15 +0000)]
Added CHANOPHISTORY command (behaves the same as old Q's AUTHHISTORY). Also added the backend logging of op events.
Tidied up error message in userflags/authhistory (i.e. a message to say you can't list for the named user).
splidge [Mon, 10 Mar 2008 01:05:31 +0000 (01:05 +0000)]
Added suspendtime fields to users and channels.
Updated database code to load and save them as needed.
Updated new channel/user code to initialize them.
Also fixed a bug where the BAN alias wasn't working properly.
splidge [Sun, 9 Mar 2008 15:51:14 +0000 (15:51 +0000)]
Various user friendliness improvements.
Made insufficient parameters message show the usage of the command concerned.
Made some messages a bit friendlier
Changed primary auth command to AUTH (rather than LOGIN)
Fixed up a couple of help messages.
Chris Porter [Sun, 9 Mar 2008 04:33:30 +0000 (04:33 +0000)]
the maildomain implementation has been fixed.
stuff that was wrong that I can rememeber:
- it created a table that had one number of fields, select code expected another number, insert code expected another different number, and update code didn't update most of the fields, but did escape them (though it never used the value).
- lots of uninitalised variables, e.g. flags and account limits
- in the function that built up a tree of domains, the author didn't realise how recursion works, how it should work:
address: blah@kings.cam.ac.uk, kings.cam.ac.uk, cam.ac.uk, ac.uk, uk, ending up with kings.cam.ac.uk->cam.ac.uk->ac.uk->uk
how it was working:
address: blah@kings.cam.ac.uk, kings.cam.ac.uk, cam.ac.uk, ac.uk, uk
now when unwinding the stack, it keeps looking for dots, despite the fact we've recursed already and have the tree!
now it continues in cam.ac.uk looking for dots, so that ends up looking like cam.ac.uk->uk, and the full domain tree ends up as kings.cam.ac.uk->uk
W T F
- didn't check for banned addresses but had the flag defined
- didn't show banned flag in spewdomain code
- all 5 pieces of code that attempted to extract the local part of email address using the wrong half (i.e. the domain)
- hello attempted to check for too many accounts on one email address but got the code wrong, however email didn't check at all
- was using match to compare the local part of email addresses
- was using ircd_strcmp to compare domains
- in hello a user could use up an unlimited amount of memory by passing in new domain for each user, if HELLO failed a maildomain wasn't deallocated.
how did this get committed?
I need to look over this stuff again.
Chris Porter [Sat, 8 Mar 2008 17:06:44 +0000 (17:06 +0000)]
DANGER WILL ROBINSON!
I've removed the suspended check in chanservuser.c, what if users wanted to remove a troublemaker from their channels?
This could have adverse affects, though I can't think of any at this time.