|
reSIProcate/rutil
9694
|
#include <DnsNaptrRecord.hxx>


Classes | |
| class | NaptrException |
| class | RegExp |
Public Member Functions | |
| DnsNaptrRecord () | |
| DnsNaptrRecord (const RROverlay &) | |
| ~DnsNaptrRecord () | |
| int | order () const |
| int & | order () |
| int | preference () const |
| const Data & | flags () const |
| const Data & | service () const |
| const RegExp & | regexp () const |
| const Data & | replacement () const |
| const Data & | name () const |
| bool | isSameValue (const Data &value) const |
| EncodeStream & | dump (EncodeStream &strm) const |
Private Attributes | |
| int | mOrder |
| int | mPreference |
| Data | mFlags |
| Data | mService |
| RegExp | mRegexp |
| Data | mReplacement |
| Data | mName |
Definition at line 17 of file DnsNaptrRecord.hxx.
| resip::DnsNaptrRecord::DnsNaptrRecord | ( | ) | [inline] |
Definition at line 64 of file DnsNaptrRecord.hxx.
: mOrder(-1), mPreference(-1) {}
| DnsNaptrRecord::DnsNaptrRecord | ( | const RROverlay & | overlay | ) |
Definition at line 97 of file DnsNaptrRecord.cxx.
References resip::RROverlay::data(), resip::RROverlay::dataLength(), InfoLog, mFlags, mName, mOrder, mPreference, mRegexp, mReplacement, mService, resip::RROverlay::msg(), resip::RROverlay::msgLength(), name(), resip::RROverlay::nameLength(), resip::DnsNaptrRecord::RegExp::regexp(), regexp(), resip::DnsNaptrRecord::RegExp::replacement(), and RRFIXEDSZ.
{
char* name = 0;
long len = 0;
if (ARES_SUCCESS != ares_expand_name(overlay.data()-overlay.nameLength()-RRFIXEDSZ, overlay.msg(), overlay.msgLength(), &name, &len))
{
throw NaptrException("Failed parse of NAPTR record", __FILE__, __LINE__);
}
mName = name;
free(name);
mOrder = DNS__16BIT(overlay.data());
mPreference = DNS__16BIT(overlay.data() + 2);
const unsigned char* pPos = overlay.data() + 4;
len = *pPos;
if (pPos + len + 1 > overlay.data() + overlay.dataLength())
{
throw NaptrException("Failed parse of NAPTR record", __FILE__, __LINE__);
}
mFlags = Data(pPos + 1, len);
pPos += len + 1;
len = *pPos;
if (pPos + len + 1 > overlay.data() + overlay.dataLength())
{
throw NaptrException("Failed parse of NAPTR record", __FILE__, __LINE__);
}
mService = Data(pPos + 1, len);
pPos += len + 1;
len = *pPos;
if (pPos + len + 1 > overlay.data() + overlay.dataLength())
{
throw NaptrException("Failed parse of NAPTR record", __FILE__, __LINE__);
}
Data regexp(pPos + 1, len);
pPos += len + 1;
mRegexp = DnsNaptrRecord::RegExp(regexp);
InfoLog (<< "regexp=" << mRegexp.regexp() << " rep=" << mRegexp.replacement());
if (pPos[0] != 0)
{
if (ARES_SUCCESS != ares_expand_name(pPos, overlay.msg(), overlay.msgLength(), &name, &len))
{
throw NaptrException("Failed parse of NAPTR record", __FILE__, __LINE__);
}
mReplacement = name;
free(name);
}
}

