Daniel Oaks
c911ff2bcd
Squash a bunch of possible races
7 lat temu
Daniel Oaks
f7a4f5d956
socket: Move to a timing-out send method that reduces goroutines and ensures QUIT/ERROR are sent
7 lat temu
Daniel Oaks
f665ebac16
channels: Help prevent issues when join/parting
7 lat temu
Daniel Oaks
1c917a19a7
client: Ensure ERROR message is parsed when quitting
7 lat temu
Daniel Oaks
22216d4d60
Fix lots of nits
7 lat temu
Daniel Oaks
317a804644
Fix dates at top of source files
7 lat temu
Daniel Oaks
300d02bd9c
channel: Kill a race condition that locked up the server.
Specifically, if you joined a channel while someone else was trying to part. the Join method would grab the lock, the Quit method would queue to grab the lock, the Join method would unlock and then try to regrab the lock, and it would get into a situation where nobody would have the lock and everyone would be waiting for it.
This caused weird oddities with clients.
7 lat temu
Daniel Oaks
aad1070633
client: Unlock channel mutex earlier
7 lat temu
Daniel Oaks
05074e966d
modes: Continue overhauling
7 lat temu
Daniel Oaks
f29a5f0e70
socket: Very initial SendQ limit
7 lat temu
Daniel Oaks
de4db1c6ef
socket: Start overhaul of sockets and writing
7 lat temu
Daniel Oaks
439331cfb8
logger: Move to separate package, make *much* nicer
7 lat temu
Daniel Oaks
5de03f2169
logging: Reverse arrows for in and out, in ~= left, out ~= right
7 lat temu
Daniel Oaks
b328a4fcd3
logging: Add userinput and output, fix up lots
7 lat temu
Daniel Oaks
29e89b16a0
logger: Very initial working new logs
7 lat temu
Martin Lindhe
730d283201
server-time: convert local time to UTC before using it, fixes #94
7 lat temu
vegax87
a623d8ef1e
Solved! RPL_USERHOST must use trailing
7 lat temu
Daniel Oaks
c8b5fb65e0
WHOIS: Use inbuilt functionality to force trailing, as suggested by @vegax87
7 lat temu
Daniel Oaks
c2fedfb177
client: Forego the ForceTrailing func, just automagically work it out based on the command name
7 lat temu
Daniel Oaks
b257c5955e
client: Add SendForceTrailing function, to force the last param to be a trailing
7 lat temu
Daniel Oaks
67d65b0e3d
client: Ignore empty lines, send ERROR with no prefix
7 lat temu
Daniel Oaks
cbe49ff3d8
Use a better line-splitting algorithm
7 lat temu
Daniel Oaks
522001d4f6
Cleanup message sending
7 lat temu
Daniel Oaks
e741c1476b
Implement message-ids draft
7 lat temu
Daniel Oaks
f6185fa336
Get it working, using not-great and very initial splitting code
7 lat temu
Daniel Oaks
92626a178d
server: Start roughly hacking in new message-tags support
7 lat temu
Daniel Oaks
d2e18962e3
Very initial maxline work
7 lat temu
Daniel Oaks
2b240faa90
strings: Fix nick bugs, use UsernameCaseMapped
7 lat temu
Daniel Oaks
4168eaafbb
Basic implementation of KLINEs
7 lat temu
Daniel Oaks
6f7c683247
channel: RWMutex for members access
7 lat temu
Daniel Oaks
a8eabe8e9c
client: Fix a lot of bugs around setting NICK
7 lat temu
Daniel Oaks
dc605ebb01
client: Send quit messages more correctly
7 lat temu
Daniel Oaks
2e2e91689a
client: Send quit message to friends correctly
7 lat temu
Daniel Oaks
9a9820fa88
NICK: Prevent races, remove a DoS
7 lat temu
Daniel Oaks
95e36b99a2
Nick locking (entirely broken, needs to be completely redesigned)
7 lat temu
Daniel Oaks
c3174bb648
Various crash fixes, and little cleanups for safety
7 lat temu
Daniel Oaks
07e4728c15
roleplay: Initial commit
7 lat temu
Daniel Oaks
c7fdb4656e
strings: Use inbuilt precis.Nickname encoding now
7 lat temu
Daniel Oaks
a404bf83d1
Add automated client connection limiting
7 lat temu
Daniel Oaks
a7949b6cb4
irc: Assorted golint cleanups
7 lat temu
Daniel Oaks
29e811a531
oper: Support custom vhosts, and chghost
7 lat temu
Daniel Oaks
8e2a8cb1b3
opers: Enforce oper class permissions
7 lat temu
Daniel Oaks
f3459830e7
opers: Allow setting custom whois lines
7 lat temu
Daniel Oaks
64bdedaee2
Add oper classes, for more finely-grained control
7 lat temu
Daniel Oaks
425a521d27
channel: Fix MODE and WHO
7 lat temu
Daniel Oaks
1e956355bf
NICK: Fix small bug when casefolding
7 lat temu
Daniel Oaks
1bab81091f
Add MONITOR command
7 lat temu
Daniel Oaks
e643c2101f
capability: Add 3.2 CAP values
7 lat temu
Daniel Oaks
43e28e2fef
PROXY: Remove command, I don't think it's that useful
7 lat temu
Daniel Oaks
0eebd6273c
AWAY: Only dispatch AWAY when cap-notify is used
7 lat temu