IPv6 hton layout does not match ipv6_mreq
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Ruby
- Sterne
- 82
- Forks
- 42
- Ø Merge
- 2 Std. 24 Min.
- Gemergte PRs (30 T.)
- 3
Beschreibung
Given this C program:
#include <netinet/in.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char * argv[])
{
struct ipv6_mreq req;
memset(&req, 0, sizeof(req));
req.ipv6mr_multiaddr.s6_addr[0] = 0xFF;
req.ipv6mr_multiaddr.s6_addr[1] = 0x02;
req.ipv6mr_multiaddr.s6_addr[15] = 0xFB;
uint8_t * ptr = (uint8_t *)&req;
for(int i = 0; i < sizeof(req); i++) {
fprintf(stderr, "\\%#02x", ptr[i]);
}
fprintf(stderr, "\n");
return 0;
}
The bytes of the ipv6_mreq struct are: \0xff\0x2\00\00\00\00\00\00\00\00\00\00\00\00\00\0xfb\00\00\00\00
However, if I use this Ruby program:
require "ipaddr"
p IPAddr.new("ff02::fb").hton
The bytes are: "\xFF\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFB"
I think hton should match the ipv6_mreq layout.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Das Issue nennt IPAddr#hton und die C-Struktur ipv6_mreq; beginne damit, die hton-Implementierung und vorhandenen Tests im ipaddr-Repository zu finden, und vergleiche anschließend die Byte-Längen und Layouts der beiden Repräsentationen. Als abgeschlossen gilt die Arbeit, wenn die erwartete Beziehung zwischen hton und ipv6_mreq entschieden und durch einen Regressionstest oder eine klar begründete Verhaltensänderung dokumentiert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- c, ruby
- Bereich
- networking
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 46/100