Removed unused getLocalInterfaces_ipv4

This commit is contained in:
Gio 2015-10-26 13:12:21 +01:00
parent 77bcc99030
commit 5a541e7feb
4 changed files with 0 additions and 238 deletions

View File

@ -256,80 +256,6 @@ std::string socket_errorType(int err)
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.
// using old one.
int inet_aton(const char *name, struct in_addr *addr)

View File

@ -73,16 +73,6 @@ Description:
(5) isValidNet()
(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
------------------------------------------------------------

View File

@ -39,7 +39,6 @@
bool test_byte_manipulation();
bool test_local_address_manipulation();
bool test_address_listen();
INITTEST();
@ -50,7 +49,6 @@ int main(int argc, char **argv)
test_byte_manipulation();
test_local_address_manipulation();
test_address_listen();
FINALREPORT("libretroshare Net Basics Tests");
return TESTRESULT();
@ -213,36 +211,6 @@ bool test_local_address_manipulation()
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)
{

View File

@ -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;
}