diff options
Diffstat (limited to 'irc.go')
-rw-r--r-- | irc.go | 32 |
1 files changed, 16 insertions, 16 deletions
@@ -1,7 +1,7 @@ // SPDX-License-Identifier: AGPL-3.0-only // SPDX-FileCopyrightText: Copyright (c) 2025 Runxi Yu <https://runxiyu.org> -package main +package forge import ( "crypto/tls" @@ -16,13 +16,13 @@ type errorBack[T any] struct { errorBack chan error } -func (s *server) ircBotSession() error { +func (s *Server) ircBotSession() error { var err error var underlyingConn net.Conn - if s.config.IRC.TLS { - underlyingConn, err = tls.Dial(s.config.IRC.Net, s.config.IRC.Addr, nil) + if s.Config.IRC.TLS { + underlyingConn, err = tls.Dial(s.Config.IRC.Net, s.Config.IRC.Addr, nil) } else { - underlyingConn, err = net.Dial(s.config.IRC.Net, s.config.IRC.Addr) + underlyingConn, err = net.Dial(s.Config.IRC.Net, s.Config.IRC.Addr) } if err != nil { return err @@ -36,11 +36,11 @@ func (s *server) ircBotSession() error { return conn.WriteString(s + "\r\n") } - _, err = logAndWriteLn("NICK " + s.config.IRC.Nick) + _, err = logAndWriteLn("NICK " + s.Config.IRC.Nick) if err != nil { return err } - _, err = logAndWriteLn("USER " + s.config.IRC.User + " 0 * :" + s.config.IRC.Gecos) + _, err = logAndWriteLn("USER " + s.Config.IRC.User + " 0 * :" + s.Config.IRC.Gecos) if err != nil { return err } @@ -81,7 +81,7 @@ func (s *server) ircBotSession() error { if !ok { slog.Error("unable to convert source of JOIN to client") } - if c.Nick != s.config.IRC.Nick { + if c.Nick != s.Config.IRC.Nick { continue } default: @@ -93,18 +93,18 @@ func (s *server) ircBotSession() error { select { case err = <-readLoopError: return err - case line := <-s.ircSendBuffered: + case line := <-s.IrcSendBuffered: _, err = logAndWriteLn(line) if err != nil { select { - case s.ircSendBuffered <- line: + case s.IrcSendBuffered <- line: default: slog.Error("unable to requeue message", "line", line) } writeLoopAbort <- struct{}{} return err } - case lineErrorBack := <-s.ircSendDirectChan: + case lineErrorBack := <-s.IrcSendDirectChan: _, err = logAndWriteLn(lineErrorBack.content) lineErrorBack.errorBack <- err if err != nil { @@ -117,10 +117,10 @@ func (s *server) ircBotSession() error { // ircSendDirect sends an IRC message directly to the connection and bypasses // the buffering system. -func (s *server) ircSendDirect(line string) error { +func (s *Server) ircSendDirect(line string) error { ech := make(chan error, 1) - s.ircSendDirectChan <- errorBack[string]{ + s.IrcSendDirectChan <- errorBack[string]{ content: line, errorBack: ech, } @@ -129,9 +129,9 @@ func (s *server) ircSendDirect(line string) error { } // TODO: Delay and warnings? -func (s *server) ircBotLoop() { - s.ircSendBuffered = make(chan string, s.config.IRC.SendQ) - s.ircSendDirectChan = make(chan errorBack[string]) +func (s *Server) ircBotLoop() { + s.IrcSendBuffered = make(chan string, s.Config.IRC.SendQ) + s.IrcSendDirectChan = make(chan errorBack[string]) for { err := s.ircBotSession() |