# PRE: foreach
#

#
#  We DON'T want to see this one.
#
request += {
	Filter-Id = "broken"
}

foreach Filter-Id {
	#
	#  If we see this one, "break" out of the
	#  foreach loop.
	#
	if ("%{Foreach-Variable-0}" == "broken") {
		break
	}

	reply += {
		Called-Station-Id = "%{Foreach-Variable-0}"
	}
}


#
# Adding attribute during request and immediately breaking
#
request += {
	Filter-Id = "1"
	Filter-Id = "2"
}

foreach Reply-Message {
	if ("%{Foreach-Variable-0}" == "1") {
		request += {
			Filter-Id = "3"
		}
		break
	}
}

request -= Filter-Id[*]


#
# Adding attribute during request and continuing
#
request += {
	Filter-Id = "1"
	Filter-Id = "2"
}

foreach Reply-Message {
	if ("%{Foreach-Variable-0}" == "1") {
		request += {
			Filter-Id = "3"
		}
	}

	if ("%{Foreach-Variable-0}" == "3") {
		break
	}
}
