(s *Server, c net.Conn)
| 2149 | } |
| 2150 | |
| 2151 | func wrapPerIPConn(s *Server, c net.Conn) net.Conn { |
| 2152 | ip := getUint32IP(c) |
| 2153 | if ip == 0 { |
| 2154 | return c |
| 2155 | } |
| 2156 | n := s.perIPConnCounter.Register(ip) |
| 2157 | if n > s.MaxConnsPerIP { |
| 2158 | s.perIPConnCounter.Unregister(ip) |
| 2159 | s.writeFastError(c, StatusTooManyRequests, "The number of connections from your ip exceeds MaxConnsPerIP") |
| 2160 | c.Close() |
| 2161 | return nil |
| 2162 | } |
| 2163 | return acquirePerIPConn(c, ip, &s.perIPConnCounter) |
| 2164 | } |
| 2165 | |
| 2166 | var defaultLogger = Logger(log.New(os.Stderr, "", log.LstdFlags)) |
| 2167 |
no test coverage detected
searching dependent graphs…