Commit Graph

114 Commits

Author SHA1 Message Date
Tamás Solymos ceced391f3 Allow non-context Dialers
Dialers who don't implement DialContext but upgrade past https://github.com/fluffle/goirc/pull/109 (which is 2.5 years old but still) will break. This change falls back to the non-context dial method, where calls may take longer and time out, and goirc would give them a warning as well.
2023-11-23 08:29:44 +00:00
Taavi Väänänen e64b5d47c3 Add SASL authentication support
This hacks together support for IRCv3.1 SASL. Currently only SASL PLAIN
is supported, but it's implemented in a way that adding support for
other types should not require too many changes to the current code.
2022-11-28 09:05:14 +00:00
Stefano 54099b85a3 Implement feature request #77: Support IRCv3 capability negotiation during registration 2022-03-17 19:38:12 +00:00
Luca Bigliardi 58c9607dfb Fix connection cleanup when context is canceled
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-27 19:28:50 +00:00
Alex Bramley 27cc39787d Use a Context to kill internal goroutines. 2021-03-26 12:02:36 +00:00
Luca Bigliardi e0c319f8ff Support context during connect
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-02-24 19:06:21 +00:00
Alex Bramley b2c51c13c6 NewNick handler that doesn't vary nick length. Fixes #108. Sort of. 2019-10-17 20:27:52 +01:00
Alex Bramley fc1dfa1ceb Add net.Dialer DualStack config option. 2018-02-16 21:04:56 +00:00
Alex Bramley 329a62d7d9 Don't hold conn.mu during REGISTER. Fixes #94. 2016-12-18 14:22:12 +00:00
Alex Bramley 82bcd7aded Rename Shutdown to Close; implement io.Closer. 2016-09-16 19:40:27 +01:00
Alex Bramley 734da36009 Make Conn's Shutdown method public. 2016-09-12 20:55:10 +01:00
Alex Bramley a2223065b2 Actually perform SSL handshake when we claim to. Fixes #89. 2016-08-24 08:28:48 +01:00
Jason Keene aad5dbe821 Obfuscate PASS in debug logs. (#87) 2016-05-14 09:12:49 +01:00
Alex Bramley e935d78bb7 Fix for the deadlock condition. 2015-11-02 21:16:07 +00:00
Brenton Morris f90b498ac4 Removed the config.Proxy variable and renamed config.ProxyServer to config.Proxy. Client now connects over the specified proxy if config.Proxy isn't an empty string. 2015-09-20 19:37:26 +12:00
Brenton Morris 866e8dac8a Added proxy support 2015-09-14 16:32:23 +12:00
Alex Bramley ed92e36e8e Attempt to improve the godoc of client. 2015-04-15 22:27:50 +01:00
Alex Bramley f12a174523 Only dispatch DISCONNECTED once. 2015-04-14 07:50:39 +01:00
Alex Bramley cd24432da4 More deadlock fixes for #58.
- Remove lock in Me().
 - Move call to initialise() to Connect().
 - Ensure DISCONNECTED event is fired after shutdown() lock is released.
2015-04-13 19:05:42 +01:00
Alex Bramley 861f24a130 Alternative deadlock fix. 2015-04-02 09:22:42 +01:00
Alex Bramley b4870bc685 Tell state tracker all the information about Me. 2015-04-01 17:54:33 +01:00
Alex Bramley 0cac69d2ee Merge branch 'state-copy'. Fixes #49, #35.
Overhaul the state tracker to return copies of data that should be correct
at the time of the response. Subsequent changes to tracked IRC state will not
be reflected in the copies. For people fixing up their code because this merge
broke everything, you probably want to be paying particular attention to the
use of conn.Me() instead of conn.cfg.Me.

Sorry if this causes you hassle, it's for the best.

Lastly, if kballard is watching: sorry dude, you were mostly right ;-)
2015-02-27 19:56:41 +00:00
Alex Bramley 0216e0406e Update client for new state tracking code. 2015-01-02 12:58:50 +00:00
StalkR 262ea31065 client/connection: keep information in disconnected event 2014-12-28 12:39:30 +01:00
kyle 5e5f5f0253 Moved timeout to Client from Connect 2014-12-20 20:39:44 +02:00
kyle dde47a6a32 fixed inconsistencies 2014-12-20 19:36:08 +02:00
kyle d1aa016bb0 Merge remote-tracking branch 'upstream/master'
Conflicts:
	client/connection.go
2014-12-20 19:17:43 +02:00
kyle c8beed09da Fixed formatting with go fmt 2014-12-20 16:56:58 +02:00
kyle 39a7da0a37 Added timeout to deal with connecting to slow and unreliable irc servers 2014-12-20 15:23:57 +02:00
Alex Bee 8231942086 Merge pull request #51 from bramp/ipv6
Fixed the building of the server/port string to be IPv6 safe.
2014-12-18 21:43:26 +00:00
Andrew Brampton 706c90baa3 Ensure the time field is populated on the pseudo line events, such as connecting and disconnecting. 2014-11-30 15:42:08 -08:00
Andrew Brampton dbcdb4c13d Fixed the building of the server/port string to be IPv6 safe. 2014-11-30 10:09:17 -08:00
Minecrell b533f5b698 Make local bind address configurable. 2014-10-12 19:34:29 +02:00
Alex Bramley 58eaab3f1f New race detector finds more bugs in my crappy code :-) 2014-09-05 15:39:56 +01:00
3onyc 8f2ab20f4f Make parseLine public by renaming it to ParseLine 2014-07-06 20:26:34 +02:00
Alex Bee 7711182a72 Use Connected() instead of .connected in String() 2014-06-14 15:50:52 +01:00
Peter SZTANOJEV 3fdd17a2b8 move the disconnection event after we are done disconnecting, there is nothing to be done anyway 2014-05-31 20:34:21 +02:00
Alex Bramley 637cdb573f Put read lock in Connected() (10->9). 2013-09-30 13:55:55 +01:00
Alex Bramley 648864c1d4 Wait for all goroutines before calling initialise (54->10). 2013-09-30 13:26:06 +01:00
Alex Bramley 144001d109 Split handlers up into three groups. 2013-09-28 00:15:54 +01:00
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