rt->rt_gateway->sa_family != AF_CCITT)
x25_ddnip_to_ccitt(dst, rt->rt_gateway);
lcp->lcd_flags |= X25_DG_CIRCUIT;
rt->rt_gateway->sa_family != AF_CCITT)
x25_ddnip_to_ccitt(dst, rt->rt_gateway);
lcp->lcd_flags |= X25_DG_CIRCUIT;
if (rt->rt_gateway->sa_family != AF_CCITT) {
/*
* Need external resolution of dst
*/
if ((rt->rt_flags & RTF_XRESOLVE) == 0)
senderr(ENETUNREACH);
if (rt->rt_gateway->sa_family != AF_CCITT) {
/*
* Need external resolution of dst
*/
if ((rt->rt_flags & RTF_XRESOLVE) == 0)
senderr(ENETUNREACH);
flags = 0;
rt_missmsg(RTM_RESOLVE, dst,
(struct sockaddr *)0, (struct sockaddr *)0,
(struct sockaddr *)0, 0, 0);
flags = 0;
rt_missmsg(RTM_RESOLVE, dst,
(struct sockaddr *)0, (struct sockaddr *)0,
(struct sockaddr *)0, 0, 0);
if (sbspace(&lcp->lcd_sb) < 0)
senderr(ENOBUFS);
sbappendrecord(&lcp->lcd_sb, m);
break;
}
/* FALLTHROUGH */
if (sbspace(&lcp->lcd_sb) < 0)
senderr(ENOBUFS);
sbappendrecord(&lcp->lcd_sb, m);
break;
}
/* FALLTHROUGH */
pk_connect(lcp, (struct mbuf *)0,
(struct sockaddr_x25 *)rt->rt_gateway);
break;
pk_connect(lcp, (struct mbuf *)0,
(struct sockaddr_x25 *)rt->rt_gateway);
break;
- struct rtextension *rtx = (struct rtentry *)lcp->lcd_upnext;
- register struct ifnet *ifp = &rtx->rtx_rt->rt_ifp;
+ struct llinfo_x25 *lx = (struct llinfo_x25 *)lcp->lcd_upnext;
+ struct rtentry *rt = lx->lx_rt;
+ register struct ifnet *ifp = rt->rt_ifp;
+ struct ifqueue *inq;
+ extern struct timeval time;
static struct sockaddr_x25 blank_x25 = {sizeof blank_x25, AF_CCITT};
/*
* IP to X25 address routine copyright ACC, used by permission.
static struct sockaddr_x25 blank_x25 = {sizeof blank_x25, AF_CCITT};
/*
* IP to X25 address routine copyright ACC, used by permission.
register struct sockaddr_x25 *sa =(struct sockaddr_x25 *)rt->rt_gateway;
register struct pklcd *lcp;
register struct x25_ifaddr *ia;
register struct sockaddr_x25 *sa =(struct sockaddr_x25 *)rt->rt_gateway;
register struct pklcd *lcp;
register struct x25_ifaddr *ia;
- case caseof(XRS_CONNECTED, RTM_DELETE):
- case caseof(XRS_CONNECTED, RTM_CHANGE):
- case caseof(XRS_CONNECTING, RTM_DELETE):
- case caseof(XRS_CONNECTING, RTM_CHANGE):
+ case caseof(LXS_CONNECTED, RTM_DELETE):
+ case caseof(LXS_CONNECTED, RTM_CHANGE):
+ case caseof(LXS_CONNECTING, RTM_DELETE):
+ case caseof(LXS_CONNECTING, RTM_CHANGE):
- case caseof(XRS_CONNECTED, RTM_ADD):
- case caseof(XRS_CONNECTING, RTM_ADD):
- case caseof(XRS_RESOLVING, RTM_ADD):
+ case caseof(LXS_CONNECTED, RTM_ADD):
+ case caseof(LXS_CONNECTING, RTM_ADD):
+ case caseof(LXS_RESOLVING, RTM_ADD):
- case caseof(XRS_RESOLVING, RTM_DELETE):
- sbflush(&(rtx->rtx_lcd->lcd_sb));
- free((caddr_t)rtx->rtx_lcd, M_PCB);
- rtx->rtx_lcd = 0;
+ case caseof(LXS_RESOLVING, RTM_DELETE):
+ sbflush(&(lx->lx_lcd->lcd_sb));
+ free((caddr_t)lx->lx_lcd, M_PCB);
+ lx->lx_lcd = 0;
- case caseof(XRS_RESOLVING, RTM_CHANGE):
- lcp->lcd_pkcb = &(ia->ia_pkcb);
+ case caseof(LXS_RESOLVING, RTM_CHANGE):
+ lcp->lcd_pkp = &(ia->ia_pkcb);
sa->x25_opts.op_speed = sa2->sa_family;
(void) rtrequest(RTM_DELETE, SA(sa), sa2,
SA(0), RTF_HOST, (struct rtentry **)0);
sa->x25_opts.op_speed = sa2->sa_family;
(void) rtrequest(RTM_DELETE, SA(sa), sa2,
SA(0), RTF_HOST, (struct rtentry **)0);
sa->x25_opts.op_speed = sa2->sa_family;
(void) rtrequest(cmd, SA(sa), sa2, SA(0), RTF_HOST,
(struct rtentry **)0);
sa->x25_opts.op_speed = sa2->sa_family;
(void) rtrequest(cmd, SA(sa), sa2, SA(0), RTF_HOST,
(struct rtentry **)0);
/*
* This is a utility routine to be called by x25 devices when a
* call request is honored with the intent of starting datagram forwarding.
*/
x25_dg_rtinit(dst, ia, af)
struct sockaddr_x25 *dst;
/*
* This is a utility routine to be called by x25 devices when a
* call request is honored with the intent of starting datagram forwarding.
*/
x25_dg_rtinit(dst, ia, af)
struct sockaddr_x25 *dst;
- for (ia = in_ifaddr; ia; ia = ia->ia_next)
- if (ia->ia_ifp == &ia->xc_if) {
- imp_addr.ip = ia->ia_addr.sin_addr;
+
+ for (ina = in_ifaddr; ina; ina = ina->ia_next)
+ if (ina->ia_ifp == ia->ia_ifp) {
+ my_addr = ina->ia_addr.sin_addr;