Jeremy Latt
4ce4ba31c5
keep track of whether sockets are closed
преди 10 години
Jeremy Latt
6c10add399
improve performance by using less goroutines
- get rid of command channel in Client
- get rid of loginTimer; use other timers instead
- move debugging code to debug.go
преди 10 години
Jeremy Latt
b0bb0faadc
remove unnecessary String()s; rename parse functions
преди 10 години
Jeremy Latt
3b12dec207
cleanup
преди 10 години
Jeremy Latt
d696f2313e
stop leaking client goroutines; closes #34
преди 10 години
Edmund Huber
2272aae213
spelling and gofmt
преди 10 години
Edmund Huber
6267b6a40c
clean up /theater so that it doesn't need a bunch of pointers and that it reuses channel-scoped-user-modes machinery
преди 10 години
Edmund Huber
d5bdc78d55
adding theater-mode, fixes #15
преди 10 години
Jeremy Latt
8c44bb9ff3
ONICK command to allow operators to change users' nicks
преди 10 години
Jeremy Latt
7a9f1d750b
explain why CheckPassword happens in client thread
преди 10 години
Jeremy Latt
2006aff9f7
break up types.go
- remove old interfaces, move to relevant files
- remove Phase in favor of a boolean flag
преди 10 години
Jeremy Latt
e15f47c766
move to channel-based logging
преди 10 години
Jeremy Latt
77d053ccac
get rid of editableCommand
преди 10 години
Jeremy Latt
96a108f8da
mark unicode normalization with type
преди 10 години
Jeremy Latt
f56db354ee
fix client auth for no password
All clients are authorized if the server lacks a password.
преди 10 години
Jeremy Latt
76852b0370
implement WHOWAS with a shared ringbuffer
преди 10 години
Jeremy Latt
0874692aa8
send proper replies for cap protocol
преди 10 години
Jeremy Latt
36602c9a3c
basic capability negotiation
- multi-prefix is supported as an example
преди 10 години
Jeremy Latt
72726a39b8
many changes
- load config sub files relative to config file dir
- load config file by name
- expect bcrypt for passwords
- -genpasswd for generating config-file-safe passwords
- block client thread while checking passwords (PASS and OPER)
преди 10 години
Jeremy Latt
be089e7f5f
do bcrypt in the client main routine
преди 10 години
Jeremy Latt
0bf968e19e
move command parsing and hostname lookups into the socket routine
преди 10 години
Jeremy Latt
ff5656fdb4
aggressively clean up client
преди 10 години
Jeremy Latt
1283bd35c7
encapsulate client replies in method
преди 10 години
Jeremy Latt
e1c4c8e8cc
don't send prefix on server-originated string coded replies
преди 10 години
Jeremy Latt
ad513da486
do hostname lookups in the client read thread
преди 10 години
Jeremy Latt
97881b555d
async hostname lookups
преди 10 години
Jeremy Latt
c0dc733351
don't wait for writing to complete
преди 10 години
Jeremy Latt
9960089226
format replies to strings instead of using a Reply struct
преди 10 години
Jeremy Latt
25ebab37d3
replies shouldn't contain references to client
преди 10 години
Jeremy Latt
9c385ededd
synchronize on last writes to client sockets
преди 10 години
Jeremy Latt
af6a8ee6f0
remove channel buffering
преди 10 години
Jeremy Latt
6265b70622
get rid of goroutines on client socket
преди 10 години
Jeremy Latt
95f267ea4f
buffer all channels
преди 10 години
Jeremy Latt
0cd6be8008
clean up nickname setting logic
преди 10 години
Jeremy Latt
86d4cae141
swap refcounting friends for iteration
преди 10 години
Jeremy Latt
9e471b5b5d
solve quit/connection close race
преди 10 години
Jeremy Latt
2bc1b952a0
do idle in the server goroutine instead of the timeout goroutine
преди 10 години
Jeremy Latt
4f106e7d3e
make server logging consistent with other logs
преди 10 години
Jeremy Latt
58517ad4e8
fix closed channel on socket close
преди 10 години
Jeremy Latt
9c1ab4f610
fix socket close race
преди 10 години
Jeremy Latt
baf83e73d2
support USER from both RFCs 1459 and 2812
преди 10 години
Jeremy Latt
bb64d38684
implement who reply like ngircd
преди 10 години
Jeremy Latt
528588acfc
augment whois idle with signon time
преди 10 години
Jeremy Latt
9a5f21e78c
beef up whois
преди 10 години
Jeremy Latt
bd3ca4ae47
fix race in idle timeout; fix some string trimming; fix some replies
преди 10 години
Jeremy Latt
1a7f56a903
clean up general command and name handling
преди 10 години
Jeremy Latt
a55b912941
enforce nicks via lowercase strings
преди 10 години
Jeremy Latt
6d8b381927
convert client bools to a flags map
преди 10 години
Jeremy Latt
a9d7f64693
kick command
преди 10 години
Jeremy Latt
4e56ea1bdc
get rid of unnecessary concurrency for channels and clients
преди 10 години