aboutsummaryrefslogtreecommitdiff
path: root/src/encoding/response.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-07-06 01:19:02 +0200
committermetamuffin <metamuffin@disroot.org>2024-07-06 01:19:02 +0200
commit5dd0fafce20ed37fdc97dc96539391ebdebffaff (patch)
treead93b9e8d0e9c9c7dbe5a858902c2ba0114a47cf /src/encoding/response.rs
parenta4c52bedef04cfb927f3d7809680fed0425a5125 (diff)
downloadsip-rs-5dd0fafce20ed37fdc97dc96539391ebdebffaff.tar
sip-rs-5dd0fafce20ed37fdc97dc96539391ebdebffaff.tar.bz2
sip-rs-5dd0fafce20ed37fdc97dc96539391ebdebffaff.tar.zst
generalize to support requests. untested
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 })