On 08/20/2012 08:55 PM, Jakub Filak wrote:
Signed-off-by: Jakub Filak <[email protected]>
---
  src/plugins/ureport.c | 45 ++++++++++++++++++++-------------------------
  1 file changed, 20 insertions(+), 25 deletions(-)

diff --git a/src/plugins/ureport.c b/src/plugins/ureport.c
index 62d993d..a9c649c 100644
--- a/src/plugins/ureport.c
+++ b/src/plugins/ureport.c
@@ -22,8 +22,9 @@
  #include "ureport.h"
  #include "libreport_curl.h"

-#define REPORT_URL "https://retrace.fedoraproject.org/faf/reports/new/";
-#define ATTACH_URL "https://retrace.fedoraproject.org/faf/reports/attach/";
+#define SERVER_URL "https://retrace.fedoraproject.org/faf";
+#define REPORT_URL_SFX "/reports/new/"
+#define ATTACH_URL_SFX "/reports/attach/"

  /*
   * Loads uReport configuration from various sources.
@@ -121,7 +122,7 @@ int main(int argc, char **argv)
      abrt_init(argv);

      struct ureport_server_config config = {
-        .ur_url = NULL,
+        .ur_url = SERVER_URL,
          .ur_ssl_verify = true,
      };

@@ -133,7 +134,7 @@ int main(int argc, char **argv)
      struct options program_options[] = {
          OPT__VERBOSE(&g_verbose),
          OPT__DUMP_DIR(&dump_dir_path),
-        OPT_STRING('u', "url", &config.ur_url, "URL", _("Specify url")),
+        OPT_STRING('u', "url", &config.ur_url, "URL", _("Specify URL to desired 
server")),

- just _("Specify server URL") would be ok ^^^

          OPT_BOOL('k', "insecure", &insecure,
                            _("Allow insecure connection to ureport server")),
          OPT_STRING('a', "attach", &ureport_hash, "BTHASH",
@@ -160,18 +161,14 @@ int main(int argc, char **argv)
      /* we either need both -b & -a or none of them */
      if (ureport_hash && rhbz_bug > 0)
      {
-        if (!config.ur_url)
-            config.ur_url = ATTACH_URL;
-
+        char *dest_url = xasprintf("%s%s", config.ur_url, ATTACH_URL_SFX);
          post_state = ureport_attach_rhbz(ureport_hash, rhbz_bug, &config);
-        if (!check_response_statuscode(post_state, config.ur_url))
-        {
-            free_post_state(post_state);
-            return 1;
-        }
+        const int result = !check_response_statuscode(post_state, 
config.ur_url);

          free_post_state(post_state);
-        return 0;
+        free(dest_url);
+
+        return result;
      }
      else if (ureport_hash && rhbz_bug <= 0)
          error_msg_and_die(_("You need to specify bug ID to attach."));
@@ -185,9 +182,6 @@ int main(int argc, char **argv)
      /* -r */
      if (attach_reported_to)
      {
-        if (!config.ur_url)
-            config.ur_url = ATTACH_URL;
-
          report_result_t *ureport_result = find_in_reported_to(dd, "uReport");
          report_result_t *bz_result = find_in_reported_to(dd, "Bugzilla");

@@ -217,30 +211,30 @@ int main(int argc, char **argv)
          post_state = ureport_attach_rhbz(bthash, bugid, &config);
          free(bthash);

+        char *dest_url = xasprintf("%s%s", config.ur_url, ATTACH_URL_SFX);
          int ret = !check_response_statuscode(post_state, config.ur_url);
          free_post_state(post_state);
+        free(dest_url);
+
          return ret;
      }

      /* -b, -a nor -r were specified - upload uReport from dump_dir */
-    if (!config.ur_url)
-        config.ur_url = REPORT_URL;
-
      problem_data_t *pd = create_problem_data_from_dump_dir(dd);
      dd_close(dd);
      if (!pd)
          xfunc_die(); /* create_problem_data_for_reporting already emitted 
error msg */

+    char *dest_url = xasprintf("%s%s", config.ur_url, REPORT_URL_SFX);
      post_state = post_ureport(pd, &config);
      problem_data_free(pd);

-    if (!check_response_statuscode(post_state, config.ur_url))
-    {
-        free_post_state(post_state);
-        return 1;
-    }
-
      int ret = 1; /* return 1 by default */
+
+    if (!check_response_statuscode(post_state, dest_url))
+        /* check_response_statuscode() already logged an error message */
+        goto err;
+
      json_object *const json = json_tokener_parse(post_state->body);

      if (is_error(json))
@@ -308,6 +302,7 @@ int main(int argc, char **argv)
  format_err:
      json_object_put(json);
  err:
+    free(dest_url);
      free_post_state(post_state);

      return ret;


- the rest seems ok

Reply via email to