From 5dd0fafce20ed37fdc97dc96539391ebdebffaff Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 6 Jul 2024 01:19:02 +0200 Subject: generalize to support requests. untested --- src/encoding/response.rs | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'src/encoding/response.rs') 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 }) -- cgit v1.2.3-70-g09d2