summaryrefslogtreecommitdiff
path: root/include/hashcomp.h
AgeCommit message (Collapse)Author
2007-07-16OOPS! We try again, since I'm smoking craq. LF is 0x0a NOT CR.peavey
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7456 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-16'svn propset -R svn:eol-style CR *' Set to UNIX-style always. Binaries are ↵peavey
auto skipped by svn. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7454 e03df62e-2008-0410-955e-edbf42e46eb7
2007-06-17Comments (lots of)brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7377 e03df62e-2008-0410-955e-edbf42e46eb7
2007-06-13Fixes for tokenization oddness with metadata, and weird behaviour of ↵brain
std::istringstream where the .str() method returns the whole string from the start to end, even AFTER youve read elements from it! Use irc::tokenstream instead and add some overridden methods to it. This is smarter as it reuses code and allows us to format metadata the same way we format irc data. NOTE: If you run any old servers alongside new servers (this revision) you might see spurious colons on the start of reasons for svsholds, cbans and filters. These can safely be ignored) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7283 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-22Bloody 'safe stl' warnings.brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7120 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-22Crappy warningsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7119 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-19Windows support. Tested and working to compile on freebsd and linux. Next ↵w00t
step is to make sure it actually works in windows too. ;p. Add Burlex to contributors. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7043 e03df62e-2008-0410-955e-edbf42e46eb7
2007-04-18Add trim() to hashcomp to trail leading and traling spaces from std::stringspeavey
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6809 e03df62e-2008-0410-955e-edbf42e46eb7
2007-04-02This needs some general QA-ing. Add support to new parser (introduced in ↵brain
1.1) for empty final params (just the colon) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6731 e03df62e-2008-0410-955e-edbf42e46eb7
2007-03-10Fix the operator== for irc::string -> std::string to be const&, the lack of ↵brain
const was stopping them being used in certain situations, this saves us a bunch of assign() git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6643 e03df62e-2008-0410-955e-edbf42e46eb7
2007-02-25Add max line length value to modestacker, so that it can clamp the max ↵brain
length of a composed line to a given size. Defaults to 350 which should be safe with fmode and mode with a server name git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6609 e03df62e-2008-0410-955e-edbf42e46eb7
2007-02-22Added sepstream::GetRemaining()special
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6608 e03df62e-2008-0410-955e-edbf42e46eb7
2007-02-07Ident fixes,brain
removal of some old craq we dont use. cgiirc optimizations and tidyups git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6541 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-20Fixed (rewrote) m_http_client's URL parsing, it is now more flexible and.. ↵special
actually works. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6416 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-16Make irc::spacify take 'const char*' instead of 'char*'peavey
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6006 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-15And now, just to force you to recompile the *whole* ircd.. updated headers ↵w00t
on the headers. :p git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5998 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-13Change m_watch to use hash_map rather than map, because of the large number ↵brain
of entries we deal with it will usually be faster git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5979 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-11irc::string assign(std::string&)brain
std::string assign(irc::string&) soooo: irc::string foo = assign(my_std_string); :p git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5956 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-18bits_size must be protected, not privatebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5764 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-18Add \code and \endcode tags for doxygenbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5763 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-18Fix a major whoopsie in that class i just added. It must be derived using ↵brain
virtual methods, because each TYPE of bitmask must have its own static allocation of flags. See the (long winded) comments. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5762 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-18Reduce size of max number of bytes in a bitfield from a 4 or 8 byte field to ↵brain
a 1 byte field (unsigned char). This still allows storage of 8*255 bits, which is MORE than enough (for the interested, its 2040 bits) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5761 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-18Properly document irc::dynamicbitmaskbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5760 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-17Fix this so it works, passes test case. Provide a method to query for a bit ↵brain
and to return the total size in bytes of the bitset git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5758 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-17Add irc::dynamicbitmask class. Feel free to take a look and offer ↵brain
suggestions, as far as i can tell its about as efficient as im going to make it. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5757 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-11Allow checking of overlapped ports. A bit of sensible thought prevents this ↵brain
from being O(n^2) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5694 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-11Document irc::portparser with comments :-)brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5693 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-11Add irc::portparser, a class to parse port ranges in the form ↵brain
"6660,6661,6662-6669,7000". Needs testing, watch next few commits. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5690 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-06Document a ton of classes (e.g. give them a short description for ↵brain
http://svn.inspircd.org/docs/annotated.html) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5434 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-03Documentbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5404 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-03New helper class irc::stringjoiner - it pwns you.brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5403 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-02Remove testcasesbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5398 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-02mmmm dinner break, oh and document and make use of modestacker.brain
Someone test this, i cant as im at work. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5395 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-02Add more features to modestacker so that we can stack +, -, and ↵brain
parameterless modes git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5391 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-02More efficient modestackerbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5390 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-02modestacker class, stacks modes and returns a string list of up to MAXMODES ↵brain
modes git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5389 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-17Turn irc::commasepstream into a base class, irc::sepstream, inherit two ↵brain
classes from it: irc::commasepstream and irc::spacesepstream, to be used for the most common token seperators "," and " " git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5266 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-10Move Spacify() into irc:: namespace as multiple modules use it nowbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5200 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-03We now have a test module that can dump someones certificate information: ↵brain
/sslinfo <nick> git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5125 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-18Commentsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4952 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-18Move lowermap[] into a pre-initialised const array in hashcomp.h,brain
get rid of InspIRCd::MakeLowertab() git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4951 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-12Document the nspace namespacebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4906 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10Move strlower into nspace namespace where hash<std::string> livesbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4850 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10Move the socket functions like insp_ntoa into their own namespace. They ↵brain
arent really sensible to put into a class, but namespacing them out discourages developers from directly using them without explicitly saing 'using irc::sockets::BindPorts' or whatever first. Some functions such as insp_ntoa are already 'exposed' by headers that use them so 'using irc::sockets::inet_ntoa' isnt required. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4828 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-01Move to entirely using insp_sockaddr and insp_inaddr for socket stuff, first ↵brain
step on the road to ipv6 support git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4609 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-16Document irc::commasepstream and irc::tokenstreambrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4414 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-16Created new class irc::commasepstream.brain
Will read comma seperated lists and works identically to irc::tokenstream It's re-entrant so we can run two of them together for JOIN git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4412 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-16const the std::string reference in tokenstream's constructorom
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4400 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-16This should be faster, we read it like a stream now with GetToken until ↵brain
GetToken returns "". The optimizations done by gcc means theres only one std::string constructor call per token, which is mmm yum. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4397 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-16irc::tokenstream is a token parser which using std::string and std::vector ↵brain
builds a list of tokens using irc parsing rules. e.g.: :arse PRIVMSG #chan :foo bar baz becomes a[0] = ":arse", a[1] = "PRIVMSG", a[2] = "#chan", a[3] = "foo bar baz". *** SOMEONE *** needs to optimize this or at least verify its neatness (without making it total craq and unreadable). Feel free to mess with my code. Any optimizations you make, run them against the COMMENTED OUT TEST SUITE at the top of main() in src/inspircd.cpp and ensure ALL output is the same with no crashes. (note: if you comment out and build with the test suite, all inspircd will do is output test data and exit!) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4396 e03df62e-2008-0410-955e-edbf42e46eb7