mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-23 05:44:45 -04:00
Removed unused getLocalInterfaces_ipv4
This commit is contained in:
parent
77bcc99030
commit
5a541e7feb
4 changed files with 0 additions and 238 deletions
|
@ -256,80 +256,6 @@ std::string socket_errorType(int err)
|
||||||
return std::string("----WINDOWS OPERATING SYSTEM FAILURE----");
|
return std::string("----WINDOWS OPERATING SYSTEM FAILURE----");
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <iphlpapi.h>
|
|
||||||
//#include <iprtrmib.h>
|
|
||||||
|
|
||||||
// A function to determine the interfaces on your computer....
|
|
||||||
// No idea of how to do this in windows....
|
|
||||||
// see if it compiles.
|
|
||||||
bool getLocalInterfaces_ipv4(struct in_addr &routeAddr, std::list<struct in_addr> &addrs)
|
|
||||||
{
|
|
||||||
// Get the best interface for transport to routeAddr
|
|
||||||
// This interface should be first in list!
|
|
||||||
DWORD bestInterface;
|
|
||||||
if (GetBestInterface((IPAddr) routeAddr.s_addr, &bestInterface) != NO_ERROR)
|
|
||||||
{
|
|
||||||
bestInterface = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* USE MIB IPADDR Interface */
|
|
||||||
PMIB_IPADDRTABLE iptable = NULL;
|
|
||||||
DWORD dwSize = 0;
|
|
||||||
|
|
||||||
if (GetIpAddrTable(iptable, &dwSize, 0) != ERROR_INSUFFICIENT_BUFFER)
|
|
||||||
{
|
|
||||||
pqioutput(PQL_ALERT, pqinetzone, "Cannot Find Windoze Interfaces!");
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
iptable = (MIB_IPADDRTABLE *) malloc(dwSize);
|
|
||||||
GetIpAddrTable(iptable, &dwSize, 0);
|
|
||||||
|
|
||||||
struct in_addr addr;
|
|
||||||
|
|
||||||
for (unsigned int i = 0; i < iptable -> dwNumEntries; i++)
|
|
||||||
{
|
|
||||||
MIB_IPADDRROW &ipaddr = iptable->table[i];
|
|
||||||
|
|
||||||
std::string out;
|
|
||||||
|
|
||||||
addr.s_addr = ipaddr.dwAddr;
|
|
||||||
rs_sprintf(out, "Iface(%ld) => %s\n", ipaddr.dwIndex, rs_inet_ntoa(addr).c_str());
|
|
||||||
|
|
||||||
#if __MINGW_MAJOR_VERSION <= 3 && !defined(__MINGW64_VERSION_MAJOR)
|
|
||||||
unsigned short wType = ipaddr.unused2; // should be wType
|
|
||||||
#else
|
|
||||||
unsigned short wType = ipaddr.wType;
|
|
||||||
#endif
|
|
||||||
if (wType & MIB_IPADDR_DISCONNECTED)
|
|
||||||
{
|
|
||||||
pqioutput(PQL_DEBUG_BASIC, pqinetzone, "Interface disconnected, " + out);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (wType & MIB_IPADDR_DELETED)
|
|
||||||
{
|
|
||||||
pqioutput(PQL_DEBUG_BASIC, pqinetzone, "Interface deleted, " + out);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ipaddr.dwIndex == bestInterface)
|
|
||||||
{
|
|
||||||
pqioutput(PQL_DEBUG_BASIC, pqinetzone, "Best address, " + out);
|
|
||||||
addrs.push_front(addr);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pqioutput(PQL_DEBUG_BASIC, pqinetzone, out);
|
|
||||||
addrs.push_back(addr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
free (iptable);
|
|
||||||
|
|
||||||
return (addrs.size() > 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// implement the improved unix inet address fn.
|
// implement the improved unix inet address fn.
|
||||||
// using old one.
|
// using old one.
|
||||||
int inet_aton(const char *name, struct in_addr *addr)
|
int inet_aton(const char *name, struct in_addr *addr)
|
||||||
|
|
|
@ -73,16 +73,6 @@ Description:
|
||||||
(5) isValidNet()
|
(5) isValidNet()
|
||||||
(7) pqi_inet_netof()
|
(7) pqi_inet_netof()
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
netiface_test
|
|
||||||
------------------------------------------------------------
|
|
||||||
Tested Code: pqinetwork.cc
|
|
||||||
Description :
|
|
||||||
(1) getPreferredInterface()
|
|
||||||
(2) getLocalInterfaces()
|
|
||||||
|
|
||||||
This is currently a manual test - needs to be converted.
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
------------------------------------------------------------
|
||||||
pqiarchive_test
|
pqiarchive_test
|
||||||
------------------------------------------------------------
|
------------------------------------------------------------
|
||||||
|
|
|
@ -39,7 +39,6 @@
|
||||||
|
|
||||||
bool test_byte_manipulation();
|
bool test_byte_manipulation();
|
||||||
bool test_local_address_manipulation();
|
bool test_local_address_manipulation();
|
||||||
bool test_address_listen();
|
|
||||||
|
|
||||||
|
|
||||||
INITTEST();
|
INITTEST();
|
||||||
|
@ -50,7 +49,6 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
test_byte_manipulation();
|
test_byte_manipulation();
|
||||||
test_local_address_manipulation();
|
test_local_address_manipulation();
|
||||||
test_address_listen();
|
|
||||||
|
|
||||||
FINALREPORT("libretroshare Net Basics Tests");
|
FINALREPORT("libretroshare Net Basics Tests");
|
||||||
return TESTRESULT();
|
return TESTRESULT();
|
||||||
|
@ -213,36 +211,6 @@ bool test_local_address_manipulation()
|
||||||
|
|
||||||
bool test_bind_addr(struct sockaddr_in addr);
|
bool test_bind_addr(struct sockaddr_in addr);
|
||||||
|
|
||||||
bool test_address_listen()
|
|
||||||
{
|
|
||||||
struct sockaddr_in addr1, addr2, addr3;
|
|
||||||
|
|
||||||
sockaddr_clear(&addr1);
|
|
||||||
addr1.sin_family = AF_INET;
|
|
||||||
inet_aton(loopback_addrstr, &(addr1.sin_addr));
|
|
||||||
addr1.sin_port = htons(12345);
|
|
||||||
|
|
||||||
sockaddr_clear(&addr2);
|
|
||||||
addr2.sin_family = AF_INET;
|
|
||||||
getPreferredInterface(addr2.sin_addr); // returns best addr.
|
|
||||||
addr2.sin_port = htons(13245);
|
|
||||||
|
|
||||||
sockaddr_clear(&addr3);
|
|
||||||
addr3.sin_family = AF_INET;
|
|
||||||
getPreferredInterface(addr3.sin_addr); // returns best addr.
|
|
||||||
addr3.sin_port = htons(23451);
|
|
||||||
|
|
||||||
/* test bind to loopback, and preferred interfaces */
|
|
||||||
test_bind_addr(addr1);
|
|
||||||
test_bind_addr(addr2);
|
|
||||||
test_bind_addr(addr3);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
REPORT("Test Address Listen");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool test_bind_addr(struct sockaddr_in addr)
|
bool test_bind_addr(struct sockaddr_in addr)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -1,122 +0,0 @@
|
||||||
/*
|
|
||||||
* libretroshare/src/pqi net_test.cc
|
|
||||||
*
|
|
||||||
* 3P/PQI network interface for RetroShare.
|
|
||||||
*
|
|
||||||
* Copyright 2007-2008 by Robert Fernie.
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU Library General Public
|
|
||||||
* License Version 2 as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This library is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* Library General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Library General Public
|
|
||||||
* License along with this library; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
|
||||||
* USA.
|
|
||||||
*
|
|
||||||
* Please report all bugs and problems to "retroshare@lunamutt.com".
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/******
|
|
||||||
* NETWORKING Test to check Big/Little Endian behaviour
|
|
||||||
* as well as socket behaviour
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "pqi/pqinetwork.h"
|
|
||||||
#include "util/rsnet.h"
|
|
||||||
#include <iostream>
|
|
||||||
#include <sstream>
|
|
||||||
|
|
||||||
|
|
||||||
bool test_iface();
|
|
||||||
bool test_iface_loop();
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
bool repeat = false;
|
|
||||||
if (argc > 1)
|
|
||||||
{
|
|
||||||
repeat = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
test_iface();
|
|
||||||
|
|
||||||
if (repeat)
|
|
||||||
{
|
|
||||||
test_iface_loop();
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* test 1: single check if interfaces */
|
|
||||||
bool test_iface()
|
|
||||||
{
|
|
||||||
struct in_addr pref_iface;
|
|
||||||
std::list<struct in_addr> ifaces;
|
|
||||||
std::list<struct in_addr>::iterator it;
|
|
||||||
|
|
||||||
getPreferredInterface(pref_iface);
|
|
||||||
getLocalInterfaces(ifaces);
|
|
||||||
|
|
||||||
std::cerr << "test_iface()" << std::endl;
|
|
||||||
for(it = ifaces.begin(); it != ifaces.end(); it++)
|
|
||||||
{
|
|
||||||
std::cerr << "available iface: " << rs_inet_ntoa(*it) << std::endl;
|
|
||||||
}
|
|
||||||
std::cerr << "preferred " << rs_inet_ntoa(pref_iface) << std::endl;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* test 2: catch changing interfaces */
|
|
||||||
bool test_iface_loop()
|
|
||||||
{
|
|
||||||
std::cerr << "test_iface_loop()" << std::endl;
|
|
||||||
struct in_addr curr_pref_iface;
|
|
||||||
getPreferredInterface(curr_pref_iface);
|
|
||||||
time_t start = time(NULL);
|
|
||||||
while(1)
|
|
||||||
{
|
|
||||||
struct in_addr pref_iface;
|
|
||||||
std::list<struct in_addr> ifaces;
|
|
||||||
std::list<struct in_addr>::iterator it;
|
|
||||||
|
|
||||||
getPreferredInterface(pref_iface);
|
|
||||||
getLocalInterfaces(ifaces);
|
|
||||||
|
|
||||||
|
|
||||||
std::cerr << "T(" << time(NULL) - start << ") ";
|
|
||||||
|
|
||||||
for(it = ifaces.begin(); it != ifaces.end(); it++)
|
|
||||||
{
|
|
||||||
std::cerr << " I: " << rs_inet_ntoa(*it);
|
|
||||||
}
|
|
||||||
std::cerr << " P: " << rs_inet_ntoa(pref_iface) << std::endl;
|
|
||||||
|
|
||||||
if (curr_pref_iface.s_addr !=
|
|
||||||
pref_iface.s_addr)
|
|
||||||
{
|
|
||||||
std::cerr << "+++++++++++++ Address CHANGED ++++++++++";
|
|
||||||
std::cerr << std::endl;
|
|
||||||
std::cerr << "+++++++++++++ Address CHANGED ++++++++++";
|
|
||||||
std::cerr << std::endl;
|
|
||||||
std::cerr << "+++++++++++++ Address CHANGED ++++++++++";
|
|
||||||
std::cerr << std::endl;
|
|
||||||
|
|
||||||
curr_pref_iface = pref_iface;
|
|
||||||
}
|
|
||||||
|
|
||||||
sleep(1);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue