Age | Commit message (Collapse) | Author |
|
* 'const char*' to 'const std::string&'.
* snprintf to std::string concatenation.
* Replace duplicated OneOfMatches with InspIRCd::MatchMask.
|
|
Add method for writing server notices.
|
|
This allows us to send a server notice to a user without worrying
about whether they are registered or not.
If a user receives a server notice and they are not registered
then the nickname field will contain an asterisk instead of their
nick name.
|
|
Spotted by @ShutterQuick
Issue #532
|
|
|
|
|
|
user.
|
|
|
|
The DNS modules are temporarily in commands/ so they're loaded automatically
Thanks to Attila for helping with much of this.
|
|
This greatly decreases the load time because the DH parameters no longer have to be (re)generated each time the module is loaded
|
|
same name as we do and also there is a link block with our server name and their password
See 49223cfe12ecd9071123f724e615e63841f2421d
|
|
|
|
becomes unavailable
|
|
|
|
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
|
|
|
|
|
|
- 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
|
|
as a constant
|
|
|
|
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
|