in src/main.rs [79:99]
fn imdsv2_handle(headers: &mut HashMap<String, String>) -> std::io::Result<()> {
let (status, token_bytes) = request(
"PUT",
"latest/api/token",
HashMap::from([(
"X-aws-ec2-metadata-token-ttl-seconds".to_string(),
"1".to_string(),
)]),
)?;
let token = String::from_utf8(token_bytes).expect("failed to parse imdsv2 token");
if status != 200 {
return Err(std::io::Error::new(
std::io::ErrorKind::ConnectionRefused,
"failed to fetch token",
));
}
headers.insert("X-aws-ec2-metadata-token".to_string(), token);
Ok(())
}