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. // internal representation.
func (server *Server) RemoveClient(client *Client, kicked bool) { func (server *Server) RemoveClient(client *Client, kicked bool) {
server.hmutex.Lock() server.hmutex.Lock()
if client.udpaddr != nil { host := client.tcpaddr.IP.String()
host := client.udpaddr.IP.String() oldclients := server.hclients[host]
oldclients := server.hclients[host] newclients := []*Client{}
newclients := []*Client{} for _, hostclient := range oldclients {
for _, hostclient := range oldclients { if hostclient != client {
if hostclient != client { newclients = append(newclients, hostclient)
newclients = append(newclients, hostclient)
}
} }
server.hclients[host] = newclients }
server.hclients[host] = newclients
if client.udpaddr != nil {
server.hpclients[client.udpaddr.String()] = nil, false server.hpclients[client.udpaddr.String()] = nil, false
} }
server.hmutex.Unlock() server.hmutex.Unlock()