Fix bug in wrouter and routing DHCP packets
This commit is contained in:
parent
679d2f7010
commit
efcfac9b1d
@ -379,8 +379,11 @@ namespace EduNetworkBuilder
|
|||||||
NetworkLink nl;
|
NetworkLink nl;
|
||||||
if (NB.GetComponentType(tPacket.WhereAmI) != GeneralComponentType.device) return false; //we cannot do this.
|
if (NB.GetComponentType(tPacket.WhereAmI) != GeneralComponentType.device) return false; //we cannot do this.
|
||||||
NetworkDevice WhereFrom = (NetworkDevice)tPacket.WhereAmI;
|
NetworkDevice WhereFrom = (NetworkDevice)tPacket.WhereAmI;
|
||||||
|
NicType what = GetNicType;
|
||||||
switch (GetNicType)
|
if (!tPacket.isFresh && WhereFrom.IsWirelessForwarder() && what == NicType.wlan)
|
||||||
|
what = NicType.wport;
|
||||||
|
|
||||||
|
switch (what)
|
||||||
{
|
{
|
||||||
case NicType.lo:
|
case NicType.lo:
|
||||||
case NicType.management_interface:
|
case NicType.management_interface:
|
||||||
|
@ -1222,6 +1222,7 @@ namespace EduNetworkBuilder
|
|||||||
// if the dstIP matches (broadcast), we process it but it still continues
|
// if the dstIP matches (broadcast), we process it but it still continues
|
||||||
// Set the "we have processed it" flag
|
// Set the "we have processed it" flag
|
||||||
// and we process arrival
|
// and we process arrival
|
||||||
|
|
||||||
bool MacAddressMatch = HasMac(tPacket.destMAC);
|
bool MacAddressMatch = HasMac(tPacket.destMAC);
|
||||||
bool ExactMatch = HasIPAddress(tPacket.destIP);
|
bool ExactMatch = HasIPAddress(tPacket.destIP);
|
||||||
bool BroadcastMatch = HasBroadcastAddress(tPacket.destIP);
|
bool BroadcastMatch = HasBroadcastAddress(tPacket.destIP);
|
||||||
@ -1230,7 +1231,8 @@ namespace EduNetworkBuilder
|
|||||||
if(ExactMatch || BroadcastMatch)
|
if(ExactMatch || BroadcastMatch)
|
||||||
{
|
{
|
||||||
//Change this. Need a new ProcessArrival
|
//Change this. Need a new ProcessArrival
|
||||||
ProcessArrival(tPacket);
|
if(tPacket.MyType != PacketType.dhcp_answer) //If it is a match, it should be handled elsewhere
|
||||||
|
ProcessArrival(tPacket);
|
||||||
if (ExactMatch && tPacket.isFinshed())
|
if (ExactMatch && tPacket.isFinshed())
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1321,8 +1323,11 @@ namespace EduNetworkBuilder
|
|||||||
if ((tPacket.isFresh && !ExactMatch ) || (NeedsRouting && DoesRouting()) ||
|
if ((tPacket.isFresh && !ExactMatch ) || (NeedsRouting && DoesRouting()) ||
|
||||||
IsWirelessForwarder())
|
IsWirelessForwarder())
|
||||||
{
|
{
|
||||||
|
if (nic == tPacket.InboundNic) break; //never send it out the nic it came in on
|
||||||
//Pass it to the NIC to send out each nic+interface.
|
//Pass it to the NIC to send out each nic+interface.
|
||||||
//The nic checks to see if it works and then processes it
|
//The nic checks to see if it works and then processes it
|
||||||
|
string tMAC = tPacket.destMAC;
|
||||||
|
string ttMAC = tPacket.OutboundDestMAC;
|
||||||
if (BroadcastMatch && tPacket.MyType != PacketType.dhcp_answer)
|
if (BroadcastMatch && tPacket.MyType != PacketType.dhcp_answer)
|
||||||
tPacket.OutboundDestMAC = NB.BroadcastMACString;
|
tPacket.OutboundDestMAC = NB.BroadcastMACString;
|
||||||
tPacket.destMAC = tPacket.OutboundDestMAC;
|
tPacket.destMAC = tPacket.OutboundDestMAC;
|
||||||
@ -1330,6 +1335,8 @@ namespace EduNetworkBuilder
|
|||||||
{
|
{
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
tPacket.destMAC = tMAC;
|
||||||
|
tPacket.OutboundDestMAC = ttMAC;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NicType.port:
|
case NicType.port:
|
||||||
@ -1626,6 +1633,8 @@ namespace EduNetworkBuilder
|
|||||||
nPacket = new Packet(tPacket);
|
nPacket = new Packet(tPacket);
|
||||||
nPacket.isFresh = true; //So it starts from here
|
nPacket.isFresh = true; //So it starts from here
|
||||||
nPacket.Tracking = new PacketMessage();
|
nPacket.Tracking = new PacketMessage();
|
||||||
|
if (hostname == "server0")
|
||||||
|
Console.WriteLine("here");
|
||||||
myNet.addPacket(nPacket);
|
myNet.addPacket(nPacket);
|
||||||
//We need to find a dhcp IP for this.
|
//We need to find a dhcp IP for this.
|
||||||
IPAddress dst = RequestDHCPLease(tPacket.sourceMAC, tPacket.OutboundIP);
|
IPAddress dst = RequestDHCPLease(tPacket.sourceMAC, tPacket.OutboundIP);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
|
{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
|
||||||
{\*\generator Riched20 10.0.10240}\viewkind4\uc1
|
{\*\generator Riched20 10.0.10240}\viewkind4\uc1
|
||||||
\pard\sa200\sl276\slmult1\f0\fs22\lang9 Version 1.0.22\par
|
\pard\sa200\sl276\slmult1\b\f0\fs22\lang9 Version 1.0.22\b0\par
|
||||||
* Added ssid and keys for wireless links\par
|
* Added ssid and keys for wireless links\par
|
||||||
* Wireless will auto-disconnect if link is too long\par
|
* Wireless will auto-disconnect if link is too long\par
|
||||||
* Wireless will auto-connect if ssid and key match, if link is short enough\par
|
* Wireless will auto-connect if ssid and key match, if link is short enough\par
|
||||||
@ -10,16 +10,16 @@
|
|||||||
* wireless router handles dhcp requests properly (both responds to it but also passes it on)\par
|
* wireless router handles dhcp requests properly (both responds to it but also passes it on)\par
|
||||||
* right-clicking light and microwave no longer has ping, arp, edit, and other context menus\par
|
* right-clicking light and microwave no longer has ping, arp, edit, and other context menus\par
|
||||||
* added net-test for DHCP server status (on/off)\par
|
* added net-test for DHCP server status (on/off)\par
|
||||||
* If multiple DHCP servers, client randomly chooses which to keep.\line Version 1.0.21 08/15/2015\par
|
* If multiple DHCP servers, client randomly chooses which to keep.\line\b Version 1.0.21 08/15/2015\b0\par
|
||||||
* Added a microwave and fluorescent light. They corrupt data when packets run close to them.\par
|
* Added a microwave and fluorescent light. They corrupt data when packets run close to them.\par
|
||||||
* Added some packet corruption puzzles\par
|
* Added some packet corruption puzzles\par
|
||||||
* Fixed window resize-on-load issue where the help window popped up first, then the builder window resized over to hide the help window. \par
|
* Fixed window resize-on-load issue where the help window popped up first, then the builder window resized over to hide the help window. \par
|
||||||
Version 1.0.20 08/12/2015\par
|
\b Version 1.0.20 08/12/2015\b0\par
|
||||||
* wports do not display on tooltips or when printing the device info\par
|
* wports do not display on tooltips or when printing the device info\par
|
||||||
* Added ctrl-s to quick-save a network we are working on\par
|
* Added ctrl-s to quick-save a network we are working on\par
|
||||||
* commented out wireless devices for now - doing a big demo and wireless is not yet complete\par
|
* commented out wireless devices for now - doing a big demo and wireless is not yet complete\par
|
||||||
* added search box to help\par
|
* added search box to help\par
|
||||||
Version 1.0.19 08/08/2015\par
|
\b Version 1.0.19 08/08/2015\b0\par
|
||||||
*Updated context help for most puzzles that introduce new ideas.\par
|
*Updated context help for most puzzles that introduce new ideas.\par
|
||||||
* Sorted Help topics when adding them in net-tests.\par
|
* Sorted Help topics when adding them in net-tests.\par
|
||||||
* Added some images to the help to help clarify things.\par
|
* Added some images to the help to help clarify things.\par
|
||||||
@ -27,12 +27,12 @@ Version 1.0.19 08/08/2015\par
|
|||||||
* Open Help so it can be kept open while the puzzles progress.\par
|
* Open Help so it can be kept open while the puzzles progress.\par
|
||||||
* Deal with minimized state better (used to shrink window to smallest possible state)\par
|
* Deal with minimized state better (used to shrink window to smallest possible state)\par
|
||||||
* Remember size and location of main window between uses.\par
|
* Remember size and location of main window between uses.\par
|
||||||
Version 1.0.18 08/08/2015\par
|
\b Version 1.0.18 08/08/2015\b0\par
|
||||||
* Added Context Help for puzzles.\par
|
* Added Context Help for puzzles.\par
|
||||||
- Each puzzle can have context help\par
|
- Each puzzle can have context help\par
|
||||||
- There is a net-test to have us read help\par
|
- There is a net-test to have us read help\par
|
||||||
* fixed minor problem with a "ding" sound when we load a puzzle that has something locked.\par
|
* fixed minor problem with a "ding" sound when we load a puzzle that has something locked.\par
|
||||||
Version 1.0.17 08/01/2015\par
|
\b Version 1.0.17 08/01/2015\b0\par
|
||||||
* Added more help\par
|
* Added more help\par
|
||||||
* Much progress made in preparing for a French translation\par
|
* Much progress made in preparing for a French translation\par
|
||||||
* allow for Puzzle's description to be in another language\par
|
* allow for Puzzle's description to be in another language\par
|
||||||
@ -41,21 +41,21 @@ Version 1.0.17 08/01/2015\par
|
|||||||
* Save box starts in the directory of the file we opened (if we have one)\par
|
* Save box starts in the directory of the file we opened (if we have one)\par
|
||||||
* Choose a language at startup if one has never been chosen, and have option to change language.\par
|
* Choose a language at startup if one has never been chosen, and have option to change language.\par
|
||||||
* Added another puzzle, showing what happens (or does not happen) if we have two networks that use the same IP addresses, and we want to build a VPN between them.\par
|
* Added another puzzle, showing what happens (or does not happen) if we have two networks that use the same IP addresses, and we want to build a VPN between them.\par
|
||||||
Version 1.0.16 07/18/2015\par
|
\b Version 1.0.16 07/18/2015\b0\par
|
||||||
* Added ability to break links (bad network wire)\par
|
* Added ability to break links (bad network wire)\par
|
||||||
* "connection lights" on network cards / ports when we edit devices\par
|
* "connection lights" on network cards / ports when we edit devices\par
|
||||||
* Test for "needs link to" does not succeed if the link in question is a broken link\par
|
* Test for "needs link to" does not succeed if the link in question is a broken link\par
|
||||||
* Added a puzzle to show you how to find broken links \par
|
* Added a puzzle to show you how to find broken links \par
|
||||||
* Used broken links in other puzzles\par
|
* Used broken links in other puzzles\par
|
||||||
* Fixed bug: switches could not use DHCP for many different reasons. Now it works for them.\par
|
* Fixed bug: switches could not use DHCP for many different reasons. Now it works for them.\par
|
||||||
Version 1.0.15 07/11/2015\par
|
\b Version 1.0.15 07/11/2015\b0\par
|
||||||
* Added ping time progress bar\par
|
* Added ping time progress bar\par
|
||||||
* Fixed issue with things timing out before they completed. If the network screen is too large, it makes it go just a tiny bit slower and various things would fail. When the first packet successfully makes it to the far end, it recomputes the time needed and gives extra time.\par
|
* Fixed issue with things timing out before they completed. If the network screen is too large, it makes it go just a tiny bit slower and various things would fail. When the first packet successfully makes it to the far end, it recomputes the time needed and gives extra time.\par
|
||||||
* Added context menu ping. If an item is supposed to ping something, right-clicking adds the ping test to the menu. Takes some of the guess-work out of things.\par
|
* Added context menu ping. If an item is supposed to ping something, right-clicking adds the ping test to the menu. Takes some of the guess-work out of things.\par
|
||||||
* Fixed minor issue with this change log. Had two 1.0.11 versions & somehow was stating we were at version 10.x.x instead of 1.x.x (sigh) \par
|
* Fixed minor issue with this change log. Had two 1.0.11 versions & somehow was stating we were at version 10.x.x instead of 1.x.x (sigh) \par
|
||||||
* Fixed the VPNify puzzle. Had a goof in it.\par
|
* Fixed the VPNify puzzle. Had a goof in it.\par
|
||||||
* Made it so you cannot connect a link to a VPN. A VPN should be a virtual connection, not a physical connection.\par
|
* Made it so you cannot connect a link to a VPN. A VPN should be a virtual connection, not a physical connection.\par
|
||||||
Version 1.0.14 07/10/2015\par
|
\b Version 1.0.14 07/10/2015\b0\par
|
||||||
* When we finish a puzzle, allow us to auto-open the "next puzzle" box.\par
|
* When we finish a puzzle, allow us to auto-open the "next puzzle" box.\par
|
||||||
* Added lots more puzzles\par
|
* Added lots more puzzles\par
|
||||||
* Added more help & documentation\par
|
* Added more help & documentation\par
|
||||||
@ -63,13 +63,13 @@ Version 1.0.14 07/10/2015\par
|
|||||||
* Made it so the test for a matching route compared netmasks\par
|
* Made it so the test for a matching route compared netmasks\par
|
||||||
* Added a printer object\par
|
* Added a printer object\par
|
||||||
* Added a copier object\par
|
* Added a copier object\par
|
||||||
Version 1.0.13 06/21/2015\par
|
\b Version 1.0.13 06/21/2015\b0\par
|
||||||
* Fixed issues with arp - arp could go through routers. Now works correctly\par
|
* Fixed issues with arp - arp could go through routers. Now works correctly\par
|
||||||
* Made it test for puzzle completion after adding devices\par
|
* Made it test for puzzle completion after adding devices\par
|
||||||
* Made it test for completion after changing / deleting devices\par
|
* Made it test for completion after changing / deleting devices\par
|
||||||
* Let you delete / add NICs on PCs, primarily so we can solve the duplicate MAC puzzle\par
|
* Let you delete / add NICs on PCs, primarily so we can solve the duplicate MAC puzzle\par
|
||||||
* Replaced the "Network Loop" puzzle with the correct one.\par
|
* Replaced the "Network Loop" puzzle with the correct one.\par
|
||||||
Version 1.0.12 06/20/2015\par
|
\b Version 1.0.12 06/20/2015\b0\par
|
||||||
* Added VPN and TUN nic types\par
|
* Added VPN and TUN nic types\par
|
||||||
* Fixed numerous small bugs\par
|
* Fixed numerous small bugs\par
|
||||||
* Fixed bug with early solution to failed ping test\par
|
* Fixed bug with early solution to failed ping test\par
|
||||||
@ -77,7 +77,7 @@ Version 1.0.12 06/20/2015\par
|
|||||||
* Added a "firewall" network that has a firewall and vpns\par
|
* Added a "firewall" network that has a firewall and vpns\par
|
||||||
* Added numerous firewall / vpn puzzles\par
|
* Added numerous firewall / vpn puzzles\par
|
||||||
* Fixed a DNS issue. It now more intelligently finds the right IP address when you ping it\par
|
* Fixed a DNS issue. It now more intelligently finds the right IP address when you ping it\par
|
||||||
Version 1.0.11 06/14/2015\par
|
\b Version 1.0.11 06/14/2015\b0\par
|
||||||
* Added the ability to lock various important features to make puzzles better\par
|
* Added the ability to lock various important features to make puzzles better\par
|
||||||
* Able to add interfaces (multiple IPs on a Network Card)\par
|
* Able to add interfaces (multiple IPs on a Network Card)\par
|
||||||
* Right-click context menu to add net-tests. \par
|
* Right-click context menu to add net-tests. \par
|
||||||
@ -85,7 +85,7 @@ Version 1.0.11 06/14/2015\par
|
|||||||
* Can add NICs (on some devices)\par
|
* Can add NICs (on some devices)\par
|
||||||
* Can delete NICs\par
|
* Can delete NICs\par
|
||||||
* Fixed minor bug with broadcast pinging solving ping test for individual computers\par
|
* Fixed minor bug with broadcast pinging solving ping test for individual computers\par
|
||||||
Version 1.0.10 06/13/2015\par
|
\b Version 1.0.10 06/13/2015\b0\par
|
||||||
* Renamed puzzles to manage them easier\par
|
* Renamed puzzles to manage them easier\par
|
||||||
* Deal with duplicate IPs, and what happens when a packet returns to a computer that did not send it.\par
|
* Deal with duplicate IPs, and what happens when a packet returns to a computer that did not send it.\par
|
||||||
* Change to the help window so you can keep the window open while working with the puzzle.\par
|
* Change to the help window so you can keep the window open while working with the puzzle.\par
|
||||||
@ -95,7 +95,7 @@ Version 1.0.10 06/13/2015\par
|
|||||||
* Added a FailedPing test so we can ping things that must fail (show the firewall works)\par
|
* Added a FailedPing test so we can ping things that must fail (show the firewall works)\par
|
||||||
* added more to the help\par
|
* added more to the help\par
|
||||||
* added more puzzles\par
|
* added more puzzles\par
|
||||||
Version 1.0.0.9 05/29/2015\par
|
\b Version 1.0.0.9 05/29/2015\b0\par
|
||||||
* Add a grid to the network map. It makes things easier to straighten up\par
|
* Add a grid to the network map. It makes things easier to straighten up\par
|
||||||
* Sorted and organized the puzzles\par
|
* Sorted and organized the puzzles\par
|
||||||
* Made a level for each puzzle.\par
|
* Made a level for each puzzle.\par
|
||||||
@ -105,41 +105,41 @@ Version 1.0.0.9 05/29/2015\par
|
|||||||
* Reset buttons when we load a new network.\par
|
* Reset buttons when we load a new network.\par
|
||||||
* Added a bunch more puzzles\par
|
* Added a bunch more puzzles\par
|
||||||
* Sometimes the remembered IP gets annoying when it remembers odd gateways and numbers we cannot change. Fixed that in many cases.\par
|
* Sometimes the remembered IP gets annoying when it remembers odd gateways and numbers we cannot change. Fixed that in many cases.\par
|
||||||
Version 1.0.0.8 05/25/2015\par
|
\b Version 1.0.0.8 05/25/2015\b0\par
|
||||||
* Always Start with level0 puzzles for now\par
|
* Always Start with level0 puzzles for now\par
|
||||||
* Fixed the icon when program running\par
|
* Fixed the icon when program running\par
|
||||||
* Added an infrastructure for Puzzles (needs work)\par
|
* Added an infrastructure for Puzzles (needs work)\par
|
||||||
* Added a number of basic puzzles\par
|
* Added a number of basic puzzles\par
|
||||||
* Fixed DHCP Leases. Now it clears leases when you change the DHCP server range.\par
|
* Fixed DHCP Leases. Now it clears leases when you change the DHCP server range.\par
|
||||||
Version 1.0.0.7 05/16/2015\par
|
\b Version 1.0.0.7 05/16/2015\b0\par
|
||||||
* Added file association so we can double-click an enbx file\par
|
* Added file association so we can double-click an enbx file\par
|
||||||
* Fixed the icon so it looks right (removed left edge)\par
|
* Fixed the icon so it looks right (removed left edge)\par
|
||||||
Version 1.0.0.6 05/16/2015\par
|
\b Version 1.0.0.6 05/16/2015\b0\par
|
||||||
* Able to delete a route (right click route and delete it)\par
|
* Able to delete a route (right click route and delete it)\par
|
||||||
* Add map title as something we can load/save\par
|
* Add map title as something we can load/save\par
|
||||||
* Add message as something we can load and save\par
|
* Add message as something we can load and save\par
|
||||||
* Changing size of items affects all items\par
|
* Changing size of items affects all items\par
|
||||||
* Allow entering a hostname in the IP address field (ping / gateway)\par
|
* Allow entering a hostname in the IP address field (ping / gateway)\par
|
||||||
Version 1.0.0.5 04/26/2015\par
|
\b Version 1.0.0.5 04/26/2015\b0\par
|
||||||
* Fixed ping from switch\par
|
* Fixed ping from switch\par
|
||||||
* Fixed error message when pinging IP that does not exist\par
|
* Fixed error message when pinging IP that does not exist\par
|
||||||
Version 1.0.0.4 04/26/2015\par
|
\b Version 1.0.0.4 04/26/2015\b0\par
|
||||||
* Fixed broadcast ping\par
|
* Fixed broadcast ping\par
|
||||||
*Fixed dhcp request error\par
|
*Fixed dhcp request error\par
|
||||||
Version 1.0.0.3 04/15/2015\par
|
\b Version 1.0.0.3 04/15/2015\par
|
||||||
* Added "file" -> "new" to erase and start a clean new network\par
|
\b0 * Added "file" -> "new" to erase and start a clean new network\par
|
||||||
* Fixed pc2 to have gateway on "solved"->"Two Networks"\par
|
* Fixed pc2 to have gateway on "solved"->"Two Networks"\par
|
||||||
* Fixed - only machines capable of doing DHCP do dhcp request if we do DHCP request on all\par
|
* Fixed - only machines capable of doing DHCP do dhcp request if we do DHCP request on all\par
|
||||||
* Changed - major overhaul to tcp-stack.\par
|
* Changed - major overhaul to tcp-stack.\par
|
||||||
* Downgrade - Arp temporarily removed from system while tcp-stack overhaul completed\par
|
* Downgrade - Arp temporarily removed from system while tcp-stack overhaul completed\par
|
||||||
Version 1.0.0.2 4/19/2015\par
|
\b Version 1.0.0.2 4/19/2015\b0\par
|
||||||
* Added IP-Phone\par
|
* Added IP-Phone\par
|
||||||
* Packets terminate at the far end - this makes it easier to see packets go both directions\par
|
* Packets terminate at the far end - this makes it easier to see packets go both directions\par
|
||||||
* Packets are randomized in transit - Allows packets to arrive at slightly different times\par
|
* Packets are randomized in transit - Allows packets to arrive at slightly different times\par
|
||||||
Version 1.0.0.1 4/11/2015\par
|
\b Version 1.0.0.1 4/11/2015\b0\par
|
||||||
* DHCP selection on nics is not functioning correctly\par
|
* DHCP selection on nics is not functioning correctly\par
|
||||||
* Various small bug-fixes\par
|
* Various small bug-fixes\par
|
||||||
Version 1.0.0.0 4/10/2015\par
|
\b Version 1.0.0.0 4/10/2015\b0\par
|
||||||
This is the initial alpha build\par
|
This is the initial alpha build\par
|
||||||
* basic pinging\par
|
* basic pinging\par
|
||||||
* basic arp\par
|
* basic arp\par
|
||||||
|
Loading…
Reference in New Issue
Block a user