Всем привет!
В двух словах задача примерно следующая: Когда к системе подключается USB-LAN адаптер, надо сперва запустить DHCP клиент, если тот не смог определить адрес, то надо или запустить avahi-autoipd или выставить статичеаский адрес. Имею udhcp в busybox. Понимаю, что частично можно задачу спихнуть в udhcp скрипт, но хочется все сделать в одной моей программе. Итак запустил я udhcp с конфигурацией: " выйди, если не смог определить адрес". Отслеживаю, когда udhcp заканчивает работу. Теперь надо определить получил ли адаптер «eth1» IP адрес. Делаю то, что нашел в гугле:
sock_fd = socket( AF_INET , SOCK_DGRAM , 0 );
strcpy( ifr.ifr_name , "eth1" );
ioctl( sock_fd , SIOCGIFADDR , &ifr );
printf("IP=%s\n", inet_ntoa( ((struct sockaddr_in *) (&ifr.ifr_addr))->sin_addr ) );
close( sock_fd );
IP=201.0.8.107
когда Ethernet кабель был выдернут и ifconfig показвает, что адаптер никакого адреса не получил. Естественно вопрос: ЧЯДНТ и как решить проблемку?
Всем заранее спасибо velik