nat: ctrl: Use ctrl_cmd_parse2 to obtain detailed error
Instead of always logging/sending same error, use the new
ctrl_cmd_parse2 API which always returns a cmd structure with a specific
error description.
Change-Id: I6ef2b6e309632ed9cb296e8a1e71f879007a36ae
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_ctrl.c b/openbsc/src/osmo-bsc_nat/bsc_nat_ctrl.c
index 61ac887..af110a2 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat_ctrl.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat_ctrl.c
@@ -103,20 +103,11 @@
struct bsc_cmd_list *pending;
char *var;
- cmd = ctrl_cmd_parse(bsc, msg);
+ cmd = ctrl_cmd_parse2(bsc, msg);
msgb_free(msg);
- if (!cmd) {
- cmd = talloc_zero(bsc, struct ctrl_cmd);
- if (!cmd) {
- LOGP(DNAT, LOGL_ERROR, "OOM!\n");
- return -ENOMEM;
- }
- cmd->type = CTRL_TYPE_ERROR;
- cmd->id = "err";
- cmd->reply = "Failed to parse command.";
+ if (cmd->type == CTRL_TYPE_ERROR)
goto err;
- }
if (bsc->cfg && !llist_empty(&bsc->cfg->lac_list)) {
if (cmd->variable) {