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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
/*
* Dibbler - a portable DHCPv6
*
* authors: Tomasz Mrugalski <thomson@klub.com.pl>
* Marek Senderski <msend@o2.pl>
*
* released under GNU GPL v2 only licence
*
* $Id: SrvOptInterfaceID.cpp,v 1.7 2009-03-09 22:45:58 thomson Exp $
*
*/
#include "SrvOptInterfaceID.h"
#include "DHCPConst.h"
#include <string.h>
#ifdef WIN32
#include <WinSock2.h>
#else
#include <netinet/in.h>
#endif
/**
* compares two interface-ids
*
* @param other
*
* @return true, if both interface-IDs are the same
*/
bool TSrvOptInterfaceID::operator==(const TSrvOptInterfaceID &other) const
{
if (DataLen != other.DataLen)
return false;
if (!memcmp(Data, other.Data, DataLen))
return true;
return false;
}
/// @todo: not endian-safe!
TSrvOptInterfaceID::TSrvOptInterfaceID(int id, TMsg * parent)
:TOptGeneric(OPTION_INTERFACE_ID, (char*)&id, sizeof(int), parent)
{
int tmp = htonl(id);
memmove(Data, &tmp, sizeof(int));
}
TSrvOptInterfaceID::TSrvOptInterfaceID(const char * buf, int n, TMsg* parent)
:TOptGeneric(OPTION_INTERFACE_ID, buf,n, parent) {
}
bool TSrvOptInterfaceID::doDuties() {
return true;
}
|