646 Commits

Author SHA1 Message Date
brain
56917208cd Add cmode +v - that's all the RFC channel modes done now
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4172 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 16:46:05 +00:00
brain
2d4621658d Add support for cmode +h
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4170 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 16:10:34 +00:00
brain
2f32d64790 Add cmode +o (op/deop) and in the process change a lot of char* to const char* to avoid unneccessary casts
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4165 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 15:05:33 +00:00
brain
4260fd6227 Add channelmode +l
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4163 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 14:20:25 +00:00
brain
abe417a809 Add chmode +k, cut down includes in use in mode.cpp
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4162 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 14:03:05 +00:00
brain
fd411d067c ModeHandler documented
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4161 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 01:22:46 +00:00
brain
40320969da Add support for channelmode +i
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4159 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 22:55:47 +00:00
brain
7f4ee2f9f2 Add channel modes +n and +t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4156 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 22:46:35 +00:00
brain
21480d6f65 Move BanItem into the class
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4152 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 21:51:33 +00:00
brain
2fd5ed7aa9 Started work on ModeParser::CleanMask()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4145 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 21:03:00 +00:00
brain
53e8c67c58 Comments
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4144 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 20:50:25 +00:00
brain
adb17635ee Added cmode_m (channel mode +m)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4141 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 20:03:17 +00:00
brain
8f9d0a68cd Mode +b stuff, probably wont work yet
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4133 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 17:37:20 +00:00
brain
2d27d1f9f4 Add cmode_p (private)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4131 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 15:35:36 +00:00
brain
7666e1ad84 Aaaand, correct all the obligitary typos
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4129 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 15:29:42 +00:00
brain
a1af610ac1 Added masking stuff.
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-07 15:27:05 +00:00
brain
ace3781303 Mode parser WORKS! (for simple non-parameterized channel modes)
Tested with channel mode +s.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4126 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 15:04:36 +00:00
brain
2d05d8bc33 Header for cmode_s.cpp
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4124 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 14:31:05 +00:00
om
56ded38a45 change std::string's to const std::string references for *Feature() funcs
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4121 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 13:34:10 +00:00
brain
13153694df Added InspSocket::WantWrite(), InspSocket::OnWriteReady() and private data 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-07 00:18:14 +00:00
om
7e709ca655 modules.*: Put some void* back to char*, sorry if they were only like that because of me... :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4119 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 00:16:28 +00:00
om
cba550cb97 Change InspSocket's private members to only be protected, I couldn't find 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-03 16:39:09 +00:00
brain
dc42f264d7 relocate the Move* methods to private: where they belong, rename 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-01 15:07:09 +00:00
brain
75eb9178d5 Make WritePID a public function of class InspIRCd
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4097 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-01 15:01:32 +00:00
brain
55de6781e0 Move SetSignals(), Start() and DaemonSeed() into private methods of class InspIRCd, move MakeLowerMap() into private: section
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4096 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-01 14:56:33 +00:00
om
903dbea2b1 Change WriteChannelWithServ and it's _NoFormat to take a const char* 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-01 14:40:53 +00:00
om
3cf1ae0470 Replace rather craq'y loop with a couple of std::string calls
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-01 11:42:09 +00:00
brain
98c703511c Tweak to IS_LOCAL macro to exclude invalid fd's that are > MAX_DESCRIPTORS
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4091 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-30 18:20:27 +00:00
om
63a3d49a01 And add the include to make all the modules compile...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4085 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-29 15:01:28 +00:00
om
042de68ee5 This already adds the file and line number itself, call do_log() rather than log() then
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4084 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-29 14:23:35 +00:00
om
7c0a77920d Change log() to a #define, the real symbol is now do_log(), the new macro 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-29 08:30:25 +00:00
om
4a58726d8b Convert char* to const char* in InspSocket constructor prototype. Shouldn't 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-29 07:00:25 +00:00
brain
c55f9831ab Added auto-binding, picks the first ip in the <bind> tags that isnt 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-27 17:45:59 +00:00
brain
fbc5d6b616 Added Server::PublishFeature(),
Server::UnpublishFeature(),
Server::FindFeature().
See comments in modules.h for usage


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4041 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-21 12:31:54 +00:00
brain
b0d03755f2 Class Request and class Event now take a void* in their constructor to save on a cast.
Please note that the data type *returned* by GetData() in both cases is still char*, as
C++ will not let you return a void*. This to be addressed by someone else with templates
when they have the time.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4038 e03df62e-2008-0410-955e-edbf42e46eb7
2006-06-20 11:26:57 +00:00
brain
1ee80d5d5f Increase length of dhost
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3955 e03df62e-2008-0410-955e-edbf42e46eb7
2006-05-11 21:43:46 +00:00
brain
a5f22007f0 Fix output corruption when host is exactly 64 chars long
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3944 e03df62e-2008-0410-955e-edbf42e46eb7
2006-05-10 22:59:53 +00:00
brain
1ee66f376b Check for NULL, set pointers to NULL after deletion
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3908 e03df62e-2008-0410-955e-edbf42e46eb7
2006-04-25 09:52:16 +00:00
brain
8b02407d93 Fix various typos and warnings
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3907 e03df62e-2008-0410-955e-edbf42e46eb7
2006-04-24 17:28:49 +00:00
brain
4b45dc1234 Typo in the macro :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3905 e03df62e-2008-0410-955e-edbf42e46eb7
2006-04-24 13:30:04 +00:00
brain
5d407fb44c delete operator tracking in debug mode (using a macro -- live with it.)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3904 e03df62e-2008-0410-955e-edbf42e46eb7
2006-04-24 13:28:07 +00:00
brain
65923c4d39 Movement of cmd_* headers into include/commands (this is incomplete)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3896 e03df62e-2008-0410-955e-edbf42e46eb7
2006-04-20 18:46:25 +00:00
brain
bad99c30c7 Made FindMatching(Global|Local) available via users.h
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3872 e03df62e-2008-0410-955e-edbf42e46eb7
2006-04-12 00:37:36 +00:00
om
8403cf142a Die windows die.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3871 e03df62e-2008-0410-955e-edbf42e46eb7
2006-04-11 22:50:27 +00:00
om
09dd16b981 Route some more stuff through socket.h and hash_map.h. Add #define protection to timer.h and remove some unneeded includes and externs from timer.cpp
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3869 e03df62e-2008-0410-955e-edbf42e46eb7
2006-04-10 22:50:41 +00:00
om
9063972162 Routing more socket includes through socket.h
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3868 e03df62e-2008-0410-955e-edbf42e46eb7
2006-04-10 22:16:34 +00:00
brain
129416e519 Typedef an ugly iterator, dont send mode string if no modes were in the output sequence
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3867 e03df62e-2008-0410-955e-edbf42e46eb7
2006-04-10 20:43:03 +00:00
om
ecb76110fd A few more typedefs defined and put into use.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3866 e03df62e-2008-0410-955e-edbf42e46eb7
2006-04-10 20:38:26 +00:00
om
e7f08977f2 Add time.h include to inspircd.h. Random cleanups in channels.cpp, mostly using the typedef'ed names already defined rather than having the full template names everywhere. Remove some unneeded casts too.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3865 e03df62e-2008-0410-955e-edbf42e46eb7
2006-04-10 20:08:30 +00:00
om
5fb54ac29a Assorted changes here, Extend() is not templated so you can pass it any pointer type and it will automatically be cast to char* for you. Also some speedups, store an iterator rather than calling find() once to check if it exists and again to access the value.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3864 e03df62e-2008-0410-955e-edbf42e46eb7
2006-04-10 19:30:48 +00:00