dnssrvrecord.cxx
来自「这是国外的resip协议栈」· CXX 代码 · 共 60 行
CXX
60 行
#if defined(HAVE_CONFIG_H)#include "rutil/config.hxx"#endif#include <stdlib.h>#if defined(USE_ARES)#include "ares.h"#include "ares_dns.h"#endif#ifndef __CYGWIN__#ifndef RRFIXEDSZ#define RRFIXEDSZ 10#endif#endif#include "rutil/Data.hxx"#include "rutil/BaseException.hxx"#include "RROverlay.hxx"#include "DnsResourceRecord.hxx"#include "DnsSrvRecord.hxx"using namespace resip;DnsSrvRecord::DnsSrvRecord(const RROverlay& overlay){ char* name = 0; int len = 0; if (ARES_SUCCESS != ares_expand_name(overlay.data()-overlay.nameLength()-RRFIXEDSZ, overlay.msg(), overlay.msgLength(), &name, &len)) { throw SrvException("Failed parse of SRV record", __FILE__, __LINE__); } mName = name; free(name); mPriority = DNS__16BIT(overlay.data()); mWeight = DNS__16BIT(overlay.data() + 2); mPort = DNS__16BIT(overlay.data() + 4); if (ARES_SUCCESS != ares_expand_name(overlay.data() + 6, overlay.msg(), overlay.msgLength(), &name, &len)) { throw SrvException("Failed parse of SRV record", __FILE__, __LINE__); } mTarget = name; free(name);}bool DnsSrvRecord::isSameValue(const Data& value) const{ return value == (mTarget + ":" + Data(mPort));}std::ostream&DnsSrvRecord::dump(std::ostream& strm) const{ strm << mName << " (SRV) --> p=" << mPriority << " w=" << mWeight << " " << mTarget << ":" << mPort; return strm;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?