Commit a49d8dae authored by YannGarcia's avatar YannGarcia
Browse files

Add support of mutual_tls & tls support

parent 1e363a44
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -94,6 +94,23 @@ int http_codec::decode(const OCTETSTRING &data, LibHttp__TypesAndValues::HttpMes
      } else {
        response.body() = OPTIONAL<LibHttp__MessageBodyTypes::HttpMessageBody>(body);
      }
      // Add lower layers parameters
      loggers::get_instance().log("http_codec::decode: Add lower layers parameters");
      params->log();
      params::const_iterator it = params->find(params::use_ssl);
      if (it != params->cend()) {
        loggers::get_instance().log("http_codec::receive_data: tls=%s", it->second.c_str());
        response.tls() = (it->second.compare("1") == 0) ? true : false;
      } else {
        response.tls().set_to_omit();
      }
      it = params->find(params::mutual_auth);
      if (it != params->cend()) {
        loggers::get_instance().log("http_codec::receive_data: mutual_tls=%s", it->second.c_str());
        response.mutual__tls() = (it->second.compare("1") == 0) ? true : false;
      } else {
        response.mutual__tls().set_to_omit();
      }
      msg.response() = response;
    } else { // HTTP request
      LibHttp__TypesAndValues::Request request;
@@ -660,3 +677,8 @@ void http_codec::set_payload_codecs(const std::string &p_codecs) {
    _codecs.clear();
  }
}

bool http_codec::decode_body_html(const OCTETSTRING &p_data, CHARSTRING &p_html_body, const std::string &p_content_type, params* p_params) {
  p_html_body = CHARSTRING(p_data.lengthof(), (char*)static_cast<const unsigned char*>(p_data));
  return true;
}
+1 −1
Original line number Diff line number Diff line
@@ -78,7 +78,7 @@ protected: //! \protectedsection
  virtual bool decode_body_xml(const OCTETSTRING &p_data, LibHttp__XmlMessageBodyTypes::XmlBody &p_body, const std::string &p_content_type, params* p_params) {return false;};

  virtual bool encode_body_html(const CHARSTRING &p_html_body, OCTETSTRING &p_encoding_buffer, const std::string &p_content_type) {return false;};
  virtual bool decode_body_html(const OCTETSTRING &p_data, CHARSTRING &p_html_body, const std::string &p_content_type, params* p_params) {return false;};
  virtual bool decode_body_html(const OCTETSTRING &p_data, CHARSTRING &p_html_body, const std::string &p_content_type, params* p_params);

  virtual bool encode_body_json(const LibHttp__JsonMessageBodyTypes::JsonBody &p_json_body, OCTETSTRING &p_encoding_buffer, const std::string &p_content_type) {return false;};
  virtual bool decode_body_json(const OCTETSTRING &p_data, LibHttp__JsonMessageBodyTypes::JsonBody &p_json_body, const std::string &p_content_type, params* p_params) {return false;};
+1 −1
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ void http_layer::receive_data(OCTETSTRING &data, params &params) {

  // Decode HTTP message
  LibHttp__TypesAndValues::HttpMessage http_message;
  if (_codec->decode(data, http_message) == -1) {
  if (_codec->decode(data, http_message, &params) == -1) {
    loggers::get_instance().warning("http_layer::receive_data: Failed to decode data");
    return;
  }