diff options
author | metamuffin <metamuffin@disroot.org> | 2024-07-06 01:19:02 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-07-06 01:19:02 +0200 |
commit | 5dd0fafce20ed37fdc97dc96539391ebdebffaff (patch) | |
tree | ad93b9e8d0e9c9c7dbe5a858902c2ba0114a47cf /src/encoding/response.rs | |
parent | a4c52bedef04cfb927f3d7809680fed0425a5125 (diff) | |
download | sip-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.rs | 9 |
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 }) |