summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Sorce <ssorce@redhat.com>2009-11-23 17:16:44 -0500
committerStephen Gallagher <sgallagh@redhat.com>2009-11-25 11:03:12 -0500
commitd94e3d10282a9a375cae061d6845b73d01a9ffe1 (patch)
tree32fc6c6ed28eb6d1e6d7c223602ab72985105566
parentf542305b2212795d82e530fdb9817abcb4002c93 (diff)
downloadsssd-d94e3d10282a9a375cae061d6845b73d01a9ffe1.tar.gz
sssd-d94e3d10282a9a375cae061d6845b73d01a9ffe1.tar.xz
sssd-d94e3d10282a9a375cae061d6845b73d01a9ffe1.zip
Fix internal options numbers test
Unfortunately since we changed the defines to an enum the preprocessor test stopped working. Turn tests into runtime tests that will abort the process.
-rw-r--r--server/providers/ipa/ipa_common.c36
1 files changed, 24 insertions, 12 deletions
diff --git a/server/providers/ipa/ipa_common.c b/server/providers/ipa/ipa_common.c
index 98ac07729..740aac8d4 100644
--- a/server/providers/ipa/ipa_common.c
+++ b/server/providers/ipa/ipa_common.c
@@ -212,12 +212,10 @@ done:
return ret;
}
-/* the following preprocessor code is used to keep track of
- * the options in the ldap module, so that if they change and ipa
- * is not updated correspondingly this will trigger a build error */
-#if SDAP_OPTS_BASIC > 29
-#error There are ldap options not accounted for
-#endif
+/* the following define is used to keep track of * the options in the ldap
+ * module, so that if they change and ipa is not updated correspondingly
+ * this will trigger a runtime abort error */
+#define IPA_OPTS_BASIC_TEST 30
int ipa_get_id_options(struct ipa_options *ipa_opts,
struct confdb_ctx *cdb,
@@ -232,6 +230,14 @@ int ipa_get_id_options(struct ipa_options *ipa_opts,
int ret;
int i;
+ /* self check test, this should never fail, unless someone forgot
+ * to properly update the code after new ldap options have been added */
+ if (SDAP_OPTS_BASIC != IPA_OPTS_BASIC_TEST) {
+ DEBUG(0, ("Option numbers do not match (%d != %d)\n",
+ SDAP_OPTS_BASIC, IPA_OPTS_BASIC_TEST));
+ abort();
+ }
+
tmpctx = talloc_new(ipa_opts);
if (!tmpctx) {
return ENOMEM;
@@ -382,12 +388,10 @@ done:
return ret;
}
-/* the following preprocessor code is used to keep track of
- * the options in the krb5 module, so that if they change and ipa
- * is not updated correspondingly this will trigger a build error */
-#if KRB5_OPTS > 6
-#error There are krb5 options not accounted for
-#endif
+/* the following define is used to keep track of * the options in the krb5
+ * module, so that if they change and ipa is not updated correspondingly
+ * this will trigger a runtime abort error */
+#define IPA_KRB5_OPTS_TEST 8
int ipa_get_auth_options(struct ipa_options *ipa_opts,
struct confdb_ctx *cdb,
@@ -398,6 +402,14 @@ int ipa_get_auth_options(struct ipa_options *ipa_opts,
int ret;
int i;
+ /* self check test, this should never fail, unless someone forgot
+ * to properly update the code after new ldap options have been added */
+ if (KRB5_OPTS != IPA_KRB5_OPTS_TEST) {
+ DEBUG(0, ("Option numbers do not match (%d != %d)\n",
+ KRB5_OPTS, IPA_KRB5_OPTS_TEST));
+ abort();
+ }
+
ipa_opts->auth = talloc_zero(ipa_opts, struct dp_option);
if (ipa_opts->auth == NULL) {
ret = ENOMEM;