Skip to content

Commit 8f1512c

Browse files
committed
backend: utilize ssock rather than boost for backend
1 parent 7f02b8a commit 8f1512c

File tree

9 files changed

+195
-187
lines changed

9 files changed

+195
-187
lines changed

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
url = https://github.com/jacnils/limhamn
44
[submodule "libs/libbcrypt"]
55
path = libs/libbcrypt
6-
url = https://github.com/trusch/libbcrypt
6+
url = https://github.com/jacnils/libbcrypt
77
[submodule "libs/maddy"]
88
path = libs/maddy
99
url = https://github.com/progsource/maddy

CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ cmake_minimum_required(VERSION 3.27)
22

33
project(ff-web VERSION 0.1.0)
44

5-
set_property(GLOBAL PROPERTY CXX_STANDARD 20)
5+
set_property(GLOBAL PROPERTY CXX_STANDARD 23)
66

7-
set(CMAKE_CXX_STANDARD 17)
7+
set(CMAKE_CXX_STANDARD 23)
88
set(CMAKE_CXX_STANDARD_REQUIRED ON)
99
set(CMAKE_CXX_EXTENSIONS OFF)
1010
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
@@ -43,6 +43,7 @@ find_package(nlohmann_json REQUIRED)
4343
find_package(ImageMagick REQUIRED COMPONENTS Magick++)
4444
find_package(PkgConfig REQUIRED)
4545
find_package(FFmpeg COMPONENTS AVCODEC AVFORMAT AVUTIL AVDEVICE REQUIRED)
46+
find_package(ssock REQUIRED)
4647

4748
add_compile_definitions(LIMHAMN_DATABASE_ICONV)
4849

@@ -82,6 +83,7 @@ target_link_libraries(${PROJECT_NAME} PRIVATE
8283
nlohmann_json::nlohmann_json
8384
ImageMagick::Magick++
8485
${FFMPEG_LIBRARIES}
86+
ssock::ssock
8587
)
8688

8789
# some systems require explicit linking to iconv, others don't

include/endpoint_handlers.hpp

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4,49 +4,49 @@
44
#include <limhamn/http/http_server.hpp>
55

