summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordu.net>2016-11-01 10:25:02 +0100
committerLinus Nordberg <linus@nordu.net>2016-11-01 10:31:22 +0100
commit47ccc9ff18405caa7554d1880a26b52c9576175b (patch)
tree8878b1bb3488e7bf3a9a1f4ee1adf0d0fa1486a5
parent9d53e6e8f406415ef0b7ead8dd58ba2b6487004b (diff)
Look at servers->dynamiclookuparg for deciding if a server is dynamic.
The dynamiclookupcommand member of the _config_ of the server is being set to NULL when it's copied in confserver_cb(), resulting in dynamic discovery being done for realms that already have a server. Patch from Fabian Mauchle. Addresses RADSECPROXY-69.
-rw-r--r--ChangeLog5
-rw-r--r--radsecproxy.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 4f7e485..11dfa1d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Unreleased 1.6.9
+ Bug fixes:
+ - Avoid creating another dynamic server when we already have one
+ working (RADSECPROXY-69). Patch by Fabian Mauchle.
+
2016-09-21 1.6.8
Bug fixes:
- Stop waiting on writable when reading a TCP socket.
diff --git a/radsecproxy.c b/radsecproxy.c
index 815e927..c478dff 100644
--- a/radsecproxy.c
+++ b/radsecproxy.c
@@ -777,10 +777,14 @@ int hasdynamicserver(struct list *srvconfs) {
for (entry = list_first(srvconfs); entry; entry = list_next(entry))
#if defined ENABLE_EXPERIMENTAL_DYNDISC
+ /* NOTE: This should probably be servers->dynamiclookuparg,
+ * like in !ENABLE_EXPERIMENTAL_DYNDISC, but we're not
+ * touching this code any more. It shouldn't be used and it's
+ * going away. */
if (((struct clsrvconf *)entry->data)->dynamiclookupcommand
|| ((struct clsrvconf *)entry->data)->servers->in_use)
#else
- if (((struct clsrvconf *)entry->data)->dynamiclookupcommand)
+ if (((struct clsrvconf *)entry->data)->servers->dynamiclookuparg)
#endif
return 1;
return 0;