- if (knet_handle_get_transport_id_by_name(knet_iface->cfg_ring.knet_h, buf) == KNET_MAX_TRANSPORTS) {
- knet_vty_write(vty, "link transport is invalid%s", telnet_newline);
- err = -1;
- }
- break;
- case CMDS_PARAM_LINK_PRI:
- tmp = param_to_int(param, paramlen);
- if ((tmp < 0) || (tmp > 255)) {
- knet_vty_write(vty, "link priority should be a value between 0 and 256%s", telnet_newline);
- err = -1;
- }
- break;
- case CMDS_PARAM_LINK_KEEPAL:
- tmp = param_to_int(param, paramlen);
- if ((tmp <= 0) || (tmp > 60000)) {
- knet_vty_write(vty, "link keepalive should be a value between 0 and 60000 (milliseconds). Default: 1000%s", telnet_newline);
- err = -1;
- }
- break;
- case CMDS_PARAM_LINK_HOLDTI:
- tmp = param_to_int(param, paramlen);
- if ((tmp <= 0) || (tmp > 60000)) {
- knet_vty_write(vty, "link holdtimer should be a value between 0 and 60000 (milliseconds). Default: 5000%s", telnet_newline);
- err = -1;
- }
- break;
- case CMDS_PARAM_LINK_PONG:
- tmp = param_to_int(param, paramlen);
- if (tmp < 1) {
- knet_vty_write(vty, "pong_count must be a value between 0 and 255%s", telnet_newline);
- err = -1;
- }
- break;
- case CMDS_PARAM_VTY_TIMEOUT:
- tmp = param_to_int(param, paramlen);
- if ((tmp < 0) || (tmp > 3600)) {
- knet_vty_write(vty, "vty logout timeout should be a value between 0 (disabled) and 3600 seconds. Default: %d%s", KNET_VTY_CLI_TIMEOUT, telnet_newline);
- knet_vty_write(vty, "LINKID - specify the link identification number (0-7)%s", telnet_newline);
- break;
- case CMDS_PARAM_LINK_TRANSP:
- knet_vty_write(vty, "TRANSPORT - specify the link transport protocol (UDP/SCTP/..)%s", telnet_newline);
- break;
- case CMDS_PARAM_LINK_PRI:
- knet_vty_write(vty, "PRIORITY - specify the link priority for passive switching (0 to 255, default is 0). The higher value is preferred over lower value%s", telnet_newline);
- break;
- case CMDS_PARAM_LINK_KEEPAL:
- knet_vty_write(vty, "KEEPALIVE - specify the keepalive interval for this link (0 to 60000 milliseconds, default is 1000).%s", telnet_newline);
- break;
- case CMDS_PARAM_LINK_HOLDTI:
- knet_vty_write(vty, "HOLDTIME - specify how much time has to pass without connection before a link is considered dead (0 to 60000 milliseconds, default is 5000).%s", telnet_newline);
- break;
- case CMDS_PARAM_VTY_TIMEOUT:
- knet_vty_write(vty, "VTY_TIMEOUT - specify the number of seconds before a session is automatically closed.%s", telnet_newline);
- knet_vty_write(vty, "Error unable to open file%s", telnet_newline);
- return -1;
- }
-
- vty_sock = vty->vty_sock;
- vty->vty_sock = fd;
- vty->filemode = 1;
- knet_cmd_print_conf(vty);
- vty->vty_sock = vty_sock;
- vty->filemode = 0;
-
- close(fd);
-
- knet_vty_write(vty, "Configuration saved to %s%s", knet_cfg_head.conffile, telnet_newline);
- if (backup)
- knet_vty_write(vty, "Old configuration file has been stored in %s%s",
- tempfile, telnet_newline);
-
- return err;
-}
-
-static int knet_cmd_config(struct knet_vty *vty)
-{
- int err = 0;
-
- if (!vty->user_can_enable) {
- knet_vty_write(vty, "Error: user %s does not have enough privileges to perform config operations%s", vty->username, telnet_newline);
- return -1;
- }
-
- pthread_mutex_lock(&knet_vty_mutex);
- if (knet_vty_config >= 0) {
- knet_vty_write(vty, "Error: configuration is currently locked by user %s on vty(%d). Try again later%s", vty->username, knet_vty_config, telnet_newline);