diff options
author | Kozlov Dmitry <dima@server> | 2010-12-30 13:53:40 +0300 |
---|---|---|
committer | Kozlov Dmitry <dima@server> | 2010-12-30 13:53:40 +0300 |
commit | ad1b6c33dc19ffd4ca87cc6c787f0f670c307cfc (patch) | |
tree | 3433a74bfaeeb1cab896e5932d4f5f31d0e4ea00 /accel-pptpd | |
parent | f7058be535637cc5cee39a9b1aa852461cfb66fd (diff) | |
download | accel-ppp-xebd-ad1b6c33dc19ffd4ca87cc6c787f0f670c307cfc.tar.gz accel-ppp-xebd-ad1b6c33dc19ffd4ca87cc6c787f0f670c307cfc.zip |
cli: fixed crash if password is specified
cli: fixed exit command
Diffstat (limited to 'accel-pptpd')
-rw-r--r-- | accel-pptpd/cli/cli.c | 4 | ||||
-rw-r--r-- | accel-pptpd/cli/tcp.c | 2 | ||||
-rw-r--r-- | accel-pptpd/cli/telnet.c | 8 |
3 files changed, 7 insertions, 7 deletions
diff --git a/accel-pptpd/cli/cli.c b/accel-pptpd/cli/cli.c index 048809c..ef168de 100644 --- a/accel-pptpd/cli/cli.c +++ b/accel-pptpd/cli/cli.c @@ -181,7 +181,7 @@ int cli_process_cmd(struct cli_client_t *cln) case CLI_CMD_EXIT: cln->disconnect(cln); case CLI_CMD_FAILED: - return -1; + return 0; case CLI_CMD_SYNTAX: cli_send(cln, MSG_SYNTAX_ERROR); return 0; @@ -206,7 +206,7 @@ static void load_config(void) _free(conf_cli_passwd); opt = conf_get_opt("cli", "password"); if (opt) - conf_cli_passwd = _strdup(conf_cli_passwd); + conf_cli_passwd = _strdup(opt); else conf_cli_passwd = NULL; diff --git a/accel-pptpd/cli/tcp.c b/accel-pptpd/cli/tcp.c index a2f9e07..260225f 100644 --- a/accel-pptpd/cli/tcp.c +++ b/accel-pptpd/cli/tcp.c @@ -184,7 +184,7 @@ static int cln_read(struct triton_md_handler_t *h) drop: disconnect(cln); - return 0; + return -1; } static int cln_write(struct triton_md_handler_t *h) diff --git a/accel-pptpd/cli/telnet.c b/accel-pptpd/cli/telnet.c index 751426d..558af89 100644 --- a/accel-pptpd/cli/telnet.c +++ b/accel-pptpd/cli/telnet.c @@ -286,7 +286,7 @@ static int telnet_input_char(struct telnet_client_t *cln, uint8_t c) if (strcmp((char *)cln->cmdline, conf_cli_passwd)) { if (telnet_send(cln, MSG_AUTH_FAILED, sizeof(MSG_AUTH_FAILED))) return -1; - disconnect(cln); + cln->disconnect = 1; return -1; } cln->auth = 1; @@ -473,7 +473,7 @@ static int cln_read(struct triton_md_handler_t *h) n = read(h->fd, recv_buf, RECV_BUF_SIZE); if (n == 0) { disconnect(cln); - return 0; + return -1; } if (n < 0) { if (errno != EAGAIN) @@ -484,11 +484,11 @@ static int cln_read(struct triton_md_handler_t *h) print_buf(cln->recv_buf + cln->recv_pos, n);*/ for (i = 0; i < n; i++) { if (telnet_input_char(cln, recv_buf[i])) - return -1; + break; } if (cln->disconnect) { disconnect(cln); - return 0; + return -1; } } |