Commit Graph

153 Commits

Author SHA1 Message Date
Liam Stanley
1f66c9ffec rewrite state to support separate dataset for users 2017-07-04 01:29:22 -04:00
Liam Stanley
9602c14886 better execution of handlers after client disconnect; improve docs 2017-07-03 07:34:34 -04:00
Liam Stanley
c4f8e06752 decrease required time for pingLoop to terminate, allow disabling 2017-06-25 23:38:50 -04:00
Liam Stanley
75341d3cef Commands -> Cmd 2017-06-15 04:46:10 -04:00
Liam Stanley
42d17746e8 SASLMethod -> SASLMech 2017-06-15 03:29:52 -04:00
Liam Stanley
e3f53ab9ec start working on additional sasl implementation support 2017-06-14 07:19:31 -04:00
Liam Stanley
be178fe0a1 default connection port to 6667 is none specified 2017-06-12 18:59:21 -04:00
Liam Stanley
6c8215c842 Format -> Fmt, StripFormat -> TrimFmt 2017-06-07 06:35:02 -04:00
Liam Stanley
cc32c679cb add GlobalFormat config option 2017-06-07 04:39:52 -04:00
Liam Stanley
f25f47d823 implement proper close support 2017-05-07 12:39:16 -04:00
Liam Stanley
573ddd7583 fix data races for state 2017-04-24 11:55:30 -04:00
Liam Stanley
94995c9649 reduce data leaks for Client.conn 2017-04-24 11:42:29 -04:00
Liam Stanley
aa1ff24930 fix GetHost() and GetIdent(); refractor 2017-04-24 11:22:45 -04:00
Liam Stanley
d22bb4a5c8 update doc 2017-04-24 11:17:30 -04:00
Liam Stanley
039539a6a3 implement basic support for sasl plain 2017-04-23 14:03:12 -04:00
Liam Stanley
9542a7aac6 Password -> ServerPass 2017-04-23 12:16:44 -04:00
Liam Stanley
6bbd53edd8 refractor quite a bit of connect logic, and errors 2017-04-18 11:06:19 -04:00
Liam Stanley
50a8f70e6f utilize mutex for conn state 2017-04-18 03:17:15 -04:00
Liam Stanley
4951996f3a the start of more refactoring 2017-03-31 14:30:52 -04:00
Liam Stanley
9ef5ad76b4 remove starttls, due to horrid inconsistencies 2017-02-26 13:25:30 -05:00
Liam Stanley
70a6fe8739 clean up config validation a bit 2017-02-22 00:24:23 -05:00
Liam Stanley
6d62d7437d implement STARTTLS auto-negotiation 2017-02-21 09:18:57 -05:00
Liam Stanley
fa20cdac87 remove separation between CAP and regular tracking 2017-02-21 00:20:57 -05:00
Liam Stanley
54acd5fb7e implement GetIdent() and GetHost() on Client, clean up panic handling 2017-02-20 23:02:45 -05:00
Liam Stanley
fabc1c65b8 update docs; remove Client.DisableNickCollision; implement Config.HandleNickCollide 2017-02-20 21:03:35 -05:00
Liam Stanley
650e301ccc implement Client.Lag() 2017-02-20 20:39:16 -05:00
Liam Stanley
e57ac9cdb4 be less redundant 2017-02-17 05:30:29 -05:00
Liam Stanley
3ded5b433a start working on making state accessible 2017-02-14 07:33:05 -05:00
Liam Stanley
9818cded91 Debug->Debugger; implement client side ping tracking; implement Config.Out; implement Config.PingDelay 2017-02-14 02:14:38 -05:00
Liam Stanley
2a4c9412b2 clean up doc 2017-02-13 22:21:04 -05:00
Liam Stanley
39fd16999d fix misc. bugs; refractor send queue 2017-02-13 21:57:18 -05:00
Liam Stanley
82bafff852 properly handle errors during write operations 2017-02-13 09:28:59 -05:00
Liam Stanley
8c25428024 add doc 2017-02-13 07:56:00 -05:00
Liam Stanley
27efadda57 implement commands 2017-02-13 07:52:29 -05:00
Liam Stanley
9cc4ff46a2 merge connectMessages into connect 2017-02-13 05:38:18 -05:00
Liam Stanley
6820395200 set minimum reconnect delay to 5s 2017-02-13 04:43:30 -05:00
Liam Stanley
7d236adca3 clarify RecoverFunc doc 2017-02-13 04:42:45 -05:00
Liam Stanley
63ae092b97 minor documentation cleanup 2017-02-13 03:11:50 -05:00
Liam Stanley
4ddf9663e7 switch to x/net/context for backwards compatibility 2017-02-13 01:45:25 -05:00
Liam Stanley
d8423fc605 implement DefaultRecoverHandler 2017-02-13 01:27:57 -05:00
Liam Stanley
88057bed20 implement ability to catch panics in handlers 2017-02-13 01:15:53 -05:00
Liam Stanley
8fd2c7ba4a fix printf 2017-02-12 14:39:20 -05:00
Liam Stanley
383e1300bb implement Client.String() 2017-02-12 14:31:57 -05:00
Liam Stanley
5527fcdff5 ignore reconnect delay if Reconnect() is called directly 2017-02-12 02:24:35 -05:00
Liam Stanley
ed6e266cba split out connection info and throttling into ircConn; move conn from state to client 2017-02-12 02:22:41 -05:00
Liam Stanley
1090fd92a8 move connection logic into conn.go 2017-02-12 02:06:09 -05:00
Liam Stanley
94cceb64e7 remove Config.Conn; implement Config.Proxy, Config.Bind, and Config.SSL; closes #3 and #4 2017-02-12 01:39:55 -05:00
Liam Stanley
2c7fffa496 Builtin -> Builtins 2017-02-11 23:54:42 -05:00
Liam Stanley
69a6d77ac8 Callbacks -> Handlers 2017-02-11 22:51:05 -05:00
Liam Stanley
b06fb6e930 lots of refactoring: remove data races, cleanup connection handling, goroutine leaks, rate limiting 2017-02-11 22:00:01 -05:00
Liam Stanley
43495a17ef don't panic if reconnect() is called internally 2017-02-11 18:06:08 -05:00
Liam Stanley
c609a55864 implement Config.HandleError 2017-02-08 03:08:13 -05:00
Liam Stanley
82f34d9777 remove ability to disable default CTCP; config->Config, move Disable* fields into functions 2017-02-08 02:55:38 -05:00
Liam Stanley
775435b722 update documentation 2017-02-08 01:44:37 -05:00
Liam Stanley
3caa790524 correct socket timeout bug 2017-02-07 06:21:56 -05:00
Liam Stanley
5dc6abca2a rename MaxRetries -> Retries 2017-02-07 06:12:30 -05:00
Liam Stanley
9593d1caea panic when client used after Stop(); cleanup goroutine cleanup to help garbage collection 2017-02-07 05:44:21 -05:00
Liam Stanley
52e05d3c15 success -> ok 2017-02-06 03:53:05 -05:00
Liam Stanley
ba03de710d update copyright to remove year 2017-02-06 02:45:31 -05:00
Liam Stanley
5aa9303fd3 remove SUCCESS, add INITIALIZED for use with validating socket connection 2017-02-05 07:42:59 -05:00
Liam Stanley
37b380a564 rename Client.Config to client.config to prevent potential raceconditions or silly behavior 2017-02-05 07:11:59 -05:00
Liam Stanley
af22c0a64c remove unneeded c.IsConnected() checks; implement Whois(), Ping(), Pong(), Oper(), Kick(), Invite(), Away(), Back(), and List() 2017-02-05 07:09:48 -05:00
Liam Stanley
1eb80a05db Client.Who should support channels/users/nicks 2017-02-05 06:12:49 -05:00
Liam Stanley
2a7ace18d2 log callback registration/removal/execution to debug output 2017-02-05 06:09:35 -05:00
Liam Stanley
20686a735d remove no longer needed ErrCallbackTimedout 2017-02-05 05:35:00 -05:00
Liam Stanley
151dc5161f remove Config.Logger 2017-02-05 05:23:05 -05:00
Liam Stanley
310d0052d6 re-implement Config.Logger; add Config.Debugger, and implement Event.Pretty(). 2017-02-03 08:54:44 -05:00
Liam Stanley
6b4a3e6359 change logging format for debugging 2017-01-27 02:41:38 -05:00
Liam Stanley
42092970a7 remove Event.String(); rename Raw() to String() 2017-01-20 06:48:42 -05:00
Liam Stanley
aeef5a8774 rewrite capability ack functionality 2017-01-19 06:58:08 -05:00
Liam Stanley
a4b0396d65 add CAP NEW and CAP DEL checking and responding 2017-01-19 03:33:49 -05:00
Liam Stanley
87ad996733 use internal writer to prevent delays during connect 2017-01-19 02:33:19 -05:00
Liam Stanley
0a9c72d992 send cap request as early as possible 2017-01-19 01:56:30 -05:00
Liam Stanley
8bf23fd61f implement default rate limiting for events; update readme 2017-01-12 04:19:35 -05:00
Liam Stanley
3a576d1db9 implement version config option to override default ctcp version 2017-01-12 02:34:29 -05:00
Liam Stanley
e6b6a4b5a0 update documentation 2017-01-06 09:00:29 -05:00
Liam Stanley
30c87f3968 update documentation; minor bug fixes 2017-01-06 08:53:41 -05:00
Liam Stanley
631f950d56 implement server MOTD tracking; implement ServerMOTD 2017-01-06 08:40:01 -05:00
Liam Stanley
687e2753a1 implement GetServerOption, ServerName, NetworkName, ServerVersion, and ISUPPORT tracking; update todos 2017-01-06 08:30:09 -05:00
Liam Stanley
683485f34c fix bug with capabilities breaking after reconnect 2017-01-06 01:09:18 -05:00
Liam Stanley
5dde6d1797 rename various symbols; update todos; implement account tracking under account-notify 2017-01-03 21:13:05 -05:00
Liam Stanley
714a315ef0 yay new year 2017-01-03 11:05:27 -05:00
Liam Stanley
f3b1c1e940 initial support for message tags 2017-01-03 11:02:24 -05:00
Liam Stanley
3d0a75e389 add basic support for capability tracking; add chghost and away, as well as configuration for more 2016-12-30 08:51:31 -05:00
Liam Stanley
e4a7f88a12 fix count bugwith Caller.String() 2016-12-30 06:13:44 -05:00
Liam Stanley
85fca26b9f drop send->fetch support, too clunky and messy 2016-12-30 06:00:44 -05:00
Liam Stanley
c6dbf08c59 implement support to respond to CTCP events; minor bug fixes; overhaul CTCP docs; implement DisableDefaultCTCP; implement CTCPEvent.Reply 2016-12-26 03:51:42 -05:00
Liam Stanley
caaaf560be extra test checks; added ctcp SetBg, added handleCTCPPing to default CTCPs 2016-12-26 03:06:15 -05:00
Liam Stanley
3abefe033c start working on ctcp handling 2016-12-24 00:15:41 -05:00
Liam Stanley
fea3c94367 re-implement Client.Whowas(); implement Client.Who() 2016-12-14 01:49:43 -05:00
Liam Stanley
ebb5f714c5 remove ErrCallbackTimedout 2016-12-13 20:47:52 -05:00
Liam Stanley
0927400902 remove Client.Whowas() 2016-12-13 20:31:39 -05:00
Liam Stanley
b0be7fb3d0 use variadic array for Client.Join(); update examples 2016-12-13 10:45:08 -05:00
Liam Stanley
ca0c2f5c29 re-order client.go 2016-12-13 10:24:51 -05:00
Liam Stanley
0cd3ff611d hasQuit->quitting; add stopChan; other minor bug fixes 2016-12-13 10:23:06 -05:00
Liam Stanley
4542506341 refactor Join()/Part(); implement JoinKey() and PartMessage() 2016-12-13 09:34:08 -05:00
Liam Stanley
370f9f28ad rename state mux 2016-12-10 06:43:26 -05:00
Liam Stanley
009d49f258 rename SetNick()->Nick() 2016-12-10 05:58:42 -05:00
Liam Stanley
b32ff05c0a remove unneeded Client.Who(); update todos 2016-12-10 05:56:52 -05:00
Liam Stanley
c95d531783 implement Client.Topic() 2016-12-10 05:54:41 -05:00