break;
case INETADDRESSTYPEIPV6:
prefix.family = AF_INET6;
- oid2in_addr(&name[i], sizeof(struct in6_addr),
- &prefix.u.prefix4); /* sic */
+ oid2in6_addr(&name[i], &prefix.u.prefix6);
i += sizeof(struct in6_addr);
break;
}
break;
case INETADDRESSTYPEIPV6:
nexthop.ipa_type = IPADDR_V6;
- oid2in_addr(&name[i], sizeof(struct in6_addr),
- &nexthop.ip._v4_addr); /* sic */
+ oid2in6_addr(&name[i], &nexthop.ip._v6_addr);
/* i += sizeof(struct in6_addr); */
break;
}
size_t trapobjlen, uint8_t sptrap);
extern int oid_compare(const oid *, int, const oid *, int);
extern void oid2in_addr(oid[], int, struct in_addr *);
+extern void oid2in6_addr(oid oid[], struct in6_addr *addr);
extern void oid2int(oid oid[], int *dest);
extern void *oid_copy(void *, const void *, size_t);
extern void oid_copy_addr(oid[], const struct in_addr *, int);
*pnt++ = oid[i];
}
+void oid2in6_addr(oid oid[], struct in6_addr *addr)
+{
+ unsigned int i;
+ uint8_t *pnt;
+
+ pnt = (uint8_t *)addr;
+
+ for (i = 0; i < sizeof(struct in6_addr); i++)
+ *pnt++ = oid[i];
+}
+
void oid2int(oid oid[], int *dest)
{
uint8_t i;