IPv6 hton layout does not match ipv6_mreq
Personne n'a encore pris cette issue.
- Langage dominant
- Ruby
- Étoiles
- 82
- Forks
- 42
- Merge moyen
- 2 h 24 min
- PR mergées (30 j)
- 3
Description
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.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
L’issue mentionne IPAddr#hton et la structure C ipv6_mreq ; commencez par localiser l’implémentation de hton et les tests existants dans le dépôt ipaddr, puis comparez les longueurs en octets et les layouts des deux représentations. Le travail est terminé lorsque la relation attendue entre hton et ipv6_mreq est décidée et documentée par un test de régression ou une modification du comportement clairement justifiée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- c, ruby
- Domaine
- networking
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 46/100