Commit 93968200 authored by YannGarcia's avatar YannGarcia
Browse files

Bug fixed in TCP layer

parent 1a1ebb5d
Loading
Loading
Loading
Loading
+16 −6
Original line number Diff line number Diff line
@@ -33,13 +33,15 @@ tcp_layer::tcp_layer(const std::string & p_type, const std::string & param) : la
  if (!parameter_set(params::server.c_str(), _params[params::server].c_str())) {
    loggers::get_instance().warning("tcp_layer::set_parameter: Unprocessed parameter: %s", params::server.c_str());
  }
  set_ssl_use_ssl(false);
  bool ssl_mode = false;
  it = _params.find(params::use_ssl);
  if (it == _params.cend()) {
    _params.insert(std::pair<std::string, std::string>(std::string("use_ssl"), "0"));
  } else if (it->second.compare("1") == 0) {
    set_ssl_use_ssl(true);
    _params.insert(std::pair<std::string, std::string>(std::string("use_ssl"), "1"));
    ssl_mode = true;
  }
  set_ssl_use_ssl(ssl_mode);
  it = _params.find(params::port);
  if (it == _params.cend()) {
    if (_params[params::use_ssl].compare("0") == 0) { // Use standard HTTP port
@@ -48,7 +50,7 @@ tcp_layer::tcp_layer(const std::string & p_type, const std::string & param) : la
      _params.insert(std::pair<std::string, std::string>(std::string("port"), "443"));
    }
  }
  if (!parameter_set(params::port.c_str(), _params[params::port].c_str())) {
  if (!parameter_set(remote_port_name(), _params[params::port].c_str())) {
    loggers::get_instance().warning("tcp_layer::set_parameter: Unprocessed parameter: %s", params::port.c_str());
  }
  it = _params.find(params::local_port);
@@ -59,7 +61,7 @@ tcp_layer::tcp_layer(const std::string & p_type, const std::string & param) : la
      _params.insert(std::pair<std::string, std::string>(std::string("local_port"), "443"));
    }
  }
  if (!parameter_set(params::local_port.c_str(), _params[params::local_port].c_str())) {
  if (!parameter_set(local_port_name(), _params[params::local_port].c_str())) {
    loggers::get_instance().warning("tcp_layer::set_parameter: Unprocessed parameter: %s", params::local_port.c_str());
  }
  
@@ -69,14 +71,22 @@ tcp_layer::tcp_layer(const std::string & p_type, const std::string & param) : la
  set_server_mode(server_mode);
  if (server_mode) {
    parameter_set("serverPort", _params[params::local_port].c_str());
    if (ssl_mode) { // Add certificate bundle
      parameter_set(ssl_verifycertificate_name(), "yes");
      parameter_set(ssl_private_key_file_name(), "/etc/ssl/certs/ca-certificates.crt");
      parameter_set(ssl_certificate_file_name(), "/etc/ssl/certs/ca-certificates.crt");
      parameter_set(ssl_trustedCAlist_file_name(), "/etc/ssl/certs/ca-certificates.crt"); // FIXME Use a parameter
    }
  }
  set_ttcn_buffer_usercontrol(false);
  set_handle_half_close(true);

  map_user();

  if (!server_mode) {
    if (!_reconnect_on_send) {
      open_client_connection(_params[params::server].c_str(), _params[params::port].c_str(), NULL, NULL);
    }
  }
                                                                                                                                                            }