HTTPEngineSender::~HTTPEngineSender() { soup_session_abort(_session); }
static void ews_autodiscover_cancelled_cb (GCancellable *cancellable, AutodiscoverData *data) { soup_session_abort (data->session); }
static void http_client_check_cancelled_cb (GCancellable *cancellable, gpointer user_data) { CheckData *data = user_data; soup_session_abort (data->session); }
gboolean upload_results(AppData *app_data) { GError *error = NULL; SoupURI *result_uri = NULL; guint ret = 0; SoupSession *session; SoupMessage *server_msg; SoupRequest *request; gchar *form_data; GHashTable *data_table = g_hash_table_new (NULL, NULL); result_uri = soup_uri_new (app_data->server); if (result_uri == NULL) { g_set_error (&error, RESTRAINT_ERROR, RESTRAINT_PARSE_ERROR_BAD_SYNTAX, "Malformed server url: %s", app_data->server); goto cleanup; } session = soup_session_new_with_options("timeout", 3600, NULL); g_hash_table_insert (data_table, "path", app_data->test_name); g_hash_table_insert (data_table, "result", app_data->test_result); // if AVC_ERROR=+no_avc_check then disable the selinux check plugin // This is for legacy rhts tests.. please use --disable-plugin gchar *avc_error = getenv("AVC_ERROR"); if (g_strcmp0 (avc_error, "+no_avc_check") == 0) { g_ptr_array_add (app_data->disable_plugin, g_strdup ("10_avc_check")); } if (app_data->disable_plugin->pdata) { g_ptr_array_add (app_data->disable_plugin, NULL); g_hash_table_insert (data_table, "disable_plugin", g_strjoinv (" ", (gchar **)app_data->disable_plugin->pdata)); } if (app_data->no_plugins) g_hash_table_insert (data_table, "no_plugins", &app_data->no_plugins); if (app_data->score) g_hash_table_insert (data_table, "score", app_data->score); if (app_data->result_msg) g_hash_table_insert (data_table, "message", app_data->result_msg); request = (SoupRequest *)soup_session_request_http_uri (session, "POST", result_uri, &error); server_msg = soup_request_http_get_message (SOUP_REQUEST_HTTP (request)); g_object_unref(request); form_data = soup_form_encode_hash (data_table); soup_message_set_request (server_msg, "application/x-www-form-urlencoded", SOUP_MEMORY_TAKE, form_data, strlen (form_data)); g_print ("** %s %s Score:%s\n", app_data->test_name, app_data->test_result, app_data->score != NULL ? app_data->score : "N/A"); ret = soup_session_send_message (session, server_msg); if (SOUP_STATUS_IS_SUCCESSFUL (ret)) { gchar *location = g_strdup_printf ("%s/logs/", soup_message_headers_get_one (server_msg->response_headers, "Location")); soup_uri_free (result_uri); result_uri = soup_uri_new (location); g_free (location); if (app_data->outputfile != NULL && g_file_test (app_data->outputfile, G_FILE_TEST_EXISTS)) { g_print ("Uploading %s ", app_data->filename); if (upload_file (session, app_data->outputfile, app_data->filename, result_uri, &error)) { g_print ("done\n"); } else { g_print ("failed\n"); } } } else { g_warning ("Failed to submit result, status: %d Message: %s\n", ret, server_msg->reason_phrase); } g_object_unref(server_msg); soup_session_abort(session); g_object_unref(session); cleanup: g_hash_table_destroy(data_table); if (result_uri != NULL) { soup_uri_free (result_uri); } if (error) { g_printerr("%s [%s, %d]\n", error->message, g_quark_to_string(error->domain), error->code); g_clear_error(&error); return FALSE; } else { return TRUE; } }