MMS: Ignore 2 more API errors thrown by latest PyBitmessage

This commit is contained in:
rbrunner7 2023-11-05 16:11:52 +01:00
parent 053ba2cf07
commit 2766d12a62
1 changed files with 13 additions and 0 deletions

View File

@ -273,16 +273,29 @@ bool message_transporter::post_request(const std::string &request, std::string &
{ {
if ((string_value.find("API Error 0021") == 0) && (request.find("joinChan") != std::string::npos)) if ((string_value.find("API Error 0021") == 0) && (request.find("joinChan") != std::string::npos))
{ {
// "API Error 0021: Unexpected API Failure"
// Error that occurs if one tries to join an already joined chan, which can happen // Error that occurs if one tries to join an already joined chan, which can happen
// if several auto-config participants share one PyBitmessage instance: As a little // if several auto-config participants share one PyBitmessage instance: As a little
// hack simply ignore the error. (A clean solution would be to check for the chan // hack simply ignore the error. (A clean solution would be to check for the chan
// with 'listAddresses2', but parsing the returned array is much more complicated.) // with 'listAddresses2', but parsing the returned array is much more complicated.)
} }
else if ((string_value.find("API Error 0024") == 0) && (request.find("joinChan") != std::string::npos))
{
// "API Error 0024: Chan address is already present."
// Maybe a result of creating the chan in a slightly different way i.e. not with
// 'createChan'; everything works by just ignoring this error
}
else if ((string_value.find("API Error 0013") == 0) && (request.find("leaveChan") != std::string::npos)) else if ((string_value.find("API Error 0013") == 0) && (request.find("leaveChan") != std::string::npos))
{ {
// "API Error 0013: Could not find your fromAddress in the keys.dat file."
// Error that occurs if one tries to leave an already left / deleted chan, which can happen // Error that occurs if one tries to leave an already left / deleted chan, which can happen
// if several auto-config participants share one PyBitmessage instance: Also ignore. // if several auto-config participants share one PyBitmessage instance: Also ignore.
} }
else if ((string_value.find("API Error 0025") == 0) && (request.find("leaveChan") != std::string::npos))
{
// "API Error 0025: Specified address is not a chan address. Use deleteAddress API call instead."
// Error does not really make sense, but everything works by just ignoring
}
else else
{ {
THROW_WALLET_EXCEPTION(tools::error::bitmessage_api_error, string_value); THROW_WALLET_EXCEPTION(tools::error::bitmessage_api_error, string_value);