12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /*====================================================================*
- Copyright (c) 2020 Qualcomm Technologies, Inc.
- All Rights Reserved.
- Confidential and Proprietary - Qualcomm Technologies, Inc.
- ******************************************************************
- 2013 Qualcomm Atheros, Inc.
- *====================================================================*/
- /*====================================================================*
- * system header files;
- *--------------------------------------------------------------------*/
- #include <cstdlib>
- #include <iostream>
- /*====================================================================*
- * system header files;
- *--------------------------------------------------------------------*/
- #include <sys/types.h>
- #ifndef WINPCAP
- #include <sys/socket.h>
- #endif
- #include <net/if.h>
- /*====================================================================*
- * custom header files;
- *--------------------------------------------------------------------*/
- #include "../classes/CPLChannel.hpp"
- #include "../classes/ointerfaces.hpp"
- #include "../classes/omemory.hpp"
- /*====================================================================*
- * custom source files;
- *--------------------------------------------------------------------*/
- #ifndef MAKEFILE
- #include "../classes/omemory.cpp"
- #include "../classes/oerror.cpp"
- #include "../classes/oflagword.cpp"
- #include "../classes/ointerface.cpp"
- #include "../classes/ointerfaces.cpp"
- #include "../classes/oethernet.cpp"
- #include "../classes/ointellon.cpp"
- #include "../classes/ohomeplug.cpp"
- #include "../classes/CPLChannel.cpp"
- #endif
- /*====================================================================*
- * program variables;
- *--------------------------------------------------------------------*/
- char const * program_name;
- /*====================================================================*
- * main program;
- *--------------------------------------------------------------------*/
- int main (int argc, const char *argv [])
- {
- ointerfaces interfaces;
- char buffer [ETHER_ADDR_LEN * 3];
- byte bridge [CPLCHANNEL_BRIDGES_MAX][ETHER_ADDR_LEN];
- byte device [CPLCHANNEL_DEVICES_MAX][ETHER_ADDR_LEN];
- size_t bridges;
- size_t devices;
- program_name = * argv;
- for (interfaces.SelectFirst (); interfaces.Index () < interfaces.Count (); interfaces.SelectNext ())
- {
- CPLChannel * channel = new CPLChannel (interfaces.Selected ().Name (), CPLCHANNEL_TIMEOUT);
- std::cout << "interface - " << channel->Description () << std::endl;
- bridges = channel->Bridges (bridge, sizeof (bridge));
- while (bridges--)
- {
- std::cout << "bridge - " << omemory::hexstring (buffer, sizeof (buffer), bridge [bridges], ETHER_ADDR_LEN) << std::endl;
- channel->ImportPeerAddress (bridge [bridges]);
- devices = channel->Neighbors (device, sizeof (device));
- while (devices--)
- {
- std::cout << "device - " << omemory::hexstring (buffer, sizeof (buffer), device [devices], ETHER_ADDR_LEN) << std::endl;
- }
- std::cout << std::endl;
- }
- std::cout << std::endl;
- delete channel;
- }
- std::exit (0);
- }
|