func ReleaseIP(network *net.IPNet, ip *net.IP) error {
	lock.Lock()
	defer lock.Unlock()
	if allocated, exists := allocatedIPs[network.String()]; exists {
		pos := getPosition(network, ip)
		delete(allocated.p, pos)
	}
	return nil
}
// ReleaseIP adds the provided ip back into the pool of
// available ips to be returned for use.
ReleaseIP adds the provided ip back into the pool of
available ips to be returned for use.
// ReleaseIP adds the provided ip back into the pool of // available ips to be returned for use .
func ReleaseIP(network *net.IPNet, ip *net.IP) error {
	lock.Lock()
	defer lock.Unlock()
	if allocated, exists := allocatedIPs[network.String()]; exists {
		pos := getPosition(network, ip)
		delete(allocated.p, pos)
	}
	return nil
}
func ReleaseIP ( network * net . IPNet , ip * net . IP ) error { lock . Lock ( ) defer lock . Unlock ( ) if allocated , exists := allocatedIPs [ network . String ( ) ] ; exists { pos := getPosition ( network , ip ) delete ( allocated . p , pos ) } return nil }
ReleaseIP adds the provided ip back into the pool of
available ips to be returned for use.
ReleaseIP adds the provided ip back into the pool of available ips to be returned for use .