aboutsummaryrefslogtreecommitdiff
path: root/src/encoding/response.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/encoding/response.rs')
-rw-r--r--src/encoding/response.rs9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/encoding/response.rs b/src/encoding/response.rs
index 7ee124f..ffd2878 100644
--- a/src/encoding/response.rs
+++ b/src/encoding/response.rs
@@ -2,7 +2,7 @@ use super::{headermap::HeaderMap, status::Status};
use anyhow::{anyhow, bail, Context};
use std::{fmt::Display, str::FromStr};
-#[derive(Debug)]
+#[derive(Debug, Clone)]
pub struct Response {
pub status: Status,
pub headers: HeaderMap,
@@ -28,12 +28,7 @@ impl FromStr for Response {
bail!("sip version {ver:?} is not supported");
}
- let mut headers = HeaderMap::new();
- for line in lines {
- // TODO multiline values
- let (key, value) = line.split_once(":").ok_or(anyhow!("header malformed"))?;
- headers.insert_raw(key.trim().to_string(), value.trim().to_string())
- }
+ let headers = HeaderMap::parse(&mut lines)?;
let status = Status::from_code(code);
Ok(Self { status, headers })