--- iface.c.orig Fri Jul 6 04:14:42 2007 +++ iface.c Mon Jul 23 18:29:06 2007 @@ -783,6 +783,19 @@ if (*iface->up_script) { char selfbuf[40],peerbuf[40]; char ns1buf[21], ns2buf[21]; + Link L; + char peeraddr[64]; + int l; + + /* Fill in peeraddr[] */ + + for (l=0; l < b->n_links; l++) { + L = b->links[l]; + if (L && (L->phys->state != PHYS_STATE_DOWN)) { + PhysGetPeerAddr(L->phys, peeraddr, sizeof(peeraddr)); + break; + } + } if(b->ipcp.want_dns[0].s_addr != 0) snprintf(ns1buf, sizeof(ns1buf), "dns1 %s", inet_ntoa(b->ipcp.want_dns[0])); @@ -793,10 +806,11 @@ else ns2buf[0] = '\0'; - ExecCmd(LG_IFACE2, b->name, "%s %s inet %s %s '%s' %s %s", + ExecCmd(LG_IFACE2, b->name, "%s %s inet %s %s '%s' %s %s %s", iface->up_script, iface->ifname, u_rangetoa(&iface->self_addr,selfbuf, sizeof(selfbuf)), u_addrtoa(&iface->peer_addr, peerbuf, sizeof(peerbuf)), *b->params.authname ? b->params.authname : "-", + peeraddr, ns1buf, ns2buf); }