log_Printf(LOG_PHASE_BIT, "Cannot determine ethernet address for proxy ARP\n");
log_Printf(LOG_PHASE_BIT, "Cannot determine ethernet address for " "proxy ARP\n");
arp_SetProxy(struct bundle *bundle, struct in_addr addr, int s){  struct arpreq arpreq;  struct {    struct sockaddr_dl sdl;    char space[128];  }      dls;  memset(&arpreq, '\0', sizeof arpreq);  /*   * Get the hardware address of an interface on the same subnet as our local   * address.   */  if (!get_ether_addr(s, addr, &dls.sdl)) {    log_Printf(LOG_PHASE_BIT, "Cannot determine ethernet address for proxy ARP\n");    return 0;  }  arpreq.arp_ha.sa_len = sizeof(struct sockaddr);  arpreq.arp_ha.sa_family = AF_UNSPEC;  memcpy(arpreq.arp_ha.sa_data, LLADDR(&dls.sdl), dls.sdl.sdl_alen);  SET_SA_FAMILY(arpreq.arp_pa, AF_INET);  ((struct sockaddr_in *)&arpreq.arp_pa)->sin_addr.s_addr = addr.s_addr;  arpreq.arp_flags = ATF_PERM | ATF_PUBL;  if (ID0ioctl(s, SIOCSARP, (caddr_t) & arpreq) < 0) {    log_Printf(LogERROR, "arp_SetProxy: ioctl(SIOCSARP): %s\n",               strerror(errno));    return 0;  }  return 1;}