Shivaram Lingamneni
0f0f2d1314
refactor listener update/destroy code
Don't close and reopen listeners
vor 6 Jahren
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
vor 6 Jahren
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.
vor 6 Jahren
Daniel Oaks
c48d869f4d
Allow multiple account registrations for testing
vor 6 Jahren
Shivaram Lingamneni
6063d30bc5
add a test for default channel mode parsing
vor 6 Jahren
Shivaram Lingamneni
333afe1062
make default channel modes configurable
vor 6 Jahren
Daniel Oaks
d052ca8a8d
accounts: Disable reg if client's already registered an account
vor 6 Jahren
Daniel Oaks
ac91a3e484
strings: Follow latest advice on PRECIS regarding string stabilizing
vor 6 Jahren
Daniel Oaks
f9ef97b204
modes: Add experimental, untested +R user mode to block messages from unregistered users
vor 6 Jahren
Shivaram Lingamneni
9a9a85cd55
fix hostmask issue
PTR records ending in . (e.g., `google-public-dns-b.google.com.`)
were considered invalid
vor 6 Jahren
Daniel Oaks
ffabd26653
Make sure ISUPPORT outputs are sorted and tested
vor 7 Jahren
Daniel Oaks
97cfc0b629
Print warnings to heavily encourage exposing port 6697 as a TLS port
vor 7 Jahren
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.
vor 7 Jahren
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.
vor 7 Jahren
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.
vor 7 Jahren
Daniel Oaks
b807f492ed
OPER: If client's already opered-up, ignore new OPER attempts
vor 7 Jahren
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.
vor 7 Jahren
Daniel Oaks
c0fbc7908d
sasl: Always send a 906 in response to AUTHENTICATE *
vor 7 Jahren
Daniel Oaks
7735ddfa03
Setup v0.8.3-unreleased devel ver
vor 7 Jahren
Daniel Oaks
376fa70244
Release v0.8.2
vor 7 Jahren
Daniel Oaks
b633db3c9d
modes: Also allow Voice
vor 7 Jahren
Daniel Oaks
6ffc96d495
modes: Let users give other users privs in channels. Silly bug.
vor 7 Jahren
Daniel Oaks
279ac928ae
Setup 0.8.2-unreleased for next release
vor 7 Jahren
Daniel Oaks
325ed3e112
Release v0.8.1
vor 7 Jahren
Daniel Oaks
23a26f83fe
client: Show real IP and whether the target's using TLS in WHOIS
vor 7 Jahren
Daniel Oaks
1c0c4841a1
General comments, fix misspellings and lints
vor 7 Jahren
Daniel Oaks
e5980beb7d
SANICK: Fix check for new user
vor 7 Jahren
Daniel Oaks
c9ed749538
Rename deps
vor 7 Jahren
Daniel Oaks
a8fa131244
Move to new repo
vor 7 Jahren
Daniel Oaks
5b3cea8b98
xline: Add snomasks for setting/removing xlines
vor 7 Jahren
Daniel Oaks
309ec8191e
Add 'k' snomask for kills (including those coming from dlines and klines)
vor 7 Jahren
Daniel Oaks
3ee26041ff
Send snomask on client quits
vor 7 Jahren
Daniel Oaks
8a6ba6f9cc
LIST: Start implementing ELIST conditions
vor 7 Jahren
Daniel Oaks
55d8eb5dce
Make 'nick' snomask look nicer
vor 7 Jahren
Daniel Oaks
34863a6320
JOIN: Disable JOIN 0 support, in line with Insp
vor 7 Jahren
Daniel Oaks
4128ff6137
server: Check for channel permissions when renaming channels
vor 7 Jahren
Daniel Oaks
0f8ab4eaec
server: Add proposed RENAME command
vor 7 Jahren
Daniel Oaks
53190ef131
Send a whole lot more snomasks
vor 7 Jahren
Daniel Oaks
ebb9d629d7
xline: Add ANDKILL param to kill all matching clients
vor 7 Jahren
Daniel Oaks
a271481c41
Setup 0.8.1-unreleased for next release
vor 7 Jahren
Daniel Oaks
f051b43f27
Release v0.8.0
vor 7 Jahren
Daniel Oaks
ab2ae70f13
help: Add help text for snomasks
vor 7 Jahren
Daniel Oaks
d847d55c06
Fix wordWrap function so it doesn't drop chars, and fix client.Notice() to automagically split very long lines.
vor 7 Jahren
Daniel Oaks
9fe7c143c8
server: Remove useless comments, make idle/quit function layouts nicer
vor 7 Jahren
Daniel Oaks
fb63691c8b
commands: Timeout unregistered clients
vor 7 Jahren
Daniel Oaks
ff82872934
reg: Rename commands to match
vor 7 Jahren
Daniel Oaks
fd793d6adb
Add very initial snomasks
vor 7 Jahren
Daniel Oaks
1afd3b8f78
server: Change localconnect msg to include username/realname
vor 7 Jahren
Daniel Oaks
f5ecf70ecf
logger: Flush file writes to ensure they get written out
vor 7 Jahren
Daniel Oaks
7ac96114c3
log: Allow logging to stdout
vor 7 Jahren