по какой-то причине mpd отказывается выполнять proxy-arp:
[
Код:
pptp1] IPCP: LayerUp
10.200.0.0 -> 10.200.224.204
[pptp1] IFACE: Up event
[pptp1] setting interface ng1 MTU to 1360 bytes
[pptp1] exec: /sbin/ifconfig ng1 10.200.0.0 10.200.224.204 netmask 0xffffffff -link0
[[b]pptp1] no interface to proxy arp on for 10.200.224.204[/b]
[pptp1] exec: /sbin/route add 10.200.0.0 -iface lo0
[pptp1] exec: /root/drs/utils/upiface.sh ng1 inet 10.200.0.0 10.200.224.204 kompot100
вот кусок кода /src/iface.c, ответственный за эту процедуру:
Код:
/* Proxy ARP for peer if desired and peer's address is known */
iface->proxy_addr.s_addr = 0;
if (Enabled(&iface->options, IFACE_CONF_PROXY)) {
if (iface->peer_addr.s_addr == 0) {
Log(LG_IFACE,
("[%s] can't proxy arp for %s",
bund->name, inet_ntoa(iface->peer_addr)));
} else if (IfaceGetEther(&iface->peer_addr, &hwa) < 0) {
Log(LG_IFACE,
[b]("[%s] no interface to proxy arp on for %s",[/b]
bund->name, inet_ntoa(iface->peer_addr)));
} else {
ether = (u_char *) LLADDR(&hwa);
if (ExecCmd(LG_IFACE,
[b]"%s -s %s %x:%x:%x:%x:%x:%x pub",[/b]
PATH_ARP, inet_ntoa(iface->peer_addr),
ether[0], ether[1], ether[2],
ether[3], ether[4], ether[5]) == 0)
iface->proxy_addr = iface->peer_addr;
}
если в выделенном фрагменте заменить %x:%x:%x:%x:%x:%x на реальный mac интерфейса, то все нормально обрабатывается.
Подскажите, пжлст, в чем проблема-то?
(я в С ничего не понимаю, увы.)