From 8a92ed8e4dd8a8054cd3fc096381ff49ca04e102 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Wed, 15 Aug 2012 11:01:17 +0200
Subject: [LIBREPORT PATCH 20/20] trac#680: only for Fedora package 17
repository patch (not to push to abrt git)
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 <jfilak@redhat.com>
---
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