Age | Commit message (Collapse) | Author |
|
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
|
|
|
|
errors in m_callerid
|
|
Read database after all modules have been inited
Add exception logging
Fixes #485 reported by @gholms
|
|
...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
|
|
Fix building with libc++.
|
|
Thanks to @SimosNap for the report and cooperation
|
|
nickmax is < 9
|
|
|
|
|
|
- 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.
|
|
|
|
|
|
This also fixes a memory leak that didn't occur naturally but was triggerable by remote servers
Thanks to @SimosNap for the report
|
|
|
|
WSAEWOULDBLOCK
|
|
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
|
|
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)
|
|
- Ignore remote users
- Remove expired items in one pass
|
|
|
|
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
|
|
as a constant
|
|
This loop is not required because we already set current_uid[pos] to 'A' before recursing if current_uid[pos] is 9
|
|
|
|
InspIRCd::FindNick()/FindNickOnly()/FindUUID()/FindChan()
|
|
|
|
burst
|
|
A new but empty topic should override a non-empty old topic
|
|
Add <security:allowcoreunload>.
|
|
|
|
|
|
When enabled (the default) this setting prevents the unloading of
core modules such as cmd_privmsg.
|
|
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 ("+").
|
|
entries
|
|
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
|
|
|
|
|
|
|
|
Split the core function into several smaller functions
Accept userlist entries having no comma at all
|
|
Rename it to SyncChannel() and change it to take a Channel* parameter, move iteration into DoBurst()
|
|
|
|
|
|
Use it from the protocol interface and PRIVMSG/NOTICE handlers
Unite OnUserNotice and OnUserMessage code into LocalMessage()
|
|
dedicated to adding entries to it
|
|
to a new function
|
|
timestamps match but the topics differ
|
|
Return CMD_FAILURE to prevent propagation when the topic wasn't updated; return CMD_INVALID when the topicts is invalid
|
|
Remove two redundant functions from Utils
|
|
users
Use ModuleSpanningTree::RemoteMessage instead
|
|
Describe behavior in comments
|