|
@@ -150,25 +150,12 @@ public:
|
|
|
inline void appendTo(Buffer<C> &b) const
|
|
|
throw(std::out_of_range)
|
|
|
{
|
|
|
- b.append((unsigned char)((_a >> 32) & 0xff));
|
|
|
- b.append((unsigned char)((_a >> 24) & 0xff));
|
|
|
- b.append((unsigned char)((_a >> 16) & 0xff));
|
|
|
- b.append((unsigned char)((_a >> 8) & 0xff));
|
|
|
- b.append((unsigned char)(_a & 0xff));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * @return String containing address as 5 binary bytes
|
|
|
- */
|
|
|
- inline std::string toBinaryString() const
|
|
|
- {
|
|
|
- std::string b;
|
|
|
- b.push_back((char)((_a >> 32) & 0xff));
|
|
|
- b.push_back((char)((_a >> 24) & 0xff));
|
|
|
- b.push_back((char)((_a >> 16) & 0xff));
|
|
|
- b.push_back((char)((_a >> 8) & 0xff));
|
|
|
- b.push_back((char)(_a & 0xff));
|
|
|
- return b;
|
|
|
+ unsigned char *p = (unsigned char *)b.appendField(ZT_ADDRESS_LENGTH);
|
|
|
+ *(p++) = (unsigned char)((_a >> 32) & 0xff);
|
|
|
+ *(p++) = (unsigned char)((_a >> 24) & 0xff);
|
|
|
+ *(p++) = (unsigned char)((_a >> 16) & 0xff);
|
|
|
+ *(p++) = (unsigned char)((_a >> 8) & 0xff);
|
|
|
+ *p = (unsigned char)(_a & 0xff);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -201,19 +188,12 @@ public:
|
|
|
inline bool wouldHaveMac(const MAC &mac) const
|
|
|
throw()
|
|
|
{
|
|
|
- if (mac.data[0] != ZT_MAC_FIRST_OCTET)
|
|
|
- return false;
|
|
|
- if (mac.data[1] != (unsigned char)((_a >> 32) & 0xff))
|
|
|
- return false;
|
|
|
- if (mac.data[2] != (unsigned char)((_a >> 24) & 0xff))
|
|
|
- return false;
|
|
|
- if (mac.data[3] != (unsigned char)((_a >> 16) & 0xff))
|
|
|
- return false;
|
|
|
- if (mac.data[4] != (unsigned char)((_a >> 8) & 0xff))
|
|
|
- return false;
|
|
|
- if (mac.data[5] != (unsigned char)(_a & 0xff))
|
|
|
- return false;
|
|
|
- return true;
|
|
|
+ return ((mac.data[0] != ZT_MAC_FIRST_OCTET)||
|
|
|
+ (mac.data[1] != (unsigned char)((_a >> 32) & 0xff))||
|
|
|
+ (mac.data[2] != (unsigned char)((_a >> 24) & 0xff))||
|
|
|
+ (mac.data[3] != (unsigned char)((_a >> 16) & 0xff))||
|
|
|
+ (mac.data[4] != (unsigned char)((_a >> 8) & 0xff))||
|
|
|
+ (mac.data[5] != (unsigned char)(_a & 0xff)));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -234,11 +214,7 @@ public:
|
|
|
/**
|
|
|
* Set to null/zero
|
|
|
*/
|
|
|
- inline void zero()
|
|
|
- throw()
|
|
|
- {
|
|
|
- _a = 0;
|
|
|
- }
|
|
|
+ inline void zero() throw() { _a = 0; }
|
|
|
|
|
|
/**
|
|
|
* Check if this address is reserved
|