1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
/*
* Dibbler - a portable DHCPv6
*
* authors: Tomasz Mrugalski <thomson@klub.com.pl>
*
* released under GNU GPL v2 licence
*
*/
#include "DHCPConst.h"
#include "OptVendorClass.h"
#include "Portable.h"
#include <string.h>
TOptVendorClass::TOptVendorClass(uint16_t type, const char* buf, unsigned short buf_len, TMsg* parent)
:TOptUserClass(type, parent) {
if (buf_len < 4) {
Valid = false;
return;
}
Enterprise_id_ = readUint32(buf);
buf += sizeof(uint32_t);
buf_len -= sizeof(uint32_t);
Valid = parseUserData(buf, buf_len);
}
size_t TOptVendorClass::getSize() {
return 4 + TOptUserClass::getSize();
}
char * TOptVendorClass::storeSelf(char* buf) {
buf = writeUint16(buf, OptType);
buf = writeUint16(buf, getSize() - 4);
buf = writeUint32(buf, Enterprise_id_);
return storeUserData(buf);
}
|