Commit 2755a522 authored by garciay's avatar garciay
Browse files

Merge with STF549_NG112

parent ded82970
Loading
Loading
Loading
Loading
+16 −3
Original line number Original line Diff line number Diff line
@@ -131,8 +131,18 @@ int http_codec::encode_request(const LibItsHttp__TypesAndValues::Request& p_requ
    const LibItsHttp__MessageBodyTypes::HttpMessageBody& body = static_cast<const LibItsHttp__MessageBodyTypes::HttpMessageBody&>(*v.get_opt_value());
    const LibItsHttp__MessageBodyTypes::HttpMessageBody& body = static_cast<const LibItsHttp__MessageBodyTypes::HttpMessageBody&>(*v.get_opt_value());
    loggers::get_instance().log_msg("http_codec::encode_request: body: ", body);
    loggers::get_instance().log_msg("http_codec::encode_request: body: ", body);
    if (encode_body(body, os) == -1) {
    if (encode_body(body, os) == -1) {
      loggers::get_instance().warning("http_codec::encode_request: Failed to encode HTTP body");
      _ec.length = 0;
      _ec.length = 0;
      _ec.is_content_length_present = 0x00;
    } else {
      _ec.length = os.lengthof();
      _ec.is_content_length_present = 0x01;
    }
    }
    loggers::get_instance().log("http_codec::encode_request: length=%d", _ec.length);
  } else {
    loggers::get_instance().log("http_codec::encode_request: HTTP body field not present");
    _ec.length = 0;
    _ec.is_content_length_present = 0x00;
  }
  }


  // Encode generic part
  // Encode generic part
@@ -151,13 +161,15 @@ int http_codec::encode_request(const LibItsHttp__TypesAndValues::Request& p_requ
    loggers::get_instance().log_msg("http_codec::encode_request: Processing header ", header.header__name());
    loggers::get_instance().log_msg("http_codec::encode_request: Processing header ", header.header__name());
    p_encoding_buffer.put_cs(header.header__name());
    p_encoding_buffer.put_cs(header.header__name());
    p_encoding_buffer.put_cs(": ");
    p_encoding_buffer.put_cs(": ");
    if (std::string(static_cast<const char*>(header.header__name())).compare("Content-Length") == 0) {
    if (std::string(static_cast<const char*>(header.header__name())).compare("Content-length") == 0) {
      if (_ec.length != 0) {
      if (_ec.length != 0) {
        p_encoding_buffer.put_cs(int2str(_ec.length + 2/*Stand for the last CRLF*/));
        p_encoding_buffer.put_cs(int2str(_ec.length + 2/*Stand for the last CRLF*/));
        _ec.is_content_length_present = 0x01;
      } else {
      } else {
        p_encoding_buffer.put_cs("0");
        p_encoding_buffer.put_cs("0");
        _ec.is_content_length_present = 0x00;
      }
      }
      _ec.is_content_length_present = 0x01;
      loggers::get_instance().log("http_codec::encode_request: Content-length: %d - %x", _ec.length, _ec.is_content_length_present);
    } else {
    } else {
      const OPTIONAL<LibItsHttp__TypesAndValues::charstring__list>& o = header.header__value();
      const OPTIONAL<LibItsHttp__TypesAndValues::charstring__list>& o = header.header__value();
      if (o.ispresent()) {
      if (o.ispresent()) {
@@ -179,7 +191,8 @@ int http_codec::encode_request(const LibItsHttp__TypesAndValues::Request& p_requ
  } // End of 'for' statement
  } // End of 'for' statement


  p_encoding_buffer.put_cs("\r\n");
  p_encoding_buffer.put_cs("\r\n");
  if (_ec.length != 0) {
  if (_ec.is_content_length_present == 0x01) {
    loggers::get_instance().log_msg("http_codec::encode_request: Add body ", os);
    p_encoding_buffer.put_os(os);
    p_encoding_buffer.put_os(os);
    p_encoding_buffer.put_cs("\r\n");
    p_encoding_buffer.put_cs("\r\n");
  }
  }