aboutsummaryrefslogtreecommitdiffstats
path: root/main/freeradius/freeradius-3010-send-acct-pings-to-acct-port.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/freeradius/freeradius-3010-send-acct-pings-to-acct-port.patch')
-rw-r--r--main/freeradius/freeradius-3010-send-acct-pings-to-acct-port.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/main/freeradius/freeradius-3010-send-acct-pings-to-acct-port.patch b/main/freeradius/freeradius-3010-send-acct-pings-to-acct-port.patch
new file mode 100644
index 0000000000..3dbd210e35
--- /dev/null
+++ b/main/freeradius/freeradius-3010-send-acct-pings-to-acct-port.patch
@@ -0,0 +1,41 @@
+--- a/src/main/process.c
++++ b/src/main/process.c
+@@ -3479,7 +3479,8 @@
+ fr_pair_make(request->proxy, &request->proxy->vps,
+ "Message-Authenticator", "0x00", T_OP_SET);
+
+- } else if (home->type == HOME_TYPE_AUTH) {
++ } else if ((home->type == HOME_TYPE_AUTH) ||
++ (home->type == HOME_TYPE_AUTH_ACCT)) {
+ request->proxy->code = PW_CODE_ACCESS_REQUEST;
+
+ fr_pair_make(request->proxy, &request->proxy->vps,
+@@ -3491,8 +3492,8 @@
+ fr_pair_make(request->proxy, &request->proxy->vps,
+ "Message-Authenticator", "0x00", T_OP_SET);
+
+- } else {
+ #ifdef WITH_ACCOUNTING
++ } else if (home->type == HOME_TYPE_ACCT) {
+ request->proxy->code = PW_CODE_ACCOUNTING_REQUEST;
+
+ fr_pair_make(request->proxy, &request->proxy->vps,
+@@ -3504,9 +3505,14 @@
+ vp = fr_pair_make(request->proxy, &request->proxy->vps,
+ "Event-Timestamp", "0", T_OP_SET);
+ vp->vp_date = now.tv_sec;
+-#else
+- rad_assert("Internal sanity check failed");
+ #endif
++
++ } else {
++ /*
++ * Unkown home server type.
++ */
++ talloc_free(request);
++ return;
+ }
+
+ vp = fr_pair_make(request->proxy, &request->proxy->vps,
+Only in b: src/main/process.c.orig
+Only in b: src/main/process.c.rej