Age | Commit message (Collapse) | Author |
|
instead of const char*
|
|
Don't run OnUserPreNick when the nick change is forced
|
|
|
|
Remove the size argument from IsChannel and IsNick.
|
|
There was only one case (which was probably an error) where these
methods were not set to their ServerLimits value.
|
|
|
|
See 21c3232b8e0bb41727f2d65a0b2d5304587cf6be and fae560cddc389b88c9cd34afdccf9035f4d11c5b
|
|
The spaces are converted to '_' characters in OPERTYPE for 2.0 servers
Issue #533 suggested by @ankitkv
|
|
- Remove virtual keyword from a ton of methods which don't need it.
- Add override keyword to a ton of methods which do need it.
|
|
* '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
|
|
|
|
|