diff options
Diffstat (limited to 'mDNSResponder/mDNSMacOSX/BonjourTop/source/bjMACAddr.h')
-rw-r--r-- | mDNSResponder/mDNSMacOSX/BonjourTop/source/bjMACAddr.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/mDNSResponder/mDNSMacOSX/BonjourTop/source/bjMACAddr.h b/mDNSResponder/mDNSMacOSX/BonjourTop/source/bjMACAddr.h new file mode 100644 index 00000000..ced95507 --- /dev/null +++ b/mDNSResponder/mDNSMacOSX/BonjourTop/source/bjMACAddr.h @@ -0,0 +1,54 @@ +// +// bjMACAddr.h +// TestTB +// +// Created by Terrin Eager on 3/23/13. +// +// + +#ifndef __TestTB__bjMACAddr__ +#define __TestTB__bjMACAddr__ + +#include <iostream> +#include <sys/socket.h> +#include "bjtypes.h" + +class BJMACAddr +{ +public: + BJMACAddr() { memset(addr,0,sizeof(addr));}; + BJMACAddr(const BJMACAddr& Src) { memcpy(addr,Src.addr,sizeof(addr)); }; + + void operator=(const BJMACAddr& Src) { memcpy(addr,Src.addr,sizeof(addr)); }; + + void Set(unsigned char* newAddr) {memcpy(addr,newAddr,sizeof(addr));}; + void SetString(char* newAddrString) + { + int newAddr[6] = {0,0,0,0,0,0}; + sscanf(newAddrString, "%02X:%02X:%02X:%02X:%02X:%02X", &newAddr[0],&newAddr[1],&newAddr[2],&newAddr[3],&newAddr[4],&newAddr[5]); + for (int i=0; i< 6; i++) + addr[i] = newAddr[i]; + }; + unsigned char* Get() {return addr;}; + + 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 + + char* GetString() {sprintf(buffer,"%02X:%02X:%02X:%02X:%02X:%02X", addr[0],addr[1],addr[2],addr[3],addr[4],addr[5]); return buffer;}; + char* GetStringVendor() {sprintf(buffer,"%02X:%02X:%02X", addr[0],addr[1],addr[2]); return buffer;}; + BJ_COMPARE Compare(BJMACAddr* compareAddr) + { + int result = memcmp(addr, compareAddr->addr, sizeof(addr)); + if (result > 0) + return BJ_GT; + if (result < 0) + return BJ_LT; + return BJ_EQUAL; + }; + bool IsEmpty() { return (addr[0] | addr[1] | addr[2] | addr[3] | addr[4] | addr[5]) == 0;}; + +private: + unsigned char addr[6]; + char buffer[25]; +}; + +#endif /* defined(__TestTB__bjMACAddr__) */ |