mirror of
https://github.com/solemnwarning/ipxwrapper
synced 2024-12-30 16:45:37 +01:00
Accept IPX packets with a destination network of 00:00:00:00.
Unless configured otherwise, the Windows IPX driver defaults to misusing this on the wire until it sees a packet with a different network number, at which point it switches to using that until reboot.
This commit is contained in:
parent
098cb76ff4
commit
3c13aab8e5
@ -182,6 +182,7 @@ void router_cleanup(void)
|
|||||||
|
|
||||||
#define BCAST_NET addr32_in((unsigned char[]){0xFF,0xFF,0xFF,0xFF})
|
#define BCAST_NET addr32_in((unsigned char[]){0xFF,0xFF,0xFF,0xFF})
|
||||||
#define BCAST_NODE addr48_in((unsigned char[]){0xFF,0xFF,0xFF,0xFF,0xFF,0xFF})
|
#define BCAST_NODE addr48_in((unsigned char[]){0xFF,0xFF,0xFF,0xFF,0xFF,0xFF})
|
||||||
|
#define ZERO_NET addr32_in((unsigned char[]){0x00,0x00,0x00,0x00})
|
||||||
|
|
||||||
static void _deliver_packet(
|
static void _deliver_packet(
|
||||||
uint8_t type,
|
uint8_t type,
|
||||||
@ -363,7 +364,8 @@ static void _handle_udp_recv(ipx_packet *packet, size_t packet_size, struct sock
|
|||||||
if(
|
if(
|
||||||
s->flags & IPX_IS_SPX
|
s->flags & IPX_IS_SPX
|
||||||
&& s->flags & IPX_LISTENING
|
&& s->flags & IPX_LISTENING
|
||||||
&& memcmp(req->net, s->addr.sa_netnum, 4) == 0
|
&& (memcmp(req->net, s->addr.sa_netnum, 4) == 0
|
||||||
|
|| addr32_in(req->net) == ZERO_NET)
|
||||||
&& memcmp(req->node, s->addr.sa_nodenum, 6) == 0
|
&& memcmp(req->node, s->addr.sa_nodenum, 6) == 0
|
||||||
&& req->socket == s->addr.sa_socket)
|
&& req->socket == s->addr.sa_socket)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user