aboutsummaryrefslogtreecommitdiff
path: root/peripconn.go
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-11-05 10:56:04 +0200
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-11-05 10:56:04 +0200
commita7fdc68be0141085ef1fd9109cfcb0fd78bcb28b (patch)
tree9b7246faf1690ba8ae82e1039ae3979448aee47d /peripconn.go
parentProperly encode cookie without name (diff)
downloadfasthttp-a7fdc68be0141085ef1fd9109cfcb0fd78bcb28b.tar.gz
fasthttp-a7fdc68be0141085ef1fd9109cfcb0fd78bcb28b.tar.bz2
fasthttp-a7fdc68be0141085ef1fd9109cfcb0fd78bcb28b.zip
Enforce MaxConnsPerIP limit to connections served via Server.ServeConn()
Diffstat (limited to 'peripconn.go')
-rw-r--r--peripconn.go8
1 files changed, 6 insertions, 2 deletions
diff --git a/peripconn.go b/peripconn.go
index 2568477..cf8e986 100644
--- a/peripconn.go
+++ b/peripconn.go
@@ -51,12 +51,16 @@ func (c *perIPConn) Close() error {
}
func getUint32IP(c net.Conn) uint32 {
+ return ip2uint32(getConnIP4(c))
+}
+
+func getConnIP4(c net.Conn) net.IP {
addr := c.RemoteAddr()
ipAddr, ok := addr.(*net.TCPAddr)
if !ok {
- return 0
+ return net.IPv4zero
}
- return ip2uint32(ipAddr.IP.To4())
+ return ipAddr.IP.To4()
}
func ip2uint32(ip net.IP) uint32 {