diff options
author | Nikola Pajkovsky <npajkovs@redhat.com> | 2010-01-21 19:19:02 +0100 |
---|---|---|
committer | Nikola Pajkovsky <npajkovs@redhat.com> | 2010-01-21 19:19:02 +0100 |
commit | 8d1111b10cb9d60d867921739898b3b4aa17daba (patch) | |
tree | 2b7388fa35f93e1f28e2988b1772b0fcc6313ffc | |
parent | 8cf58297d9743bdbfdddb605cc9cefe0c6273ee5 (diff) | |
download | abrt-8d1111b10cb9d60d867921739898b3b4aa17daba.tar.gz abrt-8d1111b10cb9d60d867921739898b3b4aa17daba.tar.xz abrt-8d1111b10cb9d60d867921739898b3b4aa17daba.zip |
throw when some members are missing in xmlrpc response
-rw-r--r-- | lib/Plugins/Bugzilla.cpp | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/lib/Plugins/Bugzilla.cpp b/lib/Plugins/Bugzilla.cpp index 2fc2109a..055e65f2 100644 --- a/lib/Plugins/Bugzilla.cpp +++ b/lib/Plugins/Bugzilla.cpp @@ -125,6 +125,12 @@ bool ctx::check_cc_and_reporter(uint32_t bug_id, const char* login) return true; } } + else + { + VERB3 log("Missing member 'reporter'"); + xmlrpc_DECREF(result); + throw CABRTException(EXCEP_PLUGIN, _("Missing member 'bugs'")); + } xmlrpc_value* cc_member = NULL; xmlrpc_struct_find_value(&env, result, "cc", &cc_member); @@ -171,6 +177,12 @@ bool ctx::check_cc_and_reporter(uint32_t bug_id, const char* login) } xmlrpc_DECREF(cc_member); } + else + { + VERB3 log("Missing member 'bugs'"); + xmlrpc_DECREF(result); + throw CABRTException(EXCEP_PLUGIN, _("Missing member 'cc'")); + } xmlrpc_DECREF(result); return false; @@ -275,6 +287,8 @@ int32_t ctx::check_uuid_in_bugzilla(const char* component, const char* UUID) else { VERB3 log("Missing member 'bug_id'"); + xmlrpc_DECREF(result); + throw CABRTException(EXCEP_PLUGIN, _("Missing member 'bug_id'")); } xmlrpc_DECREF(item); xmlrpc_DECREF(bugs_member); @@ -282,6 +296,8 @@ int32_t ctx::check_uuid_in_bugzilla(const char* component, const char* UUID) else { VERB3 log("Missing member 'bugs'"); + xmlrpc_DECREF(result); + throw CABRTException(EXCEP_PLUGIN, _("Missing member 'bugs'")); } xmlrpc_DECREF(result); @@ -474,12 +490,9 @@ std::string CReporterBugzilla::Report(const map_crash_data_t& pCrashData, return BugzillaURL; } - if (bug_id == NEW_BUG) - { - update_client(_("Creating new bug...")); - bug_id = bz_server.new_bug(pCrashData); - bz_server.add_attachments(to_string(bug_id).c_str(), pCrashData); - } + update_client(_("Creating new bug...")); + bug_id = bz_server.new_bug(pCrashData); + bz_server.add_attachments(to_string(bug_id).c_str(), pCrashData); update_client(_("Logging out...")); bz_server.logout(); |