projects
/
dnssec-prover
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add new tests to test NSEC validation behavior
[dnssec-prover]
/
src
/
http.rs
diff --git
a/src/http.rs
b/src/http.rs
index f344372e4d72ca1993b237470f4a4b23fc32c514..51a6c2016b4c23e5c9de10ae5699a86d12c63645 100644
(file)
--- a/
src/http.rs
+++ b/
src/http.rs
@@
-8,6
+8,10
@@
pub mod rr;
pub mod ser;
pub mod query;
pub mod ser;
pub mod query;
+#[cfg(feature = "validation")]
+mod base32;
+#[cfg(feature = "validation")]
+mod crypto;
#[cfg(feature = "validation")]
pub mod validation;
#[cfg(feature = "validation")]
pub mod validation;
@@
-116,19
+120,22
@@
mod imp {
"AAAA" => build_aaaa_proof_async(resolver_sockaddr, &query_name).await,
_ => break 'ret_err,
};
"AAAA" => build_aaaa_proof_async(resolver_sockaddr, &query_name).await,
_ => break 'ret_err,
};
- let
proof
= if let Ok(proof) = proof_res { proof } else {
+ let
(proof, cache_ttl)
= if let Ok(proof) = proof_res { proof } else {
response = ("404 Not Found", "Failed to generate proof for given domain");
break 'ret_err;
};
let _ = socket.write_all(
response = ("404 Not Found", "Failed to generate proof for given domain");
break 'ret_err;
};
let _ = socket.write_all(
- format!("HTTP/1.1 200 OK\r\nContent-Length: {}\r\n\r\n", proof.len()).as_bytes()
+ format!(
+ "HTTP/1.1 200 OK\r\nContent-Length: {}\r\nContent-Type: application/octet-stream\r\nCache-Control: public, max-age={}, s-maxage={}\r\nAccess-Control-Allow-Origin: *\r\n\r\n",
+ proof.len(), cache_ttl, cache_ttl
+ ).as_bytes()
).await;
let _ = socket.write_all(&proof).await;
return;
}
let _ = socket.write_all(format!(
).await;
let _ = socket.write_all(&proof).await;
return;
}
let _ = socket.write_all(format!(
- "HTTP/1.1 {}\r\nContent-Length: {}\r\nContent-Type: text/plain\r\n\r\n{}",
+ "HTTP/1.1 {}\r\nContent-Length: {}\r\nContent-Type: text/plain\r\n
Access-Control-Allow-Origin: *\r\n
\r\n{}",
response.0, response.1.len(), response.1,
).as_bytes()).await;
});
response.0, response.1.len(), response.1,
).as_bytes()).await;
});
@@
-140,7
+147,8
@@
mod imp {
mod test {
use super::*;
mod test {
use super::*;
- use crate::validation::{parse_rr_stream, verify_rr_stream};
+ use crate::ser::parse_rr_stream;
+ use crate::validation::verify_rr_stream;
use minreq;
use minreq;
@@
-162,7
+170,7
@@
mod test {
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
async fn test_lookup_a() {
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
async fn test_lookup_a() {
- let ns = "
4.4.4.4
:53".parse().unwrap();
+ let ns = "
9.9.9.9
:53".parse().unwrap();
let listener = tokio::net::TcpListener::bind("127.0.0.1:17493").await
.expect("Failed to bind to socket");
tokio::spawn(imp::run_server(listener, ns));
let listener = tokio::net::TcpListener::bind("127.0.0.1:17493").await
.expect("Failed to bind to socket");
tokio::spawn(imp::run_server(listener, ns));
@@
-173,7
+181,7
@@
mod test {
assert_eq!(resp.status_code, 200);
let rrs = parse_rr_stream(resp.as_bytes()).unwrap();
let verified_rrs = verify_rr_stream(&rrs).unwrap();
assert_eq!(resp.status_code, 200);
let rrs = parse_rr_stream(resp.as_bytes()).unwrap();
let verified_rrs = verify_rr_stream(&rrs).unwrap();
- assert
_eq!(verified_rrs.verified_rrs.len(),
1);
+ assert
!(verified_rrs.verified_rrs.len() >=
1);
}
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
}
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]