Blob Blame History Raw
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