Commit Graph

159 Commits

Author SHA1 Message Date
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 83e1f9ca74 Update README for release. 2010-11-21 19:59:57 +00:00
Alex Bramley bedbfc2899 Move irc/ to client/ and set up for goinstall. 2010-11-21 19:53:14 +00:00
Alex Bramley 00d25810b5 De-duplicate mode parsing and move to nickchan.go. 2010-11-04 01:22:49 +00:00
Alex Bramley e611672b06 Reorganise handlers into separate methods rather than anonymous functions. 2010-11-04 00:54:26 +00:00
Alex Bramley c419ef1ead Run gofmt over everything, for great justice. 2010-11-04 00:25:46 +00:00
Alex Bramley 6bb5558c46 Bugfix -- there could be other integer modes than +l. 2010-11-04 00:06:27 +00:00
Alex Bramley ff61bc9ea1 Update README with slight changes. 2010-11-04 00:02:26 +00:00
Alex Bramley 419dba1e75 Update example client with changes. 2010-11-03 23:53:14 +00:00
Alex Bramley 961e38d7bf Handle ircu's non-conformist attitude to JOIN/PART formatting(h/t raylu again). 2010-11-03 23:51:36 +00:00
Alex Bramley 7935d2e939 Use append() instead of doing it manually. 2010-11-03 23:50:43 +00:00
Alex Bramley 38eb150850 Somewhat better SSL handling. It'll improve moar if my patches get looked at. 2010-11-03 23:49:28 +00:00
Alex Bramley a9d47d1a25 Sneakier handling of variadic optional args for commands. 2010-11-03 23:48:28 +00:00
Alex Bramley f829eeab9b Merge in some other niceties from raylu. 2010-11-03 23:46:58 +00:00
Alex Bramley 04db2e2c8d Revert "Use default root CAs for SSL connections, h/t raylu."
This reverts commit 7515f11470.

This doesn't use the "default" CAs, it explicitly turns off CA verification.
Probably not the best of ideas. Patch to enable optional verification coming.

Conflicts:

	irc/connection.go
2010-11-03 20:42:39 +00:00
Alex Bramley 34b3299d41 Bring in Ray Lu's Debug patches. 2010-11-02 21:47:05 +00:00
Alex Bramley 9b9197f5f6 *cough* I should pay more attention when merging... 2010-10-24 10:06:18 +01:00
raylu 036cc4c3eb Fix a bug that prevented adding multiple handlers 2010-10-24 09:54:23 +01:00
Alex Bramley 7515f11470 Use default root CAs for SSL connections, h/t raylu. 2010-10-24 09:53:52 +01:00
Alex Bramley 05e3500a3c Enable SSL IRC for goirc. 2010-08-30 12:16:20 +01:00
Alex Bramley c4d09cd228 Missed strings.Split() invocation; h/t jessta. 2010-08-30 12:03:01 +01:00
Alex Bramley 36b7645577 Makefile fixes to build with more recent Go releases. 2010-08-29 21:24:47 +01:00
Yves Junqueira 1503d7b9db Fixes for recent versions of Go.
Simplifying getStringMsg().
2010-08-29 23:59:16 +08:00
Alex Bramley cc35817517 Add a few more commands that might end up being useful 2009-12-19 22:15:11 +00:00
Alex Bramley 17e5216144 fix race and reinit conn.Me on disconnect
* due to the blocking nature of channel reads, by the time the runLoop()
  for loop exits in that goroutine, we might well be half-way through
  reconnecting to the server -- a bad time to run conn.initialise().
  move the call to initialise() into shutdown() to ensure it happens
  in a timely manner.

* On a related note, conn.Me was retaining old channel objects in it's
  Channels map. All other references to nicks and channels are erased
  in conn.initialise(), but as we keep a seperate reference to our Nick
  object in conn.Me, we need to reinit that at the same time.
2009-12-19 19:05:32 +00:00
Alex Bramley 03e5b3a84e add flood testing capability to test client 2009-12-19 18:36:12 +00:00
Alex Bramley 38f1cd9388 minor handler bug fixes in 433 and MODE
* sending NICK after 433 -- but before 001 from server -- does not
  result in a confirmation NICK message back from server, so we need
  to change Conn.Me.Nick in the 433 handler in this case.
* Nick MODE changes are transmitted back to us in line.Text not
  line.Args[1], so make sure error messages use this when needed.
2009-12-19 18:33:54 +00:00
Alex Bramley 2b1d7068b1 Less naive flood-protection algorithm in *Conn.send() 2009-12-19 18:09:29 +00:00
Alex Bramley af8dfdb6f3 change channel reads to use 'for v := range ch {}' idiom 2009-12-19 15:30:54 +00:00
Alex Bramley 7f6c8fc232 should probably be reading from conn.out after the test for closedness 2009-12-19 14:58:41 +00:00
Alex Bramley 36976f59d0 time.Sleep() requires forced int64 type 2009-12-19 13:44:36 +00:00
Alex Bramley 2942cf2093 Add naive flood protection code to *Conn.send() 2009-12-19 13:40:50 +00:00
Alex Bramley 30fbdda75e Update 352 WHOREPLY handler to set +o and +i user modes for nick 2009-12-19 13:05:10 +00:00
Alex Bramley cdc715735f Use WHO instead of WHOIS to find information about nicks
Send a single WHO on joining channel rather than triggering a WHOIS of
every nick in the 353 RPL_NAMES handler. Avoids 'Excess Flood' when
joining a large channel ;-)
2009-12-19 12:33:54 +00:00
Alex Bramley dc1dd0333a Remove extraneous (and quite spammy) debug printing. 2009-12-18 23:59:12 +00:00
Alex Bramley 05e665bec7 add irc_test.go, update Makefile and .gitignore
add simple test code to make building this package within src/pkg happy;
update irc/Makefile whitespace -- s/    /\t/;
update .gitignore to ignore _test directory created in test build;
2009-12-18 22:50:13 +00:00