Enable building WITHOUT_ACCOUNTING
[freeradius.git] / src / modules / rlm_always / rlm_always.c
index cb908a0..33a9920 100644 (file)
 #include <freeradius-devel/ident.h>
 RCSID("$Id$")
 
-#include <freeradius-devel/autoconf.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
 #include <freeradius-devel/radiusd.h>
 #include <freeradius-devel/modules.h>
 
@@ -114,8 +108,6 @@ static int always_instantiate(CONF_SECTION *conf, void **instance)
         *      Convert the rcode string to an int, and get rid of it
         */
        data->rcode = str2rcode(data->rcode_str);
-       free(data->rcode_str);
-       data->rcode_str = NULL;
        if (data->rcode == -1) {
                free(data);
                return -1;
@@ -138,6 +130,7 @@ static int always_return(void *instance, REQUEST *request)
        return ((struct rlm_always_t *)instance)->rcode;
 }
 
+#ifdef WITH_SESSION_MGMT
 /*
  *     checksimul fakes some other variables besides the rcode...
  */
@@ -152,6 +145,7 @@ static int always_checksimul(void *instance, REQUEST *request)
 
        return inst->rcode;
 }
+#endif
 
 static int always_detach(void *instance)
 {
@@ -162,7 +156,7 @@ static int always_detach(void *instance)
 module_t rlm_always = {
        RLM_MODULE_INIT,
        "always",
-       RLM_TYPE_THREAD_SAFE,           /* type */
+       RLM_TYPE_CHECK_CONFIG_SAFE,     /* type */
        always_instantiate,             /* instantiation */
        always_detach,                  /* detach */
        {
@@ -170,9 +164,18 @@ module_t rlm_always = {
                always_return,          /* authorization */
                always_return,          /* preaccounting */
                always_return,          /* accounting */
+#ifdef WITH_SESSION_MGMT
                always_checksimul,      /* checksimul */
+#else
+               NULL,
+#endif
                always_return,          /* pre-proxy */
                always_return,          /* post-proxy */
                always_return           /* post-auth */
+#ifdef WITH_COA
+               ,
+               always_return,          /* recv-coa */
+               always_return           /* send-coa */
+#endif
        },
 };