+
+std::string anna::diameter::helpers::base::functions::getOriginHost(const anna::DataBlock & db) throw(anna::RuntimeException) {
+ if(db.getSize() < Message::HeaderLength)
+ throw anna::RuntimeException("Not enough bytes to cover command header length", ANNA_FILE_LOCATION);
+
+ const char *avpsDB = db.getData() + Message::HeaderLength;
+ int avpsLen = db.getSize() - Message::HeaderLength;
+ const char * originHostPtr = anna::diameter::codec::functions::findAVP(avpsDB, avpsLen, AVPID__Origin_Host);
+
+
+ if(originHostPtr == NULL)
+ throw anna::RuntimeException("Origin-Host AVP not found in DataBlock provided", ANNA_FILE_LOCATION);
+
+ // Decoded avp information:
+ AvpId _id;
+ char _flags;
+ int _length;
+ std::string result;
+ anna::diameter::codec::functions::decodeAVP(originHostPtr, _id, _flags, _length, result);
+ return result;
+}
+