aboutsummaryrefslogtreecommitdiff
path: root/src/transaction
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-07-06 17:37:35 +0200
committermetamuffin <metamuffin@disroot.org>2024-07-06 17:37:35 +0200
commit7aa211a8d7ae2efeebd9362699a1aea4b5690e3d (patch)
treee0af8720ee3b770688600a8ea025de2ce81e5017 /src/transaction
parent7177367ae41a5e2d6ed401f60ee1455812dd8ffb (diff)
downloadsip-rs-7aa211a8d7ae2efeebd9362699a1aea4b5690e3d.tar
sip-rs-7aa211a8d7ae2efeebd9362699a1aea4b5690e3d.tar.bz2
sip-rs-7aa211a8d7ae2efeebd9362699a1aea4b5690e3d.tar.zst
start on sdp impl
Diffstat (limited to 'src/transaction')
-rw-r--r--src/transaction/auth.rs2
-rw-r--r--src/transaction/mod.rs4
2 files changed, 4 insertions, 2 deletions
diff --git a/src/transaction/auth.rs b/src/transaction/auth.rs
index f64bb4b..1b3a100 100644
--- a/src/transaction/auth.rs
+++ b/src/transaction/auth.rs
@@ -14,7 +14,7 @@ impl Authorization {
username: &str,
password: &str,
) -> Result<Authorization> {
- let challenge = failed_response.headers.get::<WWWAuthenticate>().unwrap()?;
+ let challenge = failed_response.headers.get_res::<WWWAuthenticate>()?;
Ok(Authorization {
response: response_digest(
diff --git a/src/transaction/mod.rs b/src/transaction/mod.rs
index 601b134..3368c47 100644
--- a/src/transaction/mod.rs
+++ b/src/transaction/mod.rs
@@ -2,7 +2,7 @@ pub mod auth;
use crate::{
encoding::{
- headers::{CSeq, CallID},
+ headers::{CSeq, CallID, ContentLength},
request::Request,
response::Response,
Message,
@@ -66,6 +66,7 @@ impl<T: Transport> TransactionUser<T> {
.get::<CallID>()
.ok_or(anyhow!("call-id is mandatory"))??,
);
+ resp.headers.insert(ContentLength(resp.body.len()));
self.transport.send(Message::Response(resp)).await?;
Ok(())
}
@@ -74,6 +75,7 @@ impl<T: Transport> TransactionUser<T> {
let seq = self.sequence.fetch_add(1, Ordering::Relaxed);
let cseq = CSeq(seq, request.method);
request.headers.insert(cseq);
+ request.headers.insert(ContentLength(request.body.len()));
let (tx, rx) = channel(4);