[GPRS] NS: VTY: Don't nsvc_delete() on 'no nse...'
Rather than deleting the NSE from memory, we simply mark it as non-persistent. This makes sure that there are no invalid references (e.g. from gbprox_peer) to the gprs_nsvc structure, but at the same time ensures it will no longer be stored as part of writing the config file.
This commit is contained in:
parent
55c91e411e
commit
52613a114a
|
@ -179,7 +179,7 @@ DEFUN(show_nse, show_nse_cmd, "show ns (nsei|nsvc) <0-65535> [stats]",
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define NSE_CMD_STR "NS Entity\n" "NS Entity ID (NSEI)\n"
|
#define NSE_CMD_STR "Persistent NS Entity\n" "NS Entity ID (NSEI)\n"
|
||||||
|
|
||||||
DEFUN(cfg_nse_nsvc, cfg_nse_nsvci_cmd,
|
DEFUN(cfg_nse_nsvc, cfg_nse_nsvci_cmd,
|
||||||
"nse <0-65535> nsvci <0-65534>",
|
"nse <0-65535> nsvci <0-65534>",
|
||||||
|
@ -273,7 +273,7 @@ DEFUN(cfg_nse_remoterole, cfg_nse_remoterole_cmd,
|
||||||
|
|
||||||
DEFUN(cfg_no_nse, cfg_no_nse_cmd,
|
DEFUN(cfg_no_nse, cfg_no_nse_cmd,
|
||||||
"no nse <0-65535>",
|
"no nse <0-65535>",
|
||||||
"Delete NS Entity\n"
|
"Delete Persistent NS Entity\n"
|
||||||
"Delete " NSE_CMD_STR)
|
"Delete " NSE_CMD_STR)
|
||||||
{
|
{
|
||||||
uint16_t nsei = atoi(argv[0]);
|
uint16_t nsei = atoi(argv[0]);
|
||||||
|
@ -285,7 +285,13 @@ DEFUN(cfg_no_nse, cfg_no_nse_cmd,
|
||||||
return CMD_WARNING;
|
return CMD_WARNING;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsvc_delete(nsvc);
|
if (!nsvc->persistent) {
|
||||||
|
vty_out(vty, "NSEI %u is not a persistent NSE%s",
|
||||||
|
nsei, VTY_NEWLINE);
|
||||||
|
return CMD_WARNING;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsvc->persistent = 0;
|
||||||
|
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue