aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gprs/sgsn_vty.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/gprs/sgsn_vty.c')
-rw-r--r--openbsc/src/gprs/sgsn_vty.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/openbsc/src/gprs/sgsn_vty.c b/openbsc/src/gprs/sgsn_vty.c
index a730635d9..6c8b640c1 100644
--- a/openbsc/src/gprs/sgsn_vty.c
+++ b/openbsc/src/gprs/sgsn_vty.c
@@ -638,17 +638,6 @@ DEFUN(cfg_auth_policy, cfg_auth_policy_cmd,
{
int val = get_string_value(sgsn_auth_pol_strs, argv[0]);
OSMO_ASSERT(val >= SGSN_AUTH_POLICY_OPEN && val <= SGSN_AUTH_POLICY_REMOTE);
- if (val == SGSN_AUTH_POLICY_REMOTE) {
- const char *err = "%% auth-policy remote requires";
- if (!g_cfg->gsup_server_addr.sin_addr.s_addr) {
- vty_out(vty, "%s 'gsup remote-ip'%s", err, VTY_NEWLINE);
- return CMD_WARNING;
- }
- if (!g_cfg->gsup_server_port) {
- vty_out(vty, "%s 'gsup remote-port'%s", err, VTY_NEWLINE);
- return CMD_WARNING;
- }
- }
g_cfg->auth_policy = val;
g_cfg->require_authentication = (val == SGSN_AUTH_POLICY_REMOTE);
g_cfg->require_update_location = (val == SGSN_AUTH_POLICY_REMOTE);
@@ -1311,5 +1300,14 @@ int sgsn_parse_config(const char *config_file, struct sgsn_config *cfg)
return rc;
}
+ if (g_cfg->auth_policy == SGSN_AUTH_POLICY_REMOTE
+ && !(g_cfg->gsup_server_addr.sin_addr.s_addr
+ && g_cfg->gsup_server_port)) {
+ fprintf(stderr, "Configuration error:"
+ " 'auth-policy remote' requires both"
+ " 'gsup remote-ip' and 'gsup remote-port'\n");
+ return -EINVAL;
+ }
+
return 0;
}