(snake) add an option to disable answering pongs as response to pings, to test cobra client behavior with hanged connections
This commit is contained in:
parent
86f6fca703
commit
c192c9ec96
@ -1,6 +1,10 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
All changes to this project will be documented in this file.
|
All changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## [8.0.6] - 2020-01-31
|
||||||
|
|
||||||
|
(snake) add an option to disable answering pongs as response to pings, to test cobra client behavior with hanged connections
|
||||||
|
|
||||||
## [8.0.5] - 2020-01-31
|
## [8.0.5] - 2020-01-31
|
||||||
|
|
||||||
(IXCobraConnection) set a ping timeout of 90 seconds. If no pong messages are received as responses to ping for a while, give up and close the connection
|
(IXCobraConnection) set a ping timeout of 90 seconds. If no pong messages are received as responses to ping for a while, give up and close the connection
|
||||||
|
@ -32,6 +32,7 @@ namespace snake
|
|||||||
|
|
||||||
// Misc
|
// Misc
|
||||||
bool verbose;
|
bool verbose;
|
||||||
|
bool disablePong;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool isAppKeyValid(const AppConfig& appConfig, std::string appkey);
|
bool isAppKeyValid(const AppConfig& appConfig, std::string appkey);
|
||||||
|
@ -21,6 +21,15 @@ namespace snake
|
|||||||
, _server(appConfig.port, appConfig.hostname)
|
, _server(appConfig.port, appConfig.hostname)
|
||||||
{
|
{
|
||||||
_server.setTLSOptions(appConfig.socketTLSOptions);
|
_server.setTLSOptions(appConfig.socketTLSOptions);
|
||||||
|
|
||||||
|
if (appConfig.disablePong)
|
||||||
|
{
|
||||||
|
_server.disablePong();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::stringstream ss;
|
||||||
|
ss << "Listening on " << appConfig.hostname << ":" << appConfig.port;
|
||||||
|
ix::IXCoreLogger::Log(ss.str().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -99,6 +99,7 @@ int main(int argc, char** argv)
|
|||||||
bool redirect = false;
|
bool redirect = false;
|
||||||
bool version = false;
|
bool version = false;
|
||||||
bool verifyNone = false;
|
bool verifyNone = false;
|
||||||
|
bool disablePong = false;
|
||||||
int port = 8008;
|
int port = 8008;
|
||||||
int redisPort = 6379;
|
int redisPort = 6379;
|
||||||
int statsdPort = 8125;
|
int statsdPort = 8125;
|
||||||
@ -309,6 +310,7 @@ int main(int argc, char** argv)
|
|||||||
snakeApp->add_option("--apps_config_path", appsConfigPath, "Path to auth data")
|
snakeApp->add_option("--apps_config_path", appsConfigPath, "Path to auth data")
|
||||||
->check(CLI::ExistingPath);
|
->check(CLI::ExistingPath);
|
||||||
snakeApp->add_flag("-v", verbose, "Verbose");
|
snakeApp->add_flag("-v", verbose, "Verbose");
|
||||||
|
snakeApp->add_flag("-d", disablePong, "Disable Pongs");
|
||||||
addTLSOptions(snakeApp);
|
addTLSOptions(snakeApp);
|
||||||
|
|
||||||
CLI::App* httpServerApp = app.add_subcommand("httpd", "HTTP server");
|
CLI::App* httpServerApp = app.add_subcommand("httpd", "HTTP server");
|
||||||
@ -492,7 +494,8 @@ int main(int argc, char** argv)
|
|||||||
redisPassword,
|
redisPassword,
|
||||||
verbose,
|
verbose,
|
||||||
appsConfigPath,
|
appsConfigPath,
|
||||||
tlsOptions);
|
tlsOptions,
|
||||||
|
disablePong);
|
||||||
}
|
}
|
||||||
else if (app.got_subcommand("httpd"))
|
else if (app.got_subcommand("httpd"))
|
||||||
{
|
{
|
||||||
|
3
ws/ws.h
3
ws/ws.h
@ -142,7 +142,8 @@ namespace ix
|
|||||||
const std::string& redisPassword,
|
const std::string& redisPassword,
|
||||||
bool verbose,
|
bool verbose,
|
||||||
const std::string& appsConfigPath,
|
const std::string& appsConfigPath,
|
||||||
const ix::SocketTLSOptions& tlsOptions);
|
const ix::SocketTLSOptions& tlsOptions,
|
||||||
|
bool disablePong);
|
||||||
|
|
||||||
int ws_httpd_main(int port,
|
int ws_httpd_main(int port,
|
||||||
const std::string& hostname,
|
const std::string& hostname,
|
||||||
|
@ -44,7 +44,8 @@ namespace ix
|
|||||||
const std::string& redisPassword,
|
const std::string& redisPassword,
|
||||||
bool verbose,
|
bool verbose,
|
||||||
const std::string& appsConfigPath,
|
const std::string& appsConfigPath,
|
||||||
const SocketTLSOptions& socketTLSOptions)
|
const SocketTLSOptions& socketTLSOptions,
|
||||||
|
bool disablePong)
|
||||||
{
|
{
|
||||||
snake::AppConfig appConfig;
|
snake::AppConfig appConfig;
|
||||||
appConfig.port = port;
|
appConfig.port = port;
|
||||||
@ -53,6 +54,7 @@ namespace ix
|
|||||||
appConfig.redisPort = redisPort;
|
appConfig.redisPort = redisPort;
|
||||||
appConfig.redisPassword = redisPassword;
|
appConfig.redisPassword = redisPassword;
|
||||||
appConfig.socketTLSOptions = socketTLSOptions;
|
appConfig.socketTLSOptions = socketTLSOptions;
|
||||||
|
appConfig.disablePong = disablePong;
|
||||||
|
|
||||||
// Parse config file
|
// Parse config file
|
||||||
auto str = readAsString(appsConfigPath);
|
auto str = readAsString(appsConfigPath);
|
||||||
|
Loading…
Reference in New Issue
Block a user