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
c85f891c6b
Bah, dsymonds moved gomock again.
2012-06-26 11:20:57 +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
dbdc470c5c
Fix os.EINVAL -> os.ErrInvalid change.
2012-05-14 22:51:01 +01:00
Alex Bramley
cb5001bb27
Rate limit testing was not testing properly. Needed abs() and some fixes for time changes.
2012-02-04 23:34:09 +00:00
Alex Bramley
a78aed7e7c
Functions are not comparable any more, so only compare event names.
2012-02-04 23:32:39 +00:00
Alex Bramley
6fd04236fb
"Fix" testing of ratelimiting code.
2012-02-04 01:32:48 +00:00
Alex Bramley
eb87e56f96
Mock net.Conn needs updating for interface changes.
2012-02-04 01:16:19 +00: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
be271308c9
Correct import path, again.
2012-02-03 23:48:20 +00:00
Alex Bramley
fce8723af0
Basic copy test, to verify expected behaviour.
2011-12-06 00:21:57 +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
dbc9c5f09d
Misc minor fixen.
2011-11-11 10:49:33 +00:00
Alex Bramley
6a54622df9
Make mockNetConn more likely to expose racy conditions.
...
Use buffered channels so that Close() returns without waiting.
Use an array of three channels rather than appending to a slice.
2011-11-11 10:48:58 +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
19ea7138e5
Test runLoop(). Needed a lot of sleeps...
2011-11-11 09:23:12 +00:00
Alex Bramley
9ccb0a39ab
Test recv().
2011-11-11 08:35:23 +00:00
Alex Bramley
0d4e83ea7f
Fix length bug in mockNetChan.
...
Using the length of the provided buffer is dangerous after the first buffered
read from it, as it'll be the length of the buffer size...
2011-11-11 08:34:55 +00:00
Alex Bramley
38cd23891a
Streamline timers in mockNetConn slightly.
2011-11-11 08:00:18 +00:00
Alex Bramley
bfdd895ca6
Test send().
2011-11-11 07:59:16 +00:00
Alex Bramley
d4aceddcd7
Test Client creation and ST enable/disable.
2011-11-10 15:06:44 +00:00
Alex Bramley
a271cc06f3
Use mock dispatcher for testing event triggering.
2011-11-07 14:53:07 +00:00
Alex Bramley
3feaa7f302
Use a static map of event handlers for internal handlers too.
2011-11-07 13:44:03 +00:00
Alex Bramley
aa75e0e0c6
Make enabling/disabling state-tracking easier. Improve constructors.
2011-11-07 13:34:13 +00:00
Alex Bramley
4853024928
Nuke extraneous makefiles, no longer needed.
2011-11-06 06:26:59 +00:00
Alex Bramley
caa9429a74
Update README.
2011-11-06 05:22:02 +00:00
Alex Bramley
2bc8238f8e
Move state-related handlers to their own file for clarity.
2011-11-06 05:11:49 +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
f128ce84b4
Start of breaking out state tracking into separate package.
2011-10-08 10:42:15 +01:00
Alex Bramley
a0020f4e62
Method to initialise tracker memory.
2011-10-08 10:40:58 +01:00
Alex Bramley
d072abbb76
Give nicks an awareness of me.
2011-10-07 00:19:31 +01:00
Alex Bramley
7a17ee9eb5
State tracking refactor completer.
2011-10-06 23:54:34 +01: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
3e1b2c0f81
Turns out gofmt isn't big on spaces sometimes.
2011-09-29 22:58:04 +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
18c20080e8
Test handler for 671 replies.
2011-09-12 23:21:40 +01:00
Alex Bramley
b0e0be0fe3
Check all nicks against current channel contents for 353 handler.
2011-09-12 23:21:15 +01:00
Alex Bramley
6c1d345f0b
Test handler for 353 replies.
2011-09-12 23:14:08 +01:00
Alex Bramley
9d896f2693
Test for 352 RPL_WHOREPLY.
2011-09-11 11:01:28 +01:00
Alex Bramley
d4ae3b588d
Test for 332 RPL_TOPIC.
2011-09-09 23:27:45 +01:00
Alex Bramley
4008b84db6
Test handler for 324 RPL_CHANNELMODEIS.
2011-09-09 23:24:08 +01:00
Alex Bramley
47ae014c1c
Whitespace fix.
2011-09-09 23:04:27 +01:00
Alex Bramley
8ae5fe3b75
Another minor indexing bug :-/
2011-09-09 23:04:12 +01:00
Alex Bramley
ff855691cf
Test the 311 RPL_WHOISUSER handler.
2011-09-09 23:03:44 +01:00
Alex Bramley
daadb2c96e
Test the TOPIC handler.
2011-09-09 23:02:33 +01:00
Alex Bramley
d15d1074f5
Fix bug found by MODE handler test.
2011-09-09 22:33:08 +01:00
Alex Bramley
c5146e93f6
Add MODE handler test. These are starting to feel clunky.
2011-09-09 22:32:55 +01:00
Alex Bramley
df893eb6d0
QUIT handler test.
2011-08-31 22:55:56 +01:00
Alex Bramley
b306650af5
Tests for the KICK handler.
2011-08-30 23:15:54 +01:00
Alex Bramley
788c69aaa8
Fix same logic bug in KICK handler.
2011-08-30 23:08:10 +01:00
Alex Bramley
d74fd18d3d
Fixed logic bug, but it's a bit ugly :-/
2011-08-24 14:39:27 +01:00
Alex Bramley
4c0f62666d
Test for h_PART -- exposed a logic bug :-/
2011-08-24 14:34:11 +01:00
Alex Bramley
52e74b3f1a
Rewrite JOIN handler test to avoid re-testing all the state tracking logic repeatedly.
2011-08-24 13:58:00 +01:00
Alex Bramley
c5e13b8b12
Make NICK handler test a little more accurate.
2011-08-24 13:58:00 +01:00
Alex Bramley
cf8ab830f7
Move some basic assertions about initial state into setUp().
2011-08-24 13:58:00 +01:00
Alex Bramley
389f5247f5
Helpers for testing whether Conn errors are triggered.
2011-08-24 13:58:00 +01:00
Alex Bramley
6815c19bb3
Start of JOIN test. Seems like the wrong approach.
2011-08-24 12:46:21 +01:00
Alex Bramley
b8c3f42252
Better line ending handling in MockNetConn.
2011-08-24 12:45:32 +01:00
Alex Bramley
83da879ad3
Add tearDown() to all tests.
2011-08-23 11:06:06 +01:00
Alex Bramley
8fc23d5c17
Test CTCP handler.
2011-08-23 11:03:59 +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
770c5eb5ac
Use ExpectNothing() to make sure handlers don't generate unexpected output.
2011-08-23 10:52:16 +01:00
Alex Bramley
5ff77fc2f9
Add mock dispatcher factory that tests an event fired; use it in Test001().
2011-08-23 10:50:43 +01:00
Alex Bramley
59b18b038b
MockNetConn: Add ExpectNothing() helper.
2011-08-23 10:44:14 +01:00
Alex Bramley
bd388db1cc
MockNetConn: Use correct os.Errors in Read/Write.
2011-08-23 10:43:48 +01:00
Alex Bramley
020730aca1
MockNetConn: Wrap all channel reads in selects; send EOF on Close(); kill goroutines correctly.
2011-08-23 10:42:54 +01:00
Alex Bramley
b04196327a
Begin testing event handlers.
2011-08-22 23:24:05 +01:00
Alex Bramley
4e7f272b3f
Mock dispatcher for testing.
2011-08-22 23:23:29 +01:00
Alex Bramley
0d7d875b9f
Add Send method for mockNetConn, and make Read/Write return errors when closed.
2011-08-22 23:22:46 +01:00
Alex Bramley
48ad9bfa4a
Line parsing needs to handle CTCPREPLY too.
2011-08-22 23:21:30 +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
820f0cb14b
Test all client commands.
2011-08-21 13:38:51 +01:00
Alex Bramley
425557e8bd
Create a simple mock that implements net.Conn.
2011-08-21 13:38:12 +01:00
Alex Bramley
045679dd42
Split Connect() into two pieces for testing purposes.
2011-08-21 13:31:18 +01:00
Alex Bramley
a95da1cb2c
Enforce upper-case CTCP commands.
2011-08-21 13:22:26 +01:00
Alex Bramley
b32e8d050f
Gofix for r59.
2011-08-03 08:04:01 +01:00
Alex Bramley
cd53356ca6
Merge branch 'master' into release
2011-08-03 08:03:20 +01:00
Alex Bramley
1a4ce96e00
Gofix for r59.
2011-08-03 08:03:08 +01:00
Alex Bramley
2efe298c75
Make IRCHandler the function type, make NewHandler the factory.
2011-07-30 19:42:10 +01:00
Alex Bramley
43a2bf08f1
Make IRCHandler the function type, make NewHandler the factory.
2011-07-30 19:41:50 +01:00
Alex Bramley
1d82af0080
Impolite to break the 'IRC event provides Conn, Line' contract.
2011-07-30 19:35:08 +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
1849d886d4
Revert "Merge branch 'master' into release"
...
This reverts commit 2528d13314
, reversing
changes made to f0a9246c7a
.
2011-07-29 23:14:21 +01:00
Alex Bramley
2f31ca5dcf
Oh, god damnit. Should at least *try* to build things to make sure they work.
2011-07-28 18:02:02 +01:00
Alex Bramley
364c6da7ae
Add a function to make a copy of a *Line (bar the Time field).
2011-07-28 17:56:14 +01:00
Alex Bramley
47d4587ca3
Revert "Weekly commits shouldn't be on release branch"
...
This reverts commit 934ee04fcf
.
2011-07-28 12:14:51 +01:00
Alex Bramley
8fed417dce
Oh wait event isn't local.
2011-07-28 00:41:47 +01:00
Alex Bramley
303d3724e2
Break out unboxing code; pass conn/line objects for other events.
2011-07-28 00:24:07 +01:00
Alex Bramley
8e6de2f3c7
Add an overridable Dispatcher to Conn, and use that to dispatch events.
2011-07-27 21:40:56 +01:00
Alex Bramley
900afb5c48
Put nil checking in correct place.
2011-07-27 21:15:09 +01:00
Alex Bramley
33a5bff35b
Move line parsing done in dispatchEvent into ParseLine().
2011-07-27 21:10:37 +01:00
Alex Bramley
5e814babc7
Move to using the new event registry internally.
2011-07-27 21:10:01 +01:00
Alex Bramley
934ee04fcf
Weekly commits shouldn't be on release branch
2011-07-26 20:25:14 +01:00
Alex Bramley
d2cfe6eb6f
Tidy up old-style slice syntax, and use string methods for CTCP parsing.
2011-07-25 23:02:57 +01:00
Alex Bramley
65ae4394fc
Update for weekly of 2011-07-16; changes to string.Split().
2011-07-25 22:27:52 +01:00
Alex Bramley
ddd913547c
Add field in Conn to allow external state to be propagated to event handlers.
2011-07-25 22:27:09 +01:00
Alex Bramley
c3715be829
Use second constant in SetTimeout().
2011-07-22 01:20:25 +01:00
Alex Bramley
07d5c0676e
Fix compile error when NewNick() is called before initialise().
2011-07-22 01:20:07 +01:00
Alex Bramley
6634869fe6
Use connected bool properly to ensure shutdown() can't be called twice.
2011-07-22 01:17:35 +01:00
Alex Bramley
291132cab5
Refactor recv() since we needed to rewrite send().
2011-07-22 01:11:15 +01:00
Alex Bramley
0200b741dc
Fix for issues/6 (2/2): Move to using control channels and select.
2011-07-22 01:08:42 +01:00
Alex Bramley
eb51558009
Fix for issues/6 (1/2): Don't close channels when disconnected.
2011-07-21 23:03:11 +01:00
Alex Bramley
a5a4f989ac
Update SSL connectivity to use tls.Dial now it supports a config arg.
2011-07-21 22:00:45 +01:00
Alex Bramley
9748f9c47e
Oops, timeouts are int64 nanoseconds.
2011-07-21 21:59:01 +01:00
Alex Bramley
5027646478
gofix run
2011-07-18 09:14:58 +01:00
Alex Bramley
83b482f8ce
Make socket timeouts a configurable thingy.
2011-07-17 13:48:12 +01:00
raylu
a19bce5998
Make a timeout so that Conn.Err closes when the connection is lost
2011-07-17 13:35:15 +01:00
Alex Bramley
2a3ff18d73
Properly fix formatting. Bleh bleh bleh.
2010-12-20 22:14:22 +00:00
Alex Bramley
1d587cd3fc
Helps if you add the damn element to the struct...
2010-12-19 15:22:40 +00:00
Alex Bramley
bea2395160
Make timestamp format twiddleable; cosmetic re-arrangement of *Conn struct.
2010-11-23 22:18:08 +00:00
Graham Lyon
623247c995
Generalise timestamp code and default to using time.LocalTime
2010-11-23 22:08:25 +00:00
Alex Bramley
08b7d63c27
Refactor to remove line.Text and use line.Args[-1] instead.
2010-11-23 22:07:21 +00:00
Graham Lyon
8ad6e67467
Added timestamps to irc.Line and debug output
2010-11-23 20:22:35 +00:00
Alex Bramley
bedbfc2899
Move irc/ to client/ and set up for goinstall.
2010-11-21 19:53:14 +00:00