Add support for extended attributes: draft-dekok-radext-radius-extensions
[freeradius.git] / src / include / libradius.h
index a12dfaa..e7cdbc6 100644 (file)
@@ -62,6 +62,7 @@ RCSIDH(libradius_h, "$Id$")
 #define AUTH_VECTOR_LEN                16
 #define CHAP_VALUE_LENGTH       16
 #define MAX_STRING_LEN         254     /* RFC2138: string 0-253 octets */
+#define FR_MAX_VENDOR          (1 << 24) /* RFC limitations */
 
 #ifdef _LIBRADIUS
 #  define AUTH_HDR_LEN         20
@@ -103,9 +104,12 @@ typedef struct attr_flags {
        unsigned int            has_tlv : 1; /* has sub attributes */
        unsigned int            is_tlv : 1; /* is a sub attribute */
        unsigned int            encoded : 1; /* has been put into packet */
+       unsigned int            extended : 1; /* extended attribute */
+       unsigned int            extended_flags : 1; /* with flag */
 
        int8_t                  tag;          /* tag for tunneled attributes */
        uint8_t                 encrypt;      /* encryption method */
+       uint8_t                 length;
 } ATTR_FLAGS;
 
 /*
@@ -329,6 +333,7 @@ int         rad_vp2attr(const RADIUS_PACKET *packet,
 
 /* valuepair.c */
 VALUE_PAIR     *pairalloc(DICT_ATTR *da);
+VALUE_PAIR     *paircreate_raw(int attr, int vendor, int type, VALUE_PAIR *);
 VALUE_PAIR     *paircreate(int attr, int vendor, int type);
 void           pairfree(VALUE_PAIR **);
 void            pairbasicfree(VALUE_PAIR *pair);