reporter-ureport doesn't fail on "Validation error" response becase we want to allow users to report problems created by older version of abrt/libreport
Signed-off-by: Jakub Filak <[email protected]> --- src/plugins/ureport.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/plugins/ureport.c b/src/plugins/ureport.c index 3913a89..6224117 100644 --- a/src/plugins/ureport.c +++ b/src/plugins/ureport.c @@ -47,6 +47,7 @@ enum response_type UREPORT_SERVER_RESP_UNKNOWN_TYPE, UREPORT_SERVER_RESP_KNOWN, UREPORT_SERVER_RESP_ERROR, + UREPORT_SERVER_RESP_REJECTED, }; struct ureport_server_response { @@ -69,6 +70,13 @@ static bool ureport_server_parse_json(json_object *json, struct ureport_server_r { out_response->type = UREPORT_SERVER_RESP_ERROR; out_response->value = json_object_to_json_string(obj); + + /* try to detect validation errors */ + /* these errors are probably caused by reporting a bug created by older libreport version */ + /* we wan't to allow users report old problems thus we must exit with SUCCESS code */ + if (prefixcmp(out_response->value, "Validation failed:")) + out_response->type = UREPORT_SERVER_RESP_REJECTED; + return true; } @@ -181,6 +189,12 @@ int main(int argc, char **argv) log("THANKYOU"); } break; + case UREPORT_SERVER_RESP_REJECTED: + /* it is silent because we don't want to scary users */ + /* with a weired message about missing data */ + VERB1 log("server rejected uReport: %s", response.value); + ret = 0; + break; case UREPORT_SERVER_RESP_ERROR: VERB1 log("server side error: %s", response.value); ret = 1; /* just to be sure */ -- 1.7.11.2
