You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2014/05/22 05:20:48 UTC
[6/7] TS-1665 Remove traffic_shell
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2369a1a4/cmd/traffic_shell/ConfigCmd.cc
----------------------------------------------------------------------
diff --git a/cmd/traffic_shell/ConfigCmd.cc b/cmd/traffic_shell/ConfigCmd.cc
deleted file mode 100644
index e171035..0000000
--- a/cmd/traffic_shell/ConfigCmd.cc
+++ /dev/null
@@ -1,4156 +0,0 @@
-/** @file
-
- This file contains the CLI's "config" command implementation.
-
- @section license License
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- @section description createArgument("timezone",1,CLI_ARGV_OPTION_INT_VALUE,
- (char*)NULL, CMD_CONFIG_TIMEZONE, "Time Zone",
- (char*)NULL);
- */
-
-
-#include "libts.h"
-#include "I_Layout.h"
-#include "mgmtapi.h"
-#include "ShowCmd.h"
-#include "ConfigCmd.h"
-#include "createArgument.h"
-#include "CliMgmtUtils.h"
-#include "CliDisplay.h"
-// TODO: Remove all those system defines
-// and protecect them via #ifdef HAVE_FOO_H
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <termios.h>
-#include <stdarg.h>
-#include <sys/ioctl.h>
-#include <time.h>
-#include <sys/time.h>
-#include <string.h>
-#include <unistd.h>
-#include <limits.h>
-#include <sys/wait.h>
-#include <errno.h>
-#include <ctype.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-
-bool enable_restricted_commands = false;
-
-int
-u_getch(void)
-{
- static signed int returned = (-1), fd;
- static struct termios new_io_settings, old_io_settings;
- fd = fileno(stdin);
- tcgetattr(fd, &old_io_settings);
- new_io_settings = old_io_settings;
- new_io_settings.c_lflag &= ~(ICANON | ECHO);
- tcsetattr(fd, TCSANOW, &new_io_settings);
- returned = getchar();
- tcsetattr(fd, TCSANOW, &old_io_settings);
- return returned;
-}
-
-////////////////////////////////////////////////////////////////
-// Cmd_Enable
-//
-// This is the callback
-// function for the "enable" command.
-// TODO: This currently doesn't do anything, these commands are
-// always available.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_Enable(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
-
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable, *infoPtr;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
- infoPtr = argtable;
-
- /* Add "enable status" to check the status of enable/disable */
- if (argc == 2) {
- switch (infoPtr->parsed_args) {
- case CMD_ENABLE_STATUS:
- if (enable_restricted_commands == true) {
- Cli_Printf("on\n");
- return CMD_OK;
- } else {
- Cli_Printf("off\n");
- return CMD_ERROR;
- }
- default:
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
- }
- }
-
- if (enable_restricted_commands == true) {
- Cli_Printf("Already Enabled\n");
- return CMD_OK;
- }
-
- // TODO: replace this assert with appropriate authentication
- ink_release_assert(enable_restricted_commands);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_Enable
-//
-// Register "enable" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_Enable()
-{
-
- createArgument("status", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_ENABLE_STATUS, "Check Enable Status", (char *) NULL);
- return CLI_OK;
-}
-
-////////////////////////////////////////////////////////////////
-// Cmd_Disable
-//
-// This is the callback
-// function for the "disable" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_Disable(ClientData /* clientData ATS_UNUSED */, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (getuid() == 0) {
- Cli_Printf("root user cannot \"disable\"\n");
- return 0;
- }
-
- enable_restricted_commands = false;
- return 0;
-}
-
-
-
-////////////////////////////////////////////////////////////////
-// Cmd_Config
-//
-// This is the callback function for the "config" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_Config(ClientData /* clientData ATS_UNUSED */, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- char *cmdinfo, *temp;
- int i = 0;
-
- Cli_Debug("Cmd_Config\n");
- Tcl_Eval(interp, "info commands config* ");
-
- size_t cmdinfo_len = strlen(Tcl_GetStringResult(interp)) + 2;
- cmdinfo = (char *)alloca(sizeof(char) * cmdinfo_len);
- ink_strlcpy(cmdinfo, Tcl_GetStringResult(interp), cmdinfo_len);
- size_t temp_len = strlen(cmdinfo) + 20;
- temp = (char *)alloca(sizeof(char) * temp_len);
- ink_strlcpy(temp, "lsort \"", temp_len);
- ink_strlcat(temp, cmdinfo, temp_len);
- ink_strlcat(temp, "\"", temp_len);
-
- Tcl_Eval(interp, temp);
- ink_strlcpy(cmdinfo, Tcl_GetStringResult(interp), cmdinfo_len);
- i = i + strlen("config ");
- while (cmdinfo[i] != 0) {
- if (cmdinfo[i] == ' ') {
- cmdinfo[i] = '\n';
- }
- i++;
- }
- cmdinfo[i] = '\n';
- i++;
- cmdinfo[i] = 0;
- Cli_Printf("Following are the available config commands\n");
- Cli_Printf(cmdinfo + strlen("config "));
-
- return CLI_OK;
-
-}
-
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_Config
-//
-// Register "config" command arguments with the Tcl interpreter.
-//
-int
-CmdArgs_Config()
-{
- Cli_Debug("CmdArgs_Config\n");
-
- return CLI_OK;
-}
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigGet
-//
-// This is the callback function for the "config:get" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigGet(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:get") == CLI_ERROR) {
- return CMD_ERROR;
- }
- cli_cmdCallbackInfo *cmdCallbackInfo;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
-
- Cli_Debug("Cmd_ConfigGet argc %d\n", argc);
-
- if (argc == 2) {
- return (ConfigGet(argv[1]));
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigSet
-//
-// This is the callback function for the "config:set" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigSet(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:set") == CLI_ERROR) {
- return CMD_ERROR;
- }
- cli_cmdCallbackInfo *cmdCallbackInfo;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
-
- Cli_Debug("Cmd_ConfigSet argc %d\n", argc);
-
- if (argc == 3) {
- return (ConfigSet(argv[1], argv[2]));
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigName
-//
-// This is the callback function for the "config:name" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigName(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:name") == CLI_ERROR) {
- return CMD_ERROR;
- }
- cli_cmdCallbackInfo *cmdCallbackInfo;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
-
- Cli_Debug("Cmd_ConfigName argc %d\n", argc);
-
- return (ConfigName(argv[1]));
-
- // coverity[unreachable]
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigStart
-//
-// This is the callback function for the "config:start" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigStart(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:start") == CLI_ERROR) {
- return CMD_ERROR;
- }
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
-
- Cli_Debug("Cmd_ConfigStart argc %d\n", argc);
-
- if (argc == 1) {
- return (ConfigStart());
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigStop
-//
-// This is the callback function for the "config:stop" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigStop(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
- if (cliCheckIfEnabled("config:stop") == CLI_ERROR) {
- return CMD_ERROR;
- }
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- Cli_Debug("Cmd_ConfigStop argc %d\n", argc);
-
- if (argc == 1) {
- return (ConfigStop());
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigRestart
-//
-// This is the callback function for the "config:restart" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigRestart(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
- if (cliCheckIfEnabled("config:restart") == CLI_ERROR) {
- return CMD_ERROR;
- }
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
- Cli_Debug("Cmd_ConfigRestart argc %d\n", argc);
-
- if (argc == 1) {
- return (TSRestart(false));
- } else if (argc == 2) {
- if (argtable[0].parsed_args == CMD_CONFIG_RESTART_CLUSTER) {
- return (TSRestart(true));
- }
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigRestart
-//
-// Register "config:restart" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigRestart()
-{
- createArgument("cluster", 1, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_RESTART_CLUSTER, "Restart the entire cluster", (char *) NULL);
-
- return 0;
-}
-
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigParents
-//
-// This is the callback function for the "config:parents" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigParents(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:parents") == CLI_ERROR) {
- return CMD_ERROR;
- }
- Cli_Debug("Cmd_ConfigParents argc %d\n", argc);
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable, *infoPtr;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
- infoPtr = argtable;
-
- if (argc == 1) {
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
- }
-
- if (argtable->parsed_args != CLI_PARSED_ARGV_END) {
- switch (infoPtr->parsed_args) {
- case CMD_CONFIG_PARENTS_STATUS:
- return (Cli_RecordOnOff_Action((argc == 3),
- "proxy.config.http.parent_proxy_routing_enable", argtable->arg_string));
-
- case CMD_CONFIG_PARENTS_CACHE:
- return (Cli_RecordString_Action((argc == 3), "proxy.config.http.parent_proxies", argtable->arg_string));
-
- case CMD_CONFIG_PARENTS_CONFIG_FILE:
- return (Cli_ConfigFileURL_Action(TS_FNAME_PARENT_PROXY, "parent.config", argtable->arg_string));
- }
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigParents
-//
-// Register "config:parents" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigParents()
-{
-
- createArgument("status", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_PARENTS_STATUS, "Parenting <on|off>", (char *) NULL);
- createArgument("name", CLI_ARGV_NO_POS, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_PARENTS_CACHE, "Specify cache parent", (char *) NULL);
- createArgument("rules", CLI_ARGV_NO_POS, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_PARENTS_CONFIG_FILE, "Specify config file", (char *) NULL);
- return CLI_OK;
-}
-
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigRemap
-//
-// This is the callback function for the "config:remap" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigRemap(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:remap") == CLI_ERROR) {
- return CMD_ERROR;
- }
- cli_cmdCallbackInfo *cmdCallbackInfo;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- Cli_Debug("Cmd_ConfigRemap argc %d\n", argc);
-
- if (argc == 2) {
- return (ConfigRemap(argv[1]));
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigPorts
-//
-// This is the callback function for the "config:ports" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigPorts(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:ports") == CLI_ERROR) {
- return CMD_ERROR;
- }
-
- Cli_Debug("Cmd_ConfigPorts argc %d\n", argc);
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
-
- Cli_Debug("Cmd_ConfigPorts argc %d\n", argc);
-
- if (argtable->parsed_args != CLI_PARSED_ARGV_END) {
-
- if (argc == 2) { // get
- return (ConfigPortsGet(argtable[0].parsed_args));
- } else { // set
- switch (argtable->parsed_args) {
- case CMD_CONFIG_PORTS_CONNECT:
- return (ConfigPortsSet(argtable[0].parsed_args, argtable[0].data));
- break;
- case CMD_CONFIG_PORTS_HTTP_SERVER:
- case CMD_CONFIG_PORTS_CLUSTER:
- case CMD_CONFIG_PORTS_CLUSTER_RS:
- case CMD_CONFIG_PORTS_CLUSTER_MC:
- case CMD_CONFIG_PORTS_SOCKS_SERVER:
- case CMD_CONFIG_PORTS_ICP:
- return (ConfigPortsSet(argtable[0].parsed_args, &argtable[0].arg_int));
- }
- }
- }
- Cli_Error(ERR_COMMAND_SYNTAX,
- "\n\nconfig:ports <http-server | http-other | webui | cluster-rs | cluster-mc | \n ssl | \n socks-server | icp > \n <port | ports list>\n");
- return CMD_ERROR;
-
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigPorts
-//
-// Register "config:ports" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigPorts()
-{
- createArgument("http-server", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_PORTS_HTTP_SERVER, "Set Ports for http-server", (char *) NULL);
- createArgument("cluster", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_PORTS_CLUSTER, "Set Ports for cluster", (char *) NULL);
- createArgument("cluster-rs", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_PORTS_CLUSTER_RS, "Set Ports for cluster-rs", (char *) NULL);
- createArgument("cluster-mc", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_PORTS_CLUSTER_MC, "Set Ports for cluster-mc", (char *) NULL);
- createArgument("connect", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_PORTS_CONNECT, "Set Ports for allowed CONNECT", (char *) NULL);
- createArgument("socks-server", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_PORTS_SOCKS_SERVER, "Set Ports for socks-server", (char *) NULL);
- return 0;
-}
-
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigSecurity
-//
-// This is the callback function for the "config:security" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigSecurity(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:security") == CLI_ERROR) {
- return CMD_ERROR;
- }
- Cli_Debug("Cmd_ConfigSecurity argc %d\n", argc);
-
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
-
- if (argtable[0].parsed_args != CLI_PARSED_ARGV_END) {
- switch (argtable[0].parsed_args) {
- case CMD_CONFIG_SECURITY_IP:
- return (Cli_ConfigFileURL_Action(TS_FNAME_IP_ALLOW, "ip_allow.config", argtable->arg_string));
-
- case CMD_CONFIG_SECURITY_PASSWORD:
- return (ConfigSecurityPasswd());
- }
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigSecurity
-//
-// Register "config:security" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigSecurity()
-{
- createArgument("ip-allow", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_SECURITY_IP, "Clients allowed to connect to proxy <url>", (char *) NULL);
- createArgument("password", 1, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_SECURITY_PASSWORD, "Change Admin Password", (char *) NULL);
- return 0;
-}
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigHttp
-//
-// This is the callback function for the "config:http" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigHttp(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- int setvar = 0;
- if (cliCheckIfEnabled("config:http") == CLI_ERROR) {
- return CMD_ERROR;
- }
-
- Cli_Debug("Cmd_ConfigHttp argc %d\n", argc);
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
-
- if (argc == 3) {
- setvar = 1;
- }
-
- if (argc > 3) {
- Cli_Error("Too many arguments\n");
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
- }
-
- Cli_PrintArg(0, argtable);
- Cli_PrintArg(1, argtable);
-
- int action = (argc == 3) ? RECORD_SET : RECORD_GET;
-
- if (argtable->parsed_args != CLI_PARSED_ARGV_END) {
- switch (argtable->parsed_args) {
- case CMD_CONFIG_HTTP_STATUS:
- return (Cli_RecordOnOff_Action(action, "proxy.config.http.cache.http", argtable->arg_string));
-
- case CMD_CONFIG_HTTP_KEEP_ALIVE_TIMEOUT_IN:
- return (Cli_RecordInt_Action(action, "proxy.config.http.keep_alive_no_activity_timeout_in", argtable->arg_int));
-
- case CMD_CONFIG_HTTP_KEEP_ALIVE_TIMEOUT_OUT:
- return (Cli_RecordInt_Action(action, "proxy.config.http.keep_alive_no_activity_timeout_out", argtable->arg_int));
-
- case CMD_CONFIG_HTTP_INACTIVE_TIMEOUT_IN:
- return (Cli_RecordInt_Action(action, "proxy.config.http.transaction_no_activity_timeout_in", argtable->arg_int));
-
- case CMD_CONFIG_HTTP_INACTIVE_TIMEOUT_OUT:
- return (Cli_RecordInt_Action(action, "proxy.config.http.transaction_no_activity_timeout_out", argtable->arg_int));
-
- case CMD_CONFIG_HTTP_ACTIVE_TIMEOUT_IN:
- return (Cli_RecordInt_Action(action, "proxy.config.http.transaction_active_timeout_in", argtable->arg_int));
-
- case CMD_CONFIG_HTTP_ACTIVE_TIMEOUT_OUT:
- return (Cli_RecordInt_Action(action, "proxy.config.http.transaction_active_timeout_out", argtable->arg_int));
-
- case CMD_CONFIG_HTTP_REMOVE_FROM:
- return (Cli_RecordOnOff_Action(action, "proxy.config.http.anonymize_remove_from", argtable->arg_string));
-
- case CMD_CONFIG_HTTP_REMOVE_REFERER:
- return (Cli_RecordOnOff_Action(action, "proxy.config.http.anonymize_remove_referer", argtable->arg_string));
-
- case CMD_CONFIG_HTTP_REMOVE_USER:
- return (Cli_RecordOnOff_Action(action, "proxy.config.http.anonymize_remove_user_agent", argtable->arg_string));
-
- case CMD_CONFIG_HTTP_REMOVE_COOKIE:
- return (Cli_RecordOnOff_Action(action, "proxy.config.http.anonymize_remove_cookie", argtable->arg_string));
-
- case CMD_CONFIG_HTTP_REMOVE_HEADER:
- return (Cli_RecordString_Action(action, "proxy.config.http.anonymize_other_header_list", argtable->arg_string));
-
- case CMD_CONFIG_HTTP_GLOBAL_USER_AGENT:
- return (Cli_RecordString_Action(action, "proxy.config.http.global_user_agent_header", argtable->arg_string));
-
- case CMD_CONFIG_HTTP_INSERT_IP:
- return (Cli_RecordOnOff_Action(action, "proxy.config.http.anonymize_insert_client_ip", argtable->arg_string));
-
- case CMD_CONFIG_HTTP_REMOVE_IP:
- return (Cli_RecordOnOff_Action(action, "proxy.config.http.anonymize_remove_client_ip", argtable->arg_string));
-
- case CMD_CONFIG_HTTP_PROXY:
- return (ConfigHttpProxy(argtable[1].parsed_args, setvar));
- }
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigHttp
-//
-// Register "config:http" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigHttp()
-{
- createArgument("status", CLI_ARGV_NO_POS, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_STATUS, "HTTP proxying <on | off>", (char *) NULL);
-
- createArgument("keep-alive-timeout-in", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_KEEP_ALIVE_TIMEOUT_IN, "Keep alive timeout inbound <seconds>",
- (char *) NULL);
- createArgument("keep-alive-timeout-out", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_KEEP_ALIVE_TIMEOUT_OUT, "Keep alive timeout outbound <seconds>",
- (char *) NULL);
- createArgument("inactive-timeout-in", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_INACTIVE_TIMEOUT_IN, "Inactive timeout inbound <seconds>",
- (char *) NULL);
- createArgument("inactive-timeout-out", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_INACTIVE_TIMEOUT_OUT, "Inactive timeout outbound <seconds>",
- (char *) NULL);
- createArgument("active-timeout-in", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_ACTIVE_TIMEOUT_IN, "Active timeout inbound <seconds>", (char *) NULL);
- createArgument("active-timeout-out", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_ACTIVE_TIMEOUT_OUT, "Active timeout outbound <seconds>", (char *) NULL);
-
- createArgument("remove-from", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_REMOVE_FROM, "Remove \"From:\" header <on|off>", (char *) NULL);
- createArgument("remove-referer", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_REMOVE_REFERER, "Remove \"Referer:\" header <on|off>", (char *) NULL);
- createArgument("remove-user", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_REMOVE_USER, "Remove \"User:\" header <on|off>", (char *) NULL);
- createArgument("remove-cookie", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_REMOVE_COOKIE, "Remove \"Cookie:\" header <on|off>", (char *) NULL);
- createArgument("remove-header", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_REMOVE_HEADER, "String of headers to be removed <string>",
- (char *) NULL);
-
- createArgument("global-user-agent", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_GLOBAL_USER_AGENT, "User-Agent to send to Origin <string>",
- (char *) NULL);
-
- createArgument("insert-ip", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_INSERT_IP, "Insert client IP into header <on|off>", (char *) NULL);
- createArgument("remove-ip", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_HTTP_REMOVE_IP, "Remove client IP from header <on|off>", (char *) NULL);
- createArgument("proxy", 1, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_HTTP_PROXY, "Proxy Mode <fwd | rev | fwd-rev>", (char *) NULL);
- createArgument("fwd", CMD_CONFIG_HTTP_PROXY, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_HTTP_FWD, "Specify proxy mode to be forward", (char *) NULL);
- createArgument("rev", CMD_CONFIG_HTTP_PROXY, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_HTTP_REV, "Specify proxy mode to be reverse", (char *) NULL);
- createArgument("fwd-rev", CMD_CONFIG_HTTP_PROXY, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_HTTP_FWD_REV, "Specify proxy mode to be both", (char *) NULL);
- return 0;
-}
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigIcp
-//
-// This is the callback function for the "config:icp" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigIcp(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:icp") == CLI_ERROR) {
- return CMD_ERROR;
- }
- Cli_Debug("Cmd_ConfigIcp argc %d\n", argc);
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
-
- int action = (argc == 3) ? RECORD_SET : RECORD_GET;
-
- if (argtable->parsed_args != CLI_PARSED_ARGV_END) {
- switch (argtable->parsed_args) {
- case CMD_CONFIG_ICP_MODE:
- return (ConfigIcpMode(argtable[1].parsed_args, action));
-
- case CMD_CONFIG_ICP_PORT:
- return (Cli_RecordInt_Action(action, "proxy.config.icp.icp_port", argtable->arg_int));
-
- case CMD_CONFIG_ICP_MCAST:
- return (Cli_RecordOnOff_Action(action, "proxy.config.icp.multicast_enabled", argtable->arg_string));
-
- case CMD_CONFIG_ICP_QTIMEOUT:
- return (Cli_RecordInt_Action(action, "proxy.config.icp.query_timeout", argtable->arg_int));
-
- case CMD_CONFIG_ICP_PEERS:
- return (Cli_ConfigFileURL_Action(TS_FNAME_ICP_PEER, "icp.config", argtable->arg_string));
- }
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigIcp
-//
-// Register "config:Icp" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigIcp()
-{
- createArgument("mode", 1, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_ICP_MODE, "Mode <disabled | receive | send-receive>", (char *) NULL);
-
- createArgument("receive", CMD_CONFIG_ICP_MODE, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_ICP_MODE_RECEIVE, "Specify receive mode for icp", (char *) NULL);
-
- createArgument("send-receive", CMD_CONFIG_ICP_MODE, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_ICP_MODE_SENDRECEIVE, "Specify send & receive mode for icp", (char *) NULL);
-
- createArgument("disabled", CMD_CONFIG_ICP_MODE, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_ICP_MODE_DISABLED, "icp mode disabled", (char *) NULL);
-
- createArgument("port", 1, CLI_ARGV_OPTION_INT_VALUE, (char *) NULL, CMD_CONFIG_ICP_PORT, "Port <int>", (char *) NULL);
- createArgument("multicast", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_ICP_MCAST, "Multicast <on|off>", (char *) NULL);
- createArgument("query-timeout", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_ICP_QTIMEOUT, "Query Timeout <seconds>", (char *) NULL);
- createArgument("peers", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_ICP_PEERS, "URL for ICP Peers config file <url>", (char *) NULL);
- return 0;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigPortTunnles
-//
-// Register "config:PortTunnles" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigPortTunnels()
-{
-
- createArgument("server-other-ports", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_PORT_TUNNELS_SERVER_OTHER_PORTS, "Set the tunnel port number <int>",
- (char *) NULL);
- return 0;
-}
-
-
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigScheduledUpdate
-//
-// This is the callback function for the "config:scheduled-update" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigScheduledUpdate(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:scheduled-update") == CLI_ERROR) {
- return CMD_ERROR;
- }
- Cli_Debug("Cmd_ConfigScheduledUpdate argc %d\n", argc);
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
-
- int action = (argc == 3) ? RECORD_SET : RECORD_GET;
-
- if (argtable->parsed_args != CLI_PARSED_ARGV_END) {
- switch (argtable->parsed_args) {
- case CMD_CONFIG_SCHEDULED_UPDATE_STATUS:
- return (Cli_RecordOnOff_Action(action, "proxy.config.update.enabled", argtable->arg_string));
-
- case CMD_CONFIG_SCHEDULED_UPDATE_RETRY_COUNT:
- return (Cli_RecordInt_Action(action, "proxy.config.update.retry_count", argtable->arg_int));
-
- case CMD_CONFIG_SCHEDULED_UPDATE_RETRY_INTERVAL:
- return (Cli_RecordInt_Action(action, "proxy.config.update.retry_interval", argtable->arg_int));
-
- case CMD_CONFIG_SCHEDULED_UPDATE_MAX_CONCURRENT:
- return (Cli_RecordInt_Action(action, "proxy.config.update.concurrent_updates", argtable->arg_int));
-
- case CMD_CONFIG_SCHEDULED_UPDATE_FORCE_IMMEDIATE:
- return (Cli_RecordOnOff_Action(action, "proxy.config.update.force", argtable->arg_string));
-
- case CMD_CONFIG_SCHEDULED_UPDATE_RULES:
- return (Cli_ConfigFileURL_Action(TS_FNAME_UPDATE_URL, "update.config", argtable->arg_string));
- }
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigScheduled-Update
-//
-// Register "config:Scheduled-Update" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigScheduledUpdate()
-{
- createArgument("status", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_SCHEDULED_UPDATE_STATUS, "Set scheduled-update status <on | off>",
- (char *) NULL);
- createArgument("retry-count", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_SCHEDULED_UPDATE_RETRY_COUNT, "Set retry-count <int>", (char *) NULL);
- createArgument("retry-interval", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_SCHEDULED_UPDATE_RETRY_INTERVAL, "Set retry-interval <sec>", (char *) NULL);
- createArgument("max-concurrent", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_SCHEDULED_UPDATE_MAX_CONCURRENT, "Set maximum concurrent updates",
- (char *) NULL);
- createArgument("force-immediate", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_SCHEDULED_UPDATE_FORCE_IMMEDIATE, "Set force-immediate <on | off>",
- (char *) NULL);
- createArgument("rules", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_SCHEDULED_UPDATE_RULES, "Update update.config file from url <string>",
- (char *) NULL);
-
- return 0;
-}
-
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigSocks
-//
-// This is the callback function for the "config:scheduled-update" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigSocks(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:socks") == CLI_ERROR) {
- return CMD_ERROR;
- }
- Cli_Debug("Cmd_ConfigSocks argc %d\n", argc);
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
-
- int action = (argc == 3) ? RECORD_SET : RECORD_GET;
-
- if (argtable->parsed_args != CLI_PARSED_ARGV_END) {
- switch (argtable->parsed_args) {
- case CMD_CONFIG_SOCKS_STATUS:
- return (Cli_RecordOnOff_Action(action, "proxy.config.socks.socks_needed", argtable->arg_string));
-
- case CMD_CONFIG_SOCKS_VERSION:
- return (Cli_RecordInt_Action(action, "proxy.config.socks.socks_version", argtable->arg_int));
-
- case CMD_CONFIG_SOCKS_DEFAULT_SERVERS:
- return (Cli_RecordString_Action(action, "proxy.config.socks.default_servers", argtable->arg_string));
-
- case CMD_CONFIG_SOCKS_ACCEPT:
- return (Cli_RecordOnOff_Action(action, "proxy.config.socks.accept_enabled", argtable->arg_string));
-
- case CMD_CONFIG_SOCKS_ACCEPT_PORT:
- return (Cli_RecordInt_Action(action, "proxy.config.socks.accept_port", argtable->arg_int));
- }
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigScheduled-Update
-//
-// Register "config:Scheduled-Update" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigSocks()
-{
- createArgument("status", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_SOCKS_STATUS, "Set socks status <on | off>", (char *) NULL);
-
- createArgument("version", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_SOCKS_VERSION, "Set version <int>", (char *) NULL);
-
- createArgument("default-servers", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_SOCKS_DEFAULT_SERVERS, "Set default-servers <string>", (char *) NULL);
-
- createArgument("accept", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_SOCKS_ACCEPT, "Set accept <on | off>", (char *) NULL);
-
- createArgument("accept-port", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_SOCKS_ACCEPT_PORT, "Set server accept-port <int>", (char *) NULL);
-
- return 0;
-}
-
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigCache
-//
-// This is the callback function for the "config:cache" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigCache(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:cache") == CLI_ERROR) {
- return CMD_ERROR;
- }
- Cli_Debug("Cmd_ConfigCache argc %d\n", argc);
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
-
- int action = 0;
-
- if (argtable->parsed_args != CLI_PARSED_ARGV_END) {
- switch (argtable->parsed_args) {
- case CMD_CONFIG_CACHE_HTTP:
- return (Cli_RecordOnOff_Action((argc == 3), "proxy.config.http.cache.http", argtable->arg_string));
-
- case CMD_CONFIG_CACHE_CLUSTER_BYPASS:
- return (Cli_RecordOnOff_Action((argc == 3),
- "proxy.config.http.cache.cluster_cache_local", argtable->arg_string));
- case CMD_CONFIG_CACHE_IGNORE_BYPASS:
- return (Cli_RecordOnOff_Action((argc == 3),
- "proxy.config.http.cache.ignore_client_no_cache", argtable->arg_string));
-
- case CMD_CONFIG_CACHE_MAX_OBJECT_SIZE:
- return (Cli_RecordInt_Action((argc == 3), "proxy.config.cache.max_doc_size", argtable->arg_int));
-
- case CMD_CONFIG_CACHE_MAX_ALTERNATES:
- return (Cli_RecordInt_Action((argc == 3), "proxy.config.cache.limits.http.max_alts", argtable->arg_int));
-
- case CMD_CONFIG_CACHE_FILE:
- return (Cli_ConfigFileURL_Action(TS_FNAME_CACHE_OBJ, "cache.config", argtable->arg_string));
-
- case CMD_CONFIG_CACHE_FRESHNESS:
- if (argtable[1].parsed_args != CLI_PARSED_ARGV_END) {
- switch (argtable[1].parsed_args) {
- case CMD_CONFIG_CACHE_FRESHNESS_VERIFY:
- if (argc == 4) {
- action = RECORD_SET;
- }
- return (ConfigCacheFreshnessVerify(argtable[2].parsed_args, action));
-
- case CMD_CONFIG_CACHE_FRESHNESS_MINIMUM:
- if (argc == 4) {
- action = RECORD_SET;
- }
- return (ConfigCacheFreshnessMinimum(argtable[2].parsed_args, action));
-
- case CMD_CONFIG_CACHE_FRESHNESS_NO_EXPIRE_LIMIT:
- if (argtable[2].parsed_args != CLI_PARSED_ARGV_END) {
- if ((argtable[2].parsed_args ==
- CMD_CONFIG_CACHE_FRESHNESS_NO_EXPIRE_LIMIT_GREATER_THAN) &&
- (argtable[3].parsed_args == CMD_CONFIG_CACHE_FRESHNESS_NO_EXPIRE_LIMIT_LESS_THAN) && (argc == 7)) {
- action = RECORD_SET;
- } else {
- Cli_Printf("\n config:cache freshness no-expire-limit greater-than <value> less-than<value>\n");
- return CMD_ERROR;
- }
- }
- Cli_Debug("greater than %d, less than %d \n", argtable[2].arg_int, argtable[3].arg_int);
- return (ConfigCacheFreshnessNoExpireLimit(argtable[2].arg_int, argtable[3].arg_int, action));
-
- }
- }
- Cli_Printf("\n config:cache freshness <verify | minimum | no-expire-limit> \n");
- return CMD_ERROR;
- case CMD_CONFIG_CACHE_DYNAMIC:
- return (Cli_RecordOnOff_Action((argc == 3),
- "proxy.config.http.cache.cache_urls_that_look_dynamic", argtable->arg_string));
-
- case CMD_CONFIG_CACHE_ALTERNATES:
- return (Cli_RecordOnOff_Action((argc == 3),
- "proxy.config.http.cache.enable_default_vary_headers", argtable->arg_string));
-
- case CMD_CONFIG_CACHE_VARY:
- if (argtable[1].arg_string) {
- action = RECORD_SET;
- }
- return (ConfigCacheVary(argtable[1].parsed_args, argtable[1].arg_string, action));
-
- case CMD_CONFIG_CACHE_COOKIES:
- if (argc == 3) {
- action = RECORD_SET;
- }
- return (ConfigCacheCookies(argtable[1].parsed_args, action));
- case CMD_CONFIG_CACHE_CLEAR:
- return (ConfigCacheClear());
- }
- }
-
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigCache
-//
-// Register "config:cache" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigCache()
-{
- createArgument("http", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_CACHE_HTTP, "HTTP Protocol caching <on|off>", (char *) NULL);
- createArgument("ignore-bypass", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_CACHE_IGNORE_BYPASS, "Ignore Bypass <on|off>", (char *) NULL);
- createArgument("max-object-size", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_CACHE_MAX_OBJECT_SIZE, "Maximum object size <bytes>", (char *) NULL);
- createArgument("max-alternates", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_CACHE_MAX_ALTERNATES, "Maximum alternates <int>", (char *) NULL);
- createArgument("file", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_CACHE_FILE, "Load cache.config file from url <string>", (char *) NULL);
- createArgument("freshness", 1, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_CACHE_FRESHNESS, "Freshness parameters <verify | minimum | no-expire-limit>",
- (char *) NULL);
- createArgument("verify", CMD_CONFIG_CACHE_FRESHNESS, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_CACHE_FRESHNESS_VERIFY,
- "Freshness verify <when-expired | no-date | always | never> ", (char *) NULL);
-
- createArgument("when-expired", CMD_CONFIG_CACHE_FRESHNESS_VERIFY, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_CACHE_FRESHNESS_VERIFY_WHEN_EXPIRED,
- "Set freshness verify to be when-expired", (char *) NULL);
-
- createArgument("no-date", CMD_CONFIG_CACHE_FRESHNESS_VERIFY, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_CACHE_FRESHNESS_VERIFY_NO_DATE,
- "Set freshness verify to be no-date", (char *) NULL);
-
- createArgument("always", CMD_CONFIG_CACHE_FRESHNESS_VERIFY, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_CACHE_FRESHNESS_VERIFY_ALWALYS,
- "Set freshness verify to be always", (char *) NULL);
-
- createArgument("never", CMD_CONFIG_CACHE_FRESHNESS_VERIFY, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_CACHE_FRESHNESS_VERIFY_NEVER,
- "Set the freshness verify to be never", (char *) NULL);
-
- createArgument("minimum", CMD_CONFIG_CACHE_FRESHNESS, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_CACHE_FRESHNESS_MINIMUM,
- "Set freshness minimum <explicit | last-modified | nothing>", (char *) NULL);
-
- createArgument("explicit", CMD_CONFIG_CACHE_FRESHNESS_MINIMUM, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_CACHE_FRESHNESS_MINIMUM_EXPLICIT,
- "Set the Freshness Minimum to be explicit", (char *) NULL);
-
- createArgument("last-modified", CMD_CONFIG_CACHE_FRESHNESS_MINIMUM, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_CACHE_FRESHNESS_MINIMUM_LAST_MODIFIED,
- "Set the Freshness Minimum to be last modified", (char *) NULL);
-
- createArgument("nothing", CMD_CONFIG_CACHE_FRESHNESS_MINIMUM, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_CACHE_FRESHNESS_MINIMUM_NOTHING,
- "Specify the Freshness minimum to be nothing", (char *) NULL);
-
- createArgument("no-expire-limit", CMD_CONFIG_CACHE_FRESHNESS, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_CACHE_FRESHNESS_NO_EXPIRE_LIMIT,
- "Set the Freshness no-expire-limit time", (char *) NULL);
-
- createArgument("greater-than", CLI_ARGV_NO_POS, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_CACHE_FRESHNESS_NO_EXPIRE_LIMIT_GREATER_THAN,
- "Set the minimum Freshness no-expire-limit time", (char *) NULL);
-
- createArgument("less-than", CLI_ARGV_NO_POS, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_CACHE_FRESHNESS_NO_EXPIRE_LIMIT_LESS_THAN,
- "Set the maximum Freshness no-expire-limit time", (char *) NULL);
-
- createArgument("dynamic", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_CACHE_DYNAMIC, "Set Dynamic <on|off>", (char *) NULL);
-
- createArgument("alternates", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_CACHE_ALTERNATES, "Set Alternates <on|off>", (char *) NULL);
- createArgument("vary", 1, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_CACHE_VARY, "Set vary <text | images | other> <field>", (char *) NULL);
- createArgument("text", CMD_CONFIG_CACHE_VARY, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_CACHE_VARY_TEXT, "Set vary text's value", (char *) NULL);
- createArgument("images", CLI_ARGV_NO_POS, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_CACHE_VARY_COOKIES_IMAGES, "Set vary images' value", (char *) NULL);
- createArgument("other", CMD_CONFIG_CACHE_VARY, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_CACHE_VARY_OTHER, "Set vary other's value", (char *) NULL);
-
- createArgument("cookies", 1, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_CACHE_COOKIES, "Set cookies <none | all | images | non-text | non-text-ext>",
- (char *) NULL);
- createArgument("none", CMD_CONFIG_CACHE_COOKIES, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_CACHE_COOKIES_NONE, "No cookies", (char *) NULL);
- createArgument("all", CMD_CONFIG_CACHE_COOKIES, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_CACHE_COOKIES_ALL, "All cookies", (char *) NULL);
- createArgument("non-text", CMD_CONFIG_CACHE_COOKIES, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_CACHE_COOKIES_NON_TEXT, "Non-text cookies", (char *) NULL);
- createArgument("non-text-ext", CMD_CONFIG_CACHE_COOKIES, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_CACHE_COOKIES_NON_TEXT_EXT, "Non-text-ext cookies", (char *) NULL);
- createArgument("clear", 1, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_CACHE_CLEAR, "Clear the cache and start Traffic Server", (char *) NULL);
- return 0;
-}
-
-
-
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigHostdb
-//
-// This is the callback function for the "config:hostdb" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigHostdb(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:hostdb") == CLI_ERROR) {
- return CMD_ERROR;
- }
- Cli_Debug("Cmd_ConfigHostdb argc %d\n", argc);
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
-
- int action = (argc == 3) ? RECORD_SET : RECORD_GET;
-
- if (argtable->parsed_args != CLI_PARSED_ARGV_END) {
- switch (argtable->parsed_args) {
- case CMD_CONFIG_HOSTDB_LOOKUP_TIMEOUT:
- return (Cli_RecordInt_Action(action, "proxy.config.hostdb.lookup_timeout", argtable->arg_int));
-
- case CMD_CONFIG_HOSTDB_FOREGROUND_TIMEOUT:
- return (Cli_RecordInt_Action(action, "proxy.config.hostdb.timeout", argtable->arg_int));
-
- case CMD_CONFIG_HOSTDB_BACKGROUND_TIMEOUT:
- return (Cli_RecordInt_Action(action, "proxy.config.hostdb.verify_after", argtable->arg_int));
-
- case CMD_CONFIG_HOSTDB_INVALID_HOST_TIMEOUT:
- return (Cli_RecordInt_Action(action, "proxy.config.hostdb.fail.timeout", argtable->arg_int));
-
- case CMD_CONFIG_HOSTDB_RE_DNS_ON_RELOAD:
- return (Cli_RecordOnOff_Action(action, "proxy.config.hostdb.re_dns_on_reload", argtable->arg_string));
- case CMD_CONFIG_HOSTDB_CLEAR:
- return (ConfigHostdbClear());
- }
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigHostdb
-//
-// Register "config:Hostdb" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigHostdb()
-{
- createArgument("lookup-timeout", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_HOSTDB_LOOKUP_TIMEOUT, "Lookup Timeout <seconds>", (char *) NULL);
- createArgument("foreground-timeout", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_HOSTDB_FOREGROUND_TIMEOUT, "Foreground Timeout <minutes>", (char *) NULL);
- createArgument("background-timeout", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_HOSTDB_BACKGROUND_TIMEOUT, "Background Timeout <minutes>", (char *) NULL);
- createArgument("invalid-host-timeout", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_HOSTDB_INVALID_HOST_TIMEOUT, "Invalid Host Timeout <minutes>",
- (char *) NULL);
- createArgument("re-dns-on-reload", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_HOSTDB_RE_DNS_ON_RELOAD, "Re-DNS on Reload Timeout <on|off>", (char *) NULL);
- createArgument("clear", 1, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_HOSTDB_CLEAR, "Clear the HostDB and start Traffic Server", (char *) NULL);
- return 0;
-}
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigDns
-//
-// This is the callback function for the "config:dns" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigDns(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:dns") == CLI_ERROR) {
- return CMD_ERROR;
- }
- Cli_Debug("Cmd_ConfigDns argc %d\n", argc);
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
-
- int action = (argc == 3) ? RECORD_SET : RECORD_GET;
-
- if (argtable->parsed_args != CLI_PARSED_ARGV_END) {
- switch (argtable->parsed_args) {
- case CMD_CONFIG_DNS_RESOLVE_TIMEOUT:
- return (Cli_RecordInt_Action(action, "proxy.config.dns.lookup_timeout", argtable->arg_int));
-
- case CMD_CONFIG_DNS_RETRIES:
- return (Cli_RecordInt_Action(action, "proxy.config.dns.retries", argtable->arg_int));
- }
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigDns
-//
-// Register "config:dns" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigDns()
-{
- createArgument("resolve-timeout", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_DNS_RESOLVE_TIMEOUT, "Resolve timeout <int>", (char *) NULL);
- createArgument("retries", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_DNS_RETRIES, "Number of retries <int>", (char *) NULL);
-
- return 0;
-}
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigVirtualip
-//
-// This is the callback function for the "config:virtualip" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigVirtualip(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:virtualip") == CLI_ERROR) {
- return CMD_ERROR;
- }
- Cli_Debug("Cmd_ConfigCache argc %d\n", argc);
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
-
- int setvar = 0;
-
- if (argtable->parsed_args != CLI_PARSED_ARGV_END) {
- switch (argtable->parsed_args) {
- case CMD_CONFIG_VIRTUALIP_STATUS:
- return (Cli_RecordOnOff_Action((argc == 3), "proxy.config.vmap.enabled", argtable->arg_string));
-
- case CMD_CONFIG_VIRTUALIP_LIST:
- return (ConfigVirtualIpList());
-
- case CMD_CONFIG_VIRTUALIP_ADD:
- if (argc == 8) {
- setvar = 1;
- }
- Cli_PrintArg(0, argtable);
- Cli_PrintArg(1, argtable);
- Cli_PrintArg(2, argtable);
- Cli_PrintArg(3, argtable);
- if (ConfigVirtualipAdd(argtable[1].arg_string, argtable[2].arg_string, argtable[3].arg_int, setvar) == CLI_OK) {
- return CMD_OK;
- } else {
- return CMD_ERROR;
- }
-
- case CMD_CONFIG_VIRTUALIP_DELETE:
- if (argc == 3) {
- setvar = 1;
- }
- if (ConfigVirtualipDelete(argtable[0].arg_int, setvar) == CLI_OK) {
- return CMD_OK;
- } else {
- return CMD_ERROR;
- }
- }
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigVirtualip
-//
-// Register "config:virtualip" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigVirtualip()
-{
-
- createArgument("status", CLI_ARGV_NO_POS, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_VIRTUALIP_STATUS, "Virtual IP <on | off>", (char *) NULL);
- createArgument("list", 1, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_VIRTUALIP_LIST, "List virtual IP addresses", (char *) NULL);
- createArgument("add", 1, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_VIRTUALIP_ADD, "add ip <x.x.x.x> device <string> sub-intf <int>",
- (char *) NULL);
- createArgument("ip", CMD_CONFIG_VIRTUALIP_ADD, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_VIRTUALIP_ADD_IP, "Virtual IP Address <x.x.x.x>", (char *) NULL);
- createArgument("device", CMD_CONFIG_VIRTUALIP_ADD_IP, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_VIRTUALIP_ADD_DEVICE, "Virtual IP device <string>", (char *) NULL);
- createArgument("sub-intf", CMD_CONFIG_VIRTUALIP_ADD_DEVICE, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_VIRTUALIP_ADD_SUBINTERFACE, "Virtual IP sub interface <integer>",
- (char *) NULL);
- createArgument("delete", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_VIRTUALIP_DELETE, "Delete Virtual IP <integer>", (char *) NULL);
- return CLI_OK;
-}
-
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigLogging
-//
-// This is the callback function for the "config:logging" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigLogging(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:logging") == CLI_ERROR) {
- return CMD_ERROR;
- }
- Cli_Debug("Cmd_ConfigCache argc %d\n", argc);
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
-
- int setvar = 0;
-
- if (argtable->parsed_args != CLI_PARSED_ARGV_END) {
- switch (argtable->parsed_args) {
- case CMD_CONFIG_LOGGING_EVENT:
- if (argc == 3) {
- setvar = 1;
- }
- return (ConfigLoggingEvent(argtable[1].parsed_args, setvar));
- case CMD_CONFIG_LOGGING_MGMT_DIRECTORY:
- return (Cli_RecordString_Action((argc == 3), "proxy.config.log.logfile_dir", argtable->arg_string));
-
- case CMD_CONFIG_LOGGING_SPACE_LIMIT:
- return (Cli_RecordInt_Action((argc == 3), "proxy.config.log.max_space_mb_for_logs", argtable->arg_int));
-
- case CMD_CONFIG_LOGGING_SPACE_HEADROOM:
- return (Cli_RecordInt_Action((argc == 3), "proxy.config.log.max_space_mb_headroom", argtable->arg_int));
-
- case CMD_CONFIG_LOGGING_COLLATION_STATUS:
- if (argc == 3) {
- setvar = 1;
- }
- return (ConfigLoggingCollationStatus(argtable[1].parsed_args, setvar));
- case CMD_CONFIG_LOGGING_COLLATION_HOST:
- return (Cli_RecordString_Action((argc == 3), "proxy.config.log.collation_host", argtable->arg_string));
-
- case CMD_CONFIG_LOGGING_COLLATION:
- if (argc == 8) {
- setvar = 1;
- }
- Cli_PrintArg(1, argtable);
- Cli_PrintArg(2, argtable);
- Cli_PrintArg(3, argtable);
- Cli_PrintArg(4, argtable);
- return (ConfigLoggingCollation(argtable[1].arg_string, argtable[3].parsed_args, argtable[4].arg_int, setvar));
- case CMD_CONFIG_LOGGING_AND_CUSTOM_FORMAT:
- if (argc == 10) {
- setvar = 1;
- }
- Cli_PrintArg(1, argtable);
- Cli_PrintArg(2, argtable);
- Cli_PrintArg(3, argtable);
- Cli_PrintArg(4, argtable);
- Cli_PrintArg(5, argtable);
- Cli_PrintArg(6, argtable);
- return (ConfigLoggingFormatTypeFile(argtable[1].parsed_args,
- argtable[2].parsed_args,
- argtable[4].parsed_args,
- argtable[5].arg_string, argtable[6].arg_string, setvar));
- case CMD_CONFIG_LOGGING_SPLITTING:
- if (argc == 4) {
- setvar = 1;
- }
- Cli_PrintArg(1, argtable);
- Cli_PrintArg(2, argtable);
- return (ConfigLoggingSplitting(argtable[1].parsed_args, argtable[2].parsed_args, setvar));
-
- case CMD_CONFIG_LOGGING_CUSTOM:
- if (argc == 5) {
- setvar = 1;
- }
- Cli_PrintArg(1, argtable);
- Cli_PrintArg(2, argtable);
- Cli_PrintArg(3, argtable);
- return (ConfigLoggingCustomFormat(argtable[1].parsed_args, argtable[3].parsed_args, setvar));
-
- case CMD_CONFIG_LOGGING_ROLLING:
- if (argc == 9) {
- setvar = 1;
- }
- Cli_PrintArg(1, argtable);
- Cli_PrintArg(2, argtable);
- Cli_PrintArg(3, argtable);
- Cli_PrintArg(4, argtable);
- Cli_PrintArg(5, argtable);
- return (ConfigLoggingRollingOffsetIntervalAutodelete(argtable[1].parsed_args,
- argtable[2].arg_int,
- argtable[3].arg_int, argtable[5].parsed_args, setvar));
-
- }
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigLogging
-//
-// Register "config:logging" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigLogging()
-{
-
- createArgument("on", CLI_ARGV_NO_POS, CLI_ARGV_REQUIRED,
- (char *) NULL, CMD_CONFIG_LOGGING_ON, "Enable logging", (char *) NULL);
- createArgument("off", CLI_ARGV_NO_POS, CLI_ARGV_REQUIRED,
- (char *) NULL, CMD_CONFIG_LOGGING_OFF, "Disable logging", (char *) NULL);
- createArgument("event", 1, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_EVENT, "Events <enabled | trans-only | error-only | disabled>",
- (char *) NULL);
- createArgument("enabled", CMD_CONFIG_LOGGING_EVENT, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_LOGGING_EVENT_ENABLED, "Event logging enabled", (char *) NULL);
- createArgument("trans-only", CMD_CONFIG_LOGGING_EVENT, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_LOGGING_EVENT_TRANS_ONLY, "Event logging for transactions only",
- (char *) NULL);
- createArgument("error-only", CMD_CONFIG_LOGGING_EVENT, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_LOGGING_EVENT_ERROR_ONLY, "Event logging for errors only", (char *) NULL);
- createArgument("disabled", CMD_CONFIG_LOGGING_EVENT, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_LOGGING_EVENT_DISABLED, "Event logging is disabled", (char *) NULL);
- createArgument("mgmt-directory", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_LOGGING_MGMT_DIRECTORY, "Logging MGMT directory <string>", (char *) NULL);
- createArgument("space-limit", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_LOGGING_SPACE_LIMIT, "Space limit for logs <mb>", (char *) NULL);
- createArgument("space-headroom", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_LOGGING_SPACE_HEADROOM, "Space for headroom <mb>", (char *) NULL);
- createArgument("collation-status", 1, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_COLLATION_STATUS,
- "Collation status <inactive | host | send-standard |\n" " send-custom | send-all>",
- (char *) NULL);
- createArgument("inactive", CMD_CONFIG_LOGGING_COLLATION_STATUS, CLI_ARGV_CONSTANT, (char *) NULL,
- CMD_CONFIG_LOGGING_COLLATION_STATUS_INACTIVE, "No collation", (char *) NULL);
- createArgument("host", CMD_CONFIG_LOGGING_COLLATION_STATUS, CLI_ARGV_CONSTANT, (char *) NULL,
- CMD_CONFIG_LOGGING_COLLATION_STATUS_HOST, "Be a collation host (receiver)", (char *) NULL);
- createArgument("send-standard", CMD_CONFIG_LOGGING_COLLATION_STATUS, CLI_ARGV_OPTION_NAME_VALUE, (char *) NULL,
- CMD_CONFIG_LOGGING_COLLATION_STATUS_SEND_STANDARD, "Send standard logs", (char *) NULL);
- createArgument("send-custom", CMD_CONFIG_LOGGING_COLLATION_STATUS, CLI_ARGV_OPTION_NAME_VALUE, (char *) NULL,
- CMD_CONFIG_LOGGING_COLLATION_STATUS_SEND_CUSTOM, "Send custom logs", (char *) NULL);
- createArgument("send-all", CMD_CONFIG_LOGGING_COLLATION_STATUS, CLI_ARGV_OPTION_NAME_VALUE, (char *) NULL,
- CMD_CONFIG_LOGGING_COLLATION_STATUS_SEND_ALL, "Send all logs", (char *) NULL);
- createArgument("collation-host", 1, CLI_ARGV_OPTION_NAME_VALUE, (char *) NULL, CMD_CONFIG_LOGGING_COLLATION_HOST,
- "Specify the collation host <string>", (char *) NULL);
-
- createArgument("collation", 1, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_COLLATION, "Collation parameters secret <secret> tagged <on | off>\n"
- " orphan-limit <orphan>", (char *) NULL);
-
- createArgument("secret", CMD_CONFIG_LOGGING_COLLATION, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_LOGGING_COLLATION_SECRET, "Collation secret is <string>", (char *) NULL);
-
- createArgument("tagged", CLI_ARGV_NO_POS, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_COLLATION_TAGGED, "Collation tagged is <on | off>", (char *) NULL);
-
- createArgument("orphan-limit", CLI_ARGV_NO_POS, CLI_ARGV_INT,
- (char *) NULL, CMD_CONFIG_LOGGING_COLLATION_ORPHAN_LIMIT,
- "Collation orphan limit size <mb>", (char *) NULL);
-
- createArgument("format", CLI_ARGV_NO_POS, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_AND_CUSTOM_FORMAT,
- "Logging format <squid | netscape-common | netscape-ext |\n"
- " netscape-ext2>", (char *) NULL);
-
- createArgument("squid", CMD_CONFIG_LOGGING_AND_CUSTOM_FORMAT, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_FORMAT_SQUID, "Squid <on | off>", (char *) NULL);
- createArgument("netscape-common", CMD_CONFIG_LOGGING_AND_CUSTOM_FORMAT, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_FORMAT_NETSCAPE_COMMON, "Netscape Common <on | off>", (char *) NULL);
- createArgument("netscape-ext", CMD_CONFIG_LOGGING_AND_CUSTOM_FORMAT, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_FORMAT_NETSCAPE_EXT, "Netscape Extended <on | off>", (char *) NULL);
- createArgument("netscape-ext2", CMD_CONFIG_LOGGING_AND_CUSTOM_FORMAT, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_FORMAT_NETSCAPE_EXT2,
- "Netscape Extended 2 <on | off>", (char *) NULL);
-
- createArgument("type", CLI_ARGV_NO_POS, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_TYPE, "Logging type <ascii | binary>", (char *) NULL);
- createArgument("ascii", CMD_CONFIG_LOGGING_TYPE, CLI_ARGV_REQUIRED,
- (char *) NULL, CMD_CONFIG_LOGGING_TYPE_ASCII, "ASCII log files", (char *) NULL);
- createArgument("binary", CMD_CONFIG_LOGGING_TYPE, CLI_ARGV_REQUIRED,
- (char *) NULL, CMD_CONFIG_LOGGING_TYPE_BINARY, "Binary log files", (char *) NULL);
-
- createArgument("file", CLI_ARGV_NO_POS, CLI_ARGV_STRING,
- (char *) NULL, CMD_CONFIG_LOGGING_FILE, "Log file name <string>", (char *) NULL);
-
- createArgument("header", CLI_ARGV_NO_POS, CLI_ARGV_STRING,
- (char *) NULL, CMD_CONFIG_LOGGING_HEADER, "Log file header <string>", (char *) NULL);
-
- createArgument("splitting", 1, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_SPLITTING,
- "Splitting of logs for protocols <icp | http>", (char *) NULL);
- createArgument("icp", CMD_CONFIG_LOGGING_SPLITTING, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_SPLITTING_ICP, "Split ICP <on | off>", (char *) NULL);
- createArgument("http", CMD_CONFIG_LOGGING_SPLITTING, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_SPLITTING_HTTP, "Split of HTTP <on | off>", (char *) NULL);
-
- createArgument("custom", 1, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_CUSTOM,
- "Custom Logging <on | off>", (char *) NULL);
-
- createArgument("rolling", 1, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_ROLLING,
- "Log file rolling <on | off> offset <hour>\n"
- " interval <num-hours> auto-delete <on | off>", (char *) NULL);
-
- createArgument("offset", CLI_ARGV_NO_POS, CLI_ARGV_INT,
- (char *) NULL, CMD_CONFIG_LOGGING_OFFSET, "Rolling offset <hour> (24hour format)", (char *) NULL);
-
- createArgument("interval", CLI_ARGV_NO_POS, CLI_ARGV_INT,
- (char *) NULL, CMD_CONFIG_LOGGING_INTERVAL, "Rolling interval <seconds>", (char *) NULL);
- createArgument("auto-delete", CLI_ARGV_NO_POS, CLI_ARGV_CONST_OPTION,
- (char *) NULL, CMD_CONFIG_LOGGING_AUTO_DELETE, "Auto delete <on | off>", (char *) NULL);
- return 0;
-
-
-}
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigSsl
-//
-// This is the callback function for the "config:ssl" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigSsl(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
-
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:ssl") == CLI_ERROR) {
- return CMD_ERROR;
- }
- Cli_Debug("Cmd_ConfigSsl argc %d\n", argc);
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
-
- int action = (argc == 3) ? RECORD_SET : RECORD_GET;
-
- if (argtable->parsed_args != CLI_PARSED_ARGV_END) {
- switch (argtable->parsed_args) {
- case CMD_CONFIG_SSL_STATUS:
- return (Cli_RecordOnOff_Action(action, "proxy.config.ssl.enabled", argtable->arg_string));
-
- case CMD_CONFIG_SSL_PORT:
- return (Cli_RecordInt_Action(action, "proxy.config.ssl.server_port", argtable->arg_int));
- }
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigSsl
-//
-// Register "config:ssl" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigSsl()
-{
- createArgument("status", CLI_ARGV_NO_POS, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_SSL_STATUS, "SSL <on | off>", (char *) NULL);
-
- createArgument("ports", CLI_ARGV_NO_POS, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_SSL_PORT, "SSL port <int>", (char *) NULL);
- return 0;
-}
-
-
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigAlarm
-//
-// This is the callback function for the "config:alarm" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigAlarm(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[])
-{
- /* call to processArgForCommand must appear at the beginning
- * of each command's callback function
- */
- if (processArgForCommand(interp, argc, argv) != CLI_OK) {
- return CMD_ERROR;
- }
-
- if (processHelpCommand(argc, argv) == CLI_OK)
- return CMD_OK;
-
- if (cliCheckIfEnabled("config:alarm") == CLI_ERROR) {
- return CMD_ERROR;
- }
- Cli_Debug("Cmd_ConfigAlarm argc %d\n", argc);
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
-
- if (argtable->parsed_args != CLI_PARSED_ARGV_END) {
- switch (argtable->parsed_args) {
- case CMD_CONFIG_ALARM_RESOLVE_NAME:
- if (argc < 3) {
- return (ShowAlarms());
- }
- return (ConfigAlarmResolveName(argtable->arg_string));
- case CMD_CONFIG_ALARM_RESOLVE_NUMBER:
- if (argc < 3) {
- return (ShowAlarms());
- }
- return (ConfigAlarmResolveNumber(argtable->arg_int));
- case CMD_CONFIG_ALARM_RESOLVE_ALL:
- return (ConfigAlarmResolveAll());
- case CMD_CONFIG_ALARM_NOTIFY:
- Cli_Debug("Cmd_ConfigAlarm \"%s\"\n", argtable->arg_string);
- return (ConfigAlarmNotify(argtable->arg_string));
- }
- }
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigAlarm
-//
-// Register "config:alarm" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigAlarm()
-{
- createArgument("resolve-name", CLI_ARGV_NO_POS, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_ALARM_RESOLVE_NAME, "Resolve by name <string>", (char *) NULL);
-
- createArgument("resolve-number", CLI_ARGV_NO_POS, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_ALARM_RESOLVE_NUMBER, "Resolve by number from list <int>", (char *) NULL);
-
- createArgument("resolve-all", CLI_ARGV_NO_POS, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_ALARM_RESOLVE_ALL, "Resolve all alarms", (char *) NULL);
-
- createArgument("notify", CLI_ARGV_NO_POS, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_ALARM_NOTIFY, "Alarm notification <on | off>", (char *) NULL);
- return CLI_OK;
-}
-
-
-////////////////////////////////////////////////////////////////
-//
-// "config" sub-command implementations
-//
-////////////////////////////////////////////////////////////////
-
-
-// config start sub-command
-int
-ConfigStart()
-{
- TSProxyStateT state = TSProxyStateGet();
-
- switch (state) {
- case TS_PROXY_ON:
- // do nothing, proxy is already on
- Cli_Error(ERR_PROXY_STATE_ALREADY, "on");
- break;
- case TS_PROXY_OFF:
- case TS_PROXY_UNDEFINED:
- if (TSProxyStateSet(TS_PROXY_ON, TS_CACHE_CLEAR_OFF)) {
- Cli_Error(ERR_PROXY_STATE_SET, "on");
- return CLI_ERROR;
- }
- break;
- }
- return CLI_OK;
-}
-
-// config stop sub-command
-int
-ConfigStop()
-{
- TSProxyStateT state = TSProxyStateGet();
-
- switch (state) {
- case TS_PROXY_OFF:
- // do nothing, proxy is already off
- Cli_Error(ERR_PROXY_STATE_ALREADY, "off");
- break;
- case TS_PROXY_ON:
- case TS_PROXY_UNDEFINED:
- if (TSProxyStateSet(TS_PROXY_OFF, TS_CACHE_CLEAR_OFF)) {
- Cli_Error(ERR_PROXY_STATE_SET, "off");
- return CLI_ERROR;
- }
- break;
- }
- return CLI_OK;
-}
-
-// config get sub-command
-// used to get the value of any config variable in records.config
-int
-ConfigGet(const char *rec_name)
-{
- Cli_Debug("ConfigGet: rec_name %s\n", rec_name);
-
- TSMgmtError status;
- TSRecordEle rec_val;
-
- status = Cli_RecordGet(rec_name, &rec_val);
-
- if (status) {
- return status;
- }
- // display the result
-
- switch (rec_val.rec_type) {
- case TS_REC_INT: // TS64 aka "long long"
- Cli_Printf("%s = %d\n", rec_name, (int) rec_val.int_val);
- break;
- case TS_REC_COUNTER: // TS64 aka "long long"
- Cli_Printf("%s = %d\n", rec_name, (int) rec_val.counter_val);
- break;
- case TS_REC_FLOAT: // float
- Cli_Printf("%s = %f\n", rec_name, rec_val.float_val);
- break;
- case TS_REC_STRING: // char*
- Cli_Printf("%s = \"%s\"\n", rec_name, rec_val.string_val);
- break;
- case TS_REC_UNDEFINED: // what's this???
- Cli_Printf("%s = UNDEFINED\n", rec_name);
- break;
- }
-
- return CLI_OK;
-}
-
-// config set sub-command
-// used to set the value of any variable in records.config
-
-int
-ConfigSet(const char *rec_name, const char *value)
-{
- Cli_Debug("ConfigSet: rec_name %s value %s\n", rec_name, value);
-
- TSMgmtError status;
- TSActionNeedT action_need;
-
- status = Cli_RecordSet(rec_name, value, &action_need);
- if (status) {
- return status;
- }
-
- return (Cli_ConfigEnactChanges(action_need));
-}
-
-// config name sub-command
-// used to set or display the value of proxy.config.proxy_name
-
-int
-ConfigName(const char *proxy_name)
-{
- TSMgmtError status = TS_ERR_OKAY;
- TSString str_val = NULL;
- TSActionNeedT action_need;
-
- if (proxy_name) { // set the name
-
- Cli_Debug("ConfigName: set name proxy_name %s\n", proxy_name);
-
- status = Cli_RecordSetString("proxy.config.proxy_name", (TSString) proxy_name, &action_need);
-
- if (status) {
- return status;
- }
-
- return (Cli_ConfigEnactChanges(action_need));
-
- }
-
- else { // display the name
- Cli_Debug("ConfigName: get name\n");
-
- status = Cli_RecordGetString("proxy.config.proxy_name", &str_val);
- if (status) {
- return status;
- }
-
- if (str_val) {
- Cli_Printf("%s\n", str_val);
- } else {
- Cli_Printf("none\n");
- }
- }
-
- return CLI_OK;
-
-}
-
-// config ports sub-command
-// used to set the value of port(s)
-
-int
-ConfigPortsSet(int arg_ref, void *valuePtr)
-{
-
- switch (arg_ref) {
- case CMD_CONFIG_PORTS_CONNECT:
- Cli_Debug("ConfigPortsSet: arg_ref %d value %s\n", arg_ref, (char *) valuePtr);
- break;
- default:
- Cli_Debug("ConfigPortsSet: arg_ref %d value %d\n", arg_ref, *(TSInt *) valuePtr);
- }
-
- TSMgmtError status = TS_ERR_OKAY;
- TSActionNeedT action_need = TS_ACTION_UNDEFINED;
-
- Cli_Debug("ConfigPorts: set\n");
- switch (arg_ref) {
- case CMD_CONFIG_PORTS_HTTP_SERVER:
- status = Cli_RecordSetInt("proxy.config.http.server_port", *(TSInt *) valuePtr, &action_need);
- break;
- case CMD_CONFIG_PORTS_CLUSTER:
- status = Cli_RecordSetInt("proxy.config.cluster.cluster_port", *(TSInt *) valuePtr, &action_need);
- break;
- case CMD_CONFIG_PORTS_CLUSTER_RS:
- status = Cli_RecordSetInt("proxy.config.cluster.rsport", *(TSInt *) valuePtr, &action_need);
- break;
- case CMD_CONFIG_PORTS_CLUSTER_MC:
- status = Cli_RecordSetInt("proxy.config.cluster.mcport", *(TSInt *) valuePtr, &action_need);
- break;
- case CMD_CONFIG_PORTS_CONNECT:
- status = Cli_RecordSetString("proxy.config.http.connect_ports", (TSString) valuePtr, &action_need);
- break;
- case CMD_CONFIG_PORTS_SOCKS_SERVER:
- status = Cli_RecordSetInt("proxy.config.socks.socks_server_port", *(TSInt *) valuePtr, &action_need);
- break;
- case CMD_CONFIG_PORTS_ICP:
- status = Cli_RecordSetInt("proxy.config.icp.icp_port", *(TSInt *) valuePtr, &action_need);
- break;
- }
-
- if (status) {
- return status;
- }
-
- return (Cli_ConfigEnactChanges(action_need));
-
-}
-
-// config ports sub-command
-// used to display the value of port(s)
-
-int
-ConfigPortsGet(int arg_ref)
-{
- TSMgmtError status = TS_ERR_OKAY;
- TSInt int_val = -1;
- TSString str_val = NULL;
-
- Cli_Debug("ConfigPortsGet: get\n");
-
- switch (arg_ref) {
- case CMD_CONFIG_PORTS_HTTP_SERVER:
- status = Cli_RecordGetInt("proxy.config.http.server_port", &int_val);
- if (status) {
- return status;
- }
- Cli_Printf("%d\n", int_val);
- break;
- case CMD_CONFIG_PORTS_CLUSTER:
- status = Cli_RecordGetInt("proxy.config.cluster.cluster_port", &int_val);
- if (status) {
- return status;
- }
- Cli_Printf("%d\n", int_val);
- break;
- case CMD_CONFIG_PORTS_CLUSTER_RS:
- status = Cli_RecordGetInt("proxy.config.cluster.rsport", &int_val);
- if (status) {
- return status;
- }
- Cli_Printf("%d\n", int_val);
- break;
- case CMD_CONFIG_PORTS_CLUSTER_MC:
- status = Cli_RecordGetInt("proxy.config.cluster.mcport", &int_val);
- if (status) {
- return status;
- }
- Cli_Printf("%d\n", int_val);
- break;
- case CMD_CONFIG_PORTS_CONNECT:
- status = Cli_RecordGetString("proxy.config.http.connect_ports", &str_val);
- if (status) {
- return status;
- }
- if (str_val) {
- Cli_Printf("%s\n", str_val);
- } else {
- Cli_Printf("none\n");
- }
- break;
- case CMD_CONFIG_PORTS_SOCKS_SERVER:
- status = Cli_RecordGetInt("proxy.config.socks.socks_server_port", &int_val);
- if (status) {
- return status;
- }
- Cli_Printf("%d\n", int_val);
- break;
- case CMD_CONFIG_PORTS_ICP:
- status = Cli_RecordGetInt("proxy.config.icp.icp_port", &int_val);
- if (status) {
- return status;
- }
- Cli_Printf("%d\n", int_val);
- break;
- default:
- Cli_Error(ERR_COMMAND_SYNTAX,
- "\n\nconfig:ports <http-server | http-other | webui | cluster-rs | cluster-mc | \n ssl | \n socks-server | icp > \n <port | ports list>\n");
-
- return CLI_ERROR;
- }
- return CLI_OK;
-}
-
-int
-ConfigSecurityPasswd()
-{
- Cli_Debug("ConfigSecurityPasswd\n");
- Cli_Printf("This command is currently a no-op");
- return CLI_OK;
-}
-
-// config remap sub-command
-int
-ConfigRemap(const char *url)
-{
- Cli_Debug("ConfigRemap: url %s\n", url);
-
- return (Cli_SetConfigFileFromUrl(TS_FNAME_REMAP, url));
-}
-
-
-int
-ConfigTimezoneList()
-{
- FILE *fp, *tmp;
- const char *zonetable = "/usr/share/zoneinfo/zone.tab";
- char buffer[1024];
- char old_zone[1024];
- char *zone;
-
- fp = fopen(zonetable, "r");
- tmp = fopen("/tmp/zonetab.tmp", "w");
- if (fp == NULL || tmp == NULL) {
- printf("can not open the file\n");
- return CLI_ERROR;
- }
- ATS_UNUSED_RETURN(fgets(buffer, 1024, fp));
- while (!feof(fp)) {
- if (buffer[0] != '#') {
- strtok(buffer, " \t");
- strtok(NULL, " \t");
- zone = strtok(NULL, " \t");
- if (zone[strlen(zone) - 1] == '\n') {
- zone[strlen(zone) - 1] = '\0';
- }
- fprintf(tmp, "%s\n", zone);
- }
- ATS_UNUSED_RETURN(fgets(buffer, 1024, fp));
- }
- fclose(fp);
- fclose(tmp);
- remove("/tmp/zonetab");
- if (system("/bin/sort /tmp/zonetab.tmp > /tmp/zonetab") == -1) {
- printf("can not sort zonetab.tmp\n");
- return CLI_ERROR;
- }
-
- fp = fopen("/tmp/zonetab", "r");
- ATS_UNUSED_RETURN(fgets(buffer, 1024, fp));
- int i = 0;
- while (!feof(fp)) {
- zone = buffer;
- if (zone[strlen(zone) - 1] == '\n') {
- zone[strlen(zone) - 1] = '\0';
- }
- if (strcmp(zone, old_zone) == 0) {
- Cli_Printf("%d %s\n", i, zone);
- } else {
- Cli_Printf("%d %s\n", i, zone);
- }
- ATS_UNUSED_RETURN(fgets(buffer, 1024, fp));
- i++;
- }
- fclose(fp);
- remove("/tmp/zonetab.tmp");
- remove("/tmp/zonetab");
-
- return CLI_OK;
-
-}
-
-// config http proxy sub-command
-int
-ConfigHttpProxy(int arg_ref, int setvar)
-{
- Cli_Debug("ConfigHttpProxy: proxy %d\n", arg_ref);
-
- TSInt rmp_val = 0;
- TSInt rev_val = 0;
- TSActionNeedT action_need = TS_ACTION_UNDEFINED;
- TSMgmtError status = TS_ERR_OKAY;
-
- switch (setvar) {
- case 0: //get
-
- status = Cli_RecordGetInt("proxy.config.reverse_proxy.enabled", &rev_val);
- if (status) {
- return status;
- }
- status = Cli_RecordGetInt("proxy.config.url_remap.remap_required", &rmp_val);
- if (status) {
- return status;
- }
- if ((rev_val) && (rmp_val)) {
- Cli_Printf("rev\n");
-
<TRUNCATED>