summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs35
1 files changed, 30 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs
index 56a94a7..114d218 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,15 +1,40 @@
-use std::ffi::OsString;
use clap::Parser;
-fn main() {
+#[tokio::main]
+async fn main() -> anyhow::Result<()> {
let args = Args::parse();
- for url in args.urls {
- println!("{:?}", url);
+ let mut i = 0;
+ let mut handles = vec![];
+ while i < args.n {
+ let url = args.url.clone();
+ let x = tokio::spawn(async move { get(&url).await });
+ handles.push(x);
+ i += 1;
}
+ println!("{} handles", handles.len());
+ for h in handles {
+ let r = h.await?;
+ if !r.status().is_success() {
+ println!("{:?} {}", args.url, r.status());
+ }
+ }
+ println!("OK");
+ Ok(())
}
#[derive(Parser)]
struct Args {
#[clap()]
- urls: Vec<OsString>,
+ n: usize,
+
+ #[clap()]
+ url: String,
+}
+
+async fn get(url: &str) -> reqwest::Response {
+ loop {
+ if let Ok(r) = reqwest::get(url).await {
+ return r;
+ }
+ }
}