summaryrefslogtreecommitdiff
path: root/cmd/test/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/test/main.go')
-rw-r--r--cmd/test/main.go37
1 files changed, 17 insertions, 20 deletions
diff --git a/cmd/test/main.go b/cmd/test/main.go
index 6ed7f4e..804937f 100644
--- a/cmd/test/main.go
+++ b/cmd/test/main.go
@@ -56,17 +56,24 @@ func main() {
if password != "" {
auth = &irc.SASLPlain{Username: nick, Password: password}
}
- cli, err := irc.NewSession(conn, irc.SessionParams{
+
+ in, out := irc.ChanInOut(conn)
+ debugOut := make(chan irc.Message, 64)
+ go func() {
+ for msg := range debugOut {
+ fmt.Fprintf(t, "C > S: %s\n", msg.String())
+ out <- msg
+ }
+ close(out)
+ }()
+
+ cli := irc.NewSession(debugOut, irc.SessionParams{
Nickname: nick,
Username: nick,
RealName: nick,
Auth: auth,
- Debug: true,
})
- if err != nil {
- panic(fmt.Sprintf("Failed to connect to %s: %v", address, err))
- }
- defer cli.Stop()
+ defer cli.Close()
go func() {
for {
@@ -76,22 +83,12 @@ func main() {
}
cli.SendRaw(line)
}
- cli.Stop()
+ cli.Close()
}()
- for ev := range cli.Poll() {
- switch ev := ev.(type) {
- case irc.RawMessageEvent:
- if ev.Outgoing {
- fmt.Fprintf(t, "C > S: %s\n", ev.Message)
- } else {
- fmt.Fprintf(t, "C < S: %s\n", ev.Message)
- }
- case error:
- panic(ev)
- default:
- fmt.Fprintf(t, "=EVENT: %T%+v\n", ev, ev)
- }
+ for msg := range in {
+ cli.HandleMessage(msg)
+ fmt.Fprintf(t, "C < S: %s\n", msg.String())
}
t.SetPrompt("")
fmt.Fprintln(t, "Disconnected")