diff --git a/neqo-bin/src/server/http09.rs b/neqo-bin/src/server/http09.rs index 22f0281359..089087857a 100644 --- a/neqo-bin/src/server/http09.rs +++ b/neqo-bin/src/server/http09.rs @@ -28,6 +28,7 @@ pub struct HttpServer { write_state: HashMap, read_state: HashMap>, is_qns_test: bool, + regex: Regex, } impl HttpServer { @@ -60,11 +61,17 @@ impl HttpServer { qinfo!("ECHConfigList: {}", hex(cfg)); } + let is_qns_test = args.shared.qns_test.is_some(); Ok(Self { server, write_state: HashMap::new(), read_state: HashMap::new(), - is_qns_test: args.shared.qns_test.is_some(), + is_qns_test, + regex: if is_qns_test { + Regex::new(r"GET +/(\S+)(?:\r)?\n").unwrap() + } else { + Regex::new(r"GET +/(\d+)(?:\r)?\n").unwrap() + }, }) } @@ -144,12 +151,7 @@ impl HttpServer { return; }; - let re = if self.is_qns_test { - Regex::new(r"GET +/(\S+)(?:\r)?\n").unwrap() - } else { - Regex::new(r"GET +/(\d+)(?:\r)?\n").unwrap() - }; - let m = re.captures(msg); + let m = self.regex.captures(msg); let Some(path) = m.and_then(|m| m.get(1)) else { self.save_partial(stream_id, buf, conn); return;