rtphone/src/libs/ice/ICEError.cpp

85 lines
2.4 KiB
C++

/* Copyright(C) 2007-2014 VoIP objects (voipobjects.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "ICEError.h"
using namespace ice;
std::string ErrorInfo::errorMsg(int errorCode)
{
switch (errorCode)
{
case 403: return "(Forbidden): The request was valid, but cannot be performed due \
to administrative or similar restrictions.";
case 437: return "(Allocation Mismatch): A request was received by the server that \
requires an allocation to be in place, but there is none, or a \
request was received which requires no allocation, but there is \
one.";
case 441: return "(Wrong Credentials): The credentials in the (non-Allocate) \
request, though otherwise acceptable to the server, do not match \
those used to create the allocation.";
case 442: return "(Unsupported Transport Protocol): The Allocate request asked the \
server to use a transport protocol between the server and the peer \
that the server does not support. NOTE: This does NOT refer to \
the transport protocol used in the 5-tuple.";
case 486: return "(Allocation Quota Reached): No more allocations using this \
username can be created at the present time.";
case 508: return "(Insufficient Capacity): The server is unable to carry out the \
request due to some capacity limit being reached. In an Allocate \
response, this could be due to the server having no more relayed \
transport addresses available right now, or having none with the \
requested properties, or the one that corresponds to the specified \
reservation token is not available.";
}
return "Unknown error.";
}
Exception::Exception(int errorCode, std::string errorMsg)
:mErrorCode(errorCode), mSubcode(0), mErrorMsg(errorMsg)
{
}
Exception::Exception(int code)
:mErrorCode(code), mSubcode(0)
{
}
Exception::Exception(int code, int subcode)
:mErrorCode(code), mSubcode(subcode)
{
}
Exception::Exception(const Exception& src)
:mErrorCode(src.mErrorCode), mErrorMsg(src.mErrorMsg)
{
}
Exception::~Exception()
{
}
int Exception::code()
{
return mErrorCode;
}
int Exception::subcode()
{
return mSubcode;
}
std::string Exception::message()
{
return mErrorMsg;
}