unfsck 4->8 indenting change

hostname set via command line not config
This commit is contained in:
Brendan O'Dea 2004-10-28 03:31:11 +00:00
parent 39f5a61eb8
commit 4fa1b8bbfa

240
cli.c
View file

@ -2,7 +2,7 @@
// vim: sw=8 ts=8 // vim: sw=8 ts=8
char const *cvs_name = "$Name: $"; char const *cvs_name = "$Name: $";
char const *cvs_id_cli = "$Id: cli.c,v 1.17 2004-09-21 05:09:09 fred_nerk Exp $"; char const *cvs_id_cli = "$Id: cli.c,v 1.18 2004-10-28 03:31:11 bodea Exp $";
#include <stdio.h> #include <stdio.h>
#include <stdarg.h> #include <stdarg.h>
@ -104,7 +104,7 @@ int cmd_uptime(struct cli_def *cli, char *command, char **argv, int argc);
int regular_stuff(struct cli_def *cli); int regular_stuff(struct cli_def *cli);
void parsemac(char *string, char mac[6]); void parsemac(char *string, char mac[6]);
void init_cli() void init_cli(char *hostname)
{ {
FILE *f; FILE *f;
char buf[4096]; char buf[4096];
@ -114,8 +114,8 @@ void init_cli()
struct sockaddr_in addr; struct sockaddr_in addr;
cli = cli_init(); cli = cli_init();
if (config->hostname && *config->hostname) if (hostname && *hostname)
cli_set_hostname(cli, config->hostname); cli_set_hostname(cli, hostname);
else else
cli_set_hostname(cli, "l2tpns"); cli_set_hostname(cli, "l2tpns");
@ -229,8 +229,8 @@ void init_cli()
addr.sin_port = htons(23); addr.sin_port = htons(23);
if (bind(clifd, (void *) &addr, sizeof(addr)) < 0) if (bind(clifd, (void *) &addr, sizeof(addr)) < 0)
{ {
log(0, 0, 0, 0, "Error listening on cli port 23: %s\n", strerror(errno)); log(0, 0, 0, 0, "Error listening on cli port 23: %s\n", strerror(errno));
return; return;
} }
listen(clifd, 10); listen(clifd, 10);
} }
@ -259,9 +259,6 @@ void cli_do(int sockfd)
} }
} }
if (config->hostname && *config->hostname)
cli_set_hostname(cli, config->hostname);
signal(SIGPIPE, SIG_DFL); signal(SIGPIPE, SIG_DFL);
signal(SIGCHLD, SIG_DFL); signal(SIGCHLD, SIG_DFL);
signal(SIGHUP, SIG_DFL); signal(SIGHUP, SIG_DFL);
@ -368,7 +365,7 @@ int cli_arg_help(struct cli_def *cli, int cr_ok, char *entry, ...)
va_end(ap); va_end(ap);
if (cr_ok) if (cr_ok)
cli_print(cli, " <cr>"); cli_print(cli, " <cr>");
return CLI_OK; return CLI_OK;
} }
@ -396,27 +393,27 @@ int cmd_show_session(struct cli_def *cli, char *command, char **argv, int argc)
continue; continue;
} }
cli_print(cli, "\r\nSession %d:", s); cli_print(cli, "\r\nSession %d:", s);
cli_print(cli, " User: %s", session[s].user[0] ? session[s].user : "none"); cli_print(cli, " User: %s", session[s].user[0] ? session[s].user : "none");
cli_print(cli, " Calling Num: %s", session[s].calling); cli_print(cli, " Calling Num: %s", session[s].calling);
cli_print(cli, " Called Num: %s", session[s].called); cli_print(cli, " Called Num: %s", session[s].called);
cli_print(cli, " Tunnel ID: %d", session[s].tunnel); cli_print(cli, " Tunnel ID: %d", session[s].tunnel);
cli_print(cli, " IP address: %s", inet_toa(htonl(session[s].ip))); cli_print(cli, " IP address: %s", inet_toa(htonl(session[s].ip)));
cli_print(cli, " Unique SID: %lu", session[s].unique_id); cli_print(cli, " Unique SID: %lu", session[s].unique_id);
cli_print(cli, " Idle time: %u seconds", abs(time_now - session[s].last_packet)); cli_print(cli, " Idle time: %u seconds", abs(time_now - session[s].last_packet));
cli_print(cli, " Next Recv: %u", session[s].nr); cli_print(cli, " Next Recv: %u", session[s].nr);
cli_print(cli, " Next Send: %u", session[s].ns); cli_print(cli, " Next Send: %u", session[s].ns);
cli_print(cli, " Bytes In/Out: %lu/%lu", (unsigned long)session[s].total_cout, (unsigned long)session[s].total_cin); cli_print(cli, " Bytes In/Out: %lu/%lu", (unsigned long)session[s].total_cout, (unsigned long)session[s].total_cin);
cli_print(cli, " Pkts In/Out: %lu/%lu", (unsigned long)session[s].pout, (unsigned long)session[s].pin); cli_print(cli, " Pkts In/Out: %lu/%lu", (unsigned long)session[s].pout, (unsigned long)session[s].pin);
cli_print(cli, " MRU: %d", session[s].mru); cli_print(cli, " MRU: %d", session[s].mru);
cli_print(cli, " Radius Session: %u", session[s].radius); cli_print(cli, " Radius Session: %u", session[s].radius);
cli_print(cli, " Rx Speed: %lu", session[s].rx_connect_speed); cli_print(cli, " Rx Speed: %lu", session[s].rx_connect_speed);
cli_print(cli, " Tx Speed: %lu", session[s].tx_connect_speed); cli_print(cli, " Tx Speed: %lu", session[s].tx_connect_speed);
if (session[s].snoop_ip && session[s].snoop_port) if (session[s].snoop_ip && session[s].snoop_port)
cli_print(cli, " Intercepted: %s:%d", inet_toa(session[s].snoop_ip), session[s] .snoop_port); cli_print(cli, " Intercepted: %s:%d", inet_toa(session[s].snoop_ip), session[s] .snoop_port);
else else
cli_print(cli, " Intercepted: no"); cli_print(cli, " Intercepted: no");
cli_print(cli, " Throttled: %s", session[s].throttle ? "YES" : "no"); cli_print(cli, " Throttled: %s", session[s].throttle ? "YES" : "no");
cli_print(cli, " Walled Garden: %s", session[s].walled_garden ? "YES" : "no"); cli_print(cli, " Walled Garden: %s", session[s].walled_garden ? "YES" : "no");
b_in = session[s].tbf_in; b_in = session[s].tbf_in;
b_out = session[s].tbf_out; b_out = session[s].tbf_out;
if (b_in || b_out) if (b_in || b_out)
@ -471,6 +468,7 @@ int cmd_show_session(struct cli_def *cli, char *command, char **argv, int argc)
"idle", "idle",
"LAC", "LAC",
"CLI"); "CLI");
for (i = 1; i < MAXSESSION; i++) for (i = 1; i < MAXSESSION; i++)
{ {
char *userip, *tunnelip; char *userip, *tunnelip;
@ -541,20 +539,21 @@ int cmd_show_tunnels(struct cli_def *cli, char *command, char **argv, int argc)
continue; continue;
} }
cli_print(cli, "\r\nTunnel %d:", t); cli_print(cli, "\r\nTunnel %d:", t);
cli_print(cli, " State: %s", states[tunnel[t].state]); cli_print(cli, " State: %s", states[tunnel[t].state]);
cli_print(cli, " Hostname: %s", tunnel[t].hostname[0] ? tunnel[t].hostname : "(none)"); cli_print(cli, " Hostname: %s", tunnel[t].hostname[0] ? tunnel[t].hostname : "(none)");
cli_print(cli, " Remote IP: %s", inet_toa(htonl(tunnel[t].ip))); cli_print(cli, " Remote IP: %s", inet_toa(htonl(tunnel[t].ip)));
cli_print(cli, " Remote Port: %d", tunnel[t].port); cli_print(cli, " Remote Port: %d", tunnel[t].port);
cli_print(cli, " Rx Window: %u", tunnel[t].window); cli_print(cli, " Rx Window: %u", tunnel[t].window);
cli_print(cli, " Next Recv: %u", tunnel[t].nr); cli_print(cli, " Next Recv: %u", tunnel[t].nr);
cli_print(cli, " Next Send: %u", tunnel[t].ns); cli_print(cli, " Next Send: %u", tunnel[t].ns);
cli_print(cli, " Queue Len: %u", tunnel[t].controlc); cli_print(cli, " Queue Len: %u", tunnel[t].controlc);
cli_print(cli, " Last Packet Age:%u", (unsigned)(time_now - tunnel[t].last)); cli_print(cli, " Last Packet Age:%u", (unsigned)(time_now - tunnel[t].last));
for (x = 0; x < MAXSESSION; x++) for (x = 0; x < MAXSESSION; x++)
if (session[x].tunnel == t && session[x].opened && !session[x].die) if (session[x].tunnel == t && session[x].opened && !session[x].die)
sprintf(s, "%s%u ", s, x); sprintf(s, "%s%u ", s, x);
cli_print(cli, " Sessions: %s", s);
cli_print(cli, " Sessions: %s", s);
} }
return CLI_OK; return CLI_OK;
} }
@ -1005,20 +1004,20 @@ int cmd_show_banana(struct cli_def *cli, char *command, char **argv, int argc)
if (CLI_HELP_REQUESTED) if (CLI_HELP_REQUESTED)
return CLI_HELP_NO_ARGS; return CLI_HELP_NO_ARGS;
cli_print(cli, " _\n" cli_print(cli, " _\n"
"//\\\n" "//\\\n"
"V \\\n" "V \\\n"
" \\ \\_\n" " \\ \\_\n"
" \\,'.`-.\n" " \\,'.`-.\n"
" |\\ `. `.\n" " |\\ `. `.\n"
" ( \\ `. `-. _,.-:\\\n" " ( \\ `. `-. _,.-:\\\n"
" \\ \\ `. `-._ __..--' ,-';/\n" " \\ \\ `. `-._ __..--' ,-';/\n"
" \\ `. `-. `-..___..---' _.--' ,'/\n" " \\ `. `-. `-..___..---' _.--' ,'/\n"
" `. `. `-._ __..--' ,' /\n" " `. `. `-._ __..--' ,' /\n"
" `. `-_ ``--..'' _.-' ,'\n" " `. `-_ ``--..'' _.-' ,'\n"
" `-_ `-.___ __,--' ,'\n" " `-_ `-.___ __,--' ,'\n"
" `-.__ `----\"\"\" __.-'\n" " `-.__ `----\"\"\" __.-'\n"
"hh `--..____..--'"); "hh `--..____..--'");
return CLI_OK; return CLI_OK;
} }
@ -1279,17 +1278,17 @@ int cmd_throttle(struct cli_def *cli, char *command, char **argv, int argc)
{ {
switch (argc) switch (argc)
{ {
case 1: case 1:
return cli_arg_help(cli, 0, "user", "Username of session to throttle", NULL); return cli_arg_help(cli, 0, "user", "Username of session to throttle", NULL);
case 2: case 2:
return cli_arg_help(cli, 1, "rate", "Incoming rate in kb/s", NULL); return cli_arg_help(cli, 1, "rate", "Incoming rate in kb/s", NULL);
case 3: case 3:
return cli_arg_help(cli, 1, "rate", "Outgoing rate in kb/s", NULL); return cli_arg_help(cli, 1, "rate", "Outgoing rate in kb/s", NULL);
default: default:
return cli_arg_help(cli, argc > 1, "user", "Username of session to throttle", NULL); return cli_arg_help(cli, argc > 1, "user", "Username of session to throttle", NULL);
} }
} }
@ -1376,13 +1375,13 @@ int cmd_debug(struct cli_def *cli, char *command, char **argv, int argc)
if (CLI_HELP_REQUESTED) if (CLI_HELP_REQUESTED)
return cli_arg_help(cli, 1, return cli_arg_help(cli, 1,
"all", "Enable debugging for all except \"data\"", "all", "Enable debugging for all except \"data\"",
"critical", "", // FIXME: add descriptions "critical", "", // FIXME: add descriptions
"error", "", "error", "",
"warning", "", "warning", "",
"info", "", "info", "",
"calls", "", "calls", "",
"data", "", "data", "",
NULL); NULL);
if (!argc) if (!argc)
@ -1394,11 +1393,11 @@ int cmd_debug(struct cli_def *cli, char *command, char **argv, int argc)
{ {
cli_print(cli, "Currently debugging:%s%s%s%s%s%s", cli_print(cli, "Currently debugging:%s%s%s%s%s%s",
(debug_flags.critical) ? " critical" : "", (debug_flags.critical) ? " critical" : "",
(debug_flags.error) ? " error" : "", (debug_flags.error) ? " error" : "",
(debug_flags.warning) ? " warning" : "", (debug_flags.warning) ? " warning" : "",
(debug_flags.info) ? " info" : "", (debug_flags.info) ? " info" : "",
(debug_flags.calls) ? " calls" : "", (debug_flags.calls) ? " calls" : "",
(debug_flags.data) ? " data" : ""); (debug_flags.data) ? " data" : "");
return CLI_OK; return CLI_OK;
} }
@ -1416,12 +1415,12 @@ int cmd_debug(struct cli_def *cli, char *command, char **argv, int argc)
len = 2; /* distinguish [cr]itical from [ca]lls */ len = 2; /* distinguish [cr]itical from [ca]lls */
if (!strncasecmp(argv[i], "critical", len)) { debug_flags.critical = 1; continue; } if (!strncasecmp(argv[i], "critical", len)) { debug_flags.critical = 1; continue; }
if (!strncasecmp(argv[i], "error", len)) { debug_flags.error = 1; continue; } if (!strncasecmp(argv[i], "error", len)) { debug_flags.error = 1; continue; }
if (!strncasecmp(argv[i], "warning", len)) { debug_flags.warning = 1; continue; } if (!strncasecmp(argv[i], "warning", len)) { debug_flags.warning = 1; continue; }
if (!strncasecmp(argv[i], "info", len)) { debug_flags.info = 1; continue; } if (!strncasecmp(argv[i], "info", len)) { debug_flags.info = 1; continue; }
if (!strncasecmp(argv[i], "calls", len)) { debug_flags.calls = 1; continue; } if (!strncasecmp(argv[i], "calls", len)) { debug_flags.calls = 1; continue; }
if (!strncasecmp(argv[i], "data", len)) { debug_flags.data = 1; continue; } if (!strncasecmp(argv[i], "data", len)) { debug_flags.data = 1; continue; }
if (!strncasecmp(argv[i], "all", len)) if (!strncasecmp(argv[i], "all", len))
{ {
memset(&debug_flags, 1, sizeof(debug_flags)); memset(&debug_flags, 1, sizeof(debug_flags));
debug_flags.data = 0; debug_flags.data = 0;
@ -1440,18 +1439,18 @@ int cmd_no_debug(struct cli_def *cli, char *command, char **argv, int argc)
if (CLI_HELP_REQUESTED) if (CLI_HELP_REQUESTED)
return cli_arg_help(cli, 1, return cli_arg_help(cli, 1,
"all", "Disable all debugging", "all", "Disable all debugging",
"critical", "", // FIXME: add descriptions "critical", "", // FIXME: add descriptions
"error", "", "error", "",
"warning", "", "warning", "",
"info", "", "info", "",
"calls", "", "calls", "",
"data", "", "data", "",
NULL); NULL);
if (!argc) if (!argc)
{ {
memset(&debug_flags, 0, sizeof(debug_flags)); memset(&debug_flags, 0, sizeof(debug_flags));
return CLI_OK; return CLI_OK;
} }
@ -1463,12 +1462,12 @@ int cmd_no_debug(struct cli_def *cli, char *command, char **argv, int argc)
len = 2; /* distinguish [cr]itical from [ca]lls */ len = 2; /* distinguish [cr]itical from [ca]lls */
if (!strncasecmp(argv[i], "critical", len)) { debug_flags.critical = 0; continue; } if (!strncasecmp(argv[i], "critical", len)) { debug_flags.critical = 0; continue; }
if (!strncasecmp(argv[i], "error", len)) { debug_flags.error = 0; continue; } if (!strncasecmp(argv[i], "error", len)) { debug_flags.error = 0; continue; }
if (!strncasecmp(argv[i], "warning", len)) { debug_flags.warning = 0; continue; } if (!strncasecmp(argv[i], "warning", len)) { debug_flags.warning = 0; continue; }
if (!strncasecmp(argv[i], "info", len)) { debug_flags.info = 0; continue; } if (!strncasecmp(argv[i], "info", len)) { debug_flags.info = 0; continue; }
if (!strncasecmp(argv[i], "calls", len)) { debug_flags.calls = 0; continue; } if (!strncasecmp(argv[i], "calls", len)) { debug_flags.calls = 0; continue; }
if (!strncasecmp(argv[i], "data", len)) { debug_flags.data = 0; continue; } if (!strncasecmp(argv[i], "data", len)) { debug_flags.data = 0; continue; }
if (!strncasecmp(argv[i], "all", len)) if (!strncasecmp(argv[i], "all", len))
{ {
memset(&debug_flags, 0, sizeof(debug_flags)); memset(&debug_flags, 0, sizeof(debug_flags));
continue; continue;
@ -1658,33 +1657,33 @@ int cmd_set(struct cli_def *cli, char *command, char **argv, int argc)
cli_print(cli, "Setting \"%s\" to \"%s\"", argv[0], argv[1]); cli_print(cli, "Setting \"%s\" to \"%s\"", argv[0], argv[1]);
switch (config_values[i].type) switch (config_values[i].type)
{ {
case STRING: case STRING:
strncpy((char *)value, argv[1], config_values[i].size - 1); strncpy((char *)value, argv[1], config_values[i].size - 1);
break; break;
case INT: case INT:
*(int *)value = atoi(argv[1]); *(int *)value = atoi(argv[1]);
break; break;
case UNSIGNED_LONG: case UNSIGNED_LONG:
*(unsigned long *)value = atol(argv[1]); *(unsigned long *)value = atol(argv[1]);
break; break;
case SHORT: case SHORT:
*(short *)value = atoi(argv[1]); *(short *)value = atoi(argv[1]);
break; break;
case IP: case IP:
*(unsigned *)value = inet_addr(argv[1]); *(unsigned *)value = inet_addr(argv[1]);
break; break;
case MAC: case MAC:
parsemac(argv[1], (char *)value); parsemac(argv[1], (char *)value);
break; break;
case BOOL: case BOOL:
if (strcasecmp(argv[1], "yes") == 0 || strcasecmp(argv[1], "true") == 0 || strcasecmp(argv[1], "1") == 0) if (strcasecmp(argv[1], "yes") == 0 || strcasecmp(argv[1], "true") == 0 || strcasecmp(argv[1], "1") == 0)
*(int *)value = 1; *(int *)value = 1;
else else
*(int *)value = 0; *(int *)value = 0;
break; break;
default: default:
cli_print(cli, "Unknown variable type"); cli_print(cli, "Unknown variable type");
break; break;
} }
config->reload_config = 1; config->reload_config = 1;
return CLI_OK; return CLI_OK;
@ -1709,11 +1708,11 @@ int regular_stuff(struct cli_def *cli)
{ {
// Always show messages if we are doing general debug // Always show messages if we are doing general debug
if (ringbuffer->buffer[i].level == 0 && debug_flags.critical) show_message = 1; if (ringbuffer->buffer[i].level == 0 && debug_flags.critical) show_message = 1;
if (ringbuffer->buffer[i].level == 1 && debug_flags.error) show_message = 1; if (ringbuffer->buffer[i].level == 1 && debug_flags.error) show_message = 1;
if (ringbuffer->buffer[i].level == 2 && debug_flags.warning) show_message = 1; if (ringbuffer->buffer[i].level == 2 && debug_flags.warning) show_message = 1;
if (ringbuffer->buffer[i].level == 3 && debug_flags.info) show_message = 1; if (ringbuffer->buffer[i].level == 3 && debug_flags.info) show_message = 1;
if (ringbuffer->buffer[i].level == 4 && debug_flags.calls) show_message = 1; if (ringbuffer->buffer[i].level == 4 && debug_flags.calls) show_message = 1;
if (ringbuffer->buffer[i].level == 5 && debug_flags.data) show_message = 1; if (ringbuffer->buffer[i].level == 5 && debug_flags.data) show_message = 1;
} }
if (show_message) if (show_message)
@ -1755,4 +1754,3 @@ void parsemac(char *string, char mac[6])
return; return;
memset(mac, 0, 6); memset(mac, 0, 6);
} }