hid: fix listener shutdown
This commit is contained in:
		@@ -931,7 +931,7 @@ func (c *client) unregister(reason string) {
 | 
			
		||||
	ircNotifyRoommates(c, fmt.Sprintf(":%s!%s@%s QUIT :%s",
 | 
			
		||||
		c.nickname, c.username, c.hostname, reason))
 | 
			
		||||
 | 
			
		||||
	// The eventual QUIT message will take care of state at clients.
 | 
			
		||||
	// The QUIT message will take care of state on clients.
 | 
			
		||||
	for _, ch := range channels {
 | 
			
		||||
		delete(ch.userModes, c)
 | 
			
		||||
		ircChannelDestroyIfEmpty(ch)
 | 
			
		||||
@@ -2949,6 +2949,13 @@ func accept(ln net.Listener) {
 | 
			
		||||
	for {
 | 
			
		||||
		// Error handling here may be tricky, see go #6163, #24808.
 | 
			
		||||
		if conn, err := ln.Accept(); err != nil {
 | 
			
		||||
			// See go #4373, they're being dicks. Another solution would be to
 | 
			
		||||
			// pass a done channel to this function and close it before closing
 | 
			
		||||
			// all the listeners, returning from here if it's readable.
 | 
			
		||||
			if strings.Contains(err.Error(),
 | 
			
		||||
				"use of closed network connection") {
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
			if op, ok := err.(net.Error); !ok || !op.Temporary() {
 | 
			
		||||
				log.Fatalln(err)
 | 
			
		||||
			} else {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user