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