Moved RADIUS Class attribute helpers into RADIUS module
This commit is contained in:
parent
93ea8ed034
commit
010dc06853
6 changed files with 64 additions and 68 deletions
|
@ -1232,3 +1232,44 @@ int radius_msg_get_vlanid(struct radius_msg *msg)
|
|||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
void radius_free_class(struct radius_class_data *c)
|
||||
{
|
||||
size_t i;
|
||||
if (c == NULL)
|
||||
return;
|
||||
for (i = 0; i < c->count; i++)
|
||||
os_free(c->attr[i].data);
|
||||
os_free(c->attr);
|
||||
c->attr = NULL;
|
||||
c->count = 0;
|
||||
}
|
||||
|
||||
|
||||
int radius_copy_class(struct radius_class_data *dst,
|
||||
const struct radius_class_data *src)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
if (src->attr == NULL)
|
||||
return 0;
|
||||
|
||||
dst->attr = os_zalloc(src->count * sizeof(struct radius_attr_data));
|
||||
if (dst->attr == NULL)
|
||||
return -1;
|
||||
|
||||
dst->count = 0;
|
||||
|
||||
for (i = 0; i < src->count; i++) {
|
||||
dst->attr[i].data = os_malloc(src->attr[i].len);
|
||||
if (dst->attr[i].data == NULL)
|
||||
break;
|
||||
dst->count++;
|
||||
os_memcpy(dst->attr[i].data, src->attr[i].data,
|
||||
src->attr[i].len);
|
||||
dst->attr[i].len = src->attr[i].len;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -269,4 +269,19 @@ int radius_msg_get_attr_ptr(struct radius_msg *msg, u8 type, u8 **buf,
|
|||
size_t *len, const u8 *start);
|
||||
int radius_msg_count_attr(struct radius_msg *msg, u8 type, int min_len);
|
||||
|
||||
|
||||
struct radius_attr_data {
|
||||
u8 *data;
|
||||
size_t len;
|
||||
};
|
||||
|
||||
struct radius_class_data {
|
||||
struct radius_attr_data *attr;
|
||||
size_t count;
|
||||
};
|
||||
|
||||
void radius_free_class(struct radius_class_data *c);
|
||||
int radius_copy_class(struct radius_class_data *dst,
|
||||
const struct radius_class_data *src);
|
||||
|
||||
#endif /* RADIUS_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue