pub fn encode_request_data(
client_ip: &str,
content_group_id: &str,
fqdn: &str,
) -> String
Expand description
Returns domain with client routing key prepended as a subdomain.
The encode function takes in 3 parameters: client_ip
, content_group_id
,
and fqdn
. client_ip
is parsed into
ClientSubnetEncodingData
. cgid
is
hashed into a 64 bit number via xxHash. That data is then encoded into a
client routing label and then returned prepended as a subdomain to the
fqdn
.
ยงExamples:
use amazon_cloudfront_client_routing_lib::encode_request_data;
// ipv4
let mut encoded_label = encode_request_data("1.2.3.4", "mv-456", "example.com");
assert_eq!("abacaqdaaaaaaaamnjg3oubcyvrgm.example.com", encoded_label);
// ipv6
encoded_label = encode_request_data("0102:0304:0506:0708:090a:0b0c:0d0e:0f10", "mv-456", "example.com");
assert_eq!("abqcaqdaqcqmaaaynjg3oubcyvrgm.example.com", encoded_label);
// invalid client_ip
encoded_label = encode_request_data("1.2.a", "mv-456", "example.com");
assert_eq!("abaaaaaaaaaaaaaanjg3oubcyvrgm.example.com", encoded_label);
// empty cgid
encoded_label = encode_request_data("1.2.3.4", "", "example.com");
assert_eq!("abacaqdaaaaaaaamaaaaaaaaaaaaa.example.com", encoded_label);