Daniel Oaks
9bfdc4fdfb
Move caps to their own package to prevent conflicts
6 anni fa
Daniel Oaks
830484feb6
AWAY: Send correct mode string (thanks for pointing out this silly bug @jwheare!)
6 anni fa
Daniel Oaks
c39206ad13
Don't create new caps out of nowhere, dummy
6 anni fa
Daniel Oaks
ffe7375a68
Fix proxied DLINE/throttle/etc error messages
6 anni fa
Shivaram Lingamneni
a9e4ed237e
deduplicate d-line and throttle code
6 anni fa
Daniel Oaks
8b1f722655
server: Fix the PROXY command
6 anni fa
Daniel Oaks
8ea5632269
Setup v0.9.2-unreleased devel ver
6 anni fa
Shivaram Lingamneni
b7b24c34b4
rehash cannot modify the server name
6 anni fa
Shivaram Lingamneni
3b0f1ff1cc
delete websocket support as per discussion on #139
6 anni fa
Shivaram Lingamneni
e8b1870067
refactor the rehash implementation
6 anni fa
Daniel Oaks
eae04e8c51
Release v0.9.1
6 anni fa
Daniel Oaks
cd8b4877b6
accounts: Check for account logins correctly, fixes registration. Also fix a typo, thanks squigz!
6 anni fa
Shivaram Lingamneni
1612c141d5
send the actual quit message to friends
6 anni fa
Daniel Oaks
a78a8f1130
client: Only add friends if they actually have the caps we request. Friends() is entirely broken because of this
6 anni fa
Daniel Oaks
79de443496
channel: Don't send TOPIC on entirely new channel
6 anni fa
Daniel Oaks
2759d8f5d3
modes: Allow 'MODE b' (used by irssi for channel sync) (thanks @dx!)
6 anni fa
Daniel Oaks
3b0d9c4db9
Send nick parameter correctly on ERR_NOSUCHNICK numerics
6 anni fa
Daniel Oaks
1ccdd67a45
Setup v0.9.1-unreleased devel ver
6 anni fa
Daniel Oaks
02cd620bd4
Release v0.9.0
6 anni fa
Daniel Oaks
e95c75f87d
monitor: Fix a crash around the MONITOR command
6 anni fa
Daniel Oaks
acec0e1690
PROXY: Check DLINEs and connection limits/throttle on new proxied connections
6 anni fa
Daniel Oaks
38498b752b
PROXY: Make sure given IPs are valid and pass them through appropriately
6 anni fa
Daniel Oaks
7d140c9e43
PROXY: Update some comments, disallow from registered clients
6 anni fa
Shivaram Lingamneni
99f02ede20
restore PROXY protocol support
support for PROXY was removed in 43e28e2fef . After discussion,
it's worth keeping around in case of client compatibility issues,
and until /rehash support is more mature.
6 anni fa
Daniel Oaks
8cd016e4c0
server: Fix comments
6 anni fa
Shivaram Lingamneni
0f0f2d1314
refactor listener update/destroy code
Don't close and reopen listeners
6 anni fa
Shivaram Lingamneni
d5528f6e56
execute rehash() in its own goroutine
This prevents a deadlock:
1. rehash() is executing on the main goroutine
2. it's trying to stop a listener goroutine
3. the listener goroutine needs to hand off a new connection to newConns
4. but the main goroutine is blocked by rehash() so it can't receive it
6 anni fa
Shivaram Lingamneni
b1376d5f71
Fix a concurrency error with Server.listeners
See #134 ; there was a `fatal error: concurrent map read and map write`
due to unsynchronized accesses to `Server.listeners`. Now, `listeners`
is only accessed by `NewServer` and `rehash`, so it doesn't need
synchronization.
6 anni fa
Daniel Oaks
c48d869f4d
Allow multiple account registrations for testing
6 anni fa
Shivaram Lingamneni
6063d30bc5
add a test for default channel mode parsing
6 anni fa
Shivaram Lingamneni
333afe1062
make default channel modes configurable
6 anni fa
Daniel Oaks
d052ca8a8d
accounts: Disable reg if client's already registered an account
6 anni fa
Daniel Oaks
ac91a3e484
strings: Follow latest advice on PRECIS regarding string stabilizing
6 anni fa
Daniel Oaks
f9ef97b204
modes: Add experimental, untested +R user mode to block messages from unregistered users
6 anni fa
Shivaram Lingamneni
9a9a85cd55
fix hostmask issue
PTR records ending in . (e.g., `google-public-dns-b.google.com.`)
were considered invalid
6 anni fa
Daniel Oaks
ffabd26653
Make sure ISUPPORT outputs are sorted and tested
7 anni fa
Daniel Oaks
97cfc0b629
Print warnings to heavily encourage exposing port 6697 as a TLS port
7 anni fa
Euan Kemp
3b47f3d470
config: don't casefold tls names
I don't think casefolding things like `:6697` ever made sense.
Since these are configured by the ircd operator, it makes sense to
assume they'll already be in a canonical form regardless.
7 anni fa
Euan Kemp
449ef4cea1
strings: disallow ':' in nicks
This matches the behavior of inspircd at the very least.
Previously, the comment above that section claimed ':' should be
disallowed, but the code didn't do so.
I also simplified the code a little bit and added tests.
7 anni fa
Euan Kemp
2b155f9b1e
server: close connection on parse-ip failure
Close the client's connection if we're unable to parse their IP.
This also simplifies the check to reduce indentation by a level.
Finally, this replaces the two-var construction of the pseudo-const
messages with an inline dereference via a slice to allow constructing
them less noisily.
7 anni fa
Daniel Oaks
b807f492ed
OPER: If client's already opered-up, ignore new OPER attempts
7 anni fa
Euan Kemp
2e8a98a925
irc: fix timer memleak
This is a gotcha called out in the `time.After` docs. `time.After` will
leak the underlying channel if nothing ever receives on it.
7 anni fa
Daniel Oaks
c0fbc7908d
sasl: Always send a 906 in response to AUTHENTICATE *
7 anni fa
Daniel Oaks
7735ddfa03
Setup v0.8.3-unreleased devel ver
7 anni fa
Daniel Oaks
376fa70244
Release v0.8.2
7 anni fa
Daniel Oaks
b633db3c9d
modes: Also allow Voice
7 anni fa
Daniel Oaks
6ffc96d495
modes: Let users give other users privs in channels. Silly bug.
7 anni fa
Daniel Oaks
279ac928ae
Setup 0.8.2-unreleased for next release
7 anni fa
Daniel Oaks
325ed3e112
Release v0.8.1
7 anni fa
Daniel Oaks
23a26f83fe
client: Show real IP and whether the target's using TLS in WHOIS
7 anni fa