]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
no more need for rad_accounting() or acct.c
authorAlan T. DeKok <aland@freeradius.org>
Tue, 24 Oct 2017 15:57:11 +0000 (11:57 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 24 Oct 2017 15:58:05 +0000 (11:58 -0400)
src/include/radiusd.h
src/main/acct.c [deleted file]
src/main/radiusd.mk
src/main/unit_test_module.mk

index fd19c4557bfd14a6ea08ec83aed5dc448dfb7356..53eaab79c977253bf88e4704fd6daf8d6683b635 100644 (file)
@@ -371,9 +371,6 @@ typedef enum {
  *     Function prototypes.
  */
 
-/* acct.c */
-rlm_rcode_t    rad_accounting(REQUEST *);
-
 rlm_rcode_t            rad_coa_recv(REQUEST *request);
 
 /* session.c */
diff --git a/src/main/acct.c b/src/main/acct.c
deleted file mode 100644 (file)
index 9c866dc..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * acct.c      Accounting routines.
- *
- * Version:    $Id$
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- *
- * Copyright 2000,2006  The FreeRADIUS server project
- * Copyright 2000  Miquel van Smoorenburg <miquels@cistron.nl>
- * Copyright 2000  Alan DeKok <aland@ox.org>
- * Copyright 2000  Alan Curry <pacman@world.std.com>
- */
-
-RCSID("$Id$")
-
-#include <freeradius-devel/radiusd.h>
-#include <freeradius-devel/modules.h>
-
-#ifdef WITH_ACCOUNTING
-/*
- *     rad_accounting: call modules.
- *
- *     The return value of this function isn't actually used right now, so
- *     it's not entirely clear if it is returning the right things. --Pac.
- */
-rlm_rcode_t rad_accounting(REQUEST *request)
-{
-       rlm_rcode_t rcode = RLM_MODULE_OK;
-
-
-#ifdef WITH_PROXY
-#define WAS_PROXIED (request->proxy)
-#else
-#define WAS_PROXIED (0)
-#endif
-
-       /*
-        *      Run the modules only once, before proxying.
-        */
-       if (!WAS_PROXIED) {
-               VALUE_PAIR      *vp;
-               int             acct_type = 0;
-
-               rcode = process_preacct(request);
-               switch (rcode) {
-               /*
-                *      The module has a number of OK return codes.
-                */
-               case RLM_MODULE_NOOP:
-               case RLM_MODULE_OK:
-               case RLM_MODULE_UPDATED:
-                       break;
-               /*
-                *      The module handled the request, stop here.
-                */
-               case RLM_MODULE_HANDLED:
-                       return rcode;
-               /*
-                *      The module failed, or said the request is
-                *      invalid, therefore we stop here.
-                */
-               case RLM_MODULE_FAIL:
-               case RLM_MODULE_INVALID:
-               case RLM_MODULE_NOTFOUND:
-               case RLM_MODULE_REJECT:
-               case RLM_MODULE_USERLOCK:
-               default:
-                       return rcode;
-               }
-
-               /*
-                *      Do the data storage before proxying. This is to ensure
-                *      that we log the packet, even if the proxy never does.
-                */
-               vp = fr_pair_find_by_num(request->control, 0, FR_ACCT_TYPE, TAG_ANY);
-               if (vp) DEBUG2("  Found Acct-Type %s", fr_dict_enum_alias_by_value(NULL, vp->da, &vp->data));
-
-               rcode = process_accounting(acct_type, request);
-               switch (rcode) {
-               /*
-                *      In case the accounting module returns FAIL,
-                *      it's still useful to send the data to the
-                *      proxy.
-                */
-               case RLM_MODULE_FAIL:
-               case RLM_MODULE_NOOP:
-               case RLM_MODULE_OK:
-               case RLM_MODULE_UPDATED:
-                       break;
-               /*
-                *      The module handled the request, don't reply.
-                */
-               case RLM_MODULE_HANDLED:
-                       return rcode;
-               /*
-                *      Neither proxy, nor reply to invalid requests.
-                */
-               case RLM_MODULE_INVALID:
-               case RLM_MODULE_NOTFOUND:
-               case RLM_MODULE_REJECT:
-               case RLM_MODULE_USERLOCK:
-               default:
-                       return rcode;
-               }
-       }
-
-#ifdef WITH_PROXY
-       /*
-        *      We didn't see a reply to the proxied request.  Fail.
-        */
-       if (request->proxy && !request->proxy->reply) return RLM_MODULE_FAIL;
-#endif
-
-       /*
-        *      We get here IF we're not proxying, OR if we've
-        *      received the accounting reply from the end server,
-        *      THEN we can reply to the NAS.
-        *      If the accounting module returns NOOP, the data
-        *      storage did not succeed, so radiusd should not send
-        *      Accounting-Response.
-        */
-       switch (rcode) {
-       /*
-        *      Send back an ACK to the NAS.
-        */
-       case RLM_MODULE_OK:
-       case RLM_MODULE_UPDATED:
-               request->reply->code = FR_CODE_ACCOUNTING_RESPONSE;
-               break;
-
-       /*
-        *      Failed to log or to proxy the accounting data,
-        *      therefore don't reply to the NAS.
-        */
-       case RLM_MODULE_FAIL:
-       case RLM_MODULE_INVALID:
-       case RLM_MODULE_NOOP:
-       case RLM_MODULE_NOTFOUND:
-       case RLM_MODULE_REJECT:
-       case RLM_MODULE_USERLOCK:
-       default:
-               break;
-       }
-       return rcode;
-}
-#endif
index 0504b9a3071c5a27212624d03184b228f006fa6e..bdf2961ed039eb1206907a8f5dffef0e6cca1d4a 100644 (file)
@@ -1,5 +1,5 @@
 TARGET := radiusd
-SOURCES := acct.c \
+SOURCES := \
     auth.c \
     conduit.c \
     client.c \
index 5b88223293aa19e12187edd146821c2073004c1a..b3c710bb1a0631d3787f70c3b87f748170d78562 100644 (file)
@@ -1,6 +1,5 @@
 TARGET := unit_test_module
 SOURCES := \
-       acct.c \
        auth.c \
        client.c \
        crypt.c \