]> git.saurik.com Git - apple/mdnsresponder.git/blob - mDNSMacOSX/BonjourTop/source/bjMACAddr.h
mDNSResponder-1310.60.4.tar.gz
[apple/mdnsresponder.git] / mDNSMacOSX / BonjourTop / source / bjMACAddr.h
1 //
2 // bjMACAddr.h
3 // TestTB
4 //
5 // Created by Terrin Eager on 3/23/13.
6 //
7 //
8
9 #ifndef __TestTB__bjMACAddr__
10 #define __TestTB__bjMACAddr__
11
12 #include <iostream>
13 #include <sys/socket.h>
14 #include "bjtypes.h"
15
16 class BJMACAddr
17 {
18 public:
19 BJMACAddr() { memset(addr,0,sizeof(addr));};
20 BJMACAddr(const BJMACAddr& Src) { memcpy(addr,Src.addr,sizeof(addr)); };
21
22 void operator=(const BJMACAddr& Src) { memcpy(addr,Src.addr,sizeof(addr)); };
23
24 void Set(unsigned char* newAddr) {memcpy(addr,newAddr,sizeof(addr));};
25 void SetString(char* newAddrString)
26 {
27 int newAddr[6] = {0,0,0,0,0,0};
28 sscanf(newAddrString, "%02X:%02X:%02X:%02X:%02X:%02X", &newAddr[0],&newAddr[1],&newAddr[2],&newAddr[3],&newAddr[4],&newAddr[5]);
29 for (int i=0; i< 6; i++)
30 addr[i] = newAddr[i];
31 };
32 unsigned char* Get() {return addr;};
33
34 void CopyVendor(BJMACAddr& src) { memset(addr,0,sizeof(addr)); memcpy(addr,src.addr,4);}; // 3 is standar vendor But 4 is better with apple products
35
36 char* GetString() {sprintf(buffer,"%02X:%02X:%02X:%02X:%02X:%02X", addr[0],addr[1],addr[2],addr[3],addr[4],addr[5]); return buffer;};
37 char* GetStringVendor() {sprintf(buffer,"%02X:%02X:%02X", addr[0],addr[1],addr[2]); return buffer;};
38 BJ_COMPARE Compare(BJMACAddr* compareAddr)
39 {
40 int result = memcmp(addr, compareAddr->addr, sizeof(addr));
41 if (result > 0)
42 return BJ_GT;
43 if (result < 0)
44 return BJ_LT;
45 return BJ_EQUAL;
46 };
47 bool IsEmpty() { return (addr[0] | addr[1] | addr[2] | addr[3] | addr[4] | addr[5]) == 0;};
48
49 private:
50 unsigned char addr[6];
51 char buffer[25];
52 };
53
54 #endif /* defined(__TestTB__bjMACAddr__) */