751 Commits

Author SHA1 Message Date
brain
fc9e00f492 Add userrec::HasMode, fix some typos.
TODO: Make more use of userrec::HasUmode('c') rather than user->modes['c'-65] *oogly*
Next - get umode +o working!


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4178 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 18:03:30 +00:00
brain
1d3147a96e Change channelmodes -> usermodes (typo)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4177 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 17:53:37 +00:00
brain
3f389a4bd9 Convert new +isw modes to new mode format
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4176 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 17:53:03 +00:00
brain
33ed72a1df Refactored user modes to work like the channel modes - core and module data now the same storage format without ::modebits
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4175 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 17:44:16 +00:00
brain
d40e1e5b0b Added usermodes +swi.
Note the usermode system needs a bit of a refactor to combine
module and core modes into the same storage neatly (as we did 
with channels) this is next on my todo.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4174 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 17:04:18 +00:00
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