summaryrefslogtreecommitdiff
path: root/src/command_parse.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add Inspircd::AddServicesGravatar danieldg2009-11-151-4/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12135 e03df62e-2008-0410-955e-edbf42e46eb7
* Add fine-grained command flood controlsGravatar danieldg2009-11-111-1/+1
| | | | | | | This reintrouces "Excess Flood" quits for those that prefer it to fakelag, and allows the maximum command rate to be set in the connect block. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12093 e03df62e-2008-0410-955e-edbf42e46eb7
* Fixes found by removing User inheritance from StreamSocketGravatar danieldg2009-10-251-3/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11975 e03df62e-2008-0410-955e-edbf42e46eb7
* Change User::oper to an OperInfo referenceGravatar danieldg2009-10-211-1/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11945 e03df62e-2008-0410-955e-edbf42e46eb7
* Move all local-only fields to LocalUserGravatar danieldg2009-10-211-5/+5
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11944 e03df62e-2008-0410-955e-edbf42e46eb7
* Add a setting to <connect> allowing the threshold for activation of the ↵Gravatar peavey2009-10-191-1/+1
| | | | | | penalty system to be set in the configuration, or be disabled by setting it to 0. [jackmcbarn] git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11922 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove Command and ModeHandler objects in their destructors; fixes possible ↵Gravatar danieldg2009-10-131-17/+7
| | | | | | pointer leak if a module was not careful when triggering exceptions in its constructor git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11872 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove InspIRCd* parameters and fieldsGravatar danieldg2009-09-261-5/+5
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11763 e03df62e-2008-0410-955e-edbf42e46eb7
* Create StreamSocket for IO hooking implementationGravatar danieldg2009-09-211-32/+4
| | | | | | | | | | | | | | Fixes the SSL SendQ bug Removes duplicate code between User and BufferedSocket Simplify SSL module API Simplify EventHandler API (Readable/Writeable moved to SE) Add hook for culled objects to invoke callbacks prior to destructor Replace SocketCull with GlobalCull now that sockets can close themselves Shorten common case of user read/parse/write path: User::Write is now zero-copy up to syscall/SSL invocation User::Read has only two copy/scan passes from read() to ProcessCommand git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11752 e03df62e-2008-0410-955e-edbf42e46eb7
* Properly spacify opertypes in error messages. Patch by dKingstonGravatar special2009-09-141-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11724 e03df62e-2008-0410-955e-edbf42e46eb7
* Change cmd_*.so to use the Module object APIGravatar danieldg2009-09-031-155/+3
| | | | | | | | | | | | | | Create Module* objects for each command, and load them like modules. This unifies the external API for modules. Library directory is now deprecated: all modules are located in a single module directory. Header files for each command are no longer needed; remove. This also fixes two potential segfaults in m_spanningtree. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11668 e03df62e-2008-0410-955e-edbf42e46eb7
* ModResult conversion: Change return type of all module functionsGravatar danieldg2009-09-021-13/+12
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11634 e03df62e-2008-0410-955e-edbf42e46eb7
* Add Module* creator to Command and ModeHandlerGravatar danieldg2009-09-021-4/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11631 e03df62e-2008-0410-955e-edbf42e46eb7
* Valgrind cleanup: finish destructor creationGravatar danieldg2009-09-021-0/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11615 e03df62e-2008-0410-955e-edbf42e46eb7
* Valgrind cleanup: Add RemoveRFCCommands() to dlclose() and delete the core ↵Gravatar danieldg2009-09-021-0/+13
| | | | | | commands git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11613 e03df62e-2008-0410-955e-edbf42e46eb7
* Include explicit routing information in Command, will replace CMD_LOCALONLY ↵Gravatar danieldg2009-09-021-10/+22
| | | | | | return value git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11601 e03df62e-2008-0410-955e-edbf42e46eb7
* Replace std::deque with std::vector in spanningtree and related modulesGravatar danieldg2009-09-021-3/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11593 e03df62e-2008-0410-955e-edbf42e46eb7
* Change allocation of commands/modesGravatar danieldg2009-09-021-1/+0
| | | | | | | | | | API change: Commands passed to AddCommand are no longer deleted automatically This removes lots of needless heap allocation and fixes a few memory leaks by allocating commands and modes as part of the Module rather than creating them separately in the module constructor. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11592 e03df62e-2008-0410-955e-edbf42e46eb7
* Apply fake lag on garbage input to discourage crapGravatar w00t2009-08-141-8/+10
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11511 e03df62e-2008-0410-955e-edbf42e46eb7
* rollback r11326, we're going to make vc9 the officially supported windows ↵Gravatar peavey2009-04-231-1/+1
| | | | | | build methods since the few of us doing win dev can't keep up maintaining the others. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11327 e03df62e-2008-0410-955e-edbf42e46eb7
* Heres the beef so farGravatar brain2009-04-231-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11326 e03df62e-2008-0410-955e-edbf42e46eb7
* Convert snomask 'A' into snomask 'a' for local announcements, add snomask ↵Gravatar w00t2009-04-161-1/+1
| | | | | | | | | 'A' for remote announcements. Make SAMODE send a snotice to 'a' and remote to 'A' - fixes bug #822, reported by Taros We really need a wrapper to use these, but, for now it's usable. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11304 e03df62e-2008-0410-955e-edbf42e46eb7
* Make the message when reloading a command fails more accurate, and fix ↵Gravatar dz2009-03-271-2/+2
| | | | | | reloading commands after a failed reload. Fixes bug #776 reported by Taros, and bug #785. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11270 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
* Allow commands to be reloaded when they previously failed to loadGravatar danieldg2009-03-141-12/+9
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11219 e03df62e-2008-0410-955e-edbf42e46eb7
* Send denied commands to the correct snomask (t, not d). Reported by HiroP.Gravatar w00t2009-03-111-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11209 e03df62e-2008-0410-955e-edbf42e46eb7
* 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