diff --git a/src/main/process.c b/src/main/process.c index b08eca84f841..179b2c7b5ecc 100644 --- a/src/main/process.c +++ b/src/main/process.c @@ -3450,7 +3450,8 @@ static void ping_home_server(void *ctx, struct timeval *now) 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, @@ -3462,8 +3463,8 @@ static void ping_home_server(void *ctx, struct timeval *now) 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, @@ -3475,9 +3476,14 @@ static void ping_home_server(void *ctx, struct timeval *now) 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,