66
namespace ff {
7-
limhamn::http::server::response handle_try_upload_post_endpoint(const limhamn::http::server::request& request, database& db);
8-
limhamn::http::server::response handle_try_upload_post_comment_endpoint(const limhamn::http::server::request& request, database& db);
9-
limhamn::http::server::response handle_root_endpoint(const limhamn::http::server::request& request, database& db);
10-
limhamn::http::server::response handle_try_setup_endpoint(const limhamn::http::server::request& request, database& db);
11-
limhamn::http::server::response handle_setup_endpoint(const limhamn::http::server::request& request, database& db);
12-
limhamn::http::server::response handle_virtual_favicon_endpoint(const limhamn::http::server::request& request, database& db);
13-
limhamn::http::server::response handle_virtual_stylesheet_endpoint(const limhamn::http::server::request& request, database& db);
14-
limhamn::http::server::response handle_virtual_script_endpoint(const limhamn::http::server::request& request, database& db);
15-
limhamn::http::server::response handle_api_try_register_endpoint(const limhamn::http::server::request& request, database& db);
16-
limhamn::http::server::response handle_api_try_login_endpoint(const limhamn::http::server::request& request, database& db);
17-
limhamn::http::server::response handle_try_upload_forwarder_endpoint(const limhamn::http::server::request& request, database& db);
18-
limhamn::http::server::response handle_try_upload_file_endpoint(const limhamn::http::server::request& request, database& db);
19-
limhamn::http::server::response handle_api_delete_forwarder_endpoint(const limhamn::http::server::request& request, database& db);
20-
limhamn::http::server::response handle_api_delete_file_endpoint(const limhamn::http::server::request& request, database& db);
21-
limhamn::http::server::response handle_api_get_forwarders_endpoint(const limhamn::http::server::request& request, database& db);
22-
limhamn::http::server::response handle_api_get_files_endpoint(const limhamn::http::server::request& request, database& db);
23-
limhamn::http::server::response handle_api_set_approval_for_uploads_endpoint(const limhamn::http::server::request& request, database& db);
24-
limhamn::http::server::response handle_api_update_profile_endpoint(const limhamn::http::server::request& request, database& db);
25-
limhamn::http::server::response handle_api_get_profile_endpoint(const limhamn::http::server::request& request, database& db);
26-
limhamn::http::server::response handle_api_get_announcements_endpoint(const limhamn::http::server::request& request, database& db);
27-
limhamn::http::server::response handle_api_delete_announcement(const limhamn::http::server::request& request, database& db);
28-
limhamn::http::server::response handle_api_edit_announcement_endpoint(const limhamn::http::server::request& request, database& db);
29-
limhamn::http::server::response handle_api_create_announcement_endpoint(const limhamn::http::server::request& request, database& db);
30-
limhamn::http::server::response handle_api_rate_forwarder_endpoint(const limhamn::http::server::request& request, database& db);
31-
limhamn::http::server::response handle_api_rate_file_endpoint(const limhamn::http::server::request& request, database& db);
32-
limhamn::http::server::response handle_api_comment_forwarder_endpoint(const limhamn::http::server::request& request, database& db);
33-
limhamn::http::server::response handle_api_comment_file_endpoint(const limhamn::http::server::request& request, database& db);
34-
limhamn::http::server::response handle_api_delete_comment_forwarder_endpoint(const limhamn::http::server::request& request, database& db);
35-
limhamn::http::server::response handle_api_delete_comment_file_endpoint(const limhamn::http::server::request& request, database& db);
36-
limhamn::http::server::response handle_api_stay_logged_in(const limhamn::http::server::request& request, database& db);
37-
limhamn::http::server::response handle_api_try_logout_endpoint(const limhamn::http::server::request& request, database& db);
7+
ssock::http::server::response handle_try_upload_post_endpoint(const ssock::http::server::request& request, database& db);
8+
ssock::http::server::response handle_try_upload_post_comment_endpoint(const ssock::http::server::request& request, database& db);
9+
ssock::http::server::response handle_root_endpoint(const ssock::http::server::request& request, database& db);
10+
ssock::http::server::response handle_try_setup_endpoint(const ssock::http::server::request& request, database& db);
11+
ssock::http::server::response handle_setup_endpoint(const ssock::http::server::request& request, database& db);
12+
ssock::http::server::response handle_virtual_favicon_endpoint(const ssock::http::server::request& request, database& db);
13+
ssock::http::server::response handle_virtual_stylesheet_endpoint(const ssock::http::server::request& request, database& db);
14+
ssock::http::server::response handle_virtual_script_endpoint(const ssock::http::server::request& request, database& db);
15+
ssock::http::server::response handle_api_try_register_endpoint(const ssock::http::server::request& request, database& db);
16+
ssock::http::server::response handle_api_try_login_endpoint(const ssock::http::server::request& request, database& db);
17+
ssock::http::server::response handle_try_upload_forwarder_endpoint(const ssock::http::server::request& request, database& db);
18+
ssock::http::server::response handle_try_upload_file_endpoint(const ssock::http::server::request& request, database& db);
19+
ssock::http::server::response handle_api_delete_forwarder_endpoint(const ssock::http::server::request& request, database& db);
20+
ssock::http::server::response handle_api_delete_file_endpoint(const ssock::http::server::request& request, database& db);
21+
ssock::http::server::response handle_api_get_forwarders_endpoint(const ssock::http::server::request& request, database& db);
22+
ssock::http::server::response handle_api_get_files_endpoint(const ssock::http::server::request& request, database& db);
23+
ssock::http::server::response handle_api_set_approval_for_uploads_endpoint(const ssock::http::server::request& request, database& db);
24+
ssock::http::server::response handle_api_update_profile_endpoint(const ssock::http::server::request& request, database& db);
25+
ssock::http::server::response handle_api_get_profile_endpoint(const ssock::http::server::request& request, database& db);
26+
ssock::http::server::response handle_api_get_announcements_endpoint(const ssock::http::server::request& request, database& db);
27+
ssock::http::server::response handle_api_delete_announcement(const ssock::http::server::request& request, database& db);
28+
ssock::http::server::response handle_api_edit_announcement_endpoint(const ssock::http::server::request& request, database& db);
29+
ssock::http::server::response handle_api_create_announcement_endpoint(const ssock::http::server::request& request, database& db);
30+
ssock::http::server::response handle_api_rate_forwarder_endpoint(const ssock::http::server::request& request, database& db);
31+
ssock::http::server::response handle_api_rate_file_endpoint(const ssock::http::server::request& request, database& db);
32+
ssock::http::server::response handle_api_comment_forwarder_endpoint(const ssock::http::server::request& request, database& db);
33+
ssock::http::server::response handle_api_comment_file_endpoint(const ssock::http::server::request& request, database& db);
34+
ssock::http::server::response handle_api_delete_comment_forwarder_endpoint(const ssock::http::server::request& request, database& db);
35+
ssock::http::server::response handle_api_delete_comment_file_endpoint(const ssock::http::server::request& request, database& db);
36+
ssock::http::server::response handle_api_stay_logged_in(const ssock::http::server::request& request, database& db);
37+
ssock::http::server::response handle_api_try_logout_endpoint(const ssock::http::server::request& request, database& db);
3838

39-
limhamn::http::server::response handle_api_create_post_endpoint(const limhamn::http::server::request& request, database& db);
40-
limhamn::http::server::response handle_api_delete_post_endpoint(const limhamn::http::server::request& request, database& db);
41-
limhamn::http::server::response handle_api_edit_post_endpoint(const limhamn::http::server::request& request, database& db);
42-
limhamn::http::server::response handle_api_close_post_endpoint(const limhamn::http::server::request& request, database& db);
43-
limhamn::http::server::response handle_api_get_posts_endpoint(const limhamn::http::server::request& request, database& db);
44-
limhamn::http::server::response handle_api_comment_post_endpoint(const limhamn::http::server::request& request, database& db);
45-
limhamn::http::server::response handle_api_delete_comment_post_endpoint(const limhamn::http::server::request& request, database& db);
39+
ssock::http::server::response handle_api_create_post_endpoint(const ssock::http::server::request& request, database& db);
40+
ssock::http::server::response handle_api_delete_post_endpoint(const ssock::http::server::request& request, database& db);
41+
ssock::http::server::response handle_api_edit_post_endpoint(const ssock::http::server::request& request, database& db);
42+
ssock::http::server::response handle_api_close_post_endpoint(const ssock::http::server::request& request, database& db);
43+
ssock::http::server::response handle_api_get_posts_endpoint(const ssock::http::server::request& request, database& db);
44+
ssock::http::server::response handle_api_comment_post_endpoint(const ssock::http::server::request& request, database& db);
45+
ssock::http::server::response handle_api_delete_comment_post_endpoint(const ssock::http::server::request& request, database& db);
4646

47-
limhamn::http::server::response handle_api_create_topic_endpoint(const limhamn::http::server::request& request, database& db);
48-
limhamn::http::server::response handle_api_delete_topic_endpoint(const limhamn::http::server::request& request, database& db);
49-
limhamn::http::server::response handle_api_get_topics_endpoint(const limhamn::http::server::request& request, database& db);
50-
limhamn::http::server::response handle_api_edit_topic_endpoint(const limhamn::http::server::request& request, database& db);
51-
limhamn::http::server::response handle_api_close_topic_endpoint(const limhamn::http::server::request& request, database& db);
47+
ssock::http::server::response handle_api_create_topic_endpoint(const ssock::http::server::request& request, database& db);
48+
ssock::http::server::response handle_api_delete_topic_endpoint(const ssock::http::server::request& request, database& db);
49+
ssock::http::server::response handle_api_get_topics_endpoint(const ssock::http::server::request& request, database& db);
50+
ssock::http::server::response handle_api_edit_topic_endpoint(const ssock::http::server::request& request, database& db);
51+
ssock::http::server::response handle_api_close_topic_endpoint(const ssock::http::server::request& request, database& db);
5252
} // namespace ff

include/ff.hpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@
1414
#include <database.hpp>
1515
#define LIMHAMN_LOGGER_IMPL
1616
#include <limhamn/logger/logger.hpp>
17-
#define LIMHAMN_HTTP_SERVER_IMPL
1817
#define LIMHAMN_HTTP_UTILS_IMPL
19-
#include <limhamn/http/http_server.hpp>
18+
#include <ssock.hpp>
2019

2120
namespace ff {
2221
inline limhamn::logger::logger logger{};
@@ -35,12 +34,12 @@ namespace ff {
3534
const std::string& key, const std::string& email, int64_t created_at, int64_t updated_at, const std::string& ip_address,
3635
const std::string& user_agent, UserType user_type, const std::string& json);
3736
std::pair<LoginStatus, std::string> try_login(database& database, const std::string& username, const std::string& password,
38-
const std::string& ip_address, const std::string& user_agent, limhamn::http::server::response& response);
37+
const std::string& ip_address, const std::string& user_agent, ssock::http::server::response& response);
3938
AccountCreationStatus make_account(database& database, const std::string& username, const std::string& password, const std::string& email,
4039
const std::string& ip_address, const std::string& user_agent, UserType user_type);
41-
std::pair<UploadStatus, std::string> try_upload_forwarder(const limhamn::http::server::request& req, database& db);
42-
std::pair<UploadStatus, std::string> try_upload_file(const limhamn::http::server::request& req, database& db);
43-
ProfileUpdateStatus update_profile(const limhamn::http::server::request& req, database& db);
40+
std::pair<UploadStatus, std::string> try_upload_forwarder(const ssock::http::server::request& req, database& db);
41+
std::pair<UploadStatus, std::string> try_upload_file(const ssock::http::server::request& req, database& db);
42+
ProfileUpdateStatus update_profile(const ssock::http::server::request& req, database& db);
4443

4544
std::string get_email_from_username(database& database, const std::string& username);
4645
std::string get_username_from_email(database& database, const std::string& email);
@@ -51,7 +50,7 @@ namespace ff {
5150
std::string generate_default_config();
5251
void setup_database(database& database);
5352
std::string open_file(const std::string& file_path);
54-
bool username_is_stored(const limhamn::http::server::request& request);
53+
bool username_is_stored(const ssock::http::server::request& request);
5554
bool ensure_valid_creds(database& database, const std::string& username, const std::string& password);
5655
bool verify_key(database& database, const std::string& username, const std::string& key);
5756
bool user_is_verified(database& database, const std::string& username);

0 commit comments

Comments
 (0)