File: computeshift.cc

package info (click to toggle)
natlog 3.01.00-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,912 kB
  • sloc: cpp: 3,691; fortran: 201; sh: 133; ansic: 123; makefile: 110
file content (19 lines) | stat: -rw-r--r-- 646 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "pcap.ih"

void Pcap::computeShift(char const *device)
{
    // see the posting by user175104 on 
    // http://stackoverflow.com/questions/1779715/
    //              how-to-get-mac-address-of-your-machine-using-a-c-program 

    ifstream mac(("/sys/class/net/"s + device) + "/address");

    string address;
    d_shift = (mac >> address) ? 0 : PcapRecord::SIZEOF_ETHERNET_HEADER;

    if (d_shift == 0)
        imsg << "Device " << device << " has MAC address " << address << endl;
    else
        imsg << "Device " << device << " has no MAC address: packets lack "
                                    "Ethernet headers" << endl;
}