Alternativni UNIX systemy - BSD
Dalibor Straka
dast na panelnet.cz
Pondělí Leden 15 16:00:18 CET 2007
Ahoj,
On Mon, Jan 15, 2007 at 11:19:57AM +0100, Martin `MJ' Mares wrote:
> > Ne, protokol jasne specifikuje jakou endianitu mit musi.
>
> No prave, protokol ano, zatimco Tve cteni nikoliv :-)
>
Nesouhlasim nebo mam spatne kod (!). Funkce
uint32_t ntohl(uint32_t netlong);
je na me x86 s telickem, ktere obrati poradi bytu. Kdezto na Solarisu
je to funkce s prazdnym telickem a nedela nic.
> > Aha, to me zajima. Nekde nemusi byt uint32_t?
>
> Presne tak. (Nicmene jsem takovy prekladac na zadne rozumne architekture
> jeste nepotkal.)
>
> > Ze sitovych paketu ctu pomoci ntohl(). Pri nejhorsim mohu kdykoliv
> > nahradit prave ntohl a htonl svymi vytvory ;-).
>
> Myslim si, ze pokud se nesnazis usetrit kazdou nanosekundu, je daleko
> rozumnejsi packet precist vcelku a napsat si svou vlastni funkci na
> poskladani vicebytoveho cisla. A to zejmena, kdyz vis, ze tato cisla
> nejsou rozumne alignovana.
>
Program mam docela dobre rozdeleny, paket se nacita jako celek, a pak
na nej volam funkce pro vydolovani cislicek. Takze staci trivialne
pozmenit tyto funkce. Uz jsem to jednou menil. Nerad bych, aby muj
zapoctak skoncil na zapoctakovem smetisti, takze ma i stranku na
sourceforge.net a chci vytvorit neco tvralejsiho ;).
Diky vsem za rady,
-- Dalibor
Další informace o konferenci Linux