You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by jp...@apache.org on 2014/04/23 19:02:34 UTC
[2/3] git commit: TS-645: remove references to StartTrafficServer()
and StopTrafficServer()
TS-645: remove references to StartTrafficServer() and StopTrafficServer()
The reason we remove those functions (ConfigClock, ConfigDate,
ConfitTime, etc..) is because they are entirely Linux specific, use
hard-coded paths, and assume that our Admins, while clue-less, will know
how to use this undocumented traffic_shell program
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/a3b17cc9
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/a3b17cc9
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/a3b17cc9
Branch: refs/heads/master
Commit: a3b17cc911e2833b1f5e48dfcaf41a1a2d0cd530
Parents: 51b979e
Author: Igor Galić <i....@brainsware.org>
Authored: Mon Jan 20 15:29:50 2014 +0100
Committer: James Peach <jp...@apache.org>
Committed: Wed Apr 23 10:01:14 2014 -0700
----------------------------------------------------------------------
cmd/traffic_shell/CliCreateCommands.cc | 5 -
cmd/traffic_shell/ConfigCmd.cc | 431 ----------------------------
cmd/traffic_shell/ConfigCmd.h | 26 --
3 files changed, 462 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a3b17cc9/cmd/traffic_shell/CliCreateCommands.cc
----------------------------------------------------------------------
diff --git a/cmd/traffic_shell/CliCreateCommands.cc b/cmd/traffic_shell/CliCreateCommands.cc
index 2777301..7d1ae5e 100644
--- a/cmd/traffic_shell/CliCreateCommands.cc
+++ b/cmd/traffic_shell/CliCreateCommands.cc
@@ -147,11 +147,6 @@ CliCreateCommands()
createCommand("config:remap", Cmd_ConfigRemap, NULL, CLI_COMMAND_EXTERNAL,
"config:remap <url>", "Update remap configuration file <url>");
- createCommand("config:clock", Cmd_ConfigClock, CmdArgs_ConfigClock, CLI_COMMAND_EXTERNAL,
- "config:clock date <mm/dd/yyyy>\n"
- "config:clock time <hh:mm:ss>\n"
- "config:clock timezone <number from list | list>", "Configure date, time, timezone");
-
createCommand("config:security", Cmd_ConfigSecurity, CmdArgs_ConfigSecurity, CLI_COMMAND_EXTERNAL,
"config:security <ip-allow | mgmt-allow | admin> <url-config-file>\n"
"config:security password", "Update security configuration");
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a3b17cc9/cmd/traffic_shell/ConfigCmd.cc
----------------------------------------------------------------------
diff --git a/cmd/traffic_shell/ConfigCmd.cc b/cmd/traffic_shell/ConfigCmd.cc
index ee17181..65f6400 100644
--- a/cmd/traffic_shell/ConfigCmd.cc
+++ b/cmd/traffic_shell/ConfigCmd.cc
@@ -57,8 +57,6 @@
bool enable_restricted_commands = false;
-static int find_value(const char *pathname, const char *key, char *value, int value_len, const char *delim, int no);
-
int
u_getch(void)
{
@@ -721,90 +719,6 @@ CmdArgs_ConfigPorts()
return 0;
}
-////////////////////////////////////////////////////////////////
-// Cmd_ConfigClock
-//
-// This is the callback function for the "config:clock" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int
-Cmd_ConfigClock(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:clock") == CLI_ERROR) {
- return CMD_ERROR;
- }
- Cli_Debug("Cmd_ConfigClock argc %d\n", argc);
-
- cli_cmdCallbackInfo *cmdCallbackInfo;
- cli_parsedArgInfo *argtable;
-
- cmdCallbackInfo = (cli_cmdCallbackInfo *) clientData;
- argtable = cmdCallbackInfo->parsedArgTable;
-
- Cli_PrintArg(0, argtable);
- Cli_PrintArg(1, argtable);
-
- if (argtable[0].parsed_args != CLI_PARSED_ARGV_END) {
- switch (argtable[0].parsed_args) {
- case CMD_CONFIG_DATE:
- return (ConfigDate(argtable->arg_string));
- case CMD_CONFIG_TIME:
- return (ConfigTime(argtable->arg_string));
- case CMD_CONFIG_TIMEZONE:
- if (argc == 3) {
- setvar = 1;
- }
- if (argtable[1].parsed_args == CMD_CONFIG_TIMEZONE_LIST) {
- return (ConfigTimezoneList());
- } else {
- return (ConfigTimezone(argtable->arg_int, setvar));
- }
- }
- }
-
- Cli_Error(ERR_COMMAND_SYNTAX, cmdCallbackInfo->command_usage);
- return CMD_ERROR;
-}
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigClock
-//
-// Register "config:clock" arguments with the Tcl interpreter.
-//
-int
-CmdArgs_ConfigClock()
-{
- createArgument("date", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_DATE, "System Date <mm/dd/yyyy>", (char *) NULL);
-
- createArgument("time", 1, CLI_ARGV_OPTION_NAME_VALUE,
- (char *) NULL, CMD_CONFIG_TIME, "System Time <hh:mm:ss>", (char *) NULL);
-
- createArgument("timezone", 1, CLI_ARGV_OPTION_INT_VALUE,
- (char *) NULL, CMD_CONFIG_TIMEZONE, "Time Zone", (char *) NULL);
-
- createArgument("list", CMD_CONFIG_TIMEZONE, CLI_ARGV_CONSTANT,
- (char *) NULL, CMD_CONFIG_TIMEZONE_LIST, "Display Time Zone List", (char *) NULL);
-
- return 0;
-}
////////////////////////////////////////////////////////////////
// Cmd_ConfigSecurity
@@ -2479,299 +2393,6 @@ ConfigRemap(const char *url)
return (Cli_SetConfigFileFromUrl(TS_FNAME_REMAP, url));
}
-// config date sub-command
-// used to set or display the system date
-
-int
-ConfigDate(char *datestr)
-{
-
- if (datestr) { // set the date
- Cli_Debug("ConfigDate: set date %s\n", datestr);
-
- if (getuid() != 0) {
- Cli_Printf("\nMust be \"root\" user to change the date.\n"
- "Use \"config:root\" command to switch to root user.\n");
- return CLI_ERROR;
- }
-
-
- struct tm *mPtr;
- struct timeval v;
- struct DateTime t;
- int yy, mm, dd;
-
- memset(&v, 0, sizeof(struct timeval));
- memset(&t, 0, sizeof(struct DateTime));
-
-
- // add strlen() check to avoid string overflow, so we can disable coverity check here
- // coverity[secure_coding]
- if (strlen(datestr) != 10 || sscanf(datestr, "%[0-9]/%[0-9]/%[0-9]", t.str_mm, t.str_dd, t.str_yy) != 3) {
- Cli_Printf("Error: <date> = mm/dd/yyyy \n");
- return CLI_ERROR;
- }
-
- Cli_Debug("%s-%s-%s\n", t.str_mm, t.str_dd, t.str_yy);
-
- mm = atoi(t.str_mm);
- dd = atoi(t.str_dd);
- yy = atoi(t.str_yy);
-
- Cli_Debug("%d-%d-%d\n", mm, dd, yy);
-
- if (!((dd >= 1) && (dd <= 31)
- && (mm >= 1) && (mm <= 12)
- && (yy >= 1900) && (yy <= 2100))) {
- Cli_Printf("Error: Invalid Date Value \n");
- return CLI_ERROR;
- }
-
- if (gettimeofday(&v, NULL)) {
- Cli_Debug("Error Getting Time \n");
- return CLI_ERROR;
- }
-
- mPtr = localtime((const time_t *)&(v.tv_sec));
-
- mPtr->tm_mday = dd;
- mPtr->tm_mon = mm - 1;
- mPtr->tm_year = yy - 1900;
- if ((v.tv_sec = mktime(mPtr)) < 0) {
- Cli_Printf("ERROR: invalid date \n");
- return CLI_ERROR;
- }
-
- Cli_Printf("Stopping Proxy software while changing clock settings.\n");
-
- StopTrafficServer();
-
- if (settimeofday(&v, NULL) == -1) {
- Cli_Printf("Error: could not update date \n");
- StartTrafficServer();
- return CLI_ERROR;
- }
- if (system("/sbin/hwclock --systohc --utc") != 0) {
- Cli_Error("ERROR: Unable to set hardware clock.\n");
- exit(1);
- }
- StartTrafficServer();
- }
-
-
- Cli_Debug("Config:clock: get date\n");
- if (system("date '+DATE: %m/%d/%Y'") == -1)
- return CLI_ERROR;
-
- return CLI_OK;
-
-}
-
-
-// config time sub-command
-// used to set or display the system time
-int
-ConfigTime(char *timestr)
-{
-
- if (timestr) { // set the time
- Cli_Debug("ConfigTime: set time %s\n", timestr);
- if (getuid() != 0) {
- Cli_Printf("\nMust be \"root\" user to change the time.\n"
- "Use \"config:root\" command to switch to root user.\n");
- return CLI_ERROR;
- }
-
- struct tm *mPtr;
- struct timeval v;
- struct DateTime t;
- int hour, min, sec;
-
- memset(&v, 0, sizeof(struct timeval));
- memset(&t, 0, sizeof(struct DateTime));
-
- // add strlen() check to avoid string overflow, so we can disable coverity check here
- // coverity[secure_coding]
- if (strlen(timestr) != 8 || sscanf(timestr, "%[0-9]:%[0-9]:%[0-9]", t.str_hh, t.str_min, t.str_ss) != 3) {
- Cli_Printf("Error: <time> = hh:mm:ss \n");
- return CLI_ERROR;
- }
-
- Cli_Debug("%s-%s-%s\n", t.str_hh, t.str_min, t.str_ss);
-
- hour = atoi(t.str_hh);
- min = atoi(t.str_min);
- sec = atoi(t.str_ss);
- Cli_Debug("%d-%d-%d\n", hour, min, sec);
-
- if (!((hour >= 0) && (hour <= 23)
- && (min >= 0) && (min <= 59)
- && (sec >= 0) && (sec <= 59))) {
- Cli_Printf("ERROR: Invalid Time Value \n");
- return CLI_ERROR;
- }
-
- if (gettimeofday(&v, NULL)) {
- Cli_Printf("Error Getting Time \n");
- return CLI_ERROR;
- }
-
- mPtr = localtime((const time_t *)&(v.tv_sec));
-
- mPtr->tm_sec = sec;
- mPtr->tm_min = min;
- mPtr->tm_hour = hour;
- if ((v.tv_sec = mktime(mPtr)) < 0) {
- Cli_Printf("ERROR: invalid time \n");
- return CLI_ERROR;
- }
-
- Cli_Printf("Stopping Proxy software while changing clock settings.\n");
-
- StopTrafficServer();
-
- if (settimeofday(&v, NULL) == -1) {
- Cli_Printf("ERROR: could not update time \n");
-
- StartTrafficServer();
-
- return CLI_ERROR;
- }
-
- if (system("/sbin/hwclock --systohc --utc") != 0) {
- Cli_Error("ERROR: Unable to set hardware clock.\n");
- }
-
- StartTrafficServer();
- }
-
- Cli_Debug("Config:clock: get time\n");
- if (system("date '+TIME: %H:%M:%S'") == -1)
- Cli_Error("ERROR: Unable to set date.\n");
-
- return CLI_OK;
-}
-
-// config timezone sub-command
-// used to set the system timezone
-int
-ConfigTimezone(int index, int setvar)
-{
-
- Cli_Debug("ConfigTime: %d %d\n", index, setvar);
-
- FILE *fp, *tmp;
- const char *zonetable = "/usr/share/zoneinfo/zone.tab";
- char command[256];
- char buffer[1024];
- char old_zone[1024];
- char new_zone[1024];
- char *zone;
-
- new_zone[0] = 0;
-
- 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");
- ATS_UNUSED_RETURN(system("/bin/sort /tmp/zonetab.tmp > /tmp/zonetab"));
-
- 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 (setvar) {
- if (index == i) {
- ink_strlcpy(new_zone, zone, sizeof(new_zone));
- }
- }
- ATS_UNUSED_RETURN(fgets(buffer, 1024, fp));
- i++;
- }
- fclose(fp);
- remove("/tmp/zonetab.tmp");
- remove("/tmp/zonetab");
-
- switch (setvar) {
- case 0: //get
- find_value("/etc/sysconfig/clock", "ZONE", old_zone, sizeof(old_zone), "=", 0);
- if (strlen(old_zone)) {
- Cli_Printf("%s\n", old_zone);
- } else {
- Cli_Printf("NULL\n");
- }
- return CLI_OK;
-
- case 1: //set
- if (getuid() != 0) {
- Cli_Printf("\nMust be \"root\" user to change the timezone.\n"
- "Use \"config:root\" command to switch to root user.\n");
- return CLI_ERROR;
- }
-
- if (!strlen(new_zone)) {
- Cli_Error("ERROR: Invalid timezone specified.\n");
- return CLI_ERROR;
- }
-
- Cli_Printf("Stopping Proxy software while changing clock settings.\n");
-
- StopTrafficServer();
-
- Cli_Printf("New timezone is %s\n", new_zone);
-
- fp = fopen("/etc/sysconfig/clock", "r");
- tmp = fopen("/tmp/clock.tmp", "w");
- ATS_UNUSED_RETURN(fgets(buffer, 256, fp));
- while (!feof(fp)) {
- if (strstr(buffer, "ZONE") != NULL) {
- fprintf(tmp, "ZONE=\"%s\"\n", new_zone);
- } else if (strstr(buffer, "UTC") != NULL) {
- fprintf(tmp, "UTC=true\n");
- } else {
- fputs(buffer, tmp);
- }
- ATS_UNUSED_RETURN(fgets(buffer, 256, fp));
- }
- fclose(fp);
- fclose(tmp);
- if (system("/bin/mv /tmp/clock.tmp /etc/sysconfig/clock") == -1)
- return CLI_ERROR;
-
- snprintf(command, sizeof(command), "/bin/cp -f /usr/share/zoneinfo/%s /etc/localtime", new_zone);
- if (system(command) == -1)
- return CLI_ERROR;
-
- StartTrafficServer();
-
- return CLI_OK;
-
- }
- Cli_Printf("Error in File Open to Read\n");
- return CLI_ERROR;
-}
int
ConfigTimezoneList()
@@ -4533,55 +4154,3 @@ ConfigAlarmNotify(char *string_val)
}
return CLI_ERROR;
}
-
-int
-find_value(const char *pathname, const char *key, char *value, int value_len, const char *delim, int no)
-{
- int find = 0;
-
-#if defined(linux) || defined(darwin) || defined(freebsd) || defined(solaris) \
- || defined(openbsd)
- char buffer[1024];
- char *pos;
- char *open_quot, *close_quot;
- FILE *fp;
- int counter = 0;
-
- value[0] = 0;
- // coverity[fs_check_call]
- if (access(pathname, R_OK)) {
- return find;
- }
- // coverity[toctou]
- if ((fp = fopen(pathname, "r")) != NULL) {
- ATS_UNUSED_RETURN(fgets(buffer, 1024, fp));
- while (!feof(fp)) {
- if (strstr(buffer, key) != NULL) {
- if (counter != no) {
- counter++;
- } else {
- find = 1;
- if ((pos = strstr(buffer, delim)) != NULL) {
- pos++;
- if ((open_quot = strchr(pos, '"')) != NULL) {
- pos = open_quot + 1;
- close_quot = strrchr(pos, '"');
- *close_quot = '\0';
- }
- ink_strlcpy(value, pos, value_len);
-
- if (value[strlen(value) - 1] == '\n') {
- value[strlen(value) - 1] = '\0';
- }
- }
-
- break;
- }
- }
- ATS_UNUSED_RETURN(fgets(buffer, 80, fp));
- }
- fclose(fp);
- }
-#endif
- return find;
-}
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a3b17cc9/cmd/traffic_shell/ConfigCmd.h
----------------------------------------------------------------------
diff --git a/cmd/traffic_shell/ConfigCmd.h b/cmd/traffic_shell/ConfigCmd.h
index 520d5f4..38d3d74 100644
--- a/cmd/traffic_shell/ConfigCmd.h
+++ b/cmd/traffic_shell/ConfigCmd.h
@@ -458,26 +458,6 @@ int Cmd_ConfigSocks(ClientData clientData, Tcl_Interp * interp, int argc, const
int CmdArgs_ConfigSocks();
////////////////////////////////////////////////////////////////
-// Cmd_ConfigClock
-//
-// This is the callback function for the "config:clock" command.
-//
-// Parameters:
-// clientData -- information about parsed arguments
-// interp -- the Tcl interpreter
-// argc -- number of command arguments
-// argv -- the command arguments
-//
-int Cmd_ConfigClock(ClientData clientData, Tcl_Interp * interp, int argc, const char *argv[]);
-
-////////////////////////////////////////////////////////////////
-// CmdArgs_ConfigClock
-//
-// Register "config:clock" arguments with the Tcl interpreter.
-//
-int CmdArgs_ConfigClock();
-
-////////////////////////////////////////////////////////////////
// Cmd_ConfigSecurity
//
// This is the callback function for the "config:security" command.
@@ -768,12 +748,6 @@ int ConfigName(const char *proxy_name);
int ConfigPortsSet(int arg_ref, void *valuePtr);
int ConfigPortsGet(int arg_ref);
-// config Date sub-command
-int ConfigDate(char *datestr);
-
-// config Time sub-command
-int ConfigTime(char *timestr);
-
// config Timezone sub-command
int ConfigTimezone(int, int);