414 Commits

Author SHA1 Message Date
w00t
8830c2848b Move oper classes and types stuff from users to configreader. It may need to go in a class, I'm not going to investigate that now. Also make HasPermission() a bit easier to read via same changes I did in command_parse, but the strtok/strdup stuff really really has to go somehow I think..
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8215 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-15 22:33:18 +00:00
w00t
2116de82e0 Split user resolver into its own file.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8209 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-15 21:32:41 +00:00
w00t
b57c7f4e46 In the grand tradition of huge fucking commits:
- chanrec -> Channel
 - userrec -> User
Enjoy.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8204 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-15 20:59:05 +00:00
w00t
694e307c09 class command_t -> class Command. Whey :D
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8203 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-15 20:55:55 +00:00
brain
4d908f4bc0 Put this back how it was, it didnt help with the fix last night which turned out to be something else
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8190 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-14 19:26:42 +00:00
brain
c7be785d64 Tweaks
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8174 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-14 00:06:56 +00:00
brain
8343f1286b Move some stuff around, this will move a crash to a different place and maybe we'll catch it
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8171 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-13 23:52:02 +00:00
brain
685a4c5319 Whoops, forgot some stuff for when GECOS was moved to position 10 in the UID command, this was broken
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8102 e03df62e-2008-0410-955e-edbf42e46eb7
2007-09-30 18:14:51 +00:00
special
2be86e1958 Fixed bug #404; this was caused by recieving multiple OPERTYPEs from a remote server, which eventually resulted in bad pointers inside the all_opers list
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8084 e03df62e-2008-0410-955e-edbf42e46eb7
2007-09-26 23:49:15 +00:00
brain
5a3a7c969c More compile fixes
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8057 e03df62e-2008-0410-955e-edbf42e46eb7
2007-09-23 18:05:15 +00:00
brain
31c80e939c Add a pointless WriteOpers
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7998 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-29 21:35:03 +00:00
w00t
d3f9aa0443 Slight change to traffic logging, as I never remember which way the damn arrows go: I now means in, O now means out. C and S remain unchanged
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7948 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-28 14:12:49 +00:00
brain
bde6c20f52 Catch exceptions here for duplicate uuid (it shouldnt happen, which is why the exception message is so rediculous)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7914 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27 19:31:13 +00:00
w00t
4bbca0643b Remove more unnecessary header traffic
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7887 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27 15:02:46 +00:00
brain
90ee2ee38c Add FindNickOnly, that wont fall through to uid checks if isdigit(*first). We may need this. (i thought we did for this fix, we dont)
Fix cmd_nick to not treat all nicks as invalid and make the client give up.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7883 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27 13:54:15 +00:00
brain
95f6575ee9 Whoops, i had a ! and i didnt need one
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7882 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27 13:40:12 +00:00
brain
aee072aed7 Fixed sigabrt
NOTE to w00t: When a user gets allocated a uid that is duplicate, the constructor throws. This was happening because i didnt pay attention to what i wrote and it always added uid "" :P


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7881 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27 13:36:11 +00:00
brain
1c5e9d246a Add uuid hash_map - its management is automatic via userrec constructors/destructors.
Note that this means 'fake' users used to set modes etc get a uid, but this isnt a major thing.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7876 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27 11:43:12 +00:00
brain
78474291ab A few tidyups, and comment how the new constructors work (so that w00t doesnt wonder where the feck his strlcpys went)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7875 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27 11:34:16 +00:00
brain
5626380bc9 More uuid fixes, and whack some warnings
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7874 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27 11:30:38 +00:00
brain
0ba4b96bba Allocate uid in userrec constructor. Optional param added, if its empty, the server allocates one, if its not empty the user gets the one given
(this is used for remote users)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7873 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27 11:24:43 +00:00
brain
d2be3310ba Add a call to the NICK handler that allows toggling of allowing invalid nicks to on or off.
Use it in ForceNickChange to allow forced nickchange of a nick to a uid.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7869 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27 10:57:25 +00:00
w00t
5afa330604 UUID is now generated and set on client add, and shown after 005 via numeric 042: %s :your unique ID. This also replaces the fd-unknown style of nicks we used prior to recieving NICK from a client, just because it looks tidier.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7848 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27 00:12:59 +00:00
w00t
ffd4e65d78 And zero UUID in constructor.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7847 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-26 23:50:10 +00:00
brain
d0d36795e8 Craquity craq De-craq!
This is probably broken on windows, do not attempt to use there yet unless you like broken stuff. Cant say for sure as i havent even tried to build yet and most likely wont tonight.
--- Abstract most of the berkely socket API out into SocketEngine derived classes. SocketEngine base class implements standard berkely sockets that 'real mens systems' like linux
and freebsd have. For socketengine_iocp we implement the windows specific nonesense like the special things needed for udp and accept (ick).
All this to eliminate a bunch of ifdefs.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7810 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-23 22:06:04 +00:00
brain
cf4439ac5c Add <connect:maxchans> as per feature bug #338 - combined with the last feature, this allows per-oper specific maxchans values, and even the same for non-opers!
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7761 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-19 20:14:05 +00:00
brain
c61fac32bc Allow changing of an oper's host on oper up using <type:class> (give it a connect allow or deny line name) - implements bug #367
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7760 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-19 19:23:53 +00:00
brain
df4f0dc888 Allow support for multiple dns results per request. This is a significant change and should probably not be backported to stable.
This will allow for a fix to feature request bug #384


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7753 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-19 16:00:57 +00:00
w00t
3ad71f1593 Reset connect class settings on DNS resolution as we should.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7680 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-06 19:55:09 +00:00
brain
d59b89205e Tidyups, remove of ifdefs
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7597 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-27 18:11:03 +00:00
brain
156c232d1d Found the bug, turns out i just introduced it with the last commit :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7591 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-27 17:20:41 +00:00
brain
ac3af8b61e Some smart tricks to eliminate win32 ifdefs that are creeping into portable files
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7589 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-27 16:50:53 +00:00
w00t
886c51566b Modify RULES to use numerics instead of notices. I'm pretty sure these are widespread these days, and client authors should <3 us a bit more. :)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7537 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-24 14:08:16 +00:00
w00t
d556a4f874 A few more I missed.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7535 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-24 12:18:54 +00:00
brain
10ef0fde2e Tidyup a bunch of stuff that was using userrec::modes directly rather than userrec::IsModeSet. Same for chanrec.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7506 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-23 18:06:57 +00:00
brain
a3caa8ccd9 Fix for bug #326, 'no error' quit can no longer theoretically occur because all errno == 0 are weeded out with a shorthand if() on calling userrec::SetWriteError, before, only one of three occurances
was.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7478 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-19 22:08:21 +00:00
peavey
f2acdbc382 OOPS! We try again, since I'm smoking craq. LF is 0x0a NOT CR.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7456 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-16 17:30:04 +00:00
peavey
bab14f0dd2 'svn propset -R svn:eol-style CR *' Set to UNIX-style always. Binaries are auto skipped by svn.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7454 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-16 17:14:45 +00:00
brain
42105f07dd Fix for bug #349: NOTE there is important caveat about this in the example config, MAKE SURE TO READ IT.
When you connect a cgi:irc client two different connect classes are checked at two different times (first the one
that the website they are cgi'ing from, then later one for the user's real ip). READ THIS AND UNDERSTAND IT!


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7440 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-15 13:18:28 +00:00
brain
28da041573 SSL buffering tweaks. NOTE this is not a complete fix till i say so, don't use this in production yet unless youre a masochist.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7427 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-06 16:14:24 +00:00
brain
8199f4dd3e Optimizations and code tidyups. QA please check that svsnick and other forced nick changes still work right after this
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7416 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-01 12:06:15 +00:00
special
04b820b329 Fixed a bug that caused classes with passwords to instantly disconnect any users (thanks Darom). Needs QA
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7414 e03df62e-2008-0410-955e-edbf42e46eb7
2007-06-28 17:29:41 +00:00
brain
0161215f42 Change some = "" to clear() and some == "" to .empty()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7263 e03df62e-2008-0410-955e-edbf42e46eb7
2007-06-09 12:10:12 +00:00
brain
ef048989f8 Add options:moronbanner. Yes really, thats what its called. See the example config.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7232 e03df62e-2008-0410-955e-edbf42e46eb7
2007-06-04 19:10:25 +00:00
w00t
c34dd1e50f No fucking point at all checking for CC_DENY twice. \o/.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7200 e03df62e-2008-0410-955e-edbf42e46eb7
2007-06-01 18:53:01 +00:00
brain
993cff8f39 We can make one saving in userrec::WriteWallOps though - we are checking IS_LOCAL inside the loop, we've had a seprate local only user list for god knows how long, we know the users in it are local.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7199 e03df62e-2008-0410-955e-edbf42e46eb7
2007-06-01 18:49:01 +00:00
brain
2779810ff0 Apply ipv6 #ifdef tidyup patch from djGrrr, thanks :)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7190 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-30 17:37:13 +00:00
brain
06790dc05d Fix for bug #302. He may not have had any connect lines in his conf but it needed addressing anyway, because a bad rehash could leave the ircd in this state and it should just turn users away, not
crash.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7138 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-25 18:41:12 +00:00
brain
46ff0bed00 Same tweak, again
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7095 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-21 18:27:38 +00:00
brain
0985cef77b Prevent vc8 from thinking we're dereferencing an end iterator
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7059 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-20 05:00:03 +00:00