Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <sstream>
00019
00020 #include "common.h"
00021
00022 std::string intToString(int i)
00023 {
00024 std::ostringstream stream;
00025 stream << i << std::flush;
00026 std::string str(stream.str());
00027 return str;
00028 }
00029
00030 std::string vectorToString(IPAddressVector vec)
00031 {
00032 return vectorToString(vec, ", ");
00033 }
00034
00035 std::string vectorToString(IPAddressVector vec, const char *delim)
00036 {
00037 std::ostringstream stream;
00038 for(unsigned int i = 0; i < vec.size(); i++)
00039 {
00040 stream << vec[i];
00041 if(i < vec.size() - 1)
00042 stream << delim;
00043 }
00044 stream << std::flush;
00045 std::string str(stream.str());
00046 return str;
00047 }
00048
00049 std::string vectorToString(EroVector vec)
00050 {
00051 return vectorToString(vec, ", ");
00052 }
00053
00054 std::string vectorToString(EroVector vec, const char *delim)
00055 {
00056 std::ostringstream stream;
00057 for(unsigned int i = 0; i < vec.size(); i++)
00058 {
00059 stream << vec[i].node;
00060
00061 if(i < vec.size() - 1)
00062 stream << delim;
00063 }
00064 stream << std::flush;
00065 std::string str(stream.str());
00066 return str;
00067 }
00068
00069 EroVector routeToEro(IPAddressVector rro)
00070 {
00071 EroVector ero;
00072
00073 for(unsigned int i = 0; i < rro.size(); i++)
00074 {
00075 EroObj_t hop;
00076 hop.L = false;
00077 hop.node = rro[i];
00078 ero.push_back(hop);
00079 }
00080
00081 return ero;
00082 }
00083 uint32 getLevel(IPvXAddress addr)
00084 {
00085 if (addr.isIPv6())
00086 {
00087 if (addr.get6().getScope()==IPv6Address::UNSPECIFIED || addr.get6().getScope()==IPv6Address::MULTICAST)
00088 return 0;
00089 if (addr.get6().getScope()==IPv6Address::LOOPBACK)
00090 return 1;
00091 if (addr.get6().getScope()==IPv6Address::LINK)
00092 return 2;
00093 if (addr.get6().getScope()==IPv6Address::SITE)
00094 return 3;
00095 }
00096 else
00097 {
00098
00099 if (addr.get4().maskedAddrAreEqual(addr.get4(), IPAddress("0.0.0.0"), IPAddress("255.0.0.0")) ||
00100 addr.get4().maskedAddrAreEqual(addr.get4(), IPAddress("224.0.0.0"), IPAddress("240.0.0.0")) ||
00101 addr.get4().maskedAddrAreEqual(addr.get4(), IPAddress("198.18.0.0"), IPAddress("255.255.255.0")) ||
00102 addr.get4().maskedAddrAreEqual(addr.get4(), IPAddress("192.88.99.0"), IPAddress("255.255.255.0")))
00103 return 0;
00104
00105
00106 if (addr.get4().maskedAddrAreEqual(addr.get4(), IPAddress("127.0.0.0"), IPAddress("255.0.0.0")))
00107 return 1;
00108
00109
00110 if (addr.get4().maskedAddrAreEqual(addr.get4(), IPAddress("169.254.0.0"), IPAddress("255.255.0.0")))
00111 return 2;
00112
00113
00114 if (addr.get4().maskedAddrAreEqual(addr.get4(), IPAddress("10.0.0.0"), IPAddress("255.0.0.0")) ||
00115 addr.get4().maskedAddrAreEqual(addr.get4(), IPAddress("172.16.0.0"), IPAddress("255.240.0.0")) ||
00116 addr.get4().maskedAddrAreEqual(addr.get4(), IPAddress("192.168.0.0"), IPAddress("255.255.0.0")))
00117 return 3;
00118 }
00119
00120 return 4;
00121 }