summaryrefslogtreecommitdiff
path: root/node/osdep/BSDRoutingTable.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2014-07-23 09:14:53 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2014-07-23 09:14:53 -0700
commit7475c4047e81cf83f16eed4449ad8408eeaacaec (patch)
tree57e407e69bdf3d415b00fede06b77aedbc8cd46c /node/osdep/BSDRoutingTable.cpp
parent5e58a7d54ab9bd241bb3f7bbc90a8cfa80663515 (diff)
downloadinfinitytier-7475c4047e81cf83f16eed4449ad8408eeaacaec.tar.gz
infinitytier-7475c4047e81cf83f16eed4449ad8408eeaacaec.zip
A bunch more osdep/ work...
Diffstat (limited to 'node/osdep/BSDRoutingTable.cpp')
-rw-r--r--node/osdep/BSDRoutingTable.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/node/osdep/BSDRoutingTable.cpp b/node/osdep/BSDRoutingTable.cpp
index 92a87da0..fede9cce 100644
--- a/node/osdep/BSDRoutingTable.cpp
+++ b/node/osdep/BSDRoutingTable.cpp
@@ -43,7 +43,7 @@
#include <algorithm>
#include <utility>
-#include "Constants.hpp"
+#include "../Constants.hpp"
#include "BSDRoutingTable.hpp"
// All I wanted was the bloody rounting table. I didn't expect the Spanish inquisition.
@@ -115,6 +115,9 @@ std::vector<RoutingTable::Entry> BSDRoutingTable::get(bool includeLinkLocal,bool
// Nobody expects the Spanish inquisition!
if ((sin6->sin6_addr.s6_addr[0] == 0xfe)&&((sin6->sin6_addr.s6_addr[1] & 0xc0) == 0x80)) {
// Our chief weapon is... in-band signaling!
+ // Seriously who in the living fuck thought this was a good idea and
+ // then had the sadistic idea to not document it anywhere? Of course it's
+ // not like there is any documentation on BSD sysctls anyway.
unsigned int interfaceIndex = ((((unsigned int)sin6->sin6_addr.s6_addr[2]) << 8) & 0xff) | (((unsigned int)sin6->sin6_addr.s6_addr[3]) & 0xff);
sin6->sin6_addr.s6_addr[2] = 0;
sin6->sin6_addr.s6_addr[3] = 0;