aboutsummaryrefslogtreecommitdiff
path: root/src/modes/cmode_k.cpp
Commit message (Collapse)AuthorAgeFilesLines
* cmode_k Fix oversight in substr() conversionGravatar Attila Molnar2015-01-141-1/+2
| | | | While at it, introduce a named constant for maximum key length
* Reduce std::string::substr() usageGravatar Attila Molnar2015-01-101-1/+1
| | | | substr() returns a new string while erase() and assign() modify the existing one
* Kill needless #includes in source filesGravatar Attila Molnar2014-06-141-3/+0
|
* Add ParamModeBase and ParamMode, change all parameter modes to inherit from ↵Gravatar Attila Molnar2014-02-151-4/+23
| | | | | | | | | | ParamMode - Type of the extension used to store data is a template parameter - The extension is automatically unset when the mode is unset - Handlers inheriting from ParamMode have to provide OnSet() and SerializeParam(); may optionally provide OnUnset() - Transparently handle the case when OnSet() modifies the mode parameter - Remove Channel::custom_mode_params map; ask the mode handlers to serialize their parameters instead
* Replace hardcoded mode letters passed to IsModeSet() and GetModeParameter() ↵Gravatar attilamolnar2013-07-011-3/+3
| | | | with ModeHandlers, part 1
* Call Channel::SetModeParam() from the mode parser when needed instead of ↵Gravatar attilamolnar2013-06-131-17/+2
| | | | requiring mode handlers to do it
* Simplify user mode removal via ModeHandler::RemoveMode()Gravatar attilamolnar2013-05-271-4/+0
| | | | | The function does not need to be virtual because the core can remove any user mode using the default logic The optional modestack parameter was always NULL, so remove it
* Deduplicate RemoveMode() implementationsGravatar attilamolnar2013-05-271-23/+0
| | | | | The default (core) implementation can now remove prefix modes The modestacker parameter is now mandatory
* Unite include/modes/*.h into include/builtinmodes.hGravatar attilamolnar2013-04-081-1/+1
|
* Replace copyright headers with headers granting specific authors copyrightGravatar Robby-2012-04-191-8/+17
|
* ...because every now and again, i have to do a massive commit.Gravatar brain2010-01-111-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12248 e03df62e-2008-0410-955e-edbf42e46eb7
* Get rid of ModePairGravatar danieldg2009-10-241-13/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11963 e03df62e-2008-0410-955e-edbf42e46eb7
* Add names for all modes (part 1 of named channel mode list)Gravatar danieldg2009-10-081-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11809 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove InspIRCd* parameters and fieldsGravatar danieldg2009-09-261-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11763 e03df62e-2008-0410-955e-edbf42e46eb7
* Simplify ModeHandler constructorGravatar danieldg2009-09-131-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11701 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove "servermode" parameter, replace with IS_FAKE() which is more reliableGravatar danieldg2009-09-021-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11633 e03df62e-2008-0410-955e-edbf42e46eb7
* Add Module* creator to Command and ModeHandlerGravatar danieldg2009-09-021-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11631 e03df62e-2008-0410-955e-edbf42e46eb7
* Use CheckTimeStamp to merge modes on netburstGravatar danieldg2009-09-021-6/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11596 e03df62e-2008-0410-955e-edbf42e46eb7
* Overloading SetMode seems to cause the compiler to interpret "" as a bool ↵Gravatar danieldg2009-04-291-2/+2
| | | | | | and not a string. Fixes bug #849 git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11335 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix SetModeParam to use std::string and handle edge cases.Gravatar danieldg2009-04-171-9/+5
| | | | | | | Previously, changing the vaule of a mode could require 3 calls to SetMode and SetModeParam. This also fixes memory leaks caused by the strdup() not always being paired with a free(). git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11307 e03df62e-2008-0410-955e-edbf42e46eb7
* Update all wiki links to point to the new wiki. This was done automatically ↵Gravatar psychon2009-03-151-1/+1
| | | | | | | | | with the following command, only .Makefile.inc got some indent fixups by hand. for file in $(find -type f -and -not -path '*/.svn/*' -and -not -name '*.so') ; do sed -e 's#http://www.inspircd.org/wiki#http://wiki.inspircd.org#' -e 's#http://wiki.inspircd.org/index.php/#http://wiki.inspircd.org/#' -i $file ; done git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11223 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix +k for realGravatar danieldg2009-03-071-8/+20
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11185 e03df62e-2008-0410-955e-edbf42e46eb7
* Let's try that +k fix again, this time with more testingGravatar danieldg2009-03-071-7/+6
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11184 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix r11178 not allowing keys to be unsetGravatar danieldg2009-03-071-28/+22
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11182 e03df62e-2008-0410-955e-edbf42e46eb7
* Drop channel keys if they are identical to the already-set key (fix for bug ↵Gravatar w00t2009-03-061-0/+5
| | | | | | #756, reported by Taros) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11178 e03df62e-2008-0410-955e-edbf42e46eb7
* Nuke trailing spacesGravatar peavey2009-02-141-2/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11105 e03df62e-2008-0410-955e-edbf42e46eb7
* Update copyrights for 2009.Gravatar w00t2009-01-021-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10932 e03df62e-2008-0410-955e-edbf42e46eb7
* I think this fixes the mode +k weirdness. Keys were never being set ↵Gravatar brain2008-09-291-1/+2
| | | | | | correctly in the channel data. gcc doesnt warn on cast from char* to bool. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10606 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove custom members for +lk storageGravatar w00t2008-07-201-16/+19
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10053 e03df62e-2008-0410-955e-edbf42e46eb7
* Convert channel::name to std::string, this was a beastie!Gravatar brain2008-05-191-8/+8
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9770 e03df62e-2008-0410-955e-edbf42e46eb7
* Conversion of command handler params from "const char* const* parameters, ↵Gravatar brain2008-05-041-4/+2
| | | | | | | | | | int pcnt" to "const std::vector<std::string>& parameters". All of core is converted, but cant test it till the modules are converted. IMPORTANT: The mode parser public calls have had to be tweaked a bit to also use the string vector. Note that this makes a LOT of our core a bit messy and paves the way to convert a lot of stuff from the mess of .c_str() calls to using std::string params directly. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9608 e03df62e-2008-0410-955e-edbf42e46eb7
* Fixes for bug #493, tidyups to clearing of channel modes on losing FJOIN. ↵Gravatar brain2008-04-021-4/+9
| | | | | | Module unloads may also be tidied at a future date but it means reordering some loops in mode.cpp. See around the comment added. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9283 e03df62e-2008-0410-955e-edbf42e46eb7
* Someone please help me fix the warnings in modules caused by this change. ↵Gravatar brain2008-02-181-1/+1
| | | | | | All mode handler OnMode events, ModeWatcher::BeforeMode/AfterMode, plus OnRawMode now have a bool servermode parameter git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8964 e03df62e-2008-0410-955e-edbf42e46eb7
* Header update: 2007 -> 2008Gravatar w00t2008-01-101-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8694 e03df62e-2008-0410-955e-edbf42e46eb7
* Pedantic safeGravatar brain2007-10-231-4/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8317 e03df62e-2008-0410-955e-edbf42e46eb7
* In the grand tradition of huge fucking commits:Gravatar w00t2007-10-151-5/+5
| | | | | | | | - chanrec -> Channel - userrec -> User Enjoy. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8204 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove some fake client stuff, make it use the global recordGravatar w00t2007-08-281-7/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7941 e03df62e-2008-0410-955e-edbf42e46eb7
* OOPS! We try again, since I'm smoking craq. LF is 0x0a NOT CR.Gravatar peavey2007-07-161-1/+103
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7456 e03df62e-2008-0410-955e-edbf42e46eb7
* 'svn propset -R svn:eol-style CR *' Set to UNIX-style always. Binaries are ↵Gravatar peavey2007-07-161-103/+1
| | | | | | auto skipped by svn. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7454 e03df62e-2008-0410-955e-edbf42e46eb7
* Still more massive commit fun. Headers in include/ still to be done, else ↵Gravatar w00t2006-12-151-0/+13
| | | | | | that's it. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5997 e03df62e-2008-0410-955e-edbf42e46eb7
* Make it neaterGravatar brain2006-09-101-1/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5207 e03df62e-2008-0410-955e-edbf42e46eb7
* Dont allow keys of length >= 32Gravatar brain2006-09-101-4/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5206 e03df62e-2008-0410-955e-edbf42e46eb7
* CommentsGravatar brain2006-09-021-0/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5113 e03df62e-2008-0410-955e-edbf42e46eb7
* Actually make +ovhk removable with DelMode (just in case somebody wants to, ↵Gravatar brain2006-09-021-1/+23
| | | | | | or we have need to in the future) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5112 e03df62e-2008-0410-955e-edbf42e46eb7
* stskeeps trying to get his name all over our commit log :p (thanks for the ↵Gravatar brain2006-08-181-1/+1
| | | | | | bugreport) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4960 e03df62e-2008-0410-955e-edbf42e46eb7
* Dont allow an empty key (thanks stskeeps)Gravatar brain2006-08-181-3/+8
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4957 e03df62e-2008-0410-955e-edbf42e46eb7
* Change to using Instance->Log (InspIRCd::Log) rather than log() macroGravatar brain2006-08-111-3/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4880 e03df62e-2008-0410-955e-edbf42e46eb7
* So much stuff changed in this one, i forgot most of it.Gravatar brain2006-08-101-1/+1
| | | | | | | Oh yeah, main thing is ModeHandler and ModeWatcher classes now take an InspIRCd* to their constructor git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4858 e03df62e-2008-0410-955e-edbf42e46eb7
* Change std::pair<bool,std::string> to neater typedef "ModePair"Gravatar brain2006-07-271-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4557 e03df62e-2008-0410-955e-edbf42e46eb7
* Mode merging during FJOIN with ourts==theirts. Only +k and +l have ↵Gravatar brain2006-07-271-0/+5
| | | | | | CheckTimestamp methods atm, needs to be finished by me and TIDIED. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4556 e03df62e-2008-0410-955e-edbf42e46eb7