};
static fr_dict_attr_t const *attr_user_name;
+static fr_dict_attr_t const *attr_reply_message;
static fr_dict_attr_t const *attr_session_timeout;
extern fr_dict_attr_autoload_t rlm_sqlcounter_dict_attr[];
fr_dict_attr_autoload_t rlm_sqlcounter_dict_attr[] = {
{ .out = &attr_user_name, .name = "User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius },
+ { .out = &attr_reply_message, .name = "Reply-Message", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_session_timeout, .name = "Session-Timeout", .type = FR_TYPE_UINT32, .dict = &dict_radius },
{ NULL }
};
* Check if check item > counter
*/
if (limit->vp_uint64 <= counter) {
+ VALUE_PAIR *vp;
+
/* User is denied access, send back a reply message */
snprintf(msg, sizeof(msg), "Your maximum %s usage time has been reached", inst->reset);
- pair_make_reply("Reply-Message", msg, T_OP_EQ);
+
+ MEM(pair_update_reply(&vp, attr_reply_message) >= 0);
+ fr_pair_value_strcpy(vp, msg);
REDEBUG2("Maximum %s usage time reached", inst->reset);
REDEBUG2("Rejecting user, %s value (%" PRIu64 ") is less than counter value (%" PRIu64 ")",