1
1
use std:: fmt:: { self , Display } ;
2
- use std:: str;
3
2
4
- use url:: Url ;
5
3
use header:: { Header , HeaderFormat } ;
6
4
7
5
/// The `Access-Control-Allow-Origin` response header,
@@ -40,11 +38,10 @@ use header::{Header, HeaderFormat};
40
38
/// ```
41
39
/// ```
42
40
/// use hyper::header::{Headers, AccessControlAllowOrigin};
43
- /// use hyper::Url;
44
41
///
45
42
/// let mut headers = Headers::new();
46
43
/// headers.set(
47
- /// AccessControlAllowOrigin::Value(Url::parse( "http://hyper.rs").unwrap ())
44
+ /// AccessControlAllowOrigin::Value("http://hyper.rs".to_owned ())
48
45
/// );
49
46
/// ```
50
47
#[ derive( Clone , PartialEq , Debug ) ]
@@ -54,7 +51,7 @@ pub enum AccessControlAllowOrigin {
54
51
/// A hidden origin
55
52
Null ,
56
53
/// Allow one particular origin
57
- Value ( Url ) ,
54
+ Value ( String ) ,
58
55
}
59
56
60
57
impl Header for AccessControlAllowOrigin {
@@ -63,13 +60,15 @@ impl Header for AccessControlAllowOrigin {
63
60
}
64
61
65
62
fn parse_header ( raw : & [ Vec < u8 > ] ) -> :: Result < AccessControlAllowOrigin > {
66
- if raw. len ( ) == 1 {
67
- match unsafe { & raw . get_unchecked ( 0 ) [ ..] } {
68
- b"*" => Ok ( AccessControlAllowOrigin :: Any ) ,
69
- b"null" => Ok ( AccessControlAllowOrigin :: Null ) ,
70
- r => Ok ( AccessControlAllowOrigin :: Value ( try!( Url :: parse ( try!( str:: from_utf8 ( r) ) ) ) ) )
71
- }
72
- } else { Err ( :: Error :: Header ) }
63
+ if raw. len ( ) != 1 {
64
+ return Err ( :: Error :: Header )
65
+ }
66
+ let value = unsafe { raw. get_unchecked ( 0 ) } ;
67
+ Ok ( match & value[ ..] {
68
+ b"*" => AccessControlAllowOrigin :: Any ,
69
+ b"null" => AccessControlAllowOrigin :: Null ,
70
+ _ => AccessControlAllowOrigin :: Value ( try!( String :: from_utf8 ( value. clone ( ) ) ) )
71
+ } )
73
72
}
74
73
}
75
74
0 commit comments