template <class Request> inlinevoid addRouterAttribute(Request& r, int type, constvoid* data, size_t size) { // Calculate the offset into the character buffer where the RTA data lives // We use offsetof on the buffer to get it. This avoids undefined behavior // by casting the buffer (which is safe because it's char) instead of the // Request struct.(which is undefined because of aliasing)
size_t offset = NLMSG_ALIGN(r.hdr.nlmsg_len) - offsetof(Request, buf); auto attr = reinterpret_cast<struct rtattr*>(r.buf + offset);
attr->rta_type = type;
attr->rta_len = RTA_LENGTH(size);
memcpy(RTA_DATA(attr), data, size);
// Update the message length to include the router attribute.
r.hdr.nlmsg_len = NLMSG_ALIGN(r.hdr.nlmsg_len) + RTA_ALIGN(attr->rta_len);
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-27)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.