Thank you very much for the review!

On Tuesday, February 19, 2013 12:45:24 PM Martin Milata wrote:
> Looks alright to me. Except that debugging is spelled with 2 Gs ;)
> 
> On Tue, Feb 12, 2013 at 15:21:28 +0100, Jakub Filak wrote:
> > - closes #606
> > 
> > Signed-off-by: Jakub Filak <[email protected]>
> > ---
> > 
> >  src/dbus/abrt-dbus.c | 29 ++++++++++++++++++++++++++---
> >  1 file changed, 26 insertions(+), 3 deletions(-)
> > 
> > diff --git a/src/dbus/abrt-dbus.c b/src/dbus/abrt-dbus.c
> > index 754ef97..9ec4cdc 100644
> > --- a/src/dbus/abrt-dbus.c
> > +++ b/src/dbus/abrt-dbus.c
> > @@ -390,6 +390,7 @@ static struct dump_dir
> > *open_directory_for_modification_of_element(> 
> >      {
> >      
> >          if (strcmp(*protected, element) == 0)
> >          {
> > 
> > +            VERB1 log("'%s' element of '%s' can't be modified", element,
> > problem_id);> 
> >              char *error = xasprintf(_("'%s' element can't be modified"),
> >              element);
> >              g_dbus_method_invocation_return_dbus_error(invocation,
> >              
> >                                          "org.freedesktop.problems.Protect
> >                                          edElement",
> > 
> > @@ -402,11 +403,17 @@ static struct dump_dir
> > *open_directory_for_modification_of_element(> 
> >      if (!dump_dir_accessible_by_uid(problem_id, caller_uid))
> >      {
> >      
> >          if (errno == ENOTDIR)
> > 
> > +        {
> > +            VERB1 log("'%s' is not a valid problem directory",
> > problem_id);> 
> >              return_InvalidProblemDir_error(invocation, problem_id);
> > 
> > +        }
> > 
> >          else
> > 
> > +        {
> > +            VERB1 log("UID(%d) is not Authorized to access '%s'",
> > caller_uid, problem_id);> 
> >              g_dbus_method_invocation_return_dbus_error(invocation,
> >              
> >                                  "org.freedesktop.problems.AuthFailure",
> >                                  _("Not Authorized"));
> > 
> > +        }
> > 
> >          return NULL;
> >      
> >      }
> > 
> > @@ -414,6 +421,7 @@ static struct dump_dir
> > *open_directory_for_modification_of_element(> 
> >      struct dump_dir *dd = dd_opendir(problem_id, /* flags : */ 0);
> >      if (!dd)
> >      {   /* This should not happen because of the access check above */
> > 
> > +        VERB1 log("Can't access the problem '%s' for modification",
> > problem_id);> 
> >          g_dbus_method_invocation_return_dbus_error(invocation,
> >          
> >                                  "org.freedesktop.problems.Failure",
> >                                  _("Can't access the problem for
> >                                  modification"));
> > 
> > @@ -636,6 +644,7 @@ static void handle_method_call(GDBusConnection
> > *connection,> 
> >          if (element == NULL || element[0] == '\0' || strlen(element) >
> >          64)
> >          {
> > 
> > +            VERB1 log("'%s' is not a valid element name of '%s'",
> > element, problem_id);> 
> >              char *error = xasprintf(_("'%s' is not a valid element
> >              name"), element);
> >              g_dbus_method_invocation_return_dbus_error(invocation,
> >              
> >                                                "org.freedesktop.problems.I
> >                                                nvalidElement",
> > 
> > @@ -648,16 +657,28 @@ static void handle_method_call(GDBusConnection
> > *connection,> 
> >          struct dump_dir *dd = open_directory_for_modification_of_element(
> >          
> >                                      invocation, caller_uid, problem_id,
> >                                      element);
> >          
> >          if (!dd)
> > 
> > +            /* Already logged from
> > open_directory_for_modification_of_element() */> 
> >              return;
> >          
> >          /* Is it good idea to make it static? Is it possible to change
> >          the max size while a single run? */> 
> > -        const double max_size = g_settings_nMaxCrashReportsSize * (1024 *
> > 1024); +        const double max_dir_size =
> > g_settings_nMaxCrashReportsSize * (1024 * 1024); +        const long
> > item_size = dd_get_item_size(dd, element);
> > +        if (item_size < 0)
> > +        {
> > +            VERB1 log("Can't get size of '%s/%s'", problem_id, element);
> > +            char *error = xasprintf(_("Can't get size of '%s'"),
> > element);
> > +            g_dbus_method_invocation_return_dbus_error(invocation,
> > +                                                     
> > "org.freedesktop.problems.Failure", +                                    
> >                  error);
> > +            return;
> > +        }
> > 
> > -        const double requested_size = strlen(value) -
> > dd_get_item_size(dd, element); +        const double requested_size =
> > strlen(value) - item_size;
> > 
> >          /* Don't want to check the size limit in case of reducing of size
> >          */
> >          if (requested_size > 0
> > 
> > -            && requested_size > (max_size -
> > get_dirsize(g_settings_dump_location))) +            && requested_size >
> > (max_dir_size - get_dirsize(g_settings_dump_location)))> 
> >          {
> > 
> > +            VERB1 log("No problem space left in '%s' (requested Bytes
> > %f)", problem_id, requested_size);> 
> >              g_dbus_method_invocation_return_dbus_error(invocation,
> >              
> >                                                        "org.freedesktop.pr
> >                                                        oblems.Failure",
> >                                                        _("No problem space
> >                                                        left"));
> > 
> > @@ -683,6 +704,7 @@ static void handle_method_call(GDBusConnection
> > *connection,> 
> >          struct dump_dir *dd = open_directory_for_modification_of_element(
> >          
> >                                      invocation, caller_uid, problem_id,
> >                                      element);
> >          
> >          if (!dd)
> > 
> > +            /* Already logged from
> > open_directory_for_modification_of_element() */> 
> >              return;
> >          
> >          const int res = dd_delete_item(dd, element);
> > 
> > @@ -690,6 +712,7 @@ static void handle_method_call(GDBusConnection
> > *connection,> 
> >          if (res != 0)
> >          {
> > 
> > +            VERB1 log("Can't delete the element '%s' from the problem
> > directory '%s'", element, problem_id);> 
> >              char *error = xasprintf(_("Can't delete the element '%s' from
> >              the problem directory '%s'"), element, problem_id);
> >              g_dbus_method_invocation_return_dbus_error(invocation,
> >              
> >                                            "org.freedesktop.problems.Failu
> >                                            re",

Reply via email to