[linux]нумерация хостов

Garryss

Есть следующий код:
 struct hostent *host;
__u32 host_addr=0;
__u32 gate_addr=0;
ifhost=gethostbyname("10.1.28.1"==NULL)
{
printf("host\n");
exit(1);
}
memcpy(&host_addr, host->h_addr, host->h_length);
gate_addr=htonl(INADDR_LOOPBACK);
route_add(&host_addr, &gate_addr);

где
 route_add(__u32* destination, __u32* gateway) 

То есть это попытка выполнить
 route add -host 10.1.28.1 gw localhost  

Но он не работает с такими параметрами, хотя при использовании host_addr=htonl(INADDR_ANY) все замечательно.

Garryss

Up

Garryss

Все: после 6 часов отладки ошибка устранена
В route_add(__u32* destination, __u32* gateway) при посылке сообщения ядру
параметр rtm_dst_len устанавливался в 0 -> функция работала только для
INADDR_ANY ==0
После вставки
  rtm_dst_len = 32;
все стало OK
Оставить комментарий
Имя или ник:
Комментарий: