Jeremy Latt
|
1283bd35c7
|
encapsulate client replies in method
|
2014-02-22 11:40:32 -08:00 |
|
Jeremy Latt
|
39fb4bfb53
|
restrict new channels to channel regex
|
2014-02-21 17:19:02 -08:00 |
|
Jeremy Latt
|
c8701febd0
|
loosen restrictions on WHO replies
|
2014-02-21 11:09:46 -08:00 |
|
Jeremy Latt
|
f9bf422ba7
|
be more lax about whitespace when parsing commands from clients
|
2014-02-20 21:09:56 -08:00 |
|
Jeremy Latt
|
c1edddb9a1
|
fix whois reply
|
2014-02-20 20:47:05 -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
|
0ad05abf5f
|
omit prefix for non-numeric replies from the server
|
2014-02-20 19:55:17 -08:00 |
|
Jeremy Latt
|
23f01ff9ee
|
handle CAP command silently in registration too
|
2014-02-20 19:55:03 -08:00 |
|
Jeremy Latt
|
b6d8f62674
|
adjust ping message
|
2014-02-20 19:22:08 -08:00 |
|
Jeremy Latt
|
52ffc77d8d
|
don't allow double-joining
|
2014-02-20 18:56:13 -08:00 |
|
Jeremy Latt
|
1486411db1
|
render a single part string for all channel members
|
2014-02-20 18:20:07 -08:00 |
|
Jeremy Latt
|
7dffa530c2
|
send part message from correct source
|
2014-02-20 16:56:05 -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
|
f090c616b3
|
reduce writes
|
2014-02-18 20:28:35 -08:00 |
|
Jeremy Latt
|
dcb4ac90e2
|
use a buffered channel for socket writing
|
2014-02-18 17:46:11 -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
|
b17e62d0b0
|
names command
|
2014-02-17 21:02:03 -08:00 |
|
Jeremy Latt
|
046723a709
|
make whois channels possibly multiline
|
2014-02-17 20:47:41 -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 |
|
Jeremy Latt
|
6d8b381927
|
convert client bools to a flags map
|
2014-02-17 13:22:35 -08:00 |
|
Jeremy Latt
|
2ecc66b9d9
|
add more modes to arg-having modes
|
2014-02-17 11:46:40 -08:00 |
|
Jeremy Latt
|
f0fc3b492c
|
list command
|
2014-02-16 23:51:27 -08:00 |
|
Jeremy Latt
|
a9d7f64693
|
kick command
|
2014-02-16 23:29:11 -08:00 |
|
Jeremy Latt
|
af5a05f390
|
use a select in the server commands loop
|
2014-02-16 22:38:43 -08:00 |
|
Jeremy Latt
|
d5c9681a10
|
instantiate clients in the server command goroutine
|
2014-02-16 22:30:01 -08:00 |
|
Jeremy Latt
|
dc5e258f88
|
don't use a goroutine when initializing clients
|
2014-02-16 22:26:33 -08:00 |
|
Jeremy Latt
|
cd4503be31
|
allow blank lines from the client
|
2014-02-16 22:24:49 -08:00 |
|
Jeremy Latt
|
a894e3f37f
|
parse lines more robustly
|
2014-02-16 22:22:46 -08:00 |
|
Jeremy Latt
|
4e56ea1bdc
|
get rid of unnecessary concurrency for channels and clients
|
2014-02-16 22:20:42 -08:00 |
|
Jeremy Latt
|
54ca916c85
|
stop login timer on destroy
|
2014-02-16 18:16:13 -08:00 |
|
Jeremy Latt
|
e411dafda7
|
get rid of mutexes in favor of channel-base syncing
|
2014-02-16 17:23:47 -08:00 |
|
Jeremy Latt
|
74b8221db7
|
use mutexes more
|
2014-02-16 10:42:25 -08:00 |
|
Jeremy Latt
|
81a0f19390
|
fix bad ref in part command
|
2014-02-16 09:41:16 -08:00 |
|
Jeremy Latt
|
a17490e801
|
disable no-topic reply
|
2014-02-16 09:39:11 -08:00 |
|
Jeremy Latt
|
0f6ee63e6e
|
fix a race
|
2014-02-15 20:20:37 -08:00 |
|
Jeremy Latt
|
213afc0481
|
fix another race
|
2014-02-15 20:01:28 -08:00 |
|
Jeremy Latt
|
ae02596214
|
get rid of extra topic messages
|
2014-02-15 19:56:38 -08:00 |
|
Jeremy Latt
|
488b2ccf8f
|
implement channel modes and messages properly
|
2014-02-15 19:49:20 -08:00 |
|
Jeremy Latt
|
0bfa2fb98f
|
channel mode flags and member modes
|
2014-02-14 21:57:08 -08:00 |
|
Jeremy Latt
|
6983d1930c
|
RPL_ENDOFNAMES should come from server
|
2014-02-14 19:38:31 -08:00 |
|
Jeremy Latt
|
33b1e6c582
|
simplify Replier
|
2014-02-14 19:35:25 -08:00 |
|
Jeremy Latt
|
ac186a0669
|
don't close socket send channel
|
2014-02-14 19:30:58 -08:00 |
|
Jeremy Latt
|
50f1012c92
|
don't close socket sending channel
|
2014-02-14 19:30:07 -08:00 |
|
Jeremy Latt
|
87cc184ec0
|
type numeric codes
|
2014-02-14 19:25:14 -08:00 |
|
Jeremy Latt
|
3a9027e3dc
|
don't double-close socket
|
2014-02-14 19:05:30 -08:00 |
|
Jeremy Latt
|
4d9742d033
|
organize server command into phases
|
2014-02-14 18:28:36 -08:00 |
|
Jeremy Latt
|
29df88fb7a
|
more race conditions
|
2014-02-14 09:00:49 -08:00 |
|
Jeremy Latt
|
72a90d5544
|
don't close channels unless necessary
|
2014-02-14 08:57:17 -08:00 |
|
Jeremy Latt
|
9600be82a3
|
fix more data races
|
2014-02-14 08:42:56 -08:00 |
|
Jeremy Latt
|
6ea3c8f4d1
|
fix race conditions
|
2014-02-13 23:16:07 -08:00 |
|
Jeremy Latt
|
7051627fb2
|
avoid race double-close on replies
|
2014-02-13 21:10:31 -08:00 |
|
Jeremy Latt
|
3ba928cee6
|
remove server command mutex
|
2014-02-13 20:58:13 -08:00 |
|
Jeremy Latt
|
7cef494d28
|
don't close replies twice
|
2014-02-13 20:56:15 -08:00 |
|
Jeremy Latt
|
be01a412d9
|
only quit registered clients
|
2014-02-13 20:52:42 -08:00 |
|
Jeremy Latt
|
dcc40bbac1
|
more logging
|
2014-02-13 20:42:06 -08:00 |
|
Jeremy Latt
|
541a40b056
|
touch should respect destroyed
|
2014-02-13 20:38:22 -08:00 |
|
Jeremy Latt
|
e0e61907ce
|
don't trigger connection closed on read and write goroutines
|
2014-02-13 20:30:51 -08:00 |
|
Jeremy Latt
|
03b6caa597
|
don't close replies too many times
|
2014-02-13 20:27:20 -08:00 |
|
Jeremy Latt
|
d35fe6088c
|
attempt to fix hang condition in quit sequence
|
2014-02-13 20:23:22 -08:00 |
|
Jeremy Latt
|
a9eae872c9
|
mutex server commands
|
2014-02-13 20:08:16 -08:00 |
|
Jeremy Latt
|
42ff4410ad
|
more logging
|
2014-02-13 19:49:31 -08:00 |
|
Jeremy Latt
|
6301d2b47f
|
more logging
|
2014-02-13 19:44:42 -08:00 |
|
Jeremy Latt
|
8902ee040d
|
more logging; check client for each reply
|
2014-02-13 19:41:51 -08:00 |
|
Jeremy Latt
|
11537ad975
|
abstract net operations as Socket
|
2014-02-13 19:37:37 -08:00 |
|
Jeremy Latt
|
b8bbc7eeb5
|
add more logging
|
2014-02-13 18:59:45 -08:00 |
|
Jeremy Latt
|
b6a7d98b64
|
adjust authorization and add more hang logging
|
2014-02-13 18:39:33 -08:00 |
|
Jeremy Latt
|
ce931b23a2
|
simplify net logging
|
2014-02-13 18:17:20 -08:00 |
|
Jeremy Latt
|
965d8efdf8
|
add a login timout to close dropped connections
|
2014-02-13 13:19:26 -08:00 |
|
Jeremy Latt
|
6e0ab99d38
|
look up PROXY hostnames async
|
2014-02-13 11:27:04 -08:00 |
|
Jeremy Latt
|
4b98d2a45b
|
clear out old clients; fix NameReply
|
2014-02-13 11:06:07 -08:00 |
|
Jeremy Latt
|
c805006ab8
|
save reply source id at init time for nick changes
|
2014-02-13 10:57:58 -08:00 |
|
Jeremy Latt
|
261aaa128f
|
try to fix nick message sending
|
2014-02-13 10:19:53 -08:00 |
|
Jeremy Latt
|
c327042c94
|
destroy clients on socket close with quit
|
2014-02-13 09:47:10 -08:00 |
|
Jeremy Latt
|
7a2c9db503
|
don't allow send on closed channels
|
2014-02-13 09:35:59 -08:00 |
|
Jeremy Latt
|
ca25828804
|
sanify debug net logging
|
2014-02-12 21:18:02 -08:00 |
|
Jeremy Latt
|
415ccc7607
|
maybe fix networking hangs
|
2014-02-12 21:07:40 -08:00 |
|
Jeremy Latt
|
01fa48c73e
|
clear client channel list on destroy
|
2014-02-12 18:33:30 -08:00 |
|
Jeremy Latt
|
2aa61b0dbe
|
clean up and fix targets for quit message
|
2014-02-12 18:27:36 -08:00 |
|
Jeremy Latt
|
52dd2521c2
|
remove prefix from local replies; fix topic message
|
2014-02-12 18:14:19 -08:00 |
|
Jeremy Latt
|
db2a21fee0
|
ignore target in whois
|
2014-02-12 09:42:47 -08:00 |
|
Jeremy Latt
|
6daf81ea91
|
notice command
|
2014-02-11 17:11:59 -08:00 |
|
Jeremy Latt
|
09887b2db3
|
motd command
|
2014-02-11 16:35:32 -08:00 |
|
Jeremy Latt
|
a203a3ca16
|
ison command
|
2014-02-11 15:58:54 -08:00 |
|
Jeremy Latt
|
08d9d5ab79
|
away modes
|
2014-02-11 15:44:58 -08:00 |
|
Jeremy Latt
|
cdae59ecf5
|
stub motd
|
2014-02-11 15:33:02 -08:00 |
|
Jeremy Latt
|
887f12cb31
|
get rid of channel abstraction for buffered socket io
|
2014-02-11 15:00:19 -08:00 |
|
Jeremy Latt
|
aac0efebee
|
send initial nick message to source client
|
2014-02-11 14:32:17 -08:00 |
|
Jeremy Latt
|
0e07b29010
|
avoid nil reference in who reply
|
2014-02-11 09:09:16 -08:00 |
|
Jeremy Latt
|
a34443f155
|
fix reverse dns
|
2014-02-10 19:39:53 -08:00 |
|
Jeremy Latt
|
4379cb8e1c
|
add PROXY protocol support
|
2014-02-10 18:40:06 -08:00 |
|
Jeremy Latt
|
a8141a0e1c
|
async new connections
|
2014-02-10 17:54:35 -08:00 |
|
Jeremy Latt
|
8d0adf253d
|
configure ipv4/6 in config file
|
2014-02-10 13:52:28 -08:00 |
|
Jeremy Latt
|
fb65203805
|
stub cap command
|
2014-02-10 11:14:34 -08:00 |
|
Jeremy Latt
|
28bd5a40ba
|
trim . from reverse address lookup
|
2014-02-09 21:10:36 -08:00 |
|
Jeremy Latt
|
959167cbe7
|
reverse dns lookup
|
2014-02-09 21:04:37 -08:00 |
|
Jeremy Latt
|
9b89f1a0fb
|
check permissions before doing channel modes
|
2014-02-09 20:04:17 -08:00 |
|
Jeremy Latt
|
56cb8512dc
|
relax SSL restrictions
|
2014-02-09 19:59:45 -08:00 |
|
Jeremy Latt
|
3fd73e3252
|
don't close socket channels to avoid panics
|
2014-02-09 19:59:25 -08:00 |
|
Jeremy Latt
|
db0f494604
|
TLS support
|
2014-02-09 19:41:00 -08:00 |
|
Jeremy Latt
|
e625f62baa
|
cancel timers when a client quits
|
2014-02-09 19:06:30 -08:00 |
|
Jeremy Latt
|
035a8f6cde
|
do a type conversion better
|
2014-02-09 19:03:56 -08:00 |
|
Jeremy Latt
|
f3da4e0286
|
remove double nick-change message
|
2014-02-09 15:18:18 -08:00 |
|
Jeremy Latt
|
6653b55416
|
interpret local ips as localhost
|
2014-02-09 15:14:53 -08:00 |
|
Jeremy Latt
|
133b91b9f0
|
idle/quit timeout
|
2014-02-09 12:13:09 -08:00 |
|
Jeremy Latt
|
8a90634c0a
|
irc operators
|
2014-02-09 10:07:40 -08:00 |
|
Jeremy Latt
|
6367e4b654
|
fix ModeString
|
2014-02-09 08:53:06 -08:00 |
|
Jeremy Latt
|
1787ac8ebf
|
use Reply() to wrap channel
|
2014-02-09 08:48:11 -08:00 |
|
Jeremy Latt
|
281558072a
|
configure server with json
|
2014-02-09 07:53:42 -08:00 |
|
Jeremy Latt
|
55d3d6e946
|
don't overwrite base command
|
2014-02-08 23:51:51 -08:00 |
|
Jeremy Latt
|
04f881a617
|
channel 'no outside messages' flag
|
2014-02-08 23:33:56 -08:00 |
|
Jeremy Latt
|
a3b7441939
|
type cleanup
|
2014-02-08 23:15:05 -08:00 |
|
Jeremy Latt
|
20257ec624
|
use ModeOp everywhere
|
2014-02-08 22:42:14 -08:00 |
|
Jeremy Latt
|
93f4b6859a
|
more channel mode parsing and bad listing
|
2014-02-08 22:06:10 -08:00 |
|
Jeremy Latt
|
d370abcd4c
|
minimal who command
|
2014-02-08 18:49:52 -08:00 |
|
Jeremy Latt
|
d8951e1b48
|
minimal channel mode command
|
2014-02-08 18:14:39 -08:00 |
|
Jeremy Latt
|
a0eed1d687
|
properly implement join/part
|
2014-02-08 17:53:06 -08:00 |
|
Jeremy Latt
|
c4f457705a
|
minimal whois implementation
|
2014-02-08 17:43:59 -08:00 |
|
Jeremy Latt
|
06648393a1
|
implement join/quit and channel messages properly
|
2014-02-08 17:10:04 -08:00 |
|
Jeremy Latt
|
3f9495cda0
|
add data structures for decoding mode messages
|
2014-02-08 14:20:23 -08:00 |
|
Jeremy Latt
|
b9cb539219
|
organize like a proper go package
|
2014-02-08 13:19:35 -08:00 |
|