sbin_PROGRAMS = sslproxy
-AUTOMAKE_OPTIONS = foreign
-SSLPROXY_SBINDIR = @sbindir@
+dist_sbin_SCRIPTS = sslproxyadm
-sslproxy_CPPFLAGS = -O2 -g -I../include \
- -I../logger -I../parameter \
+sslproxy_CPPFLAGS = -O2 -g -I$(top_srcdir)/include \
+ -I$(top_srcdir)/logger -I$(top_srcdir)/parameter \
-I/usr/local/include/boost \
-pthread \
-DVERSION=\"$(VERSION)\"
sslproxy_SOURCES = \
- ../logger/logger_wrapper.h \
- ../parameter/parameter_wrapper.h \
- ../include/sslproxy.h \
- ../include/sslproxyserver.h \
- ../include/sslproxysession.h \
- ../include/packet_editor.h \
- ../include/http_message.h \
- ../include/http_request.h \
- ../include/http_response.h \
+ $(top_srcdir)/logger/logger_wrapper.h \
+ $(top_srcdir)/parameter/parameter_wrapper.h \
+ $(top_srcdir)/include/sslproxy.h \
+ $(top_srcdir)/include/sslproxyserver.h \
+ $(top_srcdir)/include/sslproxysession.h \
++ $(top_srcdir)/include/packet_editor.h \
++ $(top_srcdir)/include/http_message.h \
++ $(top_srcdir)/include/http_request.h \
++ $(top_srcdir)/include/http_response.h \
sslproxy.cpp \
sslproxymain.cpp \
sslproxyserver.cpp \
- sslproxysession.cpp
+ sslproxysession.cpp \
+ packet_editor.cpp \
+ http_message.cpp \
+ http_request.cpp \
+ http_response.cpp
-sslproxy_LDADD = ../logger/libsslproxy_logger.a \
- ../parameter/libsslproxy_parameter.a \
+sslproxy_LDADD = $(top_builddir)/logger/libsslproxy_logger.a \
+ $(top_builddir)/parameter/libsslproxy_parameter.a \
-llog4cxx \
-lrt \
-lssl \
+ -lboost_regex-gcc41-mt \
-lboost_system-gcc41-mt \
-lboost_thread-gcc41-mt
-
-install:
- $(INSTALL) -m 755 -D \
- ./sslproxy \
- ./sslproxyadm \
- $(SSLPROXY_SBINDIR)
- mkdir -p /var/log/l7vs/sslproxy
long session_cache_size;
long session_cache_timeout;
std::string conn_log_flag;
+ bool client_packet_edit = DEFAULT_CLIENT_EDIT;
+ bool server_packet_edit = DEFAULT_SERVER_EDIT;
+ std::list<std::pair<std::string, std::string > > http_request_header;
+ std::list<std::pair<std::string, std::string > > http_response_header;
/*!
* Convert verify option string to intger(#define).
"Use default value.");
conn_log_flag = DEFAULT_CONN_LOG_FLAG;
}
+
+ // Get parameter "http_request_header".
+ if (Parameter::getInstance().isStringExist(PARAM_COMP_SSLPROXY, "http_request_header")) {
+ std::multimap<std::string, std::string> request_map;
+ Parameter::getInstance().getStringMapValue(PARAM_COMP_SSLPROXY,
+ "http_request_header", request_map);
+ /*-------- DEBUG LOG --------*/
+ if (LOG_LV_DEBUG == logger_get_log_level(LOG_CAT_SSLPROXY_COMMON)) {
+ LOGGER_PUT_LOG_DEBUG(LOG_CAT_SSLPROXY_COMMON, 101,
+ "function : static int getParameters("
+ "std::string config_filename) : "
+ "get http_request_header OK.");
+ }
+ /*------ DEBUG LOG END ------*/
+ std::multimap<std::string, std::string>::iterator it = request_map.begin();
+ std::multimap<std::string, std::string>::iterator end = request_map.end();
+ while (it != end) {
+ int delimiter_pos = it->second.find(':');
+ if (delimiter_pos == std::string::npos) {
+ LOGGER_PUT_LOG_ERROR(LOG_CAT_SSLPROXY_COMMON, 50,
+ "Invalid http_request_header parameter value.(no delimiter)");
+ throw -1;
+ }
+ std::pair<std::string, std::string> header_pair(
+ it->second.substr(0, delimiter_pos),
+ it->second.substr(delimiter_pos + 1, it->second.size() - delimiter_pos) );
+ if ( header_pair.first != "set"
+ && header_pair.first != "unset"
+ && header_pair.first != "add"
+ && header_pair.first != "replace" ) {
+ LOGGER_PUT_LOG_ERROR(LOG_CAT_SSLPROXY_COMMON, 51,
+ "Invalid http_request_header parameter value.(invalid type)");
+ throw -1;
+ }
+ ::http_request_header.push_back(header_pair);
+ ::client_packet_edit = true;
+ it++;
+ }
+ }
+
+ // Get parameter "http_response_header".
+ if (Parameter::getInstance().isStringExist(PARAM_COMP_SSLPROXY, "http_response_header")) {
+ std::multimap<std::string, std::string> response_map;
+ Parameter::getInstance().getStringMapValue(PARAM_COMP_SSLPROXY,
+ "http_response_header", response_map);
+ /*-------- DEBUG LOG --------*/
+ if (LOG_LV_DEBUG == logger_get_log_level(LOG_CAT_SSLPROXY_COMMON)) {
+ LOGGER_PUT_LOG_DEBUG(LOG_CAT_SSLPROXY_COMMON, 102,
+ "function : static int getParameters("
+ "std::string config_filename) : "
+ "get http_response_header OK.");
+ }
+ /*------ DEBUG LOG END ------*/
+ std::multimap<std::string, std::string>::iterator it = response_map.begin();
+ std::multimap<std::string, std::string>::iterator end = response_map.end();
+ while (it != end) {
+ int delimiter_pos = it->second.find(':');
+ if (delimiter_pos == std::string::npos) {
+ LOGGER_PUT_LOG_ERROR(LOG_CAT_SSLPROXY_COMMON, 52,
+ "Invalid http_response_header parameter value.(no delimiter)");
+ throw -1;
+ }
+ std::pair<std::string, std::string> header_pair(
+ it->second.substr(0, delimiter_pos),
+ it->second.substr(delimiter_pos + 1, it->second.size() - delimiter_pos) );
+ if ( header_pair.first != "set"
+ && header_pair.first != "unset"
+ && header_pair.first != "add"
+ && header_pair.first != "replace" ) {
+ LOGGER_PUT_LOG_ERROR(LOG_CAT_SSLPROXY_COMMON, 53,
+ "Invalid http_response_header parameter value.(invalid type)");
+ throw -1;
+ }
+ ::http_response_header.push_back(header_pair);
+ ::server_packet_edit = true;
+ it++;
+ }
+ }
} catch (int e) {
/*-------- DEBUG LOG --------*/
if (LOG_LV_DEBUG == logger_get_log_level(LOG_CAT_SSLPROXY_COMMON)) {
/*------ DEBUG LOG END ------*/
std::cerr << "Usage : " << "sslproxy <target_id> <config_filename>" << std::endl;
-- std::cerr << "Example : " << "sslproxy target_1 /etc/l7vs/sslproxy/sslproxy.target_1.cf" << std::endl;
++ std::cerr << "Example : " << "sslproxy target_1 /etc/l7vs/sslproxy/sslproxy.target.cf" << std::endl;
/*-------- DEBUG LOG --------*/
if (LOG_LV_DEBUG == logger_get_log_level(LOG_CAT_SSLPROXY_COMMON)) {