diff --git a/ggsn/ggsn_vty.c b/ggsn/ggsn_vty.c index f70daf1..da67591 100644 --- a/ggsn/ggsn_vty.c +++ b/ggsn/ggsn_vty.c @@ -22,6 +22,8 @@ #include #include #include +#include +#include #include #include @@ -224,6 +226,11 @@ DEFUN(cfg_ggsn_state_dir, cfg_ggsn_state_dir_cmd, { struct ggsn_ctx *ggsn = (struct ggsn_ctx *) vty->index; + if (mkdir(argv[0], 0755) == -1 && errno != EEXIST) { + vty_out(vty, "%% Failed to create state-dir: %s%s", argv[0], VTY_NEWLINE); + return CMD_WARNING; + } + osmo_talloc_replace_string(ggsn, &ggsn->cfg.state_dir, argv[0]); return CMD_SUCCESS;