diff options
Diffstat (limited to 'src/bitz/request_handler.cpp')
-rw-r--r-- | src/bitz/request_handler.cpp | 71 |
1 files changed, 26 insertions, 45 deletions
diff --git a/src/bitz/request_handler.cpp b/src/bitz/request_handler.cpp index 56f9bc0..aa906f9 100644 --- a/src/bitz/request_handler.cpp +++ b/src/bitz/request_handler.cpp @@ -19,7 +19,6 @@ #include "request_handler.h" #include "config.h" -#include "logger.h" #include "util.h" #include <dlfcn.h> @@ -37,6 +36,9 @@ namespace bitz { // update variables _req_handler.method = method; + // logger + _logger = spdlog::get( "bitz-server" ); + // load modifier modules load_modules(); @@ -52,8 +54,7 @@ namespace bitz { delete [] _handlers; } - Logger &logger = Logger::instance(); - logger.debug( std::string( "[req] exiting request handler [" ).append( _req_handler.method ).append( "]" ) ); + _logger->debug( std::string( "[req] exiting request handler [" ).append( _req_handler.method ).append( "]" ) ); } @@ -65,13 +66,9 @@ namespace bitz { icap::Response * RequestHandler::process( icap::RequestHeader * req_header, psocksxx::iosockstream * socket ) throw() { - icap::Request * request; icap::Response * response = NULL; - // logger - Logger &logger = Logger::instance(); - // request request = new icap::Request( req_header ); @@ -79,22 +76,22 @@ namespace bitz { // read request data if (! icap::util::read_req_data( request, socket ) ) { - logger.warn( "[req] failed to read request data" ); + _logger->warn( "[req] failed to read request data" ); response = new icap::Response( icap::ResponseHeader::SERVER_ERROR ); } else { - logger.debug( std::string( "[req] payload.req-hdr:\r\n").append( request->payload().req_header ) ); - logger.debug( std::string( "[req] payload.req-body:\r\n").append( request->payload().req_body ) ); - logger.debug( std::string( "[req] payload.res-hdr:\r\n").append( request->payload().res_header ) ); - logger.debug( std::string( "[req] payload.res-body:\r\n").append( request->payload().res_body ) ); + _logger->debug( std::string( "[req] payload.req-hdr:\r\n").append( request->payload().req_header ) ); + _logger->debug( std::string( "[req] payload.req-body:\r\n").append( request->payload().req_body ) ); + _logger->debug( std::string( "[req] payload.res-hdr:\r\n").append( request->payload().res_header ) ); + _logger->debug( std::string( "[req] payload.res-body:\r\n").append( request->payload().res_body ) ); // check for message preview if ( request->preview_size() >= 0 ) { // process preview - logger.debug( std::string( "[req] message preview request, preview: " ).append( util::itoa( request->preview_size() ) ) ); + _logger->debug( std::string( "[req] message preview request, preview: " ).append( util::itoa( request->preview_size() ) ) ); response = process_preview( request, socket ); } @@ -108,7 +105,7 @@ namespace bitz { if ( response == NULL ) { // process modify - logger.debug( "[req] modify request" ); + _logger->debug( "[req] modify request" ); response = process_modify( request ); } @@ -120,7 +117,7 @@ namespace bitz { // sanity check if ( response == NULL ) { - logger.warn( "[req] no valid response from modifiers, creating a server error (500) response" ); + _logger->warn( "[req] no valid response from modifiers, creating a server error (500) response" ); response = new icap::Response( icap::ResponseHeader::SERVER_ERROR ); } @@ -131,18 +128,15 @@ namespace bitz { bool RequestHandler::load_modifier( const std::string &file, Modifier::symbols_t &symbols ) throw() { - // logger - Logger &logger = Logger::instance(); - // vars const char* dlsym_error; // load the modifier module - logger.debug( "[req] loading modifier: " + file ); + _logger->debug( "[req] loading modifier: " + file ); symbols.modifier = dlopen( file.c_str(), RTLD_LAZY | RTLD_LOCAL ); if (! symbols.modifier ) { - logger.warn( std::string( "[req] failed to load modifier: " ).append( file ).append( dlerror() ) ); + _logger->warn( std::string( "[req] failed to load modifier: " ).append( file ).append( dlerror() ) ); return false; } @@ -154,7 +148,7 @@ namespace bitz { dlsym_error = dlerror(); if ( dlsym_error ) { - logger.warn( std::string( "[req] failed to load create symbol: " ).append( dlsym_error ) ); + _logger->warn( std::string( "[req] failed to load create symbol: " ).append( dlsym_error ) ); return false; } @@ -162,7 +156,7 @@ namespace bitz { dlsym_error = dlerror(); if ( dlsym_error ) { - logger.warn( std::string( "[req] failed to load destroy symbol: " ).append( dlsym_error ) ); + _logger->warn( std::string( "[req] failed to load destroy symbol: " ).append( dlsym_error ) ); return false; } @@ -223,12 +217,9 @@ namespace bitz { int i = 0; - // logger - Logger &logger = Logger::instance(); - for ( i = 0; i < _handlers_count; i++ ) { - logger.debug( std::string( "[req] unloading module: " ).append( _handlers[i].name ) ); + _logger->debug( std::string( "[req] unloading module: " ).append( _handlers[i].name ) ); // unload unload_modifier( _handlers[i].symbols.modifier ); @@ -246,9 +237,6 @@ namespace bitz { int i = 0; bool continue_status = false; - // logger - Logger &logger = Logger::instance(); - /* * Loop through loaded modifier modules and grab responses @@ -262,17 +250,17 @@ namespace bitz { // sanity check if ( _handlers[i].name == "" ) { - logger.info( "[req] modifier not loaded, not trying to get a response" ); + _logger->info( "[req] modifier not loaded, not trying to get a response" ); continue; } // grab the response from modifier - logger.debug( std::string( "[req] getting preview response from modifier: " ).append( _handlers[i].name ) ); + _logger->debug( std::string( "[req] getting preview response from modifier: " ).append( _handlers[i].name ) ); modifier = _handlers[i].symbols.create(); response = modifier->preview( request ); // cleanup - logger.debug( std::string( "[req] cleaning up modifier: " ).append( _handlers[i].name ) ); + _logger->debug( std::string( "[req] cleaning up modifier: " ).append( _handlers[i].name ) ); _handlers[i].symbols.destroy( modifier ); // check response status @@ -309,7 +297,7 @@ namespace bitz { } // we shouldn't have got this far - logger.info( std::string( "[req] unrecognised preview response from modifier: " ).append( _handlers[i].name ) ); + _logger->info( std::string( "[req] unrecognised preview response from modifier: " ).append( _handlers[i].name ) ); } @@ -325,9 +313,6 @@ namespace bitz { int i = 0; - // logger - Logger &logger = Logger::instance(); - /* * Loop through loaded modifier modules and grab responses @@ -339,22 +324,22 @@ namespace bitz { // sanity check if ( _handlers[i].name == "" ) { - logger.info( "[req] modifier not loaded, not trying to get a response" ); + _logger->info( "[req] modifier not loaded, not trying to get a response" ); continue; } // grab the response from modifier - logger.debug( std::string( "[req] getting modify response from modifier: " ).append( _handlers[i].name ) ); + _logger->debug( std::string( "[req] getting modify response from modifier: " ).append( _handlers[i].name ) ); modifier = _handlers[i].symbols.create(); response = modifier->modify( request ); // cleanup - logger.debug( std::string( "[req] cleaning up modifier: " ).append( _handlers[i].name ) ); + _logger->debug( std::string( "[req] cleaning up modifier: " ).append( _handlers[i].name ) ); _handlers[i].symbols.destroy( modifier ); // status 200 OK means content modified if ( response->header()->status() == icap::ResponseHeader::OK ) { - logger.debug( "[req] OK response received, not getting responses from other modifiers" ); + _logger->debug( "[req] OK response received, not getting responses from other modifiers" ); break; } @@ -369,15 +354,11 @@ namespace bitz { bool status = false; - // logger - Logger &logger = Logger::instance(); - - // sanity check if ( request->payload().ieof ) { // we can process a '100 Continue' only if an 'ieof' is not received - logger.warn( "[req] illegal '100 Continue' response" ); + _logger->warn( "[req] illegal '100 Continue' response" ); } else { |