in lib/rr.go [44:56]
func (rr *roundRobin) SelectServerFromList(list []*DHCPServer, message *DHCPMessage) (*DHCPServer, error) {
rr.lock.RLock()
defer rr.lock.RUnlock()
if len(list) == 0 {
return nil, errors.New("Server list is empty")
}
// no guarantee that lists are the same size, so modulo before incrementing
rr.iterList = rr.iterList % len(list)
server := list[rr.iterList]
rr.iterList++
return server, nil
}