extern fr_dict_attr_t const *attr_tacacs_authorization_status;
extern fr_dict_attr_t const *attr_tacacs_client_port;
extern fr_dict_attr_t const *attr_tacacs_data;
+extern fr_dict_attr_t const *attr_tacacs_flags;
extern fr_dict_attr_t const *attr_tacacs_packet;
extern fr_dict_attr_t const *attr_tacacs_packet_type;
extern fr_dict_attr_t const *attr_tacacs_privilege_level;
fr_dict_attr_t const *attr_tacacs_authorization_status;
fr_dict_attr_t const *attr_tacacs_client_port;
fr_dict_attr_t const *attr_tacacs_data;
+fr_dict_attr_t const *attr_tacacs_flags;
fr_dict_attr_t const *attr_tacacs_packet;
fr_dict_attr_t const *attr_tacacs_packet_type;
fr_dict_attr_t const *attr_tacacs_privilege_level;
{ .out = &attr_tacacs_authorization_status, .name = "TACACS-Authorization-Status", .type = FR_TYPE_UINT8, .dict = &dict_tacacs },
{ .out = &attr_tacacs_client_port, .name = "TACACS-Client-Port", .type = FR_TYPE_STRING, .dict = &dict_tacacs },
{ .out = &attr_tacacs_data, .name = "TACACS-Data", .type = FR_TYPE_STRING, .dict = &dict_tacacs },
+ { .out = &attr_tacacs_flags, .name = "TACACS-Flags", .type = FR_TYPE_UINT8, .dict = &dict_tacacs },
{ .out = &attr_tacacs_packet, .name = "TACACS-Packet", .type = FR_TYPE_STRUCT, .dict = &dict_tacacs },
{ .out = &attr_tacacs_packet_type, .name = "TACACS-Packet-Type", .type = FR_TYPE_UINT8, .dict = &dict_tacacs },
{ .out = &attr_tacacs_privilege_level, .name = "TACACS-Privilege-Level", .type = FR_TYPE_UINT8, .dict = &dict_tacacs },
vp->vp_uint8 = pkt->hdr.seq_no;
fr_cursor_append(&cursor, vp);
+ vp = fr_pair_afrom_da(packet, attr_tacacs_flags);
+ if (!vp) goto oom;
+ vp->vp_uint8 = pkt->hdr.flags;
+ fr_cursor_append(&cursor, vp);
+
vp = fr_pair_afrom_da(packet, attr_tacacs_session_id);
if (!vp) goto oom;
vp->vp_uint32 = ntohl(pkt->hdr.session_id);