]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
xlat for home server state
authorAlan T. DeKok <aland@freeradius.org>
Thu, 10 Mar 2016 16:45:32 +0000 (11:45 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 10 Mar 2016 16:49:27 +0000 (11:49 -0500)
src/main/realms.c

index 2b37b39a7f78014c8cb9915ffb0398be7c8629c6..c70e3bbacbd651d9f136a65e4fffda8b71799f08 100644 (file)
@@ -234,6 +234,31 @@ static ssize_t CC_HINT(nonnull) xlat_home_server(UNUSED void *instance, REQUEST
                return 0;
        }
 
+       if (strcmp(fmt, "state") == 0) {
+               char const *state;
+
+               switch (request->home_server->state) {
+               case HOME_STATE_ALIVE:
+                       state = "alive";
+                       break;
+
+               case HOME_STATE_ZOMBIE:
+                       state = "zombie";
+                       break;
+
+               case HOME_STATE_IS_DEAD:
+                       state = "dead";
+                       break;
+
+               default:
+                       state = "unknown";
+                       break;
+               }
+
+               strlcpy(out, state, outlen);
+               return strlen(out);
+       }
+
        return xlat_cs(request->home_server->cs, fmt, out, outlen);
 }