Shivaram Lingamneni
23a66fa502
fix various data races, including 2 introduced by #139
2017-10-02 04:42:50 -04:00
Daniel Oaks
275449e6cc
caps: Move most capability-handling types into the caps package
2017-09-29 17:25:58 +10:00
Daniel Oaks
9bfdc4fdfb
Move caps to their own package to prevent conflicts
2017-09-29 12:07:52 +10:00
Daniel Oaks
830484feb6
AWAY: Send correct mode string (thanks for pointing out this silly bug @jwheare!)
2017-09-29 11:56:18 +10:00
Daniel Oaks
ffe7375a68
Fix proxied DLINE/throttle/etc error messages
2017-09-29 07:18:08 +10:00
Shivaram Lingamneni
a9e4ed237e
deduplicate d-line and throttle code
2017-09-29 07:05:59 +10:00
Daniel Oaks
8b1f722655
server: Fix the PROXY command
2017-09-29 07:05:22 +10:00
Shivaram Lingamneni
b7b24c34b4
rehash cannot modify the server name
2017-09-28 02:58:09 -04:00
Shivaram Lingamneni
3b0f1ff1cc
delete websocket support as per discussion on #139
2017-09-28 02:53:08 -04:00
Shivaram Lingamneni
e8b1870067
refactor the rehash implementation
2017-09-28 02:13:24 -04:00
Daniel Oaks
cd8b4877b6
accounts: Check for account logins correctly, fixes registration. Also fix a typo, thanks squigz!
2017-09-28 15:49:01 +10:00
Daniel Oaks
3b0d9c4db9
Send nick parameter correctly on ERR_NOSUCHNICK numerics
2017-09-26 07:52:43 +10:00
Daniel Oaks
e95c75f87d
monitor: Fix a crash around the MONITOR command
2017-09-25 11:29:27 +10:00
Daniel Oaks
acec0e1690
PROXY: Check DLINEs and connection limits/throttle on new proxied connections
2017-09-25 10:52:02 +10:00
Daniel Oaks
38498b752b
PROXY: Make sure given IPs are valid and pass them through appropriately
2017-09-25 10:52:01 +10:00
Daniel Oaks
7d140c9e43
PROXY: Update some comments, disallow from registered clients
2017-09-25 10:52:01 +10:00
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.
2017-09-25 10:52:01 +10:00
Daniel Oaks
8cd016e4c0
server: Fix comments
2017-09-25 10:52:01 +10:00
Shivaram Lingamneni
0f0f2d1314
refactor listener update/destroy code
...
Don't close and reopen listeners
2017-09-11 18:40:15 -04:00
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
2017-09-11 14:03:53 -04:00
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.
2017-09-11 11:29:14 -04:00
Shivaram Lingamneni
333afe1062
make default channel modes configurable
2017-09-06 17:37:29 -04:00
Daniel Oaks
f9ef97b204
modes: Add experimental, untested +R user mode to block messages from unregistered users
2017-09-06 14:38:54 +10:00
Daniel Oaks
97cfc0b629
Print warnings to heavily encourage exposing port 6697 as a TLS port
2017-07-27 23:29:08 +10:00
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.
2017-07-25 22:19:40 -07:00
Daniel Oaks
b807f492ed
OPER: If client's already opered-up, ignore new OPER attempts
2017-07-23 22:50:50 +10:00
Daniel Oaks
23a26f83fe
client: Show real IP and whether the target's using TLS in WHOIS
2017-06-23 05:15:10 +10:00
Daniel Oaks
c9ed749538
Rename deps
2017-06-15 10:14:19 -06:00
Daniel Oaks
a8fa131244
Move to new repo
2017-06-14 12:00:53 -06:00
Daniel Oaks
309ec8191e
Add 'k' snomask for kills (including those coming from dlines and klines)
2017-06-11 10:01:39 -06:00
Daniel Oaks
8a6ba6f9cc
LIST: Start implementing ELIST conditions
2017-06-11 07:45:58 -06:00
Daniel Oaks
34863a6320
JOIN: Disable JOIN 0 support, in line with Insp
2017-06-10 17:03:23 -06:00
Daniel Oaks
4128ff6137
server: Check for channel permissions when renaming channels
2017-06-04 20:06:11 -06:00
Daniel Oaks
0f8ab4eaec
server: Add proposed RENAME command
2017-06-04 20:01:37 -06:00
Daniel Oaks
53190ef131
Send a whole lot more snomasks
2017-05-28 12:43:09 -06:00
Daniel Oaks
ebb9d629d7
xline: Add ANDKILL param to kill all matching clients
2017-05-24 00:58:36 -06:00
Daniel Oaks
d847d55c06
Fix wordWrap function so it doesn't drop chars, and fix client.Notice() to automagically split very long lines.
2017-05-09 21:09:44 +10:00
Daniel Oaks
9fe7c143c8
server: Remove useless comments, make idle/quit function layouts nicer
2017-05-09 20:37:48 +10:00
Daniel Oaks
fd793d6adb
Add very initial snomasks
2017-05-08 09:15:16 +10:00
Daniel Oaks
1afd3b8f78
server: Change localconnect msg to include username/realname
2017-05-01 19:03:04 +10:00
Daniel Oaks
51425b7764
help: Generate index of help topics
2017-04-30 13:53:49 +10:00
Daniel Oaks
2bd4d03ecc
Prevent copying locks because that's silly
2017-04-30 11:12:25 +10:00
Daniel Oaks
f665ebac16
channels: Help prevent issues when join/parting
2017-04-18 17:19:44 +10:00
Daniel Oaks
e0035dfa04
types: Make ChannelNameMap use mutexes to fix crash
2017-04-17 21:03:02 +10:00
Daniel Oaks
0046025d60
Enable chanmode +r, fix bug with registering channels
2017-03-28 17:32:03 +10:00
Daniel Oaks
317a804644
Fix dates at top of source files
2017-03-27 22:15:02 +10:00
Daniel Oaks
451c40f170
WHO: Fix a small hang
2017-03-27 14:30:00 +10:00
Daniel Oaks
70b7606996
config: Allow enabling/disabling channel reg
2017-03-24 12:52:38 +10:00
Daniel Oaks
6842d2ead6
Merge master
2017-03-24 12:29:13 +10:00
Daniel Oaks
05074e966d
modes: Continue overhauling
2017-03-24 12:23:21 +10:00
Daniel Oaks
f29a5f0e70
socket: Very initial SendQ limit
2017-03-14 08:12:39 +10:00
Daniel Oaks
b33b217fab
Add very initial ChanServ and NickServ virtual clients
...
As well, add channel registration and re-applying founder privs on the first client joining the channel. I'm going to re-architect our modes system to better acocunt for this sort of change.
2017-03-11 22:01:40 +10:00
Daniel Oaks
439331cfb8
logger: Move to separate package, make *much* nicer
2017-03-10 22:02:08 +10:00
Daniel Oaks
531cf675c8
rehash: Add note about cap del/new order
2017-03-09 19:09:58 +10:00
Daniel Oaks
5c38800a02
config: Advertise STS draft, fix subsequent REHASHing
2017-03-09 19:07:35 +10:00
Daniel Oaks
25a373b7eb
logger: Add notice on connection when server is logging all I/O
2017-03-08 21:57:31 +10:00
Daniel Oaks
b328a4fcd3
logging: Add userinput and output, fix up lots
2017-03-06 22:11:10 +10:00
Daniel Oaks
415a8117ee
logger: Better colours and output
2017-03-06 20:15:28 +10:00
Daniel Oaks
29e89b16a0
logger: Very initial working new logs
2017-03-06 15:50:23 +10:00
Daniel Oaks
ba0f291e20
logger: Initial new logger
2017-03-06 13:05:33 +10:00
Daniel Oaks
3058161f62
config: Fix accounts registration/authentication
2017-03-06 09:43:52 +10:00
Daniel Oaks
d1cb4b9b37
server: Bunch of nits
2017-03-06 09:27:08 +10:00
Daniel Oaks
9f6c4363b7
USERHOST: Clean up a bit, support multiple nicks
2017-03-06 09:14:15 +10:00
vegax87
a623d8ef1e
Solved! RPL_USERHOST must use trailing
2017-01-23 21:20:42 +01:00
vegax87
2ff48a7088
I forgot a little typo
2017-01-23 18:51:09 +01:00
vegax87
1bb9502206
I don't understand why USERHOST is working with spaces...
2017-01-23 18:49:42 +01:00
vegax87
f3c9c2b4b5
USERHOST command
2017-01-23 17:44:35 +01:00
Daniel Oaks
c8b5fb65e0
WHOIS: Use inbuilt functionality to force trailing, as suggested by @vegax87
2017-01-23 09:03:49 +10:00
Daniel Oaks
ccae0cf7cd
LIST: Fix list to display right member counts
2017-01-22 13:01:44 +10:00
Daniel Oaks
cbe49ff3d8
Use a better line-splitting algorithm
2017-01-18 08:05:31 +10:00
Daniel Oaks
522001d4f6
Cleanup message sending
2017-01-18 07:27:06 +10:00
Daniel Oaks
e741c1476b
Implement message-ids draft
2017-01-18 07:26:41 +10:00
Daniel Oaks
62dc3c8f66
server: Implement TAGMSG draft command
2017-01-18 07:26:05 +10:00
Daniel Oaks
f6185fa336
Get it working, using not-great and very initial splitting code
2017-01-18 07:26:05 +10:00
Daniel Oaks
92626a178d
server: Start roughly hacking in new message-tags support
2017-01-18 07:26:05 +10:00
Daniel Oaks
d2e18962e3
Very initial maxline work
2017-01-18 07:26:05 +10:00
Daniel Oaks
a0c97542ee
LUSERS: minor chan cleanup to avoid counting
2017-01-17 22:52:19 +10:00
Daniel Oaks
298f4907ac
LUSERS: Minor cleanups, we don't need to worry about changelog lines for now
2017-01-17 22:49:14 +10:00
vegax87
750f0ffcb6
removed Unknown connections
2017-01-17 12:09:51 +01:00
vegax87
b4427fa782
some comments
2017-01-15 15:29:16 +01:00
vegax87
4797331962
Basic implementation of LUSERS command
2017-01-15 01:48:47 +01:00
Daniel Oaks
2de273462b
WHOIS: Hack to make silly clients work
2017-01-14 13:54:57 +10:00
Daniel Oaks
2b240faa90
strings: Fix nick bugs, use UsernameCaseMapped
2017-01-14 02:32:15 +10:00
Daniel Oaks
0a3de9a912
whois: Send channels without prefix (handled by Send())
2017-01-13 13:12:36 +10:00
vegax87
a54dcb9057
Fixed WHOIS Command
2017-01-13 02:05:58 +01:00
Daniel Oaks
91d59575ce
Add initial automated connection throttling
2017-01-12 21:17:50 +10:00
Daniel Oaks
4168eaafbb
Basic implementation of KLINEs
2017-01-11 22:38:16 +10:00
Daniel Oaks
c39bebc696
Fix various locks around joining, kicking and quitting
2017-01-11 12:16:51 +10:00
Daniel Oaks
6f7c683247
channel: RWMutex for members access
2017-01-11 02:09:08 +10:00
Daniel Oaks
efb3000717
client_lookup_set: Use RWMutex
2017-01-11 01:06:02 +10:00
Daniel Oaks
f57a43f3da
KICK: Allow multiple kicks to the same channel
2016-12-01 18:10:38 +10:00
Daniel Oaks
a8eabe8e9c
client: Fix a lot of bugs around setting NICK
2016-11-29 22:33:10 +10:00
Daniel Oaks
5eafd2656e
channel: Send channel NOTICEs properly
2016-11-29 21:41:26 +10:00
Daniel Oaks
9a9820fa88
NICK: Prevent races, remove a DoS
2016-11-16 12:02:22 +10:00
Daniel Oaks
95e36b99a2
Nick locking (entirely broken, needs to be completely redesigned)
2016-11-16 03:05:33 +10:00
Daniel Oaks
6d6c1936cc
Handle db better, fix bug, update db schema, rest
2016-11-06 13:47:13 +10:00
Daniel Oaks
ee3853f845
restapi: Initial commit
2016-11-06 12:49:39 +10:00
Daniel Oaks
c3174bb648
Various crash fixes, and little cleanups for safety
2016-11-04 21:38:47 +10:00
Daniel Oaks
8c797d0f76
Initial DLINE changes
2016-11-04 12:42:58 +10:00
Daniel Oaks
07e4728c15
roleplay: Initial commit
2016-11-01 23:56:25 +10:00