Function encode_request_data

Source
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);