summaryrefslogtreecommitdiff
path: root/src/server/handler.rs
diff options
context:
space:
mode:
authorJan Wolff <janw@mailbox.org>2020-05-16 12:47:42 +0200
committerJan Wolff <janw@mailbox.org>2020-05-16 12:48:44 +0200
commit177d12b5b89f97039a5849d131b3524eecb3bf57 (patch)
tree00022d708cc06fe4fe3a5070b1c0d557de7a2ea7 /src/server/handler.rs
parent769affa1b651f3591b5d9c482b6fd5b142c7f3d6 (diff)
some error codes in handler
Diffstat (limited to 'src/server/handler.rs')
-rw-r--r--src/server/handler.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/server/handler.rs b/src/server/handler.rs
index fb07a4d..ceb6551 100644
--- a/src/server/handler.rs
+++ b/src/server/handler.rs
@@ -1,7 +1,17 @@
-use url::Url;
use crate::server::response;
use crate::server::ServerConfig;
+use std::path::Path;
+use url::Url;
pub fn handle(config: &ServerConfig, url: Url) -> Option<response::Response> {
- Some(response::invalid_protocol())
+ if url.scheme() != "gemini" {
+ return Some(response::invalid_protocol());
+ }
+
+ let path = Path::new(url.path());
+ if !path.has_root() {
+ return Some(response::not_understood());
+ }
+
+ None
}