Matej Habrnal b52e1a
From e027392d560aa5f4cf11151bf8b53183502ac464 Mon Sep 17 00:00:00 2001
Matej Habrnal b52e1a
From: Jakub Filak <jfilak@redhat.com>
Matej Habrnal b52e1a
Date: Tue, 11 Aug 2015 09:54:55 +0200
Matej Habrnal b52e1a
Subject: [PATCH] dbus-api: unify reporting of errors
Matej Habrnal b52e1a
Matej Habrnal b52e1a
User ERR_PTR for failures in all functions because some of the functions
Matej Habrnal b52e1a
use NULL as a valid response (NULL is an empty GList).
Matej Habrnal b52e1a
Matej Habrnal b52e1a
Related: rhbz#1224984
Matej Habrnal b52e1a
Matej Habrnal b52e1a
Signed-off-by: Jakub Filak <jfilak@redhat.com>
Matej Habrnal b52e1a
---
Matej Habrnal b52e1a
 src/include/libabrt.h      | 16 +++++++++-------
Matej Habrnal b52e1a
 src/lib/problem_api_dbus.c |  2 +-
Matej Habrnal b52e1a
 2 files changed, 10 insertions(+), 8 deletions(-)
Matej Habrnal b52e1a
Matej Habrnal b52e1a
diff --git a/src/include/libabrt.h b/src/include/libabrt.h
Matej Habrnal b52e1a
index 4e73a0d..da565f9 100644
Matej Habrnal b52e1a
--- a/src/include/libabrt.h
Matej Habrnal b52e1a
+++ b/src/include/libabrt.h
Matej Habrnal b52e1a
@@ -163,7 +163,7 @@ void koops_print_suspicious_strings_filtered(const regex_t **filterout);
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
   Requires authorization
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
-  @return 0 if successfull non-zeru on failure
Matej Habrnal b52e1a
+  @return 0 if successful; non-zero on failure
Matej Habrnal b52e1a
 */
Matej Habrnal b52e1a
 int chown_dir_over_dbus(const char *problem_dir_path);
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
@@ -181,7 +181,7 @@ int test_exist_over_dbus(const char *problem_id, const char *element_name);
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
   Might require authorization
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
-  @return Positive number if such the proble is complete, 0 if doesn't and negative number if an error occurs.
Matej Habrnal b52e1a
+  @return Positive number if the problem is complete, 0 if doesn't and negative number if an error occurs.
Matej Habrnal b52e1a
  */
Matej Habrnal b52e1a
 int dbus_problem_is_complete(const char *problem_id);
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
@@ -198,7 +198,8 @@ char *load_text_over_dbus(const char *problem_id, const char *element_name);
Matej Habrnal b52e1a
  @brief Delets multiple problems specified by their id (as returned from problem_data_save)
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
  @param problem_dir_paths List of problem ids
Matej Habrnal b52e1a
- @return 0 if operation was successfull, non-zero on failure
Matej Habrnal b52e1a
+
Matej Habrnal b52e1a
+ @return 0 if operation was successful, non-zero on failure
Matej Habrnal b52e1a
 */
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
 int delete_problem_dirs_over_dbus(const GList *problem_dir_paths);
Matej Habrnal b52e1a
@@ -206,21 +207,21 @@ int delete_problem_dirs_over_dbus(const GList *problem_dir_paths);
Matej Habrnal b52e1a
 /**
Matej Habrnal b52e1a
   @brief Fetches given problem elements for specified problem id
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
-  @return on failures returns non zero value and emits error message
Matej Habrnal b52e1a
+  @return returns non-zero value on failures and prints error message
Matej Habrnal b52e1a
 */
Matej Habrnal b52e1a
 int fill_problem_data_over_dbus(const char *problem_dir_path, const char **elements, problem_data_t *problem_data);
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
 /**
Matej Habrnal b52e1a
   @brief Fetches problem information for specified problem id
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
-  @return problem_data_t or NULL on failure
Matej Habrnal b52e1a
+  @return a valid pointer to problem_data_t or ERR_PTR on failure
Matej Habrnal b52e1a
 */
Matej Habrnal b52e1a
 problem_data_t *get_problem_data_dbus(const char *problem_dir_path);
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
 /**
Matej Habrnal b52e1a
   @brief Fetches full problem data for specified problem id
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
-  @return problem_data_t or ERR_PTR on failure
Matej Habrnal b52e1a
+  @return a valid pointer to problem_data_t or ERR_PTR on failure
Matej Habrnal b52e1a
 */
Matej Habrnal b52e1a
 problem_data_t *get_full_problem_data_over_dbus(const char *problem_dir_path);
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
@@ -228,7 +229,8 @@ problem_data_t *get_full_problem_data_over_dbus(const char *problem_dir_path);
Matej Habrnal b52e1a
   @brief Fetches all problems from problem database
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
   @param authorize If set to true will try to fetch even problems owned by other users (will require root authorization over policy kit)
Matej Habrnal b52e1a
-  @return List of problem ids or NULL on failure
Matej Habrnal b52e1a
+
Matej Habrnal b52e1a
+  @return List of problem ids or ERR_PTR on failure (NULL is an empty list)
Matej Habrnal b52e1a
 */
Matej Habrnal b52e1a
 GList *get_problems_over_dbus(bool authorize);
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
diff --git a/src/lib/problem_api_dbus.c b/src/lib/problem_api_dbus.c
Matej Habrnal b52e1a
index ce5c47b..0bf86e2 100644
Matej Habrnal b52e1a
--- a/src/lib/problem_api_dbus.c
Matej Habrnal b52e1a
+++ b/src/lib/problem_api_dbus.c
Matej Habrnal b52e1a
@@ -165,7 +165,7 @@ problem_data_t *get_problem_data_dbus(const char *problem_dir_path)
Matej Habrnal b52e1a
     {
Matej Habrnal b52e1a
         error_msg(_("Can't get problem data from abrt-dbus"));
Matej Habrnal b52e1a
         problem_data_free(pd);
Matej Habrnal b52e1a
-        return NULL;
Matej Habrnal b52e1a
+        return ERR_PTR;
Matej Habrnal b52e1a
     }
Matej Habrnal b52e1a
 
Matej Habrnal b52e1a
     return pd;
Matej Habrnal b52e1a
-- 
Matej Habrnal b52e1a
2.4.3
Matej Habrnal b52e1a