Make it possible to use lo0 as an internal IPX network. This is usefull

for mars_nwe server and nwfs.
PR:		9871
Submitted by:	Boris Popov <bp@butya.kz>
This commit is contained in:
jhay 1999-02-06 10:48:11 +00:00
parent 263576a9fc
commit 44b567482e
3 changed files with 6 additions and 7 deletions

View File

@ -33,7 +33,7 @@
* *
* @(#)ipx_outputfl.c * @(#)ipx_outputfl.c
* *
* $Id: ipx_outputfl.c,v 1.9 1997/07/01 00:22:49 bde Exp $ * $Id: ipx_outputfl.c,v 1.10 1998/02/09 06:10:21 eivind Exp $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -118,7 +118,7 @@ ipx_outputfl(m0, ro, flags)
* such a packet. * such a packet.
*/ */
if (dst->sipx_addr.x_host.c_host[0]&1) { if (dst->sipx_addr.x_host.c_host[0]&1) {
if ((ifp->if_flags & IFF_BROADCAST) == 0) { if ((ifp->if_flags & (IFF_BROADCAST | IFF_LOOPBACK)) == 0) {
error = EADDRNOTAVAIL; error = EADDRNOTAVAIL;
goto bad; goto bad;
} }
@ -126,6 +126,7 @@ ipx_outputfl(m0, ro, flags)
error = EACCES; error = EACCES;
goto bad; goto bad;
} }
m0->m_flags |= M_BCAST;
} }
if (htons(ipx->ipx_len) <= ifp->if_mtu) { if (htons(ipx->ipx_len) <= ifp->if_mtu) {

View File

@ -33,7 +33,7 @@
* *
* @(#)ipx_pcb.c * @(#)ipx_pcb.c
* *
* $Id: ipx_pcb.c,v 1.13 1997/10/28 15:58:56 bde Exp $ * $Id: ipx_pcb.c,v 1.14 1998/02/09 06:10:23 eivind Exp $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -169,7 +169,6 @@ ipx_pcbconnect(ipxp, nam, p)
if (ro->ro_rt != NULL) if (ro->ro_rt != NULL)
RTFREE(ro->ro_rt); RTFREE(ro->ro_rt);
ro->ro_rt = NULL; ro->ro_rt = NULL;
ipxp->ipxp_laddr.x_net = ipx_zeronet;
} }
}/* else cached route is ok; do nothing */ }/* else cached route is ok; do nothing */
ipxp->ipxp_lastdst = sipx->sipx_addr; ipxp->ipxp_lastdst = sipx->sipx_addr;

View File

@ -33,7 +33,7 @@
* *
* @(#)ipx_usrreq.c * @(#)ipx_usrreq.c
* *
* $Id: ipx_usrreq.c,v 1.20 1998/08/23 03:07:15 wollman Exp $ * $Id: ipx_usrreq.c,v 1.21 1998/12/07 21:58:42 archie Exp $
*/ */
#include "opt_ipx.h" #include "opt_ipx.h"
@ -560,8 +560,7 @@ ipx_send(so, flags, m, nam, control, p)
if (nam != NULL) { if (nam != NULL) {
ipx_pcbdisconnect(ipxp); ipx_pcbdisconnect(ipxp);
splx(s); splx(s);
ipxp->ipxp_laddr.x_host = laddr.x_host; ipxp->ipxp_laddr = laddr;
ipxp->ipxp_laddr.x_port = laddr.x_port;
} }
send_release: send_release: