MCPcopy Create free account
hub / github.com/PurpleI2P/i2pd / GetMTUWindows

Function GetMTUWindows

libi2pd/util.cpp:494–524  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

492 }
493
494 int GetMTUWindows (const boost::asio::ip::address& localAddress, int fallback)
495 {
496#ifdef UNICODE
497 string localAddress_temporary = localAddress.to_string();
498 wstring localAddressUniversal(localAddress_temporary.begin(), localAddress_temporary.end());
499#else
500 std::string localAddressUniversal = localAddress.to_string();
501#endif
502
503 typedef int (* IPN)(int af, const char *src, void *dst);
504 IPN inetpton = (IPN)(void*)GetProcAddress (GetModuleHandle ("ws2_32.dll"), "InetPton");
505 if (!inetpton) inetpton = inet_pton_xp; // use own implementation if not found
506
507 if (localAddress.is_v4())
508 {
509 sockaddr_in inputAddress;
510 inetpton(AF_INET, localAddressUniversal.c_str(), &(inputAddress.sin_addr));
511 return GetMTUWindowsIpv4(inputAddress, fallback);
512 }
513 else if (localAddress.is_v6())
514 {
515 sockaddr_in6 inputAddress;
516 inetpton(AF_INET6, localAddressUniversal.c_str(), &(inputAddress.sin6_addr));
517 return GetMTUWindowsIpv6(inputAddress, fallback);
518 }
519 else
520 {
521 LogPrint(eLogError, "NetIface: GetMTU: Address family is not supported");
522 return fallback;
523 }
524 }
525#else // assume unix
526 int GetMTUUnix (const boost::asio::ip::address& localAddress, int fallback)
527 {

Callers 2

GetMTUFunction · 0.85
IsLocalAddressFunction · 0.85

Calls 4

GetMTUWindowsIpv4Function · 0.85
GetMTUWindowsIpv6Function · 0.85
LogPrintFunction · 0.85
to_stringMethod · 0.80

Tested by

no test coverage detected