Switch to fork of tree_magic

This commit is contained in:
Matt Brubeck 2020-06-10 08:40:45 -07:00
parent c4aa71836b
commit 59c921c5d5
3 changed files with 86 additions and 75 deletions

151
Cargo.lock generated
View file

@ -2,16 +2,25 @@
# It is not intended for manual editing. # It is not intended for manual editing.
[[package]] [[package]]
name = "agate" name = "agate"
version = "1.1.0" version = "1.2.0"
dependencies = [ dependencies = [
"async-std", "async-std",
"async-tls", "async-tls",
"once_cell", "once_cell",
"rustls", "rustls",
"tree_magic", "tree_magic_mini",
"url", "url",
] ]
[[package]]
name = "arrayvec"
version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"
dependencies = [
"nodrop",
]
[[package]] [[package]]
name = "async-std" name = "async-std"
version = "1.6.0" version = "1.6.0"
@ -26,7 +35,7 @@ dependencies = [
"futures-timer", "futures-timer",
"kv-log-macro", "kv-log-macro",
"log", "log",
"memchr 2.3.3", "memchr",
"num_cpus", "num_cpus",
"once_cell", "once_cell",
"pin-project-lite", "pin-project-lite",
@ -90,15 +99,6 @@ version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
[[package]]
name = "cloudabi"
version = "0.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
dependencies = [
"bitflags",
]
[[package]] [[package]]
name = "crossbeam-deque" name = "crossbeam-deque"
version = "0.7.3" version = "0.7.3"
@ -255,7 +255,7 @@ dependencies = [
"futures-macro", "futures-macro",
"futures-sink", "futures-sink",
"futures-task", "futures-task",
"memchr 2.3.3", "memchr",
"pin-project", "pin-project",
"pin-utils", "pin-utils",
"proc-macro-hack", "proc-macro-hack",
@ -329,21 +329,25 @@ version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "lexical-core"
version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7043aa5c05dd34fb73b47acb8c3708eac428de4545ea3682ed2f11293ebd890"
dependencies = [
"arrayvec",
"cfg-if",
"rustc_version",
"ryu",
"static_assertions",
]
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.71" version = "0.2.71"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49" checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
[[package]]
name = "lock_api"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
dependencies = [
"scopeguard",
]
[[package]] [[package]]
name = "log" name = "log"
version = "0.4.8" version = "0.4.8"
@ -365,15 +369,6 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
[[package]]
name = "memchr"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "memchr" name = "memchr"
version = "2.3.3" version = "2.3.3"
@ -390,12 +385,20 @@ dependencies = [
] ]
[[package]] [[package]]
name = "nom" name = "nodrop"
version = "3.2.1" version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05aec50c70fd288702bcd93284a8444607f3292dbdf2a30de5ea5dcdbe72287b" checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
[[package]]
name = "nom"
version = "5.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6"
dependencies = [ dependencies = [
"memchr 1.0.2", "lexical-core",
"memchr",
"version_check",
] ]
[[package]] [[package]]
@ -414,30 +417,6 @@ version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
[[package]]
name = "parking_lot"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e"
dependencies = [
"lock_api",
"parking_lot_core",
]
[[package]]
name = "parking_lot_core"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3"
dependencies = [
"cfg-if",
"cloudabi",
"libc",
"redox_syscall",
"smallvec",
"winapi",
]
[[package]] [[package]]
name = "percent-encoding" name = "percent-encoding"
version = "2.1.0" version = "2.1.0"
@ -549,6 +528,15 @@ dependencies = [
"winapi", "winapi",
] ]
[[package]]
name = "rustc_version"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
dependencies = [
"semver",
]
[[package]] [[package]]
name = "rustls" name = "rustls"
version = "0.17.0" version = "0.17.0"
@ -562,6 +550,12 @@ dependencies = [
"webpki", "webpki",
] ]
[[package]]
name = "ryu"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
[[package]] [[package]]
name = "scoped-tls-hkt" name = "scoped-tls-hkt"
version = "0.1.2" version = "0.1.2"
@ -584,6 +578,21 @@ dependencies = [
"untrusted", "untrusted",
] ]
[[package]]
name = "semver"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
dependencies = [
"semver-parser",
]
[[package]]
name = "semver-parser"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]] [[package]]
name = "send_wrapper" name = "send_wrapper"
version = "0.4.0" version = "0.4.0"
@ -641,6 +650,12 @@ version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
[[package]]
name = "static_assertions"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3"
[[package]] [[package]]
name = "syn" name = "syn"
version = "1.0.30" version = "1.0.30"
@ -653,15 +668,14 @@ dependencies = [
] ]
[[package]] [[package]]
name = "tree_magic" name = "tree_magic_mini"
version = "0.2.3" version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1d99367ce3e553a84738f73bd626ccca541ef90ae757fdcdc4cbe728e6cb629" checksum = "92a265e0c5b89a31cb939a9d7ffce63382e450af10df56a3b9bfb7084d3c2178"
dependencies = [ dependencies = [
"fnv", "fnv",
"lazy_static", "lazy_static",
"nom", "nom",
"parking_lot",
"petgraph", "petgraph",
] ]
@ -706,6 +720,12 @@ dependencies = [
"percent-encoding", "percent-encoding",
] ]
[[package]]
name = "version_check"
version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
[[package]] [[package]]
name = "wasm-bindgen" name = "wasm-bindgen"
version = "0.2.63" version = "0.2.63"
@ -841,8 +861,3 @@ name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[patch.unused]]
name = "tree_magic"
version = "0.3.0"
source = "git+https://github.com/mbrubeck/tree_magic?branch=override#688ee0c303d1bdd342853cd835ab0c3dc2beefb6"

View file

@ -1,6 +1,6 @@
[package] [package]
name = "agate" name = "agate"
version = "1.1.0" version = "1.2.0"
authors = ["Matt Brubeck <mbrubeck@limpet.net>"] authors = ["Matt Brubeck <mbrubeck@limpet.net>"]
description = "Very simple server for the Gemini hypertext protocol" description = "Very simple server for the Gemini hypertext protocol"
keywords = ["server", "gemini", "hypertext", "internet", "protocol"] keywords = ["server", "gemini", "hypertext", "internet", "protocol"]
@ -15,14 +15,10 @@ async-tls = "0.7.0"
async-std = "1.5" async-std = "1.5"
once_cell = "1.4" once_cell = "1.4"
rustls = "0.17.0" rustls = "0.17.0"
tree_magic = "0.2.3" tree_magic_mini = "1.0"
url = "2.1" url = "2.1"
[profile.release] [profile.release]
lto = true lto = true
codegen-units = 1 codegen-units = 1
panic = "abort" panic = "abort"
[patch.crates-io.tree_magic]
git = "https://github.com/mbrubeck/tree_magic"
branch = "override"

View file

@ -135,7 +135,7 @@ async fn send_response<W: Write + Unpin>(url: &Url, mut stream: W) -> Result {
if path.extension() == Some(OsStr::new("gmi")) { if path.extension() == Some(OsStr::new("gmi")) {
stream.write_all(b"20 text/gemini\r\n").await?; stream.write_all(b"20 text/gemini\r\n").await?;
} else { } else {
let mime = tree_magic::from_u8(&body); let mime = tree_magic_mini::from_u8(&body);
let header = format!("20 {}\r\n", mime); let header = format!("20 {}\r\n", mime);
stream.write_all(header.as_bytes()).await?; stream.write_all(header.as_bytes()).await?;
} }