[MERGED] openbsc[master]: oap_client: make use of OAP optional: disable for NULL config

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Tue Dec 13 14:54:02 UTC 2016


Harald Welte has submitted this change and it was merged.

Change subject: oap_client: make use of OAP optional: disable for NULL config
......................................................................


oap_client: make use of OAP optional: disable for NULL config

When passing a NULL config to osmo_oap_client_init(), set OAP to disabled
state. Along with the previous fix that ensures message rejection in the
disabled state, this makes use of OAP in the GSUP client optional.

oap_client_test: expect null config to set state to disabled.

Related: OS#1592
Change-Id: Ie4d622fcfd24cb7d89d19f93e4b2571d8fadd1a3
---
M openbsc/src/libcommon/gsup_client.c
M openbsc/src/libcommon/oap_client.c
M openbsc/tests/oap/oap_client_test.c
M openbsc/tests/oap/oap_client_test.err
4 files changed, 11 insertions(+), 2 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/openbsc/src/libcommon/gsup_client.c b/openbsc/src/libcommon/gsup_client.c
index 4c1fe61..2e920a6 100644
--- a/openbsc/src/libcommon/gsup_client.c
+++ b/openbsc/src/libcommon/gsup_client.c
@@ -266,7 +266,7 @@
 struct gsup_client *gsup_client_create(const char *ip_addr,
 				       unsigned int tcp_port,
 				       gsup_client_read_cb_t read_cb,
-				       struct oap_client_config *oap_config)
+				       struct oap_client_config *oapc_config)
 {
 	struct gsup_client *gsupc;
 	int rc;
@@ -274,7 +274,8 @@
 	gsupc = talloc_zero(tall_bsc_ctx, struct gsup_client);
 	OSMO_ASSERT(gsupc);
 
-	rc = oap_client_init(oap_config, &gsupc->oap_state);
+	/* a NULL oapc_config will mark oap_state disabled. */
+	rc = oap_client_init(oapc_config, &gsupc->oap_state);
 	if (rc != 0)
 		goto failed;
 
diff --git a/openbsc/src/libcommon/oap_client.c b/openbsc/src/libcommon/oap_client.c
index e372ede..54b71e4 100644
--- a/openbsc/src/libcommon/oap_client.c
+++ b/openbsc/src/libcommon/oap_client.c
@@ -35,6 +35,9 @@
 {
 	OSMO_ASSERT(state->state == OAP_UNINITIALIZED);
 
+	if (!config)
+		goto disable;
+
 	if (config->client_id == 0)
 		goto disable;
 
diff --git a/openbsc/tests/oap/oap_client_test.c b/openbsc/tests/oap/oap_client_test.c
index ab651e6..e6501cb 100644
--- a/openbsc/tests/oap/oap_client_test.c
+++ b/openbsc/tests/oap/oap_client_test.c
@@ -62,6 +62,10 @@
 	msgb_free(msg_rx);
 	OSMO_ASSERT(!msg_tx);
 
+	fprintf(stderr, "- NULL config should disable\n");
+	OSMO_ASSERT( oap_client_init(NULL, state) == 0 );
+	OSMO_ASSERT(state->state == OAP_DISABLED);
+
 	fprintf(stderr, "- reject messages in disabled state\n");
 	memset(state, 0, sizeof(*state));
 	memset(&oap_rx, 0, sizeof(oap_rx));
diff --git a/openbsc/tests/oap/oap_client_test.err b/openbsc/tests/oap/oap_client_test.err
index 8c538dc..62ddc9e 100644
--- a/openbsc/tests/oap/oap_client_test.err
+++ b/openbsc/tests/oap/oap_client_test.err
@@ -1,6 +1,7 @@
 - make sure filling with zeros means uninitialized
 - reject messages in uninitialized state
 DLOAP Received OAP message 5, but the OAP client is not initialized
+- NULL config should disable
 - reject messages in disabled state
 DLOAP Received OAP message 5, but the OAP client is disabled
 - invalid client_id and shared secret

-- 
To view, visit https://gerrit.osmocom.org/1396
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie4d622fcfd24cb7d89d19f93e4b2571d8fadd1a3
Gerrit-PatchSet: 4
Gerrit-Project: openbsc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list