summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorNikola Pajkovsky <npajkovs@redhat.com>2010-01-21 19:19:02 +0100
committerNikola Pajkovsky <npajkovs@redhat.com>2010-01-21 19:19:02 +0100
commit8d1111b10cb9d60d867921739898b3b4aa17daba (patch)
tree2b7388fa35f93e1f28e2988b1772b0fcc6313ffc /lib
parent8cf58297d9743bdbfdddb605cc9cefe0c6273ee5 (diff)
downloadabrt-8d1111b10cb9d60d867921739898b3b4aa17daba.tar.gz
abrt-8d1111b10cb9d60d867921739898b3b4aa17daba.tar.xz
abrt-8d1111b10cb9d60d867921739898b3b4aa17daba.zip
throw when some members are missing in xmlrpc response
Diffstat (limited to 'lib')
-rw-r--r--lib/Plugins/Bugzilla.cpp25
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();