LINUX.ORG.RU

Открытие сетевого интерфейса


0

1

Выручайте. Задача сформировать и послать пакет, но заминка возникает при открытии сетевого интерфейса с помощью функции eth_open() из dnet(3). device это eth_t ether это чар* «eth0»

if((device = eth_open(ether)) == NULL) {    DPRINT(«Ошибка eth_open('%s'), errno: %d (%s)», ether, errno, strerror(errno));    return(-1); } Ошибка: Операция не позволяется. И это тсранно потому что такойже код в другом приложении работает на ура. У кого какие мысли?


Может приложение уже открыло его в другом месте и он просто занят? Я в этих сетевых делах пока не очень, но это первая мысль.

flareguner
()

права приложения и пользователь, от которого приложение исполняется

teosub
()

Скорее всего что-то с правами. Полный лог ошибки покажи.

Boy_from_Jungle ★★★★
()

запускается из под рута, права? а на что права? eth0 это же не файл) нет такого утсройства как /dev/eth0

lawey
() автор топика
Ответ на: комментарий от Boy_from_Jungle

от рута, все права абсолютно точно такие же как и у другого приложения в котором это работает

lawey
() автор топика
Ответ на: комментарий от Boy_from_Jungle

так все в первом сообщении, больше мне нечего показать, потому что в глобальном масштабе это огромный старый, плохо написанный сетевой проект в котором я перманентно лечу возникающие то и дело сигфолты, вот локальная задача сейчас открыть интерфейс)

lawey
() автор топика

Попробуйте помучать strace. Если постараться, то можно понять, какие системные вызовы и с какими параметрами производятся в ходе выполнения eth_open().

А если у вас там сегфолты, то непонятно что с памятью, может у вас вовсе не «eth0» в ether.

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

не, сигфолт который я сейчас лечу был гораздо раньше, в ether точно eth0 иначе я бы не писал) то что вызывается в eth_open() я и так знаю(посмотрел в исходниках днета) могу кстати кинут сюда код эой функции) хотя это наверноу уже усложнение задачи

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

>то что вызывается в eth_open() я и так знаю

Ну дак тогда и задавайте вопрос в виде «почему такой-то syscall() с такими то параметрами возвращает ошибку».

mky ★★★★★
()
Ответ на: комментарий от lawey

>я сейчас лечу

Тоже веществами злоупотреблял?

Смотри по коду, иб где раньше интерфейс открывается и занят потом, как следствие.

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