Commit Graph

444 Commits

Author SHA1 Message Date
Kobe Housen 8b460bc60f Use make size hint when copying channels in Nick()
70% faster when using a high number of channels

Old performance

```
$ go test ./state -bench=.
goos: linux
goarch: amd64
pkg: github.com/fluffle/goirc/state
cpu: AMD Ryzen Threadripper PRO 3945WX 12-Cores
BenchmarkNickSingleChan-24      15465226                76.35 ns/op
BenchmarkNickManyChan-24            5738            195721 ns/op
PASS
ok      github.com/fluffle/goirc/state  2.433s
```

new performance

```
$ go test ./state -bench=.
goos: linux
goarch: amd64
pkg: github.com/fluffle/goirc/state
cpu: AMD Ryzen Threadripper PRO 3945WX 12-Cores
BenchmarkNickSingleChan-24      15022640                79.13 ns/op
BenchmarkNickManyChan-24           10000            115104 ns/op
PASS
ok      github.com/fluffle/goirc/state  2.456s
```
2023-11-17 12:58:34 +00:00
Alex Bramley 2b7abdce8f Add @supertassu to README, update copyright dates. 2022-11-28 13:42:10 +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
Alex Bramley bbbcc9aa5b Noticed typo as soon as I pushed :-( 2022-03-23 09:40:06 +00:00
Alex Bramley 5b481cf00a Update travis for recent go versions. 2022-03-23 09:38:41 +00:00
Alex Bramley 33c2868b34 Add ostafen to contributors. 2022-03-23 09:36:35 +00:00
Stefano 54099b85a3 Implement feature request #77: Support IRCv3 capability negotiation during registration 2022-03-17 19:38:12 +00:00
Stefano b1565dba18 Add section for "Projects using GoIRC" 2022-02-03 09:38:40 +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 c874d8df17 Update README to add shammash as a contributor. 2021-03-26 13:17:34 +00:00
Alex Bramley 5bb083547b Make call checker a handler. 2021-03-26 12:40:28 +00:00
Alex Bramley 1a10eba91a Use a Context in mockNetConn too. 2021-03-26 12:36:19 +00:00
Alex Bramley 27cc39787d Use a Context to kill internal goroutines. 2021-03-26 12:02:36 +00:00
Alex Bramley 1bb2dff298 Accept nick from 001 message. Fixes #110. 2021-03-26 11:20:00 +00:00
Alex Bramley cb4b7e5d82 Go version update; mod tidy. 2021-03-26 09:06: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 a32ccd5931 Update travis, because why not. 2020-03-17 16:53:26 +00:00
Alex Bramley d8596aa285 Remove explicit dependency on optional logging packages. 2020-03-17 16:51:30 +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 0dc1109b0d Go modules for goirc. 2018-09-28 20:19:31 +01:00
Alex Bramley 08c1bcf174 Fix panic when String is called on nil mode pointers. Fixes #98. 2018-09-06 22:23:59 +01:00
Alex Bramley 47162eb0b8 Run gofmt to keep people happy! 2018-09-06 22:15:14 +01:00
John R Barker 90556d7c97 s/bob-smith/gundalow/
I renamed my account a lot time ago
2018-09-06 22:08:48 +01:00
Alex Bramley 5d183f21c3 Update travis.yml with recent Go versions. 2018-09-06 22:12:22 +01:00
Alex Bramley fc1dfa1ceb Add net.Dialer DualStack config option. 2018-02-16 21:04:56 +00:00
Alex Bramley a7abc67ac2 Hold state tracker lock for Me(). Fixes data race panic. 2017-10-31 21:38:46 +00:00
Alex Bramley c981f8f568 Avoid holding hSet lock while executing handlers. Fixes #102. 2017-07-25 20:29:28 +01:00
momo-aux 2ece5aab67 add: :n username channelname ex: :n testuser #testchannel (#97)
Add: :n <nick> <channel> as a command to the example client.

This queries the state tracker for the status of the user on the given channel.
2017-06-02 22:39:41 +01:00
Alex Bramley 329a62d7d9 Don't hold conn.mu during REGISTER. Fixes #94. 2016-12-18 14:22:12 +00:00
Alex Bramley 64ad58533d Test ERROR handling and add constant. Fixes #92. 2016-11-28 22:50:19 +00:00
Alex Bramley be9257d323 Fix example code, oops. 2016-09-16 19:43:45 +01: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
Alex Bramley 20e4ea9b00 TestPing needs a different timer resolution on windows. Fixes #88. 2016-06-10 19:37:51 +01:00
Jason Keene aad5dbe821 Obfuscate PASS in debug logs. (#87) 2016-05-14 09:12:49 +01:00
Alex Bee 8d77d1625c Merge pull request #86 from bob-smith/patch-1
Travis icon in README.md
2016-03-06 19:40:27 +00:00
John R Barker f2d906c0e0 Travis icon in README.md 2016-03-06 19:38:35 +00:00
Alex Bee ace6a89147 Merge pull request #85 from bob-smith/travis
Enable travis-ci for goirc
2016-03-06 19:35:13 +00:00
John Barker 9ffd7740ec Enable travis-ci for goirc 2016-03-06 13:37:58 +00:00
Alex Bramley ba9b75dd46 Update README.md with additional credits. 2016-03-02 21:53:04 +00:00
Alex Bee 19d79b5351 Merge pull request #84 from bob-smith/patch-2
Syntax highlighting for source code in README.md
2016-03-02 21:40:21 +00:00
John Barker 0b121522bb Syntax highlighting for source code in README.md
Markdown knows about golang, so use the source (formatting) luke
2016-03-02 18:19:47 +00:00
Alex Bee 6277eb6e2d Merge pull request #81 from stapelberg/patch-1
README: add SSLConfig to make connecting work
2016-02-25 22:19:41 +00:00
Alex Bee 6eefee83e9 Merge pull request #82 from stapelberg/patch-2
ParseLine: ignore empty lines (instead of crashing)
2016-02-25 22:18:06 +00:00
Michael Stapelberg 07446c2595 ParseLine: ignore empty lines (instead of crashing) 2016-02-25 08:51:54 +01:00
Michael Stapelberg 51e6046a09 README: add SSLConfig to make connecting work
Without an SSLConfig, I get the following error:

```
E0225 08:43:12.384793   28687 connection.go:406] irc.recv(): tls: either ServerName or InsecureSkipVerify must be specified in the tls.Config
```
2016-02-25 08:50:53 +01:00
Alex Bee 8be75dd9d4 Merge pull request #76 from jakebailey/master
Add IRCv3 tag parsing and CAP command.

http://ircv3.net/specs/core/capability-negotiation-3.1.html
http://ircv3.net/specs/core/message-tags-3.2.html
2016-01-24 14:54:39 +00:00
Jake Bailey 4c6842acba link to spec 2016-01-12 20:02:46 -06:00
Jake Bailey 20ef362b1d skip empty tags, allow = in tag values, better clarify ; split, add IRCv3 tag parsing comment to ParseLine() 2016-01-12 20:00:40 -06:00