Home | History | Annotate | Download | only in radius

Lines Matching full:attr

263 	struct radius_attr_type *attr;
267 attr = radius_get_attr_type(hdr->type);
270 hdr->type, attr ? attr->name : "?Unknown?", hdr->length);
272 if (attr == NULL || hdr->length < sizeof(struct radius_attr_hdr))
278 switch (attr->data_type) {
338 struct radius_attr_hdr *attr = radius_get_attr_hdr(msg, i);
339 radius_msg_dump_attr(attr);
349 struct radius_attr_hdr *attr;
352 attr = radius_msg_add_attr(msg,
355 if (attr == NULL) {
362 wpabuf_len(msg->buf), (u8 *) (attr + 1));
379 struct radius_attr_hdr *attr;
384 attr = radius_msg_add_attr(msg, RADIUS_ATTR_MESSAGE_AUTHENTICATOR,
386 if (attr == NULL) {
394 wpabuf_len(msg->buf), (u8 *) (attr + 1));
423 struct radius_attr_hdr *attr;
426 attr = radius_msg_add_attr(msg, RADIUS_ATTR_MESSAGE_AUTHENTICATOR,
428 if (attr == NULL) {
436 wpabuf_len(msg->buf), (u8 *) (attr + 1));
508 struct radius_attr_hdr *attr = NULL, *tmp;
527 if (attr != NULL) {
533 attr = tmp;
537 if (attr == NULL) {
542 os_memcpy(orig, attr + 1, MD5_MAC_LEN);
543 os_memset(attr + 1, 0, MD5_MAC_LEN);
550 os_memcpy(attr + 1, orig, MD5_MAC_LEN);
559 struct radius_attr_hdr *attr)
575 (unsigned char *) attr - wpabuf_head_u8(msg->buf);
585 struct radius_attr_hdr *attr;
593 buf_needed = sizeof(*attr) + data_len;
602 attr = wpabuf_put(msg->buf, sizeof(struct radius_attr_hdr));
603 attr->type = type;
604 attr->length = sizeof(*attr) + data_len;
607 if (radius_msg_add_attr_to_array(msg, attr))
610 return attr;
627 struct radius_attr_hdr *attr;
662 if ((size_t) (end - pos) < sizeof(*attr))
665 attr = (struct radius_attr_hdr *) pos;
667 if (pos + attr->length > end || attr->length < sizeof(*attr))
670 /* TODO: check that attr->length is suitable for attr->type */
672 if (radius_msg_add_attr_to_array(msg, attr))
675 pos += attr->length;
714 struct radius_attr_hdr *attr;
721 attr = radius_get_attr_hdr(msg, i);
722 if (attr->type == RADIUS_ATTR_EAP_MESSAGE &&
723 attr->length > sizeof(struct radius_attr_hdr))
724 len += attr->length - sizeof(struct radius_attr_hdr);
735 attr = radius_get_attr_hdr(msg, i);
736 if (attr->type == RADIUS_ATTR_EAP_MESSAGE &&
737 attr->length > sizeof(struct radius_attr_hdr)) {
738 int flen = attr->length - sizeof(*attr);
739 wpabuf_put_data(eap, attr + 1, flen);
752 struct radius_attr_hdr *attr = NULL, *tmp;
758 if (attr != NULL) {
763 attr = tmp;
767 if (attr == NULL) {
772 os_memcpy(orig, attr + 1, MD5_MAC_LEN);
773 os_memset(attr + 1, 0, MD5_MAC_LEN);
782 os_memcpy(attr + 1, orig, MD5_MAC_LEN);
837 struct radius_attr_hdr *attr;
842 attr = radius_get_attr_hdr(src, i);
843 if (attr->type == type && attr->length >= sizeof(*attr)) {
844 if (!radius_msg_add_attr(dst, type, (u8 *) (attr + 1),
845 attr->length - sizeof(*attr)))
895 struct radius_attr_hdr *attr = radius_get_attr_hdr(msg, i);
900 if (attr->type != RADIUS_ATTR_VENDOR_SPECIFIC ||
901 attr->length < sizeof(*attr))
904 left = attr->length - sizeof(*attr);
908 pos = (u8 *) (attr + 1);
1142 struct radius_attr_hdr *attr;
1171 attr = radius_msg_add_attr(msg, RADIUS_ATTR_VENDOR_SPECIFIC,
1174 if (attr == NULL) {
1196 attr = radius_msg_add_attr(msg, RADIUS_ATTR_VENDOR_SPECIFIC,
1199 if (attr == NULL) {
1263 struct radius_attr_hdr *attr = NULL, *tmp;
1269 attr = tmp;
1274 if (!attr || attr->length < sizeof(*attr))
1277 dlen = attr->length - sizeof(*attr);
1279 os_memcpy(buf, (attr + 1), dlen > len ? len : dlen);
1288 struct radius_attr_hdr *attr = NULL, *tmp;
1294 attr = tmp;
1299 if (!attr || attr->length < sizeof(*attr))
1302 *buf = (u8 *) (attr + 1);
1303 *len = attr->length - sizeof(*attr);
1314 struct radius_attr_hdr *attr = radius_get_attr_hdr(msg, i);
1315 if (attr->type == type &&
1316 attr->length >= sizeof(struct radius_attr_hdr) + min_len)
1341 struct radius_attr_hdr *attr = NULL;
1349 attr = radius_get_attr_hdr(msg, i);
1350 if (attr->length < sizeof(*attr))
1352 data = (const u8 *) (attr + 1);
1353 dlen = attr->length - sizeof(*attr);
1354 if (attr->length < 3)
1361 switch (attr->type) {
1363 if (attr->length != 6)
1369 if (attr->length != 6)
1425 struct radius_attr_hdr *attr;
1434 attr = radius_get_attr_hdr(msg, i);
1435 if (attr == NULL ||
1436 attr->type != RADIUS_ATTR_TUNNEL_PASSWORD) {
1439 if (attr->length <= 5)
1441 data = (const u8 *) (attr + 1);
1442 dlen = attr->length - sizeof(*attr);
1525 os_free(c->attr[i].data);
1526 os_free(c->attr);
1527 c->attr = NULL;
1537 if (src->attr == NULL)
1540 dst->attr = os_calloc(src->count, sizeof(struct radius_attr_data));
1541 if (dst->attr == NULL)
1547 dst->attr[i].data = os_malloc(src->attr[i].len);
1548 if (dst->attr[i].data == NULL)
1551 os_memcpy(dst->attr[i].data, src->attr[i].data,
1552 src->attr[i].len);
1553 dst->attr[i].len = src->attr[i].len;
1563 struct radius_attr_hdr *attr;
1566 attr = radius_get_attr_hdr(msg, i);
1569 if (attr->type == attrs[j])
1574 return attr->type; /* unlisted attr */