Re: [IPv6 IRC-DEV] IP en formato base 64 en el IRCU de Undernet
Brought to you by:
zolty
From: Daniel <fre...@un...> - 2003-02-03 09:55:20
|
El s=E1b, 01-02-2003 a las 09:35, Toni Garc=EDa escribi=F3: > El "if def" esta pensado para que los nodos que no compilan con INET6, > que habr=E1 nodos con sistema operativo tan viejo que no tendr=E1 ni > librer=EDas de IPv6 como el sunos de gaia, puedan tener algo para > almacenar el valor. Dudo en un "unsigned long" o un "char *". =BFCual > seria la mejor soluci=F3n? >=20 Pues habria que crear un tipo de datos nuevo que almacene los 128 bits, por ejemplo, haciendo una union como hacen en las propias librerias de IPv6, el problema esta en que no todos los compiladores de C usan el mismo rango para los int, ya que algunos usan 32 bits, y otros usan 16 bits. La creacion de un entero de 128 bits se podria hacer bien con un array de enteros que posteriormente serian usados como un tipo de 128 mediante casts (para no complicarse la existencia) o haciendo como hacen las propias librerias IPv6 (para hacerlo mas correcto): (Sacado de las propias librerias de IPv6) struct in6_addr { union { u_int8_t __u6_addr8[16]; u_int16_t __u6_addr16[8]; u_int32_t __u6_addr32[4]; } __u6_addr; /* 128-bit IP6 address */ }; Por cierto, creo que en el configure se detectan los tama=F1os de los tipos de datos del compilador, hay que verlo. S2 --=20 Daniel Fern=E1ndez <fre...@un...> |