I’ve taken the client at
https://swtch.com/irc/ and added enough SASL PLAIN support to access Freenode so that I could use it as my IRC client.
It’s available at
https://github.com/cptaffe/airc.
I documented the flow as best I could in this
commit , and I’d appreciate constructive feedback on how to improve the implementation or add more comprehensive SASL support. My initial idea was to support CertFP, but I had difficulty getting tlsClient in libsec to work, and reading through the code I’m not sure it supports sending the client certificate (there’s a bit which indicates it always sends an empty cert).
Another peculiarity is that mk all fails with a symbol error because it builds Irc.o and irc.o from irc.c on macOS, I believe this is to do with case-insensitivity in Apple’s FS. To get around this, just run the 9l command by hand without Irc.o.
After mk install, running "Irc -n nick -p passed
irc.freenode.net" should attempt SASL PLAIN.
Speaking of IRC, is there a plan9port IRC channel?
Best,
Connor