diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2013-01-09 17:25:11 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2013-04-22 09:09:32 +0200 |
commit | fe0bdfbc92b17a843b9f8c3d3504775efa26841e (patch) | |
tree | af17fdbef1055b1573a47c38d1fd0d096be643aa | |
parent | 853b93caaee70ec1259749dca50a1e69484a7df2 (diff) |
nitb: Add ctrl command for saving the configuration
-rw-r--r-- | openbsc/src/osmo-nitb/ctrl_commands.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/openbsc/src/osmo-nitb/ctrl_commands.c b/openbsc/src/osmo-nitb/ctrl_commands.c index 3cc434834..e8833b8cf 100644 --- a/openbsc/src/osmo-nitb/ctrl_commands.c +++ b/openbsc/src/osmo-nitb/ctrl_commands.c @@ -22,6 +22,8 @@ #include <openbsc/control_cmd.h> #include <openbsc/gsm_data.h> +#include <osmocom/vty/misc.h> + #define CTRL_CMD_VTY_STRING(cmdname, cmdstr, dtype, element) \ CTRL_HELPER_GET_STRING(cmdname, dtype, element) \ CTRL_HELPER_SET_STRING(cmdname, dtype, element) \ @@ -63,6 +65,31 @@ CTRL_CMD_DEFINE_RANGE(net_mcc, "mcc", struct gsm_network, country_code, 1, 999); CTRL_CMD_VTY_STRING(net_short_name, "short-name", struct gsm_network, name_short); CTRL_CMD_VTY_STRING(net_long_name, "long-name", struct gsm_network, name_long); +static int verify_net_save_config(struct ctrl_cmd *cmd, const char *v, void *d) +{ + return 0; +} + +static int set_net_save_config(struct ctrl_cmd *cmd, void *data) +{ + int rc = osmo_vty_save_config_file(); + cmd->reply = talloc_asprintf(cmd, "%d", rc); + if (!cmd->reply) { + cmd->reply = "OOM"; + return CTRL_CMD_ERROR; + } + + return CTRL_CMD_REPLY; +} + +static int get_net_save_config(struct ctrl_cmd *cmd, void *data) +{ + cmd->reply = "Write only attribute"; + return CTRL_CMD_ERROR; +} + +CTRL_CMD_DEFINE(net_save_config, "save-configuration"); + int bsc_ctrl_cmds_install(void) { int rc = 0; @@ -70,6 +97,7 @@ int bsc_ctrl_cmds_install(void) rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_net_mcc); rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_net_short_name); rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_net_long_name); + rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_net_save_config); return rc; } |