>"error: unsupported link-layer type" knockd
>в google.ru, компронэ ву ситуайен?
>
>На lissyara.su в комментариях "пара строк" в исходники........ Спасибо, инфу о том, что надо добавить в исходник, я параллельно с форумом искал
/usr/ports/security/knock/work/knock-0.5.20051124/src/knockd.c
Один многоуважаемый чел (dth) на http://forum.sysfaq.ru предложил такое решение
lltype = pcap_datalink(cap);
switch(lltype) {
case DLT_EN10MB:
dprint("ethernet interface detected\n");
break;
case DLT_LINUX_SLL:
dprint("ppp interface detected (linux \"cooked\" encapsulation)\n");
break;
case DLT_RAW:
dprint("raw interface detected, no encapsulation\n");
break;
case DLT_NULL:
dprint("tun interface detected. pppoe on freebsd\n");
break;
default:
fprintf(stderr, "error: unsupported link-layer type: %d\n", lltype);
cleanup(1);
break;
}
...........
if(lltype == DLT_EN10MB) {
#if defined(__FreeBSD__) || defined(__APPLE__)
eth = (struct ether_header*)packet;
if(ntohs(eth->ether_type) != ETHERTYPE_IP) {
return;
}
ip = (struct ip*)(packet + sizeof(struct ether_header));
} else if(lltype == DLT_LINUX_SLL) {
ip = (struct ip*)((u_char*)packet + 16);
} else if(lltype == DLT_RAW) {
ip = (struct ip*)((u_char*)packet);
} else if(lltype == DLT_NULL) {
ip = (struct ip*)((u_char*)packet + 4);
}
Жирным шрифтом указаны добавления в соответствующие места файла knockd.c
Ставил его на FreeBSD 7.0 из портов, на этапе когда шел configure (сообщения типа checking... ) нажимал Ctrl+C и заменял в папке /usr/ports/security/knock/work/src на тот, который изменял. После этого снова делал make install clean
Сейчас буду пробовать