discard client input after onNewClient callback finished
This commit is contained in:
parent
5aa9db4e51
commit
c86730cabc
15
server.go
15
server.go
@ -30,14 +30,6 @@ func Listen(socketPath string, onNewClient func(client net.Conn)) (*Server, erro
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if onNewClient == nil {
|
||||
onNewClient = func(client net.Conn) {
|
||||
data := make([]byte, 1024)
|
||||
for _, err := client.Read(data); err == nil; _, err = client.Read(data) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s := &Server{
|
||||
socketPath: absPath,
|
||||
server: server,
|
||||
@ -70,9 +62,16 @@ func (s *Server) handleClients() {
|
||||
func (s *Server) handleClient(client net.Conn) {
|
||||
s.clients.Put(client, struct{}{})
|
||||
defer s.clients.Delete(client)
|
||||
|
||||
if s.onNewClient != nil {
|
||||
s.onNewClient(client)
|
||||
}
|
||||
|
||||
data := make([]byte, 1024)
|
||||
for _, err := client.Read(data); err == nil; _, err = client.Read(data) {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Server) Close() error {
|
||||
s.clients.Iter(func(client net.Conn, _ struct{}) { client.Close() })
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user