added qse_raddic_addattr(), qse_raddic_deleteattrbyname(), qes_raddic_deleteattrbyvalue(), qse_raddic_findattrbyname(), qse_raddic_findattrbyvalue()

This commit is contained in:
2017-12-11 10:02:49 +00:00
parent c9bbd3c993
commit 80ade41ea9
3 changed files with 479 additions and 84 deletions

View File

@ -30,21 +30,21 @@
#include <qse/types.h>
#include <qse/macros.h>
#define QSE_RAD_ATTR_TYPE_STRING 0
#define QSE_RAD_ATTR_TYPE_INTEGER 1
#define QSE_RAD_ATTR_TYPE_IPADDR 2
#define QSE_RAD_ATTR_TYPE_DATE 3
#define QSE_RAD_ATTR_TYPE_ABINARY 4
#define QSE_RAD_ATTR_TYPE_OCTETS 5
#define QSE_RAD_ATTR_TYPE_IFID 6
#define QSE_RAD_ATTR_TYPE_IPV6ADDR 7
#define QSE_RAD_ATTR_TYPE_IPV6PREFIX 8
#define QSE_RAD_ATTR_TYPE_BYTE 9
#define QSE_RAD_ATTR_TYPE_SHORT 10
#define QSE_RAD_ATTR_TYPE_ETHERNET 11
#define QSE_RAD_ATTR_TYPE_SIGNED 12
#define QSE_RAD_ATTR_TYPE_COMBO_IP 13
#define QSE_RAD_ATTR_TYPE_TLV 14
#define QSE_RADDIC_ATTR_TYPE_STRING 0
#define QSE_RADDIC_ATTR_TYPE_INTEGER 1
#define QSE_RADDIC_ATTR_TYPE_IPADDR 2
#define QSE_RADDIC_ATTR_TYPE_DATE 3
#define QSE_RADDIC_ATTR_TYPE_ABINARY 4
#define QSE_RADDIC_ATTR_TYPE_OCTETS 5
#define QSE_RADDIC_ATTR_TYPE_IFID 6
#define QSE_RADDIC_ATTR_TYPE_IPV6ADDR 7
#define QSE_RADDIC_ATTR_TYPE_IPV6PREFIX 8
#define QSE_RADDIC_ATTR_TYPE_BYTE 9
#define QSE_RADDIC_ATTR_TYPE_SHORT 10
#define QSE_RADDIC_ATTR_TYPE_ETHERNET 11
#define QSE_RADDIC_ATTR_TYPE_SIGNED 12
#define QSE_RADDIC_ATTR_TYPE_COMBO_IP 13
#define QSE_RADDIC_ATTR_TYPE_TLV 14
struct qse_raddic_attr_flags_t
{
@ -63,16 +63,16 @@ struct qse_raddic_attr_flags_t
};
typedef struct qse_raddic_attr_flags_t qse_raddic_attr_flags_t;
typedef struct qse_raddic_attr_t qse_raddic_attr_t;
struct qse_raddic_attr_t
{
int attr;
int type;
int vendor;
qse_raddic_attr_flags_t flags;
qse_raddic_attr_t* nexta;
qse_char_t name[1];
};
typedef struct qse_raddic_attr_t qse_raddic_attr_t;
struct qse_raddic_value_t
{
@ -93,9 +93,12 @@ struct qse_raddic_vendor_t
qse_char_t name[1];
};
typedef struct qse_raddic_t qse_raddic_t;
#define QSE_RADDIC_ATTR_MAKE(vendor,value) ((((vendor) & 0xFFFF) << 8) | (value))
#define QSE_RADDIC_ATTR_VENDOR(attr) (((attr) >> 8) & 0xFFFF);
#define QSE_RADDIC_ATTR_VALUE(attr) ((attr) & 0xFF)
#if defined(__cplusplus)
extern "C" {
#endif
@ -122,7 +125,7 @@ QSE_EXPORT qse_raddic_vendor_t* qse_raddic_findvendorbyvalue (
QSE_EXPORT qse_raddic_vendor_t* qse_raddic_addvendor (
qse_raddic_t* dic,
const qse_char_t* name,
int value
int vendorpec
);
QSE_EXPORT int qse_raddic_deletevendorbyname (
@ -132,7 +135,39 @@ QSE_EXPORT int qse_raddic_deletevendorbyname (
QSE_EXPORT int qse_raddic_deletevendorbyvalue (
qse_raddic_t* dic,
int value
int vendorpec
);
QSE_EXPORT qse_raddic_attr_t* qse_raddic_findattrbyname (
qse_raddic_t* dic,
const qse_char_t* name
);
QSE_EXPORT qse_raddic_attr_t* qse_raddic_findattrbyvalue (
qse_raddic_t* dic,
int attr
);
QSE_EXPORT qse_raddic_attr_t* qse_raddic_addattr (
qse_raddic_t* dic,
const qse_char_t* name,
int vendor,
int type,
int value,
const qse_raddic_attr_flags_t* flags
);
QSE_EXPORT int qse_raddic_deleteattrbyname (
qse_raddic_t* dic,
const qse_char_t* name
);
QSE_EXPORT int qse_raddic_deleteattrbyvalue (
qse_raddic_t* dic,
int attr
);
#if defined(__cplusplus)