![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
bodigard |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
Доброго времени суток, помогите плиз разовбраться как правильно получить доступ к данным пользователя в sk_buff.
есть модуль фильтрации http трафика и работал он прекрасно, но понадобилось перенести на другой сервер, в результате код работающий на 1ном железе перестал работать на другом :( Так как прошлый сервер благополучно переустановили то сравнивать можно лишь с виртуалкой, версии ОС и библиотек идентичны на виртуалке и на железном сервере. на виртуалке получаю данные пользовалетя так
работает прекрасно, см результат 2 если тоже самое сделать на железном сервере то получу результат 1 далее, на железном сервере вставляю мощьный костыль в виде копирования sk_buff посредством skb_copy и получаю правельный результат, результат 2. но от этого костыля очень хочеться уйти ... есть подозрение что на железном сервере каким-то образом в памяти фрагментируется sk_buff, но как правильно к этому подойти ума не приложу :( вот кусок кода (за стиль извиняюсь, переписывал его раз на 20ть по разному, но работает только этот, с копированием)
так регестрирую функцию
Результат 1
Результат 2
Заранее благодарен ! С уважением. |
||||||||||
|
|||||||||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 2 Всего: 135 |
Может данные по указателю skb перетираются в другом потоке ?
А если быстренько скопировать данные, то перетирание исходных на это не влияет... Попробуй перед копированием вставить задержку - если увидишь битые данные и в копии, то это подтвердит мои слова -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
Обратил внимание, что в структуре
может быть ещё одно поле owner, которое Вы не инициализируете. Когда это поле добавилось, я не знаю, но на новеньком сервере оно вполне может иметь место. В добавок: Это самоубийство... Добавлено через 7 минут и 35 секунд К тому же лучше пользоваться функциями ip_hdr, skb_network_header, ip_hdrlen etc (например, в заголовке IP могут присутствовать опции). -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
bodigard |
|
||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
благодарю, гляну на что это влияет. знаю ![]()
учту на будущее пробовал так
результат идентичен моему даже если так, то не соображу, что это даст ? сейчас отчасти решил проблему использованием skb_linearize(skb), на на сколько понимаю это опятьже своеобразный костыль ... т.е. вид в профиль так сказать ... Это сообщение отредактировал(а) feodorv - 12.9.2013, 16:33 |
||||
|
|||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
Я, в сущности, иное имел в виду ![]() Если в данных user_data_ptr отсутствует '\0', то Вы уезжаете за пределы предоставленных данных.... А так не годится?
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
bodigard |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
||||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
owner не помог?
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
bodigard |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
||||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
А я думал, что речь идёт об IP-фрагментах, а не о фрагментах Netfilter-данных... -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |