From 8cc6e73cb11c2a65dbcbca5a95922d99288b6f8b Mon Sep 17 00:00:00 2001 From: tastytea Date: Tue, 27 Nov 2018 05:15:35 +0100 Subject: [PATCH] Bugfix: Return 404 if fallback is empty or unknown --- CMakeLists.txt | 2 +- src/libravatarserv.cpp | 44 ++++++++++++++++++++---------------------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fdf3993..c84200f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required (VERSION 3.2) project(libravatarserv - VERSION 0.4.2 + VERSION 0.4.3 LANGUAGES CXX ) diff --git a/src/libravatarserv.cpp b/src/libravatarserv.cpp index f49a336..554ef15 100644 --- a/src/libravatarserv.cpp +++ b/src/libravatarserv.cpp @@ -62,33 +62,31 @@ int main() else { cerr << "Error " << std::to_string(image.error) << ": Could not open file.\n"; - if (avatar.fallback.empty() || avatar.fallback == "404") + if (avatar.fallback.substr(0, 4) == "http") { - cout << "Status: 404 Not Found\n\n"; + cout << "Status: 307 Temporary Redirect\n"; + cout << "Location: " << avatar.fallback << endl << endl; + } + else if (avatar.fallback.substr(0, 2) == "mp" || + avatar.fallback.substr(0, 2) == "mm") + { + // MD5 hash of 'mp' + image = image::get("1f2dfa567dcf95833eddf7aec167fec7", + avatar.size); + if (image.error == 0) + { + image::write(image); + } + else + { + cout << "Status: 404 Not Found\n\n"; + cerr << "Mystery person not found.\n"; + } } else { - if (avatar.fallback.substr(0, 4) == "http") - { - cout << "Status: 307 Temporary Redirect\n"; - cout << "Location: " << avatar.fallback << endl << endl; - } - else if (avatar.fallback.substr(0, 2) == "mp" || - avatar.fallback.substr(0, 2) == "mm") - { - // MD5 hash of 'mp' - image = image::get("1f2dfa567dcf95833eddf7aec167fec7", - avatar.size); - if (image.error == 0) - { - image::write(image); - } - else - { - cout << "Status: 404 Not Found\n\n"; - cerr << "Mystery person not found.\n"; - } - } + // If fallback is empty or unknown + cout << "Status: 404 Not Found\n\n"; } }