LINUX.ORG.RU

Формирование SMB пакета - трабл


0

0

Обьясните плз что происходит: Есть структура описывающая SMB_HEADER, вот ее кусок u_char error_class; /* Success 0x00 */ u_char reserved; /* 0x00 */ u_short error_code; /* 0x00 0x00 No Error */ u_сhar flags; /* 0x18 */ u_short flags_2; /* 0x04 0x00 */ Заполняю эти (ну остальные ессно) поля в программе и отсылаю в сокет. ПОтом сниффером смотрю - че я там отсылаю и вижу что между error_code и flags откуда то появился (!!!) левый байт 0x00 из за него понятно все сдвигается, и в результае получается вообще нечто другое!!! Откуда этот байт берется?!? И как его убрать?

anonymous

Выранивание структуры по границе байта спасёт отца русской демократии
т.е добавить к описанию структуры __attribute__((packed))
и будет тебе щастье....

dlomin
()
Ответ на: комментарий от dlomin

Спасибо - уже нашел. Правда помогло применение не ко всей структуре, а к отдельным ее членам. Но теперь откудато другой глюк:пишу в U_short 0x0400 на выходе 0x0004, причем это происходит не со всеми членами а только с отдельными...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.