client: Respond to PINGs

This commit is contained in:
Daniel Oaks 2016-02-11 22:37:51 +10:00
parent 4d1e9aa36c
commit 4e5ba36eaf
3 changed files with 19 additions and 0 deletions

@ -58,6 +58,11 @@ func capHandler(event string, info eventmgr.InfoMap) {
}
}
func pingHandler(event string, info eventmgr.InfoMap) {
sc := info["server"].(*ServerConnection)
sc.Send(nil, "", "PONG", info["params"].([]string)...)
}
func sendRegistration(sc *ServerConnection) {
sc.Nick = sc.InitialNick
sc.Send(nil, "", "NICK", sc.InitialNick)

@ -31,6 +31,7 @@ func NewReactor() Reactor {
newReactor.RegisterEvent("in", "CAP", capHandler, -10)
newReactor.RegisterEvent("in", "RPL_WELCOME", welcomeHandler, -10)
newReactor.RegisterEvent("in", "RPL_ISUPPORT", featuresHandler, -10)
newReactor.RegisterEvent("in", "PING", pingHandler, -10)
return newReactor
}

@ -253,6 +253,19 @@ func testServerConnection(t *testing.T, reactor Reactor, client *ServerConnectio
return
}
// test PING
sendMessage(conn, nil, "example.com", "PING", "3847362")
message, _ = reader.ReadString('\n')
if message != "PONG 3847362\r\n" {
t.Error(
"Did not receive PONG message, received: [",
message,
"]",
)
return
}
// shutdown client
reactor.Shutdown(" Get mad! ")