Daniel Oaks
3ba8af714e
Use base 36 when generating message IDs, gives us full 0-9a-z to use while preserving uniqueness nicely
6 anni fa
Daniel Oaks
63bd52d471
Make message IDs much shorter (thanks @prawnsalad!)
6 anni fa
Daniel Oaks
197ab520bf
Change casemapping name and advertisement to match new spec
6 anni fa
Shivaram Lingamneni
52b0fb71e7
refactor ClientManager
6 anni fa
Daniel Oaks
dedb029272
DLINE: Save name of the banning oper
6 anni fa
Daniel Oaks
8036df92fc
WHO: Require first param, matching other servers
6 anni fa
Shivaram Lingamneni
d4cb15354f
remove registeredChannelsMutex
This moves channel registration to an eventual consistency model,
where the in-memory datastructures (Channel and ChannelManager)
are the exclusive source of truth, and updates to them get persisted
asynchronously to the DB.
6 anni fa
Shivaram Lingamneni
9b74c47b74
rename some getters
Rename getters in conformance with the "Effective Go" styleguide recommendation:
https://golang.org/doc/effective_go.html#Getters
6 anni fa
Shivaram Lingamneni
94cf438f51
remove channelJoinPartMutex
6 anni fa
Daniel Oaks
d715abf0f0
Add the INFO command
6 anni fa
Shivaram Lingamneni
7b58bf76ef
make error recovery configurable
6 anni fa
Shivaram Lingamneni
fa83ccd82b
refactor synchronization for Channel
6 anni fa
Daniel Oaks
8910dc59ee
Fix KLINE quit/error message and corrects comment on Client.Quit
6 anni fa
Shivaram Lingamneni
e540fde816
refactor idle timeouts
6 anni fa
Daniel Oaks
34987ba53a
Allow WEBIRC from specified hosts
6 anni fa
Daniel Oaks
2791476f16
INVITE: Fix dumb crash (thanks for pointing this out, @josephbisch!)
6 anni fa
Shivaram Lingamneni
d66470f1c4
review fix: rename various packages and objects
6 anni fa
Shivaram Lingamneni
58faad90dd
add loglines for IP limits
6 anni fa
Shivaram Lingamneni
ac9ac5ef19
create separate irc/connection_limiting package
6 anni fa
Shivaram Lingamneni
a2ac4eeef9
refactor limits and throttling
6 anni fa
Daniel Oaks
695faefd93
Allow formatting codes in the MOTD
6 anni fa
Daniel Oaks
68b1dc9e72
Split passwd into its' own subpackage
6 anni fa
Daniel Oaks
207c1074df
Split utils out to a separate subpackage
6 anni fa
Daniel Oaks
4aa52956e5
Split isupport to its' own subpackage
6 anni fa
Daniel Oaks
eac6a69782
Fix some notes and add some comments.
6 anni fa
Shivaram Lingamneni
456174ed53
review fixes for raw i/o notification
6 anni fa
Shivaram Lingamneni
aff1752d67
refactor logging to implement #142
6 anni fa
Daniel Oaks
f7f049973f
Rip out REST API and web interface.
It's not really used and I'd rather not have it here unless I'm able to actively maintain it properly and build out the web interface.
I might re-add it later but for now I'd rather not have it unless anyone's actively using it.
6 anni fa
Shivaram Lingamneni
26686d7e86
refactor monitor and /oper implementations
6 anni fa
Shivaram Lingamneni
23a66fa502
fix various data races, including 2 introduced by #139
6 anni fa
Daniel Oaks
275449e6cc
caps: Move most capability-handling types into the caps package
6 anni fa
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
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
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
cd8b4877b6
accounts: Check for account logins correctly, fixes registration. Also fix a typo, thanks squigz!
6 anni fa
Daniel Oaks
3b0d9c4db9
Send nick parameter correctly on ERR_NOSUCHNICK numerics
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