Compare commits
39 Commits
ef5c64805a
...
master
Author | SHA1 | Date | |
---|---|---|---|
9f396f6f90 | |||
a315151dda | |||
28581909a4 | |||
1fbf518b8a | |||
ebd043f020 | |||
71811665c8 | |||
f70607f818 | |||
4e0f4d4521 | |||
a1eedcbeb7 | |||
373f54e06e | |||
52cca797da | |||
a75ef10f3c | |||
17598abdf4 | |||
a9c0768ab4 | |||
13946ed35f | |||
c92a337c60 | |||
2d4c3af291 | |||
113c414f31 | |||
2a20aad6e1 | |||
3fa2c3c530 | |||
3b87d66a36 | |||
8dca766f8e | |||
7b74250c86 | |||
2037576627 | |||
46a40ef66a | |||
b6dd41c4cc | |||
48f9a79b05 | |||
c25396d62a | |||
431816900c | |||
b07d8ae520 | |||
4b7db1f0ab | |||
c8a97be01b | |||
c46cb5ee0e | |||
7fd6c4085b | |||
3de1d25038 | |||
7bc2768c25 | |||
6172b36b26 | |||
8d0dabfe0e | |||
d123d9d09d |
15
.drone.yml
Normal file
15
.drone.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: default
|
||||
|
||||
steps:
|
||||
- name: cargo_check
|
||||
image: rust
|
||||
commands:
|
||||
- rustup component add clippy
|
||||
- cargo clippy -- -D warnings
|
||||
- cargo test
|
||||
|
||||
|
||||
|
1602
Cargo.lock
generated
1602
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
20
Cargo.toml
20
Cargo.toml
@@ -1,18 +1,18 @@
|
||||
[package]
|
||||
name = "pages_server"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
license = "GPL-3.0-only"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
clap = { version = "3.1.12", features = ["derive", "env"] }
|
||||
actix-web = "4"
|
||||
actix-files = "0.6"
|
||||
actix-multipart = "0.4"
|
||||
env_logger = "0.9.0"
|
||||
log = "0.4"
|
||||
bytes = "1.1.0"
|
||||
futures-util = { version = "0.3.21", default-features = false, features = ["std"] }
|
||||
tar = "0.4.38"
|
||||
clap = { version = "4.5.48", features = ["derive", "env"] }
|
||||
actix-web = "4.11.0"
|
||||
actix-files = "0.6.8"
|
||||
actix-multipart = "0.7.2"
|
||||
env_logger = "0.11.8"
|
||||
log = "0.4.28"
|
||||
bytes = "1.10.1"
|
||||
futures-util = { version = "0.3.31", default-features = false, features = ["std"] }
|
||||
tar = "0.4.44"
|
||||
|
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
|
||||
}
|
||||
"extends": ["local>renovate/presets"]
|
||||
}
|
23
src/main.rs
23
src/main.rs
@@ -3,10 +3,10 @@ use std::path::{Path, PathBuf};
|
||||
|
||||
use actix_files::{Files, NamedFile};
|
||||
use actix_multipart::Multipart;
|
||||
use actix_web::dev::{fn_service, ServiceRequest, ServiceResponse};
|
||||
use actix_web::dev::{ServiceRequest, ServiceResponse, fn_service};
|
||||
use actix_web::error::{ErrorBadRequest, ErrorInternalServerError, ErrorUnauthorized};
|
||||
use actix_web::middleware::Logger;
|
||||
use actix_web::{web, App, Error, HttpRequest, HttpResponse, HttpServer};
|
||||
use actix_web::{App, Error, HttpRequest, HttpResponse, HttpServer, web};
|
||||
use bytes::BufMut;
|
||||
use clap::Parser;
|
||||
use futures_util::TryStreamExt;
|
||||
@@ -84,13 +84,12 @@ fn get_remote_ip(req: &HttpRequest, args: &Args) -> String {
|
||||
let mut ip = req.peer_addr().unwrap().ip().to_string();
|
||||
|
||||
// We check if the request comes from a trusted reverse proxy
|
||||
if let Some(proxy) = args.proxy_ip.as_ref() {
|
||||
if match_ip(proxy, &ip) {
|
||||
if let Some(header) = req.headers().get("X-Forwarded-For") {
|
||||
if let Some(proxy) = args.proxy_ip.as_ref()
|
||||
&& match_ip(proxy, &ip)
|
||||
&& let Some(header) = req.headers().get("X-Forwarded-For") {
|
||||
let header: Vec<String> = header
|
||||
.to_str()
|
||||
.unwrap()
|
||||
.to_string()
|
||||
.split(',')
|
||||
.map(|f| f.to_string())
|
||||
.collect();
|
||||
@@ -99,8 +98,6 @@ fn get_remote_ip(req: &HttpRequest, args: &Args) -> String {
|
||||
ip = header[0].to_string();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ip
|
||||
}
|
||||
@@ -286,3 +283,13 @@ async fn main() -> std::io::Result<()> {
|
||||
.run()
|
||||
.await
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use crate::Args;
|
||||
#[test]
|
||||
fn verify_cli() {
|
||||
use clap::CommandFactory;
|
||||
Args::command().debug_assert()
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user