Commit Graph

74 Commits

Author SHA1 Message Date
Alex Bramley 5bb0c8278d Minimally invasive change to put logging behind a user-replaceable interface.
This could probably be done better, and there are probably awful caveats
and hidden gotchas with this approach. I REGRET NOTHING.
2013-09-27 22:19:40 +01:00
Alex Bramley 8ae6733942 Use a channel close to kill goroutines.
This tidies things up nicely, especially in some of the tests.
2013-04-08 18:02:34 +01:00
Alex Bramley 8d6b5de994 Don't Error() for EOF, since it's expected. 2013-03-17 21:13:20 +00:00
Alex Bramley 5c56572b0d Split long messages at a configurable length. Fixes #29. 2013-03-17 01:21:09 +00:00
Alex Bramley fd5fddc2cc Returning an error was awkward. Panic when people do things wrong instead. 2013-03-15 17:04:58 +00:00
Alex Bramley 31606b7f2f gofmt run. 2013-03-10 13:31:04 +00:00
Alex Bramley ac9d05efa2 Port sp0rkle's panic recovery back into goirc. 2013-03-10 13:30:00 +00:00
Chris Rhodes 60b9313a7a Ping/Pong message. 2013-03-07 17:43:33 -08:00
Chris Rhodes d1bf2c3a68 Use constants for named messages. 2013-03-07 17:33:56 -08:00
Alex Bramley 4cd3831e92 Remove Commands from core goirc.
This dictates too much about how people might want to parse and act upon
information from PRIVMSGs, and thus should be an optional thing.
2013-02-27 20:23:24 +00:00
Chris Rhodes 74dea68158 Moved QUIT and VERSION messages into the config. 2013-02-17 22:28:22 -08:00
Alex Bramley fd6fc1269b SimpleClient shouldn't need to return an error. 2013-02-18 01:42:44 +00:00
Alex Bramley 8ed96e4294 Add Me() function for ease of use. 2013-02-18 01:38:04 +00:00
Alex Bramley 12bcc94eeb Add mutex for connect/disconnect locking. 2013-02-18 01:36:52 +00:00
Alex Bramley a323372a0b First steps towards client interface.
- Move all exported vars to Config struct;
- Plumbing for Config.Me etc;
- Constants and INIT/REGISTER handler from github.com/iopred;
2013-02-18 01:36:17 +00:00
Alex Bramley 39882dafd4 Minor rearrangements. 2013-02-17 23:55:39 +00:00
Alex Bramley b1242aa351 Break out tweakable things into a Config struct. 2013-02-16 18:05:56 +00:00
Alex Bramley 45d7b3317f Remove state.StateTracker stutter, hide it in Conn. 2013-02-16 11:29:56 +00:00
Alex Bramley f27e56c8b0 Run gofmt, since it's clearly been a while. 2013-02-16 10:33:15 +00:00
Alex Bramley a674267128 Re-work Handlers for IRC events; add Commands. 2013-02-16 00:17:31 +00:00
Alex Bramley a038856094 Remove embedded logger from client package. 2013-02-16 00:15:23 +00:00
Alex Bramley b39e4717af Allow renicking to be customised. (Closes #14) 2013-01-06 21:01:55 +00:00
Alex Bramley aa021c7cac Fix due to logging api change change. 2012-09-25 23:42:37 +01:00
Alex Bramley 13855ff77b Fix due to logging api change. 2012-09-25 22:39:02 +01:00
Alex Bramley b98fabe44e Fix go1 time changes up. 2012-06-06 17:12:07 +01:00
Alex Bramley 9c67c42fa1 Merge branch 'release'
Conflicts:
	client/connection.go
	client/connection_test.go
2012-06-06 16:25:07 +01:00
Alex Bramley 1c62354cb8 Rewrite flood limiting for new time behaviour. 2012-02-04 01:13:07 +00:00
Alex Bramley dfb6f94b56 Manually managing deadlines is going to *suck*. 2012-02-04 01:12:41 +00:00
Alex Bramley b23215d09b Gofix run. 2012-02-04 00:51:06 +00:00
Alex Bramley f1d0dbe45a If client-side ping can be disabled, we need to ensure something absorbs the shutdown message. 2011-11-15 22:57:29 +00:00
Alex Bramley 3183c9f177 Allow client-side ping to be disabled by setting PingFreq to zero. 2011-11-15 22:22:40 +00:00
Alex Bramley 8fa5e5624e Fix issues/9 by implementing a client-side ping loop. 2011-11-15 22:17:29 +00:00
Alex Bramley e0a5a57fe1 Merge branch 'master' into weekly
Conflicts:
	client/connection.go  # MERGED
	event/registry.go     # DELETED
	logging/mock_test.go  # DELETED
2011-11-13 14:13:55 +00:00
Alex Bramley 907560b599 Migrate to split event pkg. 2011-11-13 14:07:19 +00:00
Alex Bramley 4e4c4b6798 Migrate to split logging pkg. 2011-11-13 14:02:12 +00:00
Alex Bramley 9d5159a220 gofix weekly fixes for client. 2011-11-13 13:34:32 +00:00
Alex Bramley f62470c091 Test rateLimit(). Move call to time.After to write() for ease of testing.
Complete test coverage! Well, for things that matter. I think.
2011-11-11 11:17:18 +00:00
Alex Bramley dc524420b0 Test write(). Fix bug where return of Flush() was not checked. 2011-11-11 10:17:17 +00:00
Alex Bramley aa75e0e0c6 Make enabling/disabling state-tracking easier. Improve constructors. 2011-11-07 13:34:13 +00:00
Alex Bramley 85097043cf Epic final commit for nick/chan/logging/testing refactor.
* Brings logging changes to client library.
* Brings state tracker to client library.
* Rewrites all tests to use mock logger and mock state tracker.
* Makes state tracking optional, finally.
* Shaves yaks until they are almost completely bald.
2011-11-06 04:56:46 +00:00
Alex Bramley e36caa3a3d Merge branch 'logging' into nickchan-refactor
Conflicts:
	client/nickchan.go

Fix up some inconsistencies in the beginning of the nickchan refactor too.
2011-10-06 22:33:06 +01:00
Alex Bramley de66051d07 Convert conn.Err into logging.
Also, remove all error-side-effect testing cos it was a bit shit.
First step on the long road to refactoring the nick/chan state tracking
and making everything more testable and mockable with interfaces.
2011-09-29 22:54:54 +01:00
Alex Bramley eb6ac4ce05 Tracking wip. 2011-09-28 20:48:58 +01:00
Alex Bramley c400a2141a Run gofmt over code, it's been a while. 2011-09-12 23:25:09 +01:00
Alex Bramley 7d9b8c3099 Add tests for explicit and implicit (via EOF) shutdown; fix bug ;-) 2011-08-23 10:53:52 +01:00
Alex Bramley f3a2cf6fa6 Make connected externally accessible, per issues/8. 2011-08-22 17:09:48 +01:00
Alex Bramley fb91caeccf Fix comment for Conn struct. 2011-08-21 13:57:47 +01:00
Alex Bramley 045679dd42 Split Connect() into two pieces for testing purposes. 2011-08-21 13:31:18 +01:00
Alex Bramley 9c94b0b3e0 Impolite to break the 'IRC event provides Conn, Line' contract. 2011-07-30 19:34:55 +01:00
Alex Bramley 8fed417dce Oh wait event isn't local. 2011-07-28 00:41:47 +01:00