๐Ÿ A very simple static Gemini server, now with Titan support!
cpp gemini titan gemini-protocol titan-protocol

refactor: pass lambda to signal

fuwn.net 28891f6a cdd70a90

verified
+6 -10
+6 -10
maple/maple.cc
··· 32 32 static int maple_socket; 33 33 static SSL_CTX *ssl_context; 34 34 35 - auto handle_shutdown(int) -> void; 36 - 37 35 auto main() -> int { 38 36 sockaddr_in socket_address {}; 39 37 std::vector<std::string> gemini_files; 40 38 41 39 // Try a graceful shutdown when a SIGINT is detected 42 - signal(SIGINT, handle_shutdown); 40 + signal(SIGINT, [](int signal_){ 41 + std::cout << "shutdown(" << signal_ << ")" << std::endl; 42 + 43 + close(maple_socket); 44 + SSL_CTX_free(ssl_context); 45 + }); 43 46 44 47 // Find and keep track of all Gemini files to serve 45 48 for (const auto &entry : ··· 210 213 close(client); 211 214 } 212 215 } 213 - 214 - auto handle_shutdown(int signal) -> void { 215 - std::cout << "shutdown(" << signal << ")" << std::endl; 216 - 217 - close(maple_socket); 218 - SSL_CTX_free(ssl_context); 219 - }