Commit Graph

283 Commits

Author SHA1 Message Date
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