summaryrefslogtreecommitdiff
path: root/src/command_parse.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Include explicit parameter list in ProtocolInterface::SendModeGravatar danieldg2009-03-071-5/+6
| | | | | | | Also leave the strings split into deque, there's no need to pack it into a string just to unpack it during the translate. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11181 e03df62e-2008-0410-955e-edbf42e46eb7
* Construct explicit parameter type list for MODE parametersGravatar danieldg2009-03-061-40/+43
| | | | | | | | | | | | Previously, we used TR_SPACENICKLIST on the parameters. This worked only because usually, if anything in the list parsed as a nick, then it was a nick. However, some modes like +k and +g allow free-form text, which could also resolve as a nick. Add extra parameters to allow modes to specify their TranslateType, defaulting to TR_TEXT. This fixes bug #757, found by Taros git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11180 e03df62e-2008-0410-955e-edbf42e46eb7
* Nuke trailing spacesGravatar peavey2009-02-141-5/+3
| | | | 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
* Fix a comment too.Gravatar w00t2008-12-271-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10920 e03df62e-2008-0410-955e-edbf42e46eb7
* Use std::set instead of std::map needlessly.Gravatar w00t2008-12-271-4/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10919 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix naming convention to be consistant. (cmd_ -> Command)Gravatar w00t2008-12-151-2/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10891 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix silly oversight discovered by tra26 (thanks!) where the core tries to ↵Gravatar brain2008-12-081-1/+11
| | | | | | handle hash providers other than plaintext by direct string comparison, allowing someone to oper up by specifying the md5 sum of an md5 password, etc! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10870 e03df62e-2008-0410-955e-edbf42e46eb7
* Move stuff to use ASCII map where required.Gravatar w00t2008-12-071-1/+1
| | | | | | Also move this out of being a member totally, as it breaks (gah) and is already untidy.. to be revisited. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10858 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove lines_in and reset_due flood protection mechanism, recvq/sendq on ↵Gravatar w00t2008-12-011-24/+0
| | | | | | | | their own now fill this role, as we have proper penalties. This tidies up *a lot* of code, and also saves a further sizeof(time_t) + sizeof(unsigned int) per user. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10838 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove m_operflood, add privs: users/flood/no-throttle & ↵Gravatar w00t2008-12-011-1/+1
| | | | | | | | users/flood/increased-buffers. This also saves another sizeof(bool) per user. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10837 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove OverPenalty, saves sizeof(bool) per user.Gravatar w00t2008-12-011-2/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10836 e03df62e-2008-0410-955e-edbf42e46eb7
* This was never supposed to be invoked on /rehash, only startup.. so move it ↵Gravatar w00t2008-11-021-30/+11
| | | | | | to startup only. Also remove (redundant) user arg. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10792 e03df62e-2008-0410-955e-edbf42e46eb7
* Leak fix on /rehashGravatar w00t2008-11-021-1/+7
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10787 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix a compiler warning about a redefinition of some symbol.Gravatar psychon2008-10-301-1/+1
| | | | | | | Does nobody else read compiler warnings? Oo git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10751 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix for "unknown commands" w/ m_abbreviation, thanks dz for making me ↵Gravatar w00t2008-10-291-4/+15
| | | | | | understand this. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10749 e03df62e-2008-0410-955e-edbf42e46eb7
* Explain the duplicate OnPreCommand call.Gravatar w00t2008-10-251-0/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10717 e03df62e-2008-0410-955e-edbf42e46eb7
* By moving OnPreCommand call in two places, modules (even with unverified ↵Gravatar w00t2008-10-251-8/+10
| | | | | | commands) can still recieve the command with max_params at most if it exists. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10716 e03df62e-2008-0410-955e-edbf42e46eb7
* Add optional max_params for commands, which means that we can compress ↵Gravatar w00t2008-10-251-0/+37
| | | | | | 'extra' params, while still accepting ':' terminated params, etc. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10715 e03df62e-2008-0410-955e-edbf42e46eb7
* Add <disabled:fakenonexistant> - ircd will pretend that a disabled command ↵Gravatar w00t2008-08-271-1/+10
| | | | | | just doesn't exist (for austnet), document <disabled:usermodes> and <disabled:chanmodes> (bad aquanight.) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10327 e03df62e-2008-0410-955e-edbf42e46eb7
* nuke some debug not needed anymoreGravatar peavey2008-08-231-2/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10226 e03df62e-2008-0410-955e-edbf42e46eb7
* Match with the right args at least..Gravatar w00t2008-08-221-1/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10218 e03df62e-2008-0410-955e-edbf42e46eb7
* match() is no longer a function+no header, now a static method of InspIRCd ↵Gravatar w00t2008-08-211-2/+1
| | | | | | class, blah blah blah. Also rip out the 1.2 matcher, as it was slow, and replace it with one adapted from znc, which happens to be a tiny bit faster than 1.1's (and the fastest I've seen so far that works properly) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10212 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove last vestige of libircdfoo, by changing tag into a single ↵Gravatar w00t2008-07-291-1/+1
| | | | | | identifier marking object as requiring compilation into a .o (minor commit) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10076 e03df62e-2008-0410-955e-edbf42e46eb7
* 304 -> RPL_SYNTAXGravatar brain2008-07-201-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10052 e03df62e-2008-0410-955e-edbf42e46eb7
* More conversion, and a note to client coders.Gravatar w00t2008-07-131-6/+6
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10011 e03df62e-2008-0410-955e-edbf42e46eb7
* m_abbreviation completed. :)Gravatar brain2008-06-061-6/+6
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9845 e03df62e-2008-0410-955e-edbf42e46eb7
* Update commentGravatar w00t2008-05-201-4/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9778 e03df62e-2008-0410-955e-edbf42e46eb7
* char -> std::string conversionGravatar w00t2008-05-201-2/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9777 e03df62e-2008-0410-955e-edbf42e46eb7
* Convert connection::hostGravatar brain2008-05-191-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9768 e03df62e-2008-0410-955e-edbf42e46eb7
* Make User:: nick/ident/dhost/fullname and some other things std::string ↵Gravatar aquanight2008-05-181-14/+14
| | | | | | instead of char*/char[] (MODULES DO NOT COMPILE) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9748 e03df62e-2008-0410-955e-edbf42e46eb7
* Add sanity checks to LoopCall to prevent miscalls like this by broken 3rd ↵Gravatar brain2008-05-051-0/+6
| | | | | | party modules git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9643 e03df62e-2008-0410-955e-edbf42e46eb7
* *param.c_str() -> param[0]Gravatar brain2008-05-041-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9612 e03df62e-2008-0410-955e-edbf42e46eb7
* < MAXPARAMETERS for the size() check here can now be <= insteadGravatar brain2008-05-041-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9611 e03df62e-2008-0410-955e-edbf42e46eb7
* Conversion of command handler params from "const char* const* parameters, ↵Gravatar brain2008-05-041-53/+43
| | | | | | | | | | 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
* Fix RemoveCommands to remove all commands (this function had some really odd ↵Gravatar brain2008-04-201-12/+3
| | | | | | removal logic?) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9554 e03df62e-2008-0410-955e-edbf42e46eb7
* Apply patches to remove 200-odd dll limit on windows, made by GreenReaper, ↵Gravatar brain2008-04-181-1/+2
| | | | | | lots of thanks! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9533 e03df62e-2008-0410-955e-edbf42e46eb7
* Wheeee for HUGE commits. Convert all numerics to WriteNumeric so that ↵Gravatar brain2008-03-221-7/+7
| | | | | | OnNumeric can capture them. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9175 e03df62e-2008-0410-955e-edbf42e46eb7
* Convert remaining InspIRCd::Log() calls to new logging systemGravatar aquanight2008-02-221-4/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9001 e03df62e-2008-0410-955e-edbf42e46eb7
* Wheee, mass commit! this adds const stafety, throwing a compile error if ↵Gravatar brain2008-02-201-4/+4
| | | | | | | | | anyone does: "parameters[n] = blahvar;" in a command handler etc. where they REALLY SHOULD NOT fuck with the value and should copy the pointer. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8971 e03df62e-2008-0410-955e-edbf42e46eb7
* Seems trivial now, looking at it. Still to test then will commit to trunk.Gravatar brain2008-02-201-2/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8969 e03df62e-2008-0410-955e-edbf42e46eb7
* Seperate USERIO into USERINPUT and USEROUTPUTGravatar brain2008-02-171-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8949 e03df62e-2008-0410-955e-edbf42e46eb7
* Add -Wshadow to cflags, and fix a bunch of warnings that come with it. Add a ↵Gravatar w00t2008-02-111-1/+1
| | | | | | note to webirc that needs looking at. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8892 e03df62e-2008-0410-955e-edbf42e46eb7
* Add a printf-type override for LogManager::Log(). We need to find a way to ↵Gravatar w00t2008-02-091-1/+1
| | | | | | see if a log call would have any interest, to avoid unnecessary printf() here though. Convert a bunch of stuff to using new logging (added targets: USERS, USERIO) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8860 e03df62e-2008-0410-955e-edbf42e46eb7
* Change API OnOperCompare to OnPassCompare, password hashing is now available ↵Gravatar aquanight2008-01-271-2/+2
| | | | | | for <connect:allow>, <power die= restart=>, <title> (m_customtitle.so), <vhost> (m_vhost.so), this works the same was as for <oper>: load m_password_hash.so (after all hasher modules, of course), and add hash="md5/sha256/whatever" to the relevant tag. Also fix m_callerid.cpp crashing on unload. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8755 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix.. snomask O is already taken (ffs) so use A insteadGravatar w00t2008-01-171-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8729 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove InspIRCd::WriteOpers in favour of snomask OGravatar w00t2008-01-171-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8728 e03df62e-2008-0410-955e-edbf42e46eb7
* Two stage commit: don't set user->muted except in QuitUser (duplicate ↵Gravatar w00t2008-01-161-5/+3
| | | | | | setting), also, change muted to drop all socket operations instead of just not reading the user's buffer if muted is set (no point wasting time - they're going away). Also revert culllist back to once per mainloop iteration now it is much cheaper than previously. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8716 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix a stupid crash on unknown commands caused by me blindly applying a 1.1 ↵Gravatar w00t2008-01-151-2/+5
| | | | | | patch.. doesn't affect 1.1 git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8710 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