Jeremy Latt
4ce4ba31c5
keep track of whether sockets are closed
2014-04-15 12:10:02 -07:00
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
2014-04-15 12:10:02 -07:00
Jeremy Latt
b0bb0faadc
remove unnecessary String()s; rename parse functions
2014-03-28 14:33:31 -07:00
Jeremy Latt
3b12dec207
cleanup
2014-03-27 18:58:12 -07:00
Jeremy Latt
d696f2313e
stop leaking client goroutines; closes #34
2014-03-27 16:49:22 -07:00
Edmund Huber
2272aae213
spelling and gofmt
2014-03-23 06:50:07 +01:00
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
2014-03-22 22:25:24 +01:00
Edmund Huber
d5bdc78d55
adding theater-mode, fixes #15
2014-03-20 05:05:18 +01:00
Jeremy Latt
8c44bb9ff3
ONICK command to allow operators to change users' nicks
2014-03-17 12:56:35 -07:00
Jeremy Latt
7a9f1d750b
explain why CheckPassword happens in client thread
2014-03-15 15:12:29 -07:00
Jeremy Latt
39b7c2a915
Merge remote-tracking branch 'origin/master' into cleanup
...
Conflicts:
irc/client.go
irc/commands.go
irc/constants.go
irc/reply.go
irc/server.go
irc/types.go
2014-03-13 12:38:44 -07:00
Jeremy Latt
2006aff9f7
break up types.go
...
- remove old interfaces, move to relevant files
- remove Phase in favor of a boolean flag
2014-03-12 17:52:25 -07:00
Jeremy Latt
e15f47c766
move to channel-based logging
2014-03-12 17:17:26 -07:00
Jeremy Latt
77d053ccac
get rid of editableCommand
2014-03-12 17:10:48 -07:00
Jeremy Latt
96a108f8da
mark unicode normalization with type
2014-03-12 16:45:22 -07:00
Jeremy Latt
cd2042dfea
Merge remote-tracking branch 'origin/master' into user-mask
2014-03-07 17:10:14 -08:00
Jeremy Latt
f56db354ee
fix client auth for no password
...
All clients are authorized if the server lacks a password.
2014-03-06 20:10:02 -08:00
Jeremy Latt
5d46e7d7fa
Merge remote-tracking branch 'origin/master' into user-mask
...
Conflicts:
irc/reply.go
irc/server.go
irc/types.go
2014-03-06 17:44:37 -08:00
Jeremy Latt
76852b0370
implement WHOWAS with a shared ringbuffer
2014-03-06 13:55:40 -08:00
Jeremy Latt
0874692aa8
send proper replies for cap protocol
2014-03-02 12:54:48 -08:00
Jeremy Latt
36602c9a3c
basic capability negotiation
...
- multi-prefix is supported as an example
2014-02-28 19:24:38 -08:00
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)
2014-02-24 09:48:46 -08:00
Jeremy Latt
be089e7f5f
do bcrypt in the client main routine
2014-02-23 22:21:39 -08:00
Jeremy Latt
0bf968e19e
move command parsing and hostname lookups into the socket routine
2014-02-23 17:04:24 -08:00
Jeremy Latt
ff5656fdb4
aggressively clean up client
2014-02-23 11:08:01 -08:00
Jeremy Latt
1283bd35c7
encapsulate client replies in method
2014-02-22 11:40:32 -08:00
Jeremy Latt
e1c4c8e8cc
don't send prefix on server-originated string coded replies
2014-02-20 20:08:32 -08:00
Jeremy Latt
ad513da486
do hostname lookups in the client read thread
2014-02-20 13:03:33 -08:00
Jeremy Latt
97881b555d
async hostname lookups
2014-02-20 11:51:45 -08:00
Jeremy Latt
c0dc733351
don't wait for writing to complete
2014-02-20 11:16:10 -08:00
Jeremy Latt
9960089226
format replies to strings instead of using a Reply struct
2014-02-19 22:20:34 -08:00
Jeremy Latt
25ebab37d3
replies shouldn't contain references to client
2014-02-19 19:30:49 -08:00
Jeremy Latt
9c385ededd
synchronize on last writes to client sockets
2014-02-19 18:46:46 -08:00
Jeremy Latt
af6a8ee6f0
remove channel buffering
2014-02-19 18:22:57 -08:00
Jeremy Latt
6265b70622
get rid of goroutines on client socket
2014-02-19 18:13:35 -08:00
Jeremy Latt
95f267ea4f
buffer all channels
2014-02-19 17:48:03 -08:00
Jeremy Latt
0cd6be8008
clean up nickname setting logic
2014-02-18 15:36:58 -08:00
Jeremy Latt
86d4cae141
swap refcounting friends for iteration
2014-02-18 15:28:20 -08:00
Jeremy Latt
9e471b5b5d
solve quit/connection close race
2014-02-18 13:25:21 -08:00
Jeremy Latt
2bc1b952a0
do idle in the server goroutine instead of the timeout goroutine
2014-02-18 11:22:56 -08:00
Jeremy Latt
4f106e7d3e
make server logging consistent with other logs
2014-02-18 10:22:40 -08:00
Jeremy Latt
58517ad4e8
fix closed channel on socket close
2014-02-18 10:13:57 -08:00
Jeremy Latt
9c1ab4f610
fix socket close race
2014-02-17 23:58:02 -08:00
Jeremy Latt
baf83e73d2
support USER from both RFCs 1459 and 2812
2014-02-17 22:10:48 -08:00
Jeremy Latt
bb64d38684
implement who reply like ngircd
2014-02-17 21:30:14 -08:00
Jeremy Latt
528588acfc
augment whois idle with signon time
2014-02-17 19:56:06 -08:00
Jeremy Latt
9a5f21e78c
beef up whois
2014-02-17 19:08:57 -08:00
Jeremy Latt
bd3ca4ae47
fix race in idle timeout; fix some string trimming; fix some replies
2014-02-17 18:10:52 -08:00
Jeremy Latt
1a7f56a903
clean up general command and name handling
2014-02-17 17:58:22 -08:00
Jeremy Latt
a55b912941
enforce nicks via lowercase strings
2014-02-17 15:25:32 -08:00