mirror of
https://github.com/TeamPiped/piped-proxy.git
synced 2024-08-14 23:50:45 +00:00
Merge 082d1ae31c
into b92473d149
This commit is contained in:
commit
effb38fde6
3 changed files with 35 additions and 3 deletions
|
@ -42,5 +42,7 @@ optimized = ["libwebp-sys?/sse41", "libwebp-sys?/avx2", "libwebp-sys?/neon"]
|
||||||
|
|
||||||
qhash = ["blake3"]
|
qhash = ["blake3"]
|
||||||
|
|
||||||
|
prefix-path = []
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
lto = true
|
lto = true
|
||||||
|
|
|
@ -112,6 +112,9 @@ fn is_header_allowed(header: &str) -> bool {
|
||||||
!matches!(
|
!matches!(
|
||||||
header,
|
header,
|
||||||
"host"
|
"host"
|
||||||
|
| "authorization"
|
||||||
|
| "cookie"
|
||||||
|
| "etag"
|
||||||
| "content-length"
|
| "content-length"
|
||||||
| "set-cookie"
|
| "set-cookie"
|
||||||
| "alt-svc"
|
| "alt-svc"
|
||||||
|
|
33
src/utils.rs
33
src/utils.rs
|
@ -2,6 +2,16 @@ use qstring::QString;
|
||||||
use reqwest::Url;
|
use reqwest::Url;
|
||||||
use std::borrow::Cow;
|
use std::borrow::Cow;
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
use std::env;
|
||||||
|
|
||||||
|
#[cfg(feature = "prefix-path")]
|
||||||
|
{
|
||||||
|
use once_cell::sync::Lazy;
|
||||||
|
static PREFIX_PATH: Lazy<Option<String>> = Lazy::new(|| match env::var("PREFIX_PATH") {
|
||||||
|
Ok(v) => Some(String::from(v)),
|
||||||
|
Err(e) => panic!("$PREFIX_PATH is not set ({})", e)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
pub fn read_buf(buf: &[u8], pos: &mut usize) -> u8 {
|
pub fn read_buf(buf: &[u8], pos: &mut usize) -> u8 {
|
||||||
let byte = buf[*pos];
|
let byte = buf[*pos];
|
||||||
|
@ -13,7 +23,6 @@ fn finalize_url(path: &str, query: BTreeMap<String, String>) -> String {
|
||||||
#[cfg(feature = "qhash")]
|
#[cfg(feature = "qhash")]
|
||||||
{
|
{
|
||||||
use std::collections::BTreeSet;
|
use std::collections::BTreeSet;
|
||||||
use std::env;
|
|
||||||
|
|
||||||
let qhash = {
|
let qhash = {
|
||||||
let secret = env::var("HASH_SECRET");
|
let secret = env::var("HASH_SECRET");
|
||||||
|
@ -46,12 +55,30 @@ fn finalize_url(path: &str, query: BTreeMap<String, String>) -> String {
|
||||||
if qhash.is_some() {
|
if qhash.is_some() {
|
||||||
let mut query = QString::new(query.into_iter().collect::<Vec<_>>());
|
let mut query = QString::new(query.into_iter().collect::<Vec<_>>());
|
||||||
query.add_pair(("qhash", qhash.unwrap()));
|
query.add_pair(("qhash", qhash.unwrap()));
|
||||||
return format!("{}?{}", path, query);
|
#[cfg(not(feature = "prefix-path"))]
|
||||||
|
{
|
||||||
|
return format!("{}?{}", path, query);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#[cfg(feature = "prefix-path")]
|
||||||
|
{
|
||||||
|
return format!("{}{}?{}", PREFIX_PATH.as_ref().unwrap().to_string(), path, query);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let query = QString::new(query.into_iter().collect::<Vec<_>>());
|
let query = QString::new(query.into_iter().collect::<Vec<_>>());
|
||||||
format!("{}?{}", path, query)
|
#[cfg(not(feature = "prefix-path"))]
|
||||||
|
{
|
||||||
|
format!("{}?{}", path, query)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#[cfg(feature = "prefix-path")]
|
||||||
|
{
|
||||||
|
format!("{}{}?{}", PREFIX_PATH.as_ref().unwrap().to_string(), path, query)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn localize_url(url: &str, host: &str) -> String {
|
pub fn localize_url(url: &str, host: &str) -> String {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue