summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-04-21m_spanningtree Move CacheTimer into utilsattilamolnar
2013-04-21Timer changes and TimerManager enhancementsattilamolnar
Timer::Tick() now has a bool return value: if false is returned the timer is deleted using operator delete, otherwise, if it's a repeating timer then it's rescheduled (readded) Timers are removed from the TimerManager automatically at destruction Timers are now stored in a multimap instead of a sorted vector
2013-04-21m_filter Fix memory leak on unloadattilamolnar
2013-04-21Log some internal errors on DEFAULT loglevel instead of DEBUG, log detected ↵attilamolnar
errors in m_callerid
2013-04-21m_permchannels Workaround for alphabetical module initialization orderattilamolnar
Read database after all modules have been inited Add exception logging Fixes #485 reported by @gholms
2013-04-21Don't crop the channel name if it's too long in Channel::Channel()attilamolnar
...and especially don't use the shortened name in one place and the original in another Having different <limits:maxchan> values on the same network is not supported
2013-04-20Merge pull request #495 from SaberUK/master+fix-libcppAttila Molnar
Fix building with libc++.
2013-04-19Immediately stop processing whenever we detect and handle a RecvQ overrunattilamolnar
Thanks to @SimosNap for the report and cooperation
2013-04-19Fix uuids getting truncated in the nick hash in UserManager::AddUser() if ↵attilamolnar
nickmax is < 9
2013-04-19m_ident Invalidate cache after changing User::identattilamolnar
2013-04-19m_callerid Allow messaging yourself while +g regardless of the ACCEPT listattilamolnar
2013-04-19Fix building with libc++.Peter Powell
- Purged std::tr1::strlower (was never used). - Moved std::tr1::insensitive to irc::insensitive. - Added TR1NS macro to point to the correct C++ TR1 namespace.
2013-04-18m_spanningtree Fix IS_LOCAL() check in OnRehash handlerattilamolnar
2013-04-18m_callerid Ignore duplicate entries when unserializing callerid_dataattilamolnar
2013-04-18m_callerid Fix bookkeeping error introduced when unserializing callerid_dataattilamolnar
This also fixes a memory leak that didn't occur naturally but was triggerable by remote servers Thanks to @SimosNap for the report
2013-04-17Fix Windows buildattilamolnar
2013-04-16Fix m_ssl_gnutls and perhaps some other things on Windows by recognizing ↵Adam
WSAEWOULDBLOCK
2013-04-16m_kicknorejoin Store and compare uuids instead pointersattilamolnar
Fixes the off chance scenario where we disallow a join because a previously kicked user has quit and the User who is trying to join happens to be allocated at the exact same memory location
2013-04-16m_kicknorejoin Limit time to 30m by defaultattilamolnar
In the current implementation we only expire entries when someone joins, without a limit it was possible to make us practically never remove entries and consume (a tiny amount of) memory for each entry until the mode was removed/parameter was changed The default limit of 30m is chosen to not surprise people when they upgrade. If you need to prevent rejoins for more than a minute then you should set a (timed)ban instead Config option is available to change the limit (2.0 only)
2013-04-16m_kicknorejoin Minor improvementsattilamolnar
- Ignore remote users - Remove expired items in one pass
2013-04-16Close listening sockets regardless of the return value of shutdown()attilamolnar
2013-04-16Do not enable SO_LINGER on our socketsattilamolnar
Using this option allowed close() to block for up to a second Thanks to Shamsdeen and Rix for their assistance that made this fix possible Fixes issue #445 reported by @shaggie76 Fixes issue #494 reported by @Rixcho
2013-04-14Use std::string internally in UIDGenerator, move UUID_LENGTH into the class ↵attilamolnar
as a constant
2013-04-14Simplify UID generation logicattilamolnar
This loop is not required because we already set current_uid[pos] to 'A' before recursing if current_uid[pos] is 9
2013-04-14Extract UID/SID generation logic into a new class: UIDGeneratorattilamolnar
2013-04-13Remove const char* versions of ↵attilamolnar
InspIRCd::FindNick()/FindNickOnly()/FindUUID()/FindChan()
2013-04-13m_spanningtree Remove redundant first parameter of PING/PONGattilamolnar
2013-04-13m_spanningtree Ignore hopcount in incoming SERVER command, always send 0 at ↵attilamolnar
burst
2013-04-13m_spanningtree Netburst: If a topic was ever set, send it even if it's emptyattilamolnar
A new but empty topic should override a non-empty old topic
2013-04-13Merge pull request #476 from SaberUK/master+allowcoreunloadAttila Molnar
Add <security:allowcoreunload>.
2013-04-13m_spanningtree Add channel timestamp to FTOPICattilamolnar
2013-04-13m_spanningtree Add channel timestamp to channel METADATAattilamolnar
2013-04-13Add <security:allowcoreunload>.Peter Powell
When enabled (the default) this setting prevents the unloading of core modules such as cmd_privmsg.
2013-04-13m_spanningtree Introduce IJOIN and RESYNCattilamolnar
When a local user joins an existing channel, instead of an FJOIN, send an IJOIN with the channel name being the first parameter. If the joining user received prefix modes, append the channel TS and the prefix mode letters as the second and third parameters. When receiving an IJOIN, first check if the target channel exists. If it does not exist, ignore the join (that is, do not create the channel) and send a RESYNC back to the source. If the channel does exist then join the user, and in case any prefix modes were sent (found in the 3rd parameter), compare the TS of the channel to the TS in the IJOIN (2nd parameter). If the timestamps match, set the modes on the user, otherwise ignore the modes. Outgoing IJOINs to 1202 protocol servers are converted to FJOINs, but the channel mode parameter is left empty ("+").
2013-04-13m_spanningtree Bump protocol version and remove unused CAPAB CAPABILITIES ↵attilamolnar
entries
2013-04-13Channel::JoinUser() and Channel::ForceChan() changesattilamolnar
Convert static Channel::ForceChan() to non-static Channel::ForceJoin() that joins a user to a channel, no permission checks The (static) Channel::JoinUser() now has a LocalUser parameter, and no longer have TS and bursting parameters. If the channel doesn't exist, it is created using current time as TS
2013-04-13OnUserPreJoin is a local-only hook, change User* parameter to LocalUser*attilamolnar
2013-04-13Remove the deprecated invite APIattilamolnar
2013-04-12m_spanningtree Remove unneeded #includesattilamolnar
2013-04-12m_spanningtree FJOIN handler: Refactor, update docattilamolnar
Split the core function into several smaller functions Accept userlist entries having no comma at all
2013-04-12m_spanningtree Netburst: Refactor SendChannelModes()attilamolnar
Rename it to SyncChannel() and change it to take a Channel* parameter, move iteration into DoBurst()
2013-04-12m_spanningtree Change both prefix and first parameter of SQUIT to be a SIDattilamolnar
2013-04-12m_spanningtree Remove encapsulation on UserCount/OperCountattilamolnar
2013-04-12m_spanningtree Introduce new function to send channel messagesattilamolnar
Use it from the protocol interface and PRIVMSG/NOTICE handlers Unite OnUserNotice and OnUserMessage code into LocalMessage()
2013-04-12m_spanningtree Change TreeServerList to be a set, get rid of a function ↵attilamolnar
dedicated to adding entries to it
2013-04-12m_spanningtree Utils: Move code that creates a full line from its components ↵attilamolnar
to a new function
2013-04-12m_spanningtree FTOPIC handler: Keep only one topic if the two topic ↵attilamolnar
timestamps match but the topics differ
2013-04-12m_spanningtree FTOPIC handler: Return CMD_FAILURE/CMD_INVALID as appropiateattilamolnar
Return CMD_FAILURE to prevent propagation when the topic wasn't updated; return CMD_INVALID when the topicts is invalid
2013-04-12m_spanningtree atoi() to ConvToInt() conversion, add const where possibleattilamolnar
Remove two redundant functions from Utils
2013-04-12m_spanningtree RSQUIT handler: Don't reimplement sending messages to remote ↵attilamolnar
users Use ModuleSpanningTree::RemoteMessage instead