func()

in lib/handler.go [152:175]


func (s *Server) sendToServer(start time.Time, server *DHCPServer, packet []byte, peer *net.UDPAddr) error {

	// Check for connection rate
	ok, err := s.throttle.OK(server.Address.String())
	if !ok {
		glog.Errorf("Error writing to server %s, drop due to throttling", server.Hostname)
		s.logger.LogErr(time.Now(), server, packet, peer, ErrConnRate, err)
		return err
	}

	_, err = s.conn.WriteTo(packet, server.udpAddr())
	if err != nil {
		glog.Errorf("Error writing to server %s, drop due to %s", server.Hostname, err)
		s.logger.LogErr(start, server, packet, peer, ErrWrite, err)
		return err
	}

	err = s.logger.LogSuccess(start, server, packet, peer)
	if err != nil {
		glog.Errorf("Failed to log request: %s", err)
	}

	return nil
}