Merge pull request #9059

2766d12 MMS: Ignore 2 more API errors thrown by latest PyBitmessage (rbrunner7)
This commit is contained in:
luigi1111 2024-01-18 17:58:57 -05:00
commit 2eed43cef2
No known key found for this signature in database
GPG Key ID: F4ACA0183641E010

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);