allow non-'static HTTP method names

Background: RTSP uses HTTP digest authentication (see RFC 2326 section
1.4). I'm using the rtsp-types crate. It works fine with digest_auth,
except that [rtsp_types::Method::Extension](https://docs.rs/rtsp-types/0.0.1/rtsp_types/enum.Method.html#variant.Extension)
has a non-static lifetime.
This commit is contained in:
Scott Lamb
2021-05-23 20:08:39 -07:00
parent 750294cd97
commit 2e61615da0
2 changed files with 6 additions and 6 deletions
+2 -2
View File
@@ -161,7 +161,7 @@ pub struct AuthContext<'a> {
/// May be left out if not using auth-int
pub body: Option<Cow<'a, [u8]>>,
/// HTTP method used (defaults to GET)
pub method: HttpMethod,
pub method: HttpMethod<'a>,
/// Spoofed client nonce (use only for tests; a random nonce is generated automatically)
pub cnonce: Option<Cow<'a, str>>,
}
@@ -202,7 +202,7 @@ impl<'a> AuthContext<'a> {
password: PW,
uri: UR,
body: Option<BD>,
method: HttpMethod,
method: HttpMethod<'a>,
) -> Self
where
UN: Into<Cow<'a, str>>,
+4 -4
View File
@@ -168,20 +168,20 @@ impl Display for Charset {
/// HTTP method (used when generating the response hash for some Qop options)
#[derive(Debug)]
pub enum HttpMethod {
pub enum HttpMethod<'a> {
GET,
POST,
HEAD,
OTHER(&'static str),
OTHER(&'a str),
}
impl Default for HttpMethod {
impl<'a> Default for HttpMethod<'a> {
fn default() -> Self {
HttpMethod::GET
}
}
impl Display for HttpMethod {
impl<'a> Display for HttpMethod<'a> {
/// Convert to uppercase string
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
f.write_str(match self {