Commit 07e483b6 authored by YannGarcia's avatar YannGarcia
Browse files

Add basics for X509 support

parent 683ea737
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ layer_stack_builder::layer_stack_builder() {}
void layer_stack_builder::_register_layer_factory(const std::string &p_type, layer_factory *p_layer_factory) { _layer_factories[p_type] = p_layer_factory; }

layer *layer_stack_builder::create_layer_stack(const char *p_layer_stack_description) {
  loggers::get_instance().log(">>> layer_stack_builder::create_layer_stack: %s", p_layer_stack_description);
  loggers::get_instance().log(">>> layer_stack_builder::create_layer_stack: '%s'", p_layer_stack_description);

  layer *entry = NULL; // Initial layer (the first declared)
  layer *up    = NULL; // Upper layer
@@ -36,12 +36,12 @@ layer *layer_stack_builder::create_layer_stack(const char *p_layer_stack_descrip
                                  m[2].str().c_str(), m[3].str().c_str());
      LayerFactoryMap::iterator i = _layer_factories.find(m[1].str());
      if (i == _layer_factories.end()) {
        loggers::get_instance().error("layer_stack_builder::create_layer_stack: %s: Unknown layer type", m[1].str().c_str());
        loggers::get_instance().error("layer_stack_builder::create_layer_stack: '%s': Unknown layer type", m[1].str().c_str());
      }
      loggers::get_instance().log("layer_stack_builder::create_layer_stack: Create layer %s, %s", m[1].str().c_str(), m[3].str().c_str());
      layer *l = i->second->create_layer(m[1].str(), m[3].str());
      if (NULL == l) {
        loggers::get_instance().error("layer_stack_builder::create_layer_stack: %s: Layer creation error", m[1].str().c_str());
        loggers::get_instance().error("layer_stack_builder::create_layer_stack: '%s': Layer creation error", m[1].str().c_str());
      }

      loggers::get_instance().log("layer_stack_builder::create_layer_stack: Setup layers for %s - %p", l->to_string().c_str(), (void*)l);
+1 −1
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ void params::convert(params &p_param, const std::string p_parameters) {
  if (p_parameters.length() == 0) {
    return;
  }
  loggers::get_instance().log(">>> params::convert: %s", p_parameters.c_str());
  loggers::get_instance().log(">>> params::convert: '%s'", p_parameters.c_str());
  // Extract parameters
  try {
    std::regex           rgx("(\\w+)=(.*?)(,|$)");
+1 −1
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@
#include "loggers.hh"

ethernet_layer::ethernet_layer(const std::string & p_type, const std::string & p_param) : layer(p_type), _params() {
  loggers::get_instance().log(">>> ethernet_layer::ethernet_layer: %s, %s", to_string().c_str(), p_param.c_str());
  loggers::get_instance().log(">>> ethernet_layer::ethernet_layer: '%s', %s", to_string().c_str(), p_param.c_str());
  // Setup parameters
  params::convert(_params, p_param);
  params::const_iterator it = _params.find("mac_src");
+5 −5
Original line number Diff line number Diff line
@@ -220,7 +220,7 @@ int http_codec::encode_request(const LibHttp__TypesAndValues::Request &p_request
  // Encode Content-Length header
  p_encoding_buffer.put_cs("Content-Length: ");
  if (_ec.length != 0) {
    loggers::get_instance().log("http_codec::encode_request: Content-Length: %s",
    loggers::get_instance().log("http_codec::encode_request: Content-Length: '%s'",
                                static_cast<const char *>(int2str(_ec.length + 2 /*Stand for the last CRLF*/)));
    p_encoding_buffer.put_cs(static_cast<const char *>(int2str(_ec.length)));
    _ec.is_content_length_present = 0x01;
@@ -319,7 +319,7 @@ int http_codec::encode_response(const LibHttp__TypesAndValues::Response &p_respo
  // Encode Content-Length header
  p_encoding_buffer.put_cs("Content-Length: ");
  if (_ec.length != 0) {
    loggers::get_instance().log("http_codec::encode_request: Content-Length: %s",
    loggers::get_instance().log("http_codec::encode_request: Content-Length: '%s'",
                                static_cast<const char *>(int2str(_ec.length + 2 /*Stand for the last CRLF*/)));
    p_encoding_buffer.put_cs(static_cast<const char *>(int2str(_ec.length)));
    _ec.is_content_length_present = 0x01;
@@ -576,7 +576,7 @@ int http_codec::decode_body(TTCN_Buffer &decoding_buffer, LibHttp__MessageBodyTy
    // Convert into string
    params p;
    p["decode_str"] = std::string(static_cast<const unsigned char *>(body), body.lengthof() + static_cast<const unsigned char *>(body));
    loggers::get_instance().log("http_codec::decode_body: decode_str: %s", p["decode_str"].c_str());
    loggers::get_instance().log("http_codec::decode_body: decode_str: '%s'", p["decode_str"].c_str());
    // Try to identify xml
    if (p["decode_str"].find("<?xml version=") != std::string::npos) {
      loggers::get_instance().log("http_codec::decode_body: Find xml message");
@@ -642,7 +642,7 @@ int http_codec::get_line(TTCN_Buffer &buffer, CHARSTRING &to, const bool concate
}

void http_codec::set_payload_codecs(const std::string &p_codecs) {
  loggers::get_instance().log(">>> http_codec::set_payload_codecs: %s", p_codecs.c_str());
  loggers::get_instance().log(">>> http_codec::set_payload_codecs: '%s'", p_codecs.c_str());

  // Sanity check
  if (p_codecs.length() == 0) {
@@ -673,7 +673,7 @@ void http_codec::set_payload_codecs(const std::string &p_codecs) {
    }   // End of 'for' statement
    loggers::get_instance().log("http_codec::set_payload_codecs: _codecs length=%d - %p", _codecs.size(), this);
  } catch (const std::logic_error &e) {
    loggers::get_instance().warning("http_codec::set_payload_codecs: std::logic_error: %s", e.what());
    loggers::get_instance().warning("http_codec::set_payload_codecs: std::logic_error: '%s'", e.what());
    _codecs.clear();
  }
}
+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ using namespace std; // Required for isnan()

http_layer::http_layer(const std::string &p_type, const std::string &param)
  : t_layer<LibHttp__TestSystem::HttpPort>(p_type), _params(), _codec(nullptr), _device_mode{false} {
  loggers::get_instance().log(">>> http_layer::http_layer: %s, %s", to_string().c_str(), param.c_str());
  loggers::get_instance().log(">>> http_layer::http_layer: '%s', %s", to_string().c_str(), param.c_str());
  // Setup parameters
  params::convert(_params, param);

Loading