| resip::DnsNaptrRecord::~DnsNaptrRecord | ( | ) | [inline] |
Definition at line 66 of file DnsNaptrRecord.hxx.
{}
| EncodeStream & DnsNaptrRecord::dump | ( | EncodeStream & | strm | ) | const [virtual] |
Implements resip::DnsResourceRecord.
Definition at line 156 of file DnsNaptrRecord.cxx.
References mName, mOrder, and mPreference.
{
strm << mName << " (NAPTR)--> o=" << mOrder << " p=" << mPreference;
return strm;
}
| const Data& resip::DnsNaptrRecord::flags | ( | ) | const [inline] |
Definition at line 72 of file DnsNaptrRecord.hxx.
References mFlags.
Referenced by resip::RRList::encodeRecordItem().
{ return mFlags; }
| bool DnsNaptrRecord::isSameValue | ( | const Data & | value | ) | const [virtual] |
Implements resip::DnsResourceRecord.
Definition at line 150 of file DnsNaptrRecord.cxx.
References mReplacement.
{
return mReplacement == value;
}
| const Data& resip::DnsNaptrRecord::name | ( | ) | const [inline, virtual] |
Implements resip::DnsResourceRecord.
Definition at line 76 of file DnsNaptrRecord.hxx.
References mName.
Referenced by DnsNaptrRecord(), and resip::RRList::encodeRecordItem().
{ return mName; }
| int resip::DnsNaptrRecord::order | ( | ) | const [inline] |
Definition at line 69 of file DnsNaptrRecord.hxx.
References mOrder.
Referenced by resip::RRList::encodeRecordItem(), and resip::RRVip::NaptrTransform::transform().
{ return mOrder; }
| int& resip::DnsNaptrRecord::order | ( | ) | [inline] |
| int resip::DnsNaptrRecord::preference | ( | ) | const [inline] |
Definition at line 71 of file DnsNaptrRecord.hxx.
References mPreference.
Referenced by resip::RRList::encodeRecordItem().
{ return mPreference; }
| const RegExp& resip::DnsNaptrRecord::regexp | ( | ) | const [inline] |
Definition at line 74 of file DnsNaptrRecord.hxx.
References mRegexp.
Referenced by DnsNaptrRecord(), and resip::RRList::encodeRecordItem().
{ return mRegexp; }
| const Data& resip::DnsNaptrRecord::replacement | ( | ) | const [inline] |
Definition at line 75 of file DnsNaptrRecord.hxx.
References mReplacement.
Referenced by resip::RRList::encodeRecordItem().
{ return mReplacement; }
| const Data& resip::DnsNaptrRecord::service | ( | ) | const [inline] |
Definition at line 73 of file DnsNaptrRecord.hxx.
References mService.
Referenced by resip::RRList::encodeRecordItem().
{ return mService; }
Data resip::DnsNaptrRecord::mFlags [private] |
Definition at line 83 of file DnsNaptrRecord.hxx.
Referenced by DnsNaptrRecord(), and flags().
Data resip::DnsNaptrRecord::mName [private] |
Definition at line 87 of file DnsNaptrRecord.hxx.
Referenced by DnsNaptrRecord(), dump(), and name().
int resip::DnsNaptrRecord::mOrder [private] |
Definition at line 81 of file DnsNaptrRecord.hxx.
Referenced by DnsNaptrRecord(), dump(), and order().
int resip::DnsNaptrRecord::mPreference [private] |
Definition at line 82 of file DnsNaptrRecord.hxx.
Referenced by DnsNaptrRecord(), dump(), and preference().
RegExp resip::DnsNaptrRecord::mRegexp [private] |
Definition at line 85 of file DnsNaptrRecord.hxx.
Referenced by DnsNaptrRecord(), resip::DnsNaptrRecord::RegExp::empty(), resip::DnsNaptrRecord::RegExp::RegExp(), resip::DnsNaptrRecord::RegExp::regexp(), and regexp().
Data resip::DnsNaptrRecord::mReplacement [private] |
Definition at line 86 of file DnsNaptrRecord.hxx.
Referenced by resip::DnsNaptrRecord::RegExp::apply(), DnsNaptrRecord(), isSameValue(), resip::DnsNaptrRecord::RegExp::RegExp(), resip::DnsNaptrRecord::RegExp::replacement(), and replacement().
Data resip::DnsNaptrRecord::mService [private] |
Definition at line 84 of file DnsNaptrRecord.hxx.
Referenced by DnsNaptrRecord(), and service().
1.7.5.1