2022-08-15 Fred Gleason <fredg@paravelsystems.com>

* Fixed a bug in the CDDB parser that caused it to emit an error
	message when processing a 202 response.
	* Added explicit processing for 201, 230, 401, 402, 403, 409, 431,
	432, 433, 434, 501, 502, 503 and 530 returns in the CDDB parser.

Signed-off-by: Fred Gleason <fredg@paraelsystems.com>
This commit is contained in:
Fred Gleason 2022-08-15 17:02:06 -04:00
parent 43413e4468
commit 97ff4614b1
2 changed files with 50 additions and 1 deletions

View File

@ -23231,3 +23231,8 @@
* Added support for sorting the event list in rdcatch(1). * Added support for sorting the event list in rdcatch(1).
2022-08-08 Fred Gleason <fredg@paravelsystems.com> 2022-08-08 Fred Gleason <fredg@paravelsystems.com>
* Incremented the package version to 4.0.0beta3int3. * Incremented the package version to 4.0.0beta3int3.
2022-08-15 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in the CDDB parser that caused it to emit an error
message when processing a 202 response.
* Added explicit processing for 201, 230, 401, 402, 403, 409, 431,
432, 433, 434, 501, 502, 503 and 530 returns in the CDDB parser.

View File

@ -141,6 +141,7 @@ void RDCddbLookup::readyReadData()
case 3: // Query Response case 3: // Query Response
switch(code) { switch(code) {
case 200: // Exact Match case 200: // Exact Match
case 201: // Exact Match,read-only
f0=line.split(" "); f0=line.split(" ");
if(f0.size()>=4) { if(f0.size()>=4) {
discRecord()->setDiscId(f0[2].toUInt(&ok,16)); discRecord()->setDiscId(f0[2].toUInt(&ok,16));
@ -171,10 +172,53 @@ void RDCddbLookup::readyReadData()
lookup_state=4; lookup_state=4;
break; break;
case 202: // No Match
case 211: // Inexact Match case 211: // Inexact Match
FinishCddbLookup(RDCddbLookup::NoMatch,"OK"); case 230:
FinishCddbLookup(RDCddbLookup::NoMatch,"OK");
break; break;
case 401:
case 402:
FinishCddbLookup(RDCddbLookup::NoMatch,"Server failure");
break;
case 403:
FinishCddbLookup(RDCddbLookup::NoMatch,
"CDDB database entry is corrupt");
break;
case 409:
FinishCddbLookup(RDCddbLookup::NoMatch,"No handshake");
break;
case 431:
FinishCddbLookup(RDCddbLookup::NoMatch,
"Handshake not successful, closing connection");
break;
case 432:
FinishCddbLookup(RDCddbLookup::NoMatch,
"No connections allowed: permission denied");
break;
case 433:
FinishCddbLookup(RDCddbLookup::NoMatch,
"No connections allowed: too many users");
break;
case 434:
FinishCddbLookup(RDCddbLookup::NoMatch,
"No connections allowed: system load too high");
break;
case 501:
case 502:
case 503:
case 530:
FinishCddbLookup(RDCddbLookup::NoMatch,"Server error");
break;
default: default:
FinishCddbLookup(RDCddbLookup::LookupError, FinishCddbLookup(RDCddbLookup::LookupError,
"Unexpected response from CDDB server"); "Unexpected response from CDDB server");