Age | Commit message (Collapse) | Author |
|
Closes #1240.
|
|
When checking for an E-Line match, we want to actually check for a
current match even if we previously matched and are set exempt.
This fixes situations where you have an E-Lined CGI:IRC address,
a G-Lined IP range for some area/host/etc and a smaller E-Lined
IP range for known good clients. Currently when CGI:IRC changes
the IP, E-Lines are rechecked but because the user is already exempt
(from the CGI:IRC E-Line), they are set no longer exempt and match
a G-Line, when they should match an E-Line.
This exact change has been done before in commit 'c8b344e' and shortly
reverted in 'c490a90' to fix issue #989 (CGI:IRC users remaining exempt
when the CGI:IRC address is E-Lined but they are not).
The actual cause to this issue was likely that the user's hostname was
not changed from the CGI:IRC hostname/IP prior to rechecking E-Lines.
This is being fixed in a separate commit.
|
|
ChangeIP() calls SetClientIP() which revalidates whether the user
matches an ELine. However, because the hostname has not changed yet
the user may incorrectly be marked as non-exempt.
|
|
Since CGI:IRC calls it's 'ChangeIP()' either from 'OnCheckReady()'
or 'OnUserRegister()', both of which are called after the user has
sent NICK/USER, we can safely skip re-setting the ExtItem prior to
this point.
This skips the first 'OnSetUserIP()' from 'User::AddUser()' as
the 'OnSetConnectClass()' catch handles the initial setting.
|
|
Backported from 2afc1af4639ae2bbef397f4f6acc834950017d91.
|
|
as requested by @Adam-
|
|
|
|
|
|
Sending history to some bots can cause problems as without the
IRCv3 chathistory batch they have no way of knowing what messages
are history and what they should respond to.
Closes #1450.
|
|
This is used by modules like m_sasl to send the cgiirc hostname to
services so it should contain something valid.
Closes #1438.
|
|
|
|
|
|
As far as I can tell this is not a problem as all ban masks are
canonicalised but its better to be safe than sorry.
|
|
|
|
|
|
This is causing problems such as duplicate 904 messages.
|
|
* Send to remote servers upon setting
* Send to halfop if available upon expiry
|
|
2.0: Inform the client when a SASL message cannot be sent
|
|
When SASL is properly configured with a 'target' server, we are able
to inform the client when the message fails to send.
Currently if a target is configured and it is offline, no response is
sent. This can cause some clients to time out while waiting for a response.
If a target isn't configured, behaviour will not change with this commit.
The default of '*' will still send to all servers.
Updated example config with 'target' variable.
|
|
This was done to the string variant in d3b82b2f7f.
|
|
|
|
See: 66f82ccf926aac39273bfc652c85c08080cc9a46
Fixes inspircd/inspircd-extras#110
|
|
|
|
When we release 3.0 these links will break as they will point to
the pages for 3.0 rather than 2.0.
|
|
See atheme/atheme@b41753f740 for more details.
|
|
|
|
|
|
MatchCIDR is what [GKZ]Line::Matches uses it so we should also use
it here to prevent insane bans that should not pass from passing.
|
|
This prevents a bug where we send malformed messages to the client
when dlerror() returns an error message containing more than one
line. This has been observed on macOS but probably will happen on
other UNIX systems too.
This also fixes a potential problem where dlerror() returns NULL
and converting it to std::string causes a crash. I can't see any
way that this might happen but it is better to be safe than sorry.
|
|
This will almost always be % but if the server admin is using the
customprefix module and remaps it to something else messages will
not be sent out correctly.
|
|
Previously we assumed that CTCP ACTIONs matched "\1ACTION ". This
is incorrect because "\1ACTION\1" and "\1ACTION" are valid CTCPs.
|
|
|
|
|
|
fix override issue
|
|
m_sakick: remove unused "Unable to kick" notice
|
|
m_cloaking: don't apply cloak to already cloaked users during registration
|
|
This can happen if services set a vhost during registration (like with
SASL)
|
|
[2.0] Warn when a user configures a permanent channel without +P.
|
|
m_sasl: send host/ip info
|
|
[2.0] Invalidate the caches properly when User::SetClientIP is called.
|
|
This has never worked due to the channel lookup using the user's nick
|
|
|
|
|
|
|
|
This has never worked because it never prepended attribute= to the
search string. It also would prefer matching nick/ident over the user
string provided which is inconsistent, since your ability to
authenticate using PASS would depend on a ldap entry not existing with
your current nick/ident.
Instead, use username provided in PASS and then fallback to nick/ident.
|
|
Fixes #1276
|
|
m_cloaking: fix host/ip comparisons #1249
|
|
|
|
|
|
|