mirror of
https://github.com/solemnwarning/ipxwrapper
synced 2024-12-30 16:45:37 +01:00
getsockopt: Return correct maxpkt when using Ethernet frame types.
This commit is contained in:
parent
1304e84d54
commit
b58ef3eb1e
@ -58,10 +58,10 @@ static int _max_ipx_payload(void)
|
|||||||
{
|
{
|
||||||
case FRAME_TYPE_ETH_II:
|
case FRAME_TYPE_ETH_II:
|
||||||
case FRAME_TYPE_NOVELL:
|
case FRAME_TYPE_NOVELL:
|
||||||
return 1500 - (14 + sizeof(novell_ipx_packet));
|
return 1500 - sizeof(novell_ipx_packet);
|
||||||
|
|
||||||
case FRAME_TYPE_LLC:
|
case FRAME_TYPE_LLC:
|
||||||
return 1500 - (17 + sizeof(novell_ipx_packet));
|
return 1500 - (3 + sizeof(novell_ipx_packet));
|
||||||
}
|
}
|
||||||
|
|
||||||
abort();
|
abort();
|
||||||
|
@ -33,6 +33,7 @@ our ($remote_mac_b, $remote_ip_b);
|
|||||||
use constant {
|
use constant {
|
||||||
IP_MAX_DATA_SIZE => 8192,
|
IP_MAX_DATA_SIZE => 8192,
|
||||||
ETHER_MAX_DATA_SIZE => 1470,
|
ETHER_MAX_DATA_SIZE => 1470,
|
||||||
|
LLC_MAX_DATA_SIZE => 1467,
|
||||||
};
|
};
|
||||||
|
|
||||||
my @expected_addrs;
|
my @expected_addrs;
|
||||||
@ -173,6 +174,7 @@ describe "IPXWrapper" => sub
|
|||||||
{
|
{
|
||||||
reg_delete_key($remote_ip_a, "HKCU\\Software\\IPXWrapper");
|
reg_delete_key($remote_ip_a, "HKCU\\Software\\IPXWrapper");
|
||||||
reg_set_dword( $remote_ip_a, "HKCU\\Software\\IPXWrapper", "use_pcap", 1);
|
reg_set_dword( $remote_ip_a, "HKCU\\Software\\IPXWrapper", "use_pcap", 1);
|
||||||
|
reg_set_dword( $remote_ip_a, "HKCU\\Software\\IPXWrapper", "frame_type", 1);
|
||||||
reg_set_addr( $remote_ip_a, "HKCU\\Software\\IPXWrapper\\$remote_mac_a", "net", "00:00:00:01");
|
reg_set_addr( $remote_ip_a, "HKCU\\Software\\IPXWrapper\\$remote_mac_a", "net", "00:00:00:01");
|
||||||
reg_set_addr( $remote_ip_a, "HKCU\\Software\\IPXWrapper\\$remote_mac_b", "net", "00:00:00:02");
|
reg_set_addr( $remote_ip_a, "HKCU\\Software\\IPXWrapper\\$remote_mac_b", "net", "00:00:00:02");
|
||||||
|
|
||||||
@ -196,6 +198,68 @@ describe "IPXWrapper" => sub
|
|||||||
it_should_behave_like "getsockopt";
|
it_should_behave_like "getsockopt";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
describe "using Novell Ethernet encapsulation" => sub
|
||||||
|
{
|
||||||
|
before all => sub
|
||||||
|
{
|
||||||
|
reg_delete_key($remote_ip_a, "HKCU\\Software\\IPXWrapper");
|
||||||
|
reg_set_dword( $remote_ip_a, "HKCU\\Software\\IPXWrapper", "use_pcap", 1);
|
||||||
|
reg_set_dword( $remote_ip_a, "HKCU\\Software\\IPXWrapper", "frame_type", 2);
|
||||||
|
reg_set_addr( $remote_ip_a, "HKCU\\Software\\IPXWrapper\\$remote_mac_a", "net", "00:00:00:01");
|
||||||
|
reg_set_addr( $remote_ip_a, "HKCU\\Software\\IPXWrapper\\$remote_mac_b", "net", "00:00:00:02");
|
||||||
|
|
||||||
|
@expected_addrs = (
|
||||||
|
{
|
||||||
|
net => "00:00:00:01",
|
||||||
|
node => $remote_mac_a,
|
||||||
|
maxpkt => ETHER_MAX_DATA_SIZE,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
net => "00:00:00:02",
|
||||||
|
node => $remote_mac_b,
|
||||||
|
maxpkt => ETHER_MAX_DATA_SIZE,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
describe "getsockopt" => sub
|
||||||
|
{
|
||||||
|
it_should_behave_like "getsockopt";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
describe "using LLC (802.2) Ethernet encapsulation" => sub
|
||||||
|
{
|
||||||
|
before all => sub
|
||||||
|
{
|
||||||
|
reg_delete_key($remote_ip_a, "HKCU\\Software\\IPXWrapper");
|
||||||
|
reg_set_dword( $remote_ip_a, "HKCU\\Software\\IPXWrapper", "use_pcap", 1);
|
||||||
|
reg_set_dword( $remote_ip_a, "HKCU\\Software\\IPXWrapper", "frame_type", 3);
|
||||||
|
reg_set_addr( $remote_ip_a, "HKCU\\Software\\IPXWrapper\\$remote_mac_a", "net", "00:00:00:01");
|
||||||
|
reg_set_addr( $remote_ip_a, "HKCU\\Software\\IPXWrapper\\$remote_mac_b", "net", "00:00:00:02");
|
||||||
|
|
||||||
|
@expected_addrs = (
|
||||||
|
{
|
||||||
|
net => "00:00:00:01",
|
||||||
|
node => $remote_mac_a,
|
||||||
|
maxpkt => LLC_MAX_DATA_SIZE,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
net => "00:00:00:02",
|
||||||
|
node => $remote_mac_b,
|
||||||
|
maxpkt => LLC_MAX_DATA_SIZE,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
describe "getsockopt" => sub
|
||||||
|
{
|
||||||
|
it_should_behave_like "getsockopt";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
sub get_first_addr_node
|
sub get_first_addr_node
|
||||||
|
Loading…
x
Reference in New Issue
Block a user