summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2006-07-07Initialize mode handlers and watchers to 0 in the constructor, or mucho pain ↵brain
can ensue git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4130 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07Aaaand, correct all the obligitary typosbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4129 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07Added masking stuff.brain
Basically, so that we can hold user modes and channel modes in the same list, we use bitwise masking. We have a list of handlers, 256 in size 0 through 255, and to work out where a mode handler is dependent on WHAT it is, we use this simple hashing algorithm (no collisions can occur): (modeletter - 65) | mask Where mask is 128 (10000000b) if its a user mode, or 0 (00000000b, duh) if its a channel mode. Smart, and much faster than using a map of pairs. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4128 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07Added hashing stuff to hold both user and channel modes in the ↵brain
watcher/handler list git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4127 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07Mode parser WORKS! (for simple non-parameterized channel modes)brain
Tested with channel mode +s. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4126 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07Dummy framework to insert the class for channelmode +sbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4125 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07Header for cmode_s.cppbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4124 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07Added cmode_s, skeleton mode handler for channel mode +s.brain
The naming convention for this dir is as follows: cmode_* -> channel modes umode_* -> user modes. Case sensitive mode letters on the end of the name such as cmode_s etc. Note, this dir can only hold the core RFC modes, so we won't get name collisions e.g. S and s. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4123 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07More stuff for m_pgsql in, provider-side API stuff semi-doneom
Add m_sqlv2 header for the new API git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4122 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07change std::string's to const std::string references for *Feature() funcsom
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4121 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07Added InspSocket::WantWrite(), InspSocket::OnWriteReady() and private data ↵brain
methods to make it work. See the XXX'ed section for a bit of minor craq git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4120 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07modules.*: Put some void* back to char*, sorry if they were only like that ↵om
because of me... :p git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4119 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-04Add pippijn under code contributors for m_connfloodbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4115 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-03Added docs for confloodbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4114 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-03Change InspSocket's private members to only be protected, I couldn't find ↵om
any other way to do this before we get around to rewriting the socket engine. Commit very first, very alpha, not-very functional version of the PostgreSQL module. It compiles..and that's..err..about it git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4112 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-03Someone made silence require 1 parameter, so no way to list the silence ↵brain
entries :p git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4111 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-03Add m_connflood, pippijn's connect throttle module (now we are offering ↵brain
another paid unreal feature for nothing :p) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4109 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-03Cleanups, change ugly if(\!*line.c_str()) to if(line.empty()); remove some ↵om
craq.. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4107 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-03Just to be really anal, typo fix in commentom
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4106 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-03Typo fixes to all the others too =/om
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4104 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-03Make spanningtree compile again >_<om
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4103 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-03Typo fixom
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4102 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-02Enhance with new numerics for latest turkish moron detectionbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4100 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-01relocate the Move* methods to private: where they belong, rename ↵brain
erase_factory and erase_module to be more appropriate EraseFactory and EraseModule methods git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4098 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-01Make WritePID a public function of class InspIRCdbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4097 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-01Move SetSignals(), Start() and DaemonSeed() into private methods of class ↵brain
InspIRCd, move MakeLowerMap() into private: section git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4096 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-01Change WriteChannelWithServ and it's _NoFormat to take a const char* ↵om
servername rather than char* - although it doesn't seem to be used :< Lose some more casts in m_spanningtree, unneeded because of above changes Make xline_set_creation_time() take const char* rather than char* for it's first parameter, lose more casts in spanningtree because of this Make do_whois take a const char* rather chan char* nick, lose yet more casts git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4095 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-01Replace rather craq'y loop with a couple of std::string callsom
Change GetServerDescription to take const char* rather than char* Change userrec::server from char* to const char*, this is more 'correct' as it's not safe to modify it (pointer as returned by std::string::c_str()) Change WhoWasGroup::server, see above about userrec::server git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4094 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-01forward port of r4092w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4093 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-30Tweak to IS_LOCAL macro to exclude invalid fd's that are > MAX_DESCRIPTORSbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4091 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-30*** Interesting fix ***brain
When a remote kill occurs, the user record for the remotely killed user may still hang around in the servers user list which is used when removing users during a netsplit. I managed to duplicate the old 'crash on netsplit' bug by sending a remote kill to a server, and then squitting that server without receipt of the corresponding QUIT. The fix now removes the user record explicitly upon remote kill (this also includes collisions) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4088 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-29Forward port of CullList and my bragging rightsspecial
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4087 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-29And add the include to make all the modules compile...om
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4085 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-29This already adds the file and line number itself, call do_log() rather than ↵om
log() then git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4084 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-29You don't need to cast a char* to a char* to put it through a const char*...om
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4083 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-29Remove hardcoded filename prefix to log message, with the new macro these ↵om
are un-needed. Remove un-needed cast, ffs guys, templates stop you needing to cast the stuff inside them... So why do you do it anyway? :< git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4082 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-29Change log() to a #define, the real symbol is now do_log(), the new macro ↵om
auto-prefixes all log messages with the file and line number where log() was called - should be nice for debugging and telling wtf is coming from what.Currently uses a (probably very standard) g++ extension to make the macro work. Shouldn't be an issue. You must make clean and rebuild all of insp. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4081 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-29Convert char* to const char* in InspSocket constructor prototype. Shouldn't ↵om
break anything but ought to help lose some ugleh casts... >:) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4080 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-28Added missing return in Server::UnpublishFeature()special
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4079 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-28Added SQLQuery::GetError() and removed a lot of space indentingspecial
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4078 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-28More stuff for allowing hostnames in <bind> and <link> again - note there is ↵brain
a FIXME here. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4076 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-28Allow binding to hosts again in <bind> and <link>brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4074 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-27Add m_services_accountbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4072 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-27Commentingbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4069 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-27We can re-enable special's security fix now - note this is good for boxes ↵brain
with one or more static ip's and still doesnt resolve the issue for smelly dynamic-ip users (well boo hoo :p) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4066 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-27Added auto-binding, picks the first ip in the <bind> tags that isnt ↵brain
localhost or INADDR_ANY, and auto binds to that IP to allow us to put back the security tweak git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4064 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-27Temporarily disable special's security improvement until we have either/or ↵brain
bind= and mask= git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4063 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-25Extra safety for user lists to not keep bad pointers hanging aboutbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4059 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-24Dont allow /REMOVE of a uline, dont allow /REMOVE of a user who isnt on the ↵brain
channel (*slaps* Om) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4057 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-24Forwardport of safety fixes for Write* functionsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4056 e03df62e-2008-0410-955e-edbf42e46eb7