int main (int argc, char *argv[]) { ClientPool *pool; struct event *timeout; struct timeval tv; GList *l_files = NULL; CBData *cb; gchar *in_dir; log_level = LOG_debug; event_set_mem_functions (g_malloc, g_realloc, g_free); in_dir = g_dir_make_tmp (NULL, NULL); g_assert (in_dir); l_files = populate_file_list (100, l_files, in_dir); g_assert (l_files); app = app_create (); app->h_clients_freq = g_hash_table_new (g_direct_hash, g_direct_equal); app->l_files = l_files; // start server start_srv (app->evbase, in_dir); /* pool = client_pool_create (app, 12, http_client_create, http_client_destroy, http_client_set_on_released_cb, http_client_check_rediness ); */ cb = g_new (CBData, 1); cb->pool = pool; cb->l_files = l_files; timeout = evtimer_new (app->evbase, on_output_timer, cb); evutil_timerclear(&tv); tv.tv_sec = 0; tv.tv_usec = 500; event_add (timeout, &tv); event_base_dispatch (app->evbase); g_hash_table_foreach (app->h_clients_freq, (GHFunc)print_foreach, NULL); return 0; }
static void run_responce_test (struct event_base *evbase, struct evdns_base *dns_base, TestID test_id) { OutData *out; struct evbuffer *in_buf; HttpClient *http; LOG_debug (HTTP_TEST, "===================== TEST ID : %d =======================", test_id); out = g_new0 (OutData, 1); out->evbase = evbase; out->test_id = test_id; out->header_sent = FALSE; start_srv (out); //http = http_client_create (app); in_buf = evbuffer_new (); http = http_client_create (app); http_client_set_cb_ctx (http, in_buf); http_client_set_on_chunk_cb (http, on_input_data_cb); http_client_set_output_length (http, 1); http_client_start_request_to_storage_url (http, Method_get, "/index.html", NULL, NULL); event_base_dispatch (evbase); http_client_destroy (http); LOG_debug (HTTP_TEST, "Resulting buff: %zd", evbuffer_get_length (in_buf)); evbuffer_free (in_buf); g_free (out->first_line); g_free (out->header_line); evconnlistener_free (out->listener); evtimer_del (out->timeout); event_free (out->timeout); evbuffer_free (out->out_buf); evbuffer_free (out->in_file); g_free (out); LOG_debug (HTTP_TEST, "===================== END TEST ID : %d =======================", test_id); }
int main (int argc, char *argv[]) { gchar *in_dir; GList *tmp; struct evhttp_uri *uri; struct timeval tv; log_level = LOG_debug; event_set_mem_functions (g_malloc, g_realloc, g_free); // init SSL libraries CRYPTO_set_mem_functions (g_malloc0, g_realloc, g_free); ENGINE_load_builtin_engines (); ENGINE_register_all_complete (); ERR_load_crypto_strings (); OpenSSL_add_all_algorithms (); SSL_load_error_strings (); SSL_library_init (); if (!RAND_poll ()) { fprintf(stderr, "RAND_poll() failed.\n"); return 1; } g_random_set_seed (time (NULL)); in_dir = g_dir_make_tmp (NULL, NULL); g_assert (in_dir); app = g_new0 (Application, 1); app->files_count = 10; app->evbase = event_base_new (); app->dns_base = evdns_base_new (app->evbase, 1); app->conf = conf_create (); conf_add_boolean (app->conf, "log.use_syslog", TRUE); conf_add_uint (app->conf, "auth.ttl", 85800); conf_add_int (app->conf, "pool.writers", 2); conf_add_int (app->conf, "pool.readers", 2); conf_add_int (app->conf, "pool.operations", 4); conf_add_uint (app->conf, "pool.max_requests_per_pool", 100); conf_add_int (app->conf, "connection.timeout", 20); conf_add_int (app->conf, "connection.retries", -1); conf_add_uint (app->conf, "filesystem.dir_cache_max_time", 5); conf_add_boolean (app->conf, "filesystem.cache_enabled", TRUE); conf_add_string (app->conf, "filesystem.cache_dir", "/tmp/hydrafs"); conf_add_string (app->conf, "filesystem.cache_dir_max_size", "1Gb"); conf_add_boolean (app->conf, "statistics.enabled", TRUE); conf_add_int (app->conf, "statistics.port", 8011); conf_add_string (app->conf, "auth.user", "test:tester"); conf_add_string (app->conf, "auth.key", "testing"); uri = evhttp_uri_parse ("https://10.0.0.104:8080/auth/v1.0"); app->ssl_ctx = SSL_CTX_new (TLSv1_client_method ()); app->stats = hfs_stats_srv_create (app); app->auth_client = auth_client_create (app, uri); app->http = http_client_create (app); // start server start_srv (app->evbase, in_dir); app->timeout = evtimer_new (app->evbase, on_output_timer, NULL); evutil_timerclear(&tv); tv.tv_sec = 0; tv.tv_usec = 500; event_add (app->timeout, &tv); event_base_dispatch (app->evbase); evhttp_uri_free (uri); event_del (app->timeout); event_free (app->timeout); evhttp_free (app->http_srv); auth_client_destroy (app->auth_client); evdns_base_free (app->dns_base, 0); event_base_free (app->evbase); conf_destroy (app->conf); g_free (app); return 0; }