#include <iostream>
#include <sstream>
#include <exception>
+#include <csignal>
#include <boost/bind.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
return false;
}
try {
- virtualservice_element &elem = request.vs_element; // request virtualservice element refalence get.
+ virtualservice_element &elem = request.vs_element; // request virtualservice element reference get.
std::string tmp = argv[pos];
std::string::reverse_iterator ritr = tmp.rbegin();
if (*ritr == 'G' || *ritr == 'g') {
}
return true;
}
-//! virtualservice option qosdownstream functipn
+//! virtualservice option qosdownstream function
//! @param[in] argument position
//! @param[in] argument count
//! @param[in] argument value
return false;
}
try {
- virtualservice_element &elem = request.vs_element; // request virtualservice element refalence get.
+ virtualservice_element &elem = request.vs_element; // request virtualservice element reference get.
std::string tmp = argv[pos];
std::string::reverse_iterator ritr = tmp.rbegin();
if (*ritr == 'G' || *ritr == 'g') {
{
Logger logger(LOG_CAT_L7VSADM_COMMON, 12, "l7vsadm::parse_opt_vs_udp_func", __FILE__, __LINE__);
- virtualservice_element &elem = request.vs_element; // request virtualservie element reference get.
+ virtualservice_element &elem = request.vs_element; // request virtualservice element reference get.
elem.udpmode = true; // udpmode on.
boost::asio::ip::tcp::endpoint zeropoint;
- if (zeropoint != elem.tcp_accept_endpoint) { // adddress tcp_acceptor endpoint
+ if (zeropoint != elem.tcp_accept_endpoint) { // address tcp_acceptor endpoint
std::stringstream sstream;
sstream << elem.tcp_accept_endpoint;
std::string endpoint = sstream.str();
} else {
std::string buf("Invalid option value for -r option.");
l7vsadm_err.setter(true, buf);
- Logger::putLogError(LOG_CAT_L7VSADM_PARSE, 79, buf, __FILE__, __LINE__);
+ Logger::putLogError(LOG_CAT_L7VSADM_PARSE, 78, buf, __FILE__, __LINE__);
return false;
}
}
+ request.snmpinfo.option_set_flag |= snmp_info::SNMP_REFRESH_OPTION_FLAG;
+
} else {
std::string buf("Argument argc is illegal for -S command.");
l7vsadm_err.setter(true, buf);
bool l7vs::l7vsadm::parse_opt_snmp_vs_target_func(int &pos, int argc, char *argv[])
{
Logger logger(LOG_CAT_L7VSADM_COMMON, 43, "l7vsadm::parse_opt_vs_target_func", __FILE__, __LINE__);
- if (++pos >= argc) {
- //don't target recvaddress:port
- std::string buf("target endpoint is not specified.");
- l7vsadm_err.setter(true, buf);
- Logger::putLogError(LOG_CAT_L7VSADM_PARSE, 131, buf, __FILE__, __LINE__);
- return false;
- }
-
if (request.snmpinfo.option_set_flag & snmp_info::SNMP_TCP_SERVICE_OPTION_FLAG ) {
std::stringstream buf;
buf << "Option ";
buf << " conflict.";
l7vsadm_err.setter(true, buf.str());
- Logger::putLogError(LOG_CAT_L7VSADM_PARSE, 132, buf.str(), __FILE__, __LINE__);
+ Logger::putLogError(LOG_CAT_L7VSADM_PARSE, 131, buf.str(), __FILE__, __LINE__);
+ return false;
+ }
+
+ if (++pos >= argc) {
+ //don't target recvaddress:port
+ std::string buf("target endpoint is not specified.");
+ l7vsadm_err.setter(true, buf);
+ Logger::putLogError(LOG_CAT_L7VSADM_PARSE, 132, buf, __FILE__, __LINE__);
return false;
}
std::stringstream buf;
buf << "target endpoint parse error:" << err.get_message() << src_str;
l7vsadm_err.setter(true, buf.str());
- Logger::putLogError(LOG_CAT_L7VSADM_PARSE, 12, buf.str(), __FILE__, __LINE__);
+ Logger::putLogError(LOG_CAT_L7VSADM_PARSE, 133, buf.str(), __FILE__, __LINE__);
return false;
}
{
Logger logger(LOG_CAT_L7VSADM_COMMON, 44, "l7vsadm::parse_opt_snmp_vs_module_func", __FILE__, __LINE__);
- if (++pos >= argc) {
- //don't target protomod name.
- std::string buf("protomod name is not specified.");
- l7vsadm_err.setter(true, buf);
- Logger::putLogError(LOG_CAT_L7VSADM_PARSE, 134, buf, __FILE__, __LINE__);
- return false;
- }
if (request.snmpinfo.option_set_flag & snmp_info::SNMP_PROTOCOL_MODULE_OPTION_FLAG ) {
std::stringstream buf;
buf << "Option ";
buf << " conflict.";
l7vsadm_err.setter(true, buf.str());
- Logger::putLogError(LOG_CAT_L7VSADM_PARSE, 135, buf.str(), __FILE__, __LINE__);
+ Logger::putLogError(LOG_CAT_L7VSADM_PARSE, 134, buf.str(), __FILE__, __LINE__);
return false;
}
+ if (++pos >= argc) {
+ //don't target protomod name.
+ std::string buf("protomod name is not specified.");
+ l7vsadm_err.setter(true, buf);
+ Logger::putLogError(LOG_CAT_L7VSADM_PARSE, 135, buf, __FILE__, __LINE__);
+ return false;
+ }
std::string module_name = argv[pos];
if (L7VS_MODNAME_LEN < module_name.length()) {
std::cout <<
"Options:\n"
" --tcp-service -t service-address service-address is host:port\n"
- " --proto-module -m proto-module protocol module name and module argment\n"
+ " --proto-module -m proto-module protocol module name and module argument\n"
" [module-args]\n"
" --scheduler -s scheduler one of rr,lc,wrr\n"
" --upper -u connection-count maximum number of connections\n"
" --bypass -b sorry-server sorry server address is host:port\n"
" --tproxy -T set sorry server connection to IP transparent mode.\n"
- " --masq -M set sorry server connection to IP masquarade mode.\n"
+ " --masq -M set sorry server connection to IP masquerade mode.\n"
" --flag -f sorry-flag sorry status set to virtual service\n"
" --qos-up -Q QoSval-up QoS Threshold(bps) set to real server direction\n"
" --real-server -r server-address server-address is host:port\n"
" --weight -w weight scheduling weight set to real server\n"
" --tproxy -T set real server connection to IP transparent mode.\n"
- " --masq -M set real server connection to IP masquarade mode.\n"
+ " --masq -M set real server connection to IP masquerade mode.\n"
" --switch -s replication-switch start or stop replication\n"
" --force -f force replication start\n"
" --dump -d dump replication memory\n"
if (zeropoint == vse.sorry_endpoint) {
sorryepstr = "none";
} else {
- sorryepstr = endpoint_to_string<boost::asio::ip::tcp>(vse.sorry_endpoint, numeric_flag);
+ sorryepstr = endpoint_to_string<boost::asio::ip::tcp>(vse.sorry_endpoint,
+ numeric_flag) + " " + vse.get_fwdmode_str();
}
if (vse.sorry_flag) {
}
std::cout << buf.str();
}
-//! l7vsadm constractor.
+//! l7vsadm constructor.
//! create including all dictionary.
l7vs::l7vsadm::l7vsadm()
: numeric_flag(false),
}
/*------ DEBUG LOG END ------*/
- // set sighanlder
+ // set sighandler
if (0 > set_sighandlers()) {
std::string buf("set_sighandlers failed.");
std::cerr << "COMMON ERROR: " << buf << std::endl;
return false;
}
- // readparam
+ // read param
set_parameter();
// Get l7vsadm execute file path from /proc/(pid)/exe (symbolic link)
signal_flag = true;
}
-//! set singal handler function
+//! set signal handler function
//! @param[in] signal
//! @param[in] handler function pointer
//! @return 0/success, -1/fail
return 0;
}
-//! set all singal handler function
+//! set all signal handler function
//! @return 0/success, -1/fail
static int set_sighandlers()
{