Fix send on closed channel error.

This commit is contained in:
Mikkel Krautz 2011-06-23 00:46:15 +02:00
parent 190316b0a1
commit 4ca0fd3c55

View file

@ -277,16 +277,16 @@ func (server *Server) NewClient(conn net.Conn) (err os.Error) {
// internal representation.
func (server *Server) RemoveClient(client *Client, kicked bool) {
server.hmutex.Lock()
if client.udpaddr != nil {
host := client.udpaddr.IP.String()
oldclients := server.hclients[host]
newclients := []*Client{}
for _, hostclient := range oldclients {
if hostclient != client {
newclients = append(newclients, hostclient)
}
host := client.tcpaddr.IP.String()
oldclients := server.hclients[host]
newclients := []*Client{}
for _, hostclient := range oldclients {
if hostclient != client {
newclients = append(newclients, hostclient)
}
server.hclients[host] = newclients
}
server.hclients[host] = newclients
if client.udpaddr != nil {
server.hpclients[client.udpaddr.String()] = nil, false
}
server.hmutex.Unlock()