declare local var.mapped STRING;
declare local var.sourceType STRING;
if (fastly.ff.visits_this_service == 0 && req.restarts == 0) {
set var.sourceType = "country";
if (var.sourceType == "country") {
set = client.geo.country_code;
} else if (var.sourceType == "continent") {
set = client.geo.continent_code;
} else if (var.sourceType == "latlng") {
declare local var.chunk_size FLOAT;
declare local var.lat FLOAT;
declare local var.long FLOAT;
set var.chunk_size = 0.1;
set var.lat = client.geo.latitude;
set var.long = client.geo.longitude;
set var.lat /= var.chunk_size;
set var.lat = math.floor(var.lat);
set var.lat *= var.chunk_size;
set var.lat += var.chunk_size;
set var.long /= var.chunk_size;
set var.long = math.floor(var.long);
set var.long *= var.chunk_size;
set = var.lat + "," + var.long;
}
if (:geo-region-id) {
set = :geo-region-id;
}
if (var.sourceType == "country") {
set var.mapped = table.lookup(
region_defs,
,
table.lookup(region_defs, "_default")
);
if (var.mapped) {
set = var.mapped;
}
}
if ( == "blocked") {
error 618 "geofence:blocked";
}
}