Changeset 294b37b in nscp for modules/NRPEServer


Ignore:
Timestamp:
08/10/10 21:54:31 (3 years ago)
Author:
Michael Medin <michael@…>
Branches:
master, 0.4.0, 0.4.1, 0.4.2
Children:
64d42de
Parents:
8988f9e
Message:

Added ssl support (almost, still has hard coded certificate).
ported checksystem to work under the new environment
Added back performance data

Location:
modules/NRPEServer
Files:
2 added
6 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • modules/NRPEServer/CMakeLists.txt

    r86632db r294b37b  
    1111  stdafx.cpp 
    1212  "${TARGET}.cpp" 
    13   nrpe_server.cpp 
    14   nrpe_connection.cpp 
    15   nrpe_handler.cpp 
    16   ${NSCP_INCLUDEDIR}/nrpe/nrpe_packet.cpp 
     13  "handler_impl.cpp" 
     14  ${NSCP_INCLUDEDIR}/nrpe/server/server.cpp 
     15  ${NSCP_INCLUDEDIR}/nrpe/server/connection.cpp 
     16  ${NSCP_INCLUDEDIR}/nrpe/server/tcp_connection.cpp 
     17  ${NSCP_INCLUDEDIR}/nrpe/server/ssl_connection.cpp 
     18  ${NSCP_INCLUDEDIR}/nrpe/packet.cpp 
    1719 
    1820  ${NSCP_DEF_PLUGIN_CPP} 
     
    2628    "${TARGET}.h" 
    2729    "${TARGET}.def" 
    28     nrpe_server.hpp 
    29     nrpe_connection.hpp 
    30     nrpe_handler.hpp 
    31     nrpe_parser.hpp 
     30    "handler_impl.hpp" 
     31    ${NSCP_INCLUDEDIR}/nrpe/server/server.hpp 
     32    ${NSCP_INCLUDEDIR}/nrpe/server/connection.hpp 
     33    ${NSCP_INCLUDEDIR}/nrpe/server/tcp_connection.hpp 
     34    ${NSCP_INCLUDEDIR}/nrpe/server/ssl_connection.hpp 
     35    ${NSCP_INCLUDEDIR}/nrpe/server/handler.hpp 
     36    ${NSCP_INCLUDEDIR}/nrpe/server/parser.hpp 
    3237    ${NSCP_INCLUDEDIR}/socket_helpers.hpp 
    33     ${NSCP_INCLUDEDIR}/nrpe/nrpe_packet.hpp 
     38    ${NSCP_INCLUDEDIR}/nrpe/packet.hpp 
    3439    ${NSCP_INCLUDEDIR}/swap_bytes.hpp 
    3540 
  • modules/NRPEServer/NRPEServer.cpp

    racf0660 r294b37b  
    2525#include <config.h> 
    2626#include <msvc_wrappers.h> 
     27#include "handler_impl.hpp" 
    2728 
    2829NRPEListener gNRPEListener; 
    2930 
    30 NRPEListener::NRPEListener() : noPerfData_(false), buffer_length_(0) { 
     31NRPEListener::NRPEListener() : noPerfData_(false), info_(boost::shared_ptr<nrpe::server::handler>(new handler_impl(0))) { 
    3132} 
    3233NRPEListener::~NRPEListener() { 
     
    5960  SETTINGS_REG_PATH(nrpe::SECTION_HANDLERS); 
    6061 
    61   bUseSSL_ = SETTINGS_GET_BOOL(nrpe::KEYUSE_SSL)==1; 
     62  info_.use_ssl = SETTINGS_GET_BOOL(nrpe::KEYUSE_SSL)==1; 
    6263 
    6364#ifndef USE_SSL 
     
    6970  noPerfData_ = SETTINGS_GET_INT(nrpe::ALLOW_PERFDATA)==0; 
    7071  timeout = SETTINGS_GET_INT(nrpe::READ_TIMEOUT); 
    71   buffer_length_ = SETTINGS_GET_INT(nrpe::PAYLOAD_LENGTH); 
    72   if (buffer_length_ != 1024) 
    73     NSC_DEBUG_MSG_STD(_T("Non-standard buffer length (hope you have recompiled check_nrpe changing #define MAX_PACKETBUFFER_LENGTH = ") + strEx::itos(buffer_length_)); 
    74   NSC_DEBUG_MSG_STD(_T("Loading all commands (from NRPE)")); 
     72  info_.request_handler->set_payload_length(SETTINGS_GET_INT(nrpe::PAYLOAD_LENGTH)); 
     73  if (info_.request_handler->get_payload_length() != 1024) 
     74    NSC_DEBUG_MSG_STD(_T("Non-standard buffer length (hope you have recompiled check_nrpe changing #define MAX_PACKETBUFFER_LENGTH = ") + strEx::itos(info_.request_handler->get_payload_length())); 
    7575 
    7676  boost::asio::io_service io_service_; 
     
    7878  NSC_DEBUG_MSG_STD(_T("Allowed hosts: ") + allowedHosts.to_string()); 
    7979  try { 
    80     NSC_DEBUG_MSG_STD(_T("Starting NRPE socket...")); 
    81     unsigned short port = SETTINGS_GET_INT(nrpe::PORT); 
    82     std::wstring host = SETTINGS_GET_STRING(nrpe::BINDADDR); 
    83     unsigned int backLog = SETTINGS_GET_INT(nrpe::LISTENQUE); 
    84     unsigned int threadPool = 10; 
     80    info_.port = to_string(SETTINGS_GET_INT(nrpe::PORT)); 
     81    info_.address = to_string(SETTINGS_GET_STRING(nrpe::BINDADDR)); 
     82    unsigned int backLog = SETTINGS_GET_INT(nrpe::LISTENQUE); // @todo: add to info block 
     83    info_.thread_pool_size = 10; // @todo Add as option 
    8584    if (mode == NSCAPI::normalStart) { 
    86       server_.reset(new nrpe::server::server(to_string(host), to_string(port), (""), threadPool)); 
     85      if (info_.use_ssl) { 
     86#ifdef USE_SSL 
     87        server_.reset(new nrpe::server::server(info_)); 
     88//        NSC_LOG_ERROR_STD(_T("SSL not implemented")); 
     89//        return false; 
     90#else 
     91        NSC_LOG_ERROR_STD(_T("SSL is not supported (not compiled with openssl)")); 
     92        return false; 
     93#endif 
     94      } else { 
     95        server_.reset(new nrpe::server::server(info_)); 
     96      } 
     97      if (!server_) { 
     98        NSC_LOG_ERROR_STD(_T("Failed to create server instance!")); 
     99        return false; 
     100      } 
    87101      server_->start(); 
    88 #ifdef USE_SSL 
    89       if (bUseSSL_) { 
    90         //socket_ssl_.setHandler(this); 
    91         //socket_ssl_.StartListener(host, port, backLog); 
    92       } else { 
    93 #else 
    94       { 
    95 #endif 
    96         //socket_.setHandler(this); 
    97         //socket_.StartListener(host, port, backLog); 
    98       } 
    99102    } 
     103  } catch (nrpe::server::nrpe_exception &e) { 
     104    NSC_LOG_ERROR_STD(_T("Exception caught: ") + e.what()); 
     105    return false; 
    100106  } catch (...) { 
    101107    NSC_LOG_ERROR_STD(_T("Exception caught: <UNKNOWN EXCEPTION>")); 
    102108    return false; 
    103109  } 
    104   root_ = GET_CORE()->getBasePath(); 
    105110  return true; 
    106111} 
     
    111116      server_->stop(); 
    112117      server_.reset(); 
    113     } 
    114 #ifdef USE_SSL 
    115     if (bUseSSL_) { 
    116       //socket_ssl_.removeHandler(this); 
    117       //if (socket_ssl_.hasListener()) 
    118       //  socket_ssl_.StopListener(); 
    119     } else { 
    120 #else 
    121     { 
    122 #endif 
    123       //socket_.removeHandler(this); 
    124       //if (socket_.hasListener()) 
    125       //  socket_.StopListener(); 
    126118    } 
    127119  } catch (...) { 
  • modules/NRPEServer/NRPEServer.h

    r8988f9e r294b37b  
    2121 
    2222#include <socket_helpers.hpp> 
    23 #include "nrpe_server.hpp" 
     23#include <nrpe/server/server.hpp> 
    2424 
    2525NSC_WRAPPERS_MAIN(); 
     
    4040  socketHelpers::allowedHosts allowedHosts; 
    4141  bool noPerfData_; 
    42   unsigned int buffer_length_; 
    43   std::wstring root_; 
    44   bool bUseSSL_; 
     42  nrpe::server::server::connection_info info_; 
    4543 
    4644public: 
  • modules/NRPEServer/stdafx.h

    rcad08fb r294b37b  
    4747#include <NSCAPI.h> 
    4848#include <nscapi/plugin.hpp> 
    49 #include <nrpe/nrpe_packet.hpp> 
     49#include <nrpe/packet.hpp> 
    5050 
Note: See TracChangeset for help on using the changeset viewer.