X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ftransport%2Ftest_plugin_transport_https.c;h=809bc9cb8f76d234aa86d9f7f2e927e4dcca02b9;hb=efa03f35a02e6245adfcc6f59e6287a78204a447;hp=32862913bc8d474e097d11ab8bd48b37fa88d23b;hpb=8f1d5a8a9a094b98d1f8a45ae8b9c83bafcf3248;p=oweals%2Fgnunet.git diff --git a/src/transport/test_plugin_transport_https.c b/src/transport/test_plugin_transport_https.c index 32862913b..809bc9cb8 100644 --- a/src/transport/test_plugin_transport_https.c +++ b/src/transport/test_plugin_transport_https.c @@ -37,14 +37,12 @@ #include "gnunet_service_lib.h" #include "gnunet_crypto_lib.h" -#include "plugin_transport.h" +#include "gnunet_transport_plugin.h" #include "gnunet_statistics_service.h" #include "transport.h" #include -#include -#include -#define VERBOSE GNUNET_YES +#define VERBOSE GNUNET_NO #define DEBUG_CURL GNUNET_NO #define HTTP_BUFFER_SIZE 2048 @@ -164,6 +162,10 @@ struct HTTP_Transfer */ struct IPv4HttpAddress { + struct IPv4HttpAddress * next; + + struct IPv4HttpAddress * prev; + /** * IPv4 address, in network byte order. */ @@ -182,6 +184,10 @@ struct IPv4HttpAddress */ struct IPv6HttpAddress { + struct IPv6HttpAddress * next; + + struct IPv6HttpAddress * prev; + /** * IPv6 address. */ @@ -224,11 +230,6 @@ static long long unsigned int port; */ static char * test_addr; -/** - * Our scheduler. - */ -struct GNUNET_SCHEDULER_Handle *sched; - /** * Our statistics handle. */ @@ -388,13 +389,14 @@ static GNUNET_SCHEDULER_TaskIdentifier http_task_send; static char * key_file; static char * cert_file; +static char * servicehome; + /** * Shutdown testcase */ static void shutdown_clean () { - struct Plugin_Address * cur; struct Plugin_Address * tmp; /* Evaluate results */ @@ -434,7 +436,6 @@ shutdown_clean () /* cleaning addresses */ while (addr_head != NULL) { - cur = addr_head; tmp = addr_head->next; GNUNET_free (addr_head->addr); GNUNET_free (addr_head); @@ -443,28 +444,28 @@ shutdown_clean () if (ti_send != GNUNET_SCHEDULER_NO_TASK) { - GNUNET_SCHEDULER_cancel(sched,ti_send); + GNUNET_SCHEDULER_cancel(ti_send); ti_send = GNUNET_SCHEDULER_NO_TASK; } if (http_task_send != GNUNET_SCHEDULER_NO_TASK) { - GNUNET_SCHEDULER_cancel(sched,http_task_send); + GNUNET_SCHEDULER_cancel(http_task_send); http_task_send = GNUNET_SCHEDULER_NO_TASK; } if (ti_timeout != GNUNET_SCHEDULER_NO_TASK) { - GNUNET_SCHEDULER_cancel(sched,ti_timeout); + GNUNET_SCHEDULER_cancel(ti_timeout); ti_timeout = GNUNET_SCHEDULER_NO_TASK; } GNUNET_free(test_addr); - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Unloading http plugin\n"); - GNUNET_assert (NULL == GNUNET_PLUGIN_unload ("libgnunet_plugin_transport_http", api)); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Unloading https plugin\n"); + GNUNET_assert (NULL == GNUNET_PLUGIN_unload ("libgnunet_gnunet_transport_plugin.https", api)); - GNUNET_SCHEDULER_shutdown(sched); - GNUNET_DISK_directory_remove ("/tmp/test_plugin_transport_http"); + GNUNET_SCHEDULER_shutdown(); + GNUNET_DISK_directory_remove ("/tmp/test_gnunet_transport_plugin.http"); struct stat sbuf; if (0 == stat (cert_file, &sbuf )) @@ -487,6 +488,13 @@ shutdown_clean () GNUNET_free (cert_file); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Exiting testcase\n"); + + if (servicehome != NULL) + { + GNUNET_DISK_directory_remove (servicehome); + GNUNET_free (servicehome); + } + exit(fail); return; } @@ -503,9 +511,6 @@ static void task_send_cont (void *cls, const struct GNUNET_PeerIdentity * target, int result) { - struct Plugin_Address * tmp_addr; - tmp_addr = addr_head; - if ((cls == &fail_msg_transmited_bigger_max_size) && (result == GNUNET_SYSERR)) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Message bigger max msg size was not sent!\n"); @@ -527,13 +532,13 @@ static void run_connection_tests( int phase , void * cls); * Recieves messages from plugin, in real world transport */ static struct GNUNET_TIME_Relative -receive (void *cls, - const struct GNUNET_PeerIdentity * peer, - const struct GNUNET_MessageHeader * message, - uint32_t distance, - struct Session *session, - const char *sender_address, - uint16_t sender_address_len) +receive (void *cls, const struct GNUNET_PeerIdentity *peer, + const struct GNUNET_MessageHeader *message, + const struct GNUNET_TRANSPORT_ATS_Information *ats, + uint32_t ats_count, + struct Session *session, + const char *sender_address, + uint16_t sender_address_len) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Testcase recieved new message from peer `%s' with type %u and length %u, session %X\n", GNUNET_i2s(peer), ntohs(message->type), ntohs(message->size),session); @@ -798,8 +803,7 @@ static size_t send_prepare( struct HTTP_Transfer * result) gws = GNUNET_NETWORK_fdset_create (); GNUNET_NETWORK_fdset_copy_native (grs, &rs, max + 1); GNUNET_NETWORK_fdset_copy_native (gws, &ws, max + 1); - http_task_send = GNUNET_SCHEDULER_add_select (sched, - GNUNET_SCHEDULER_PRIORITY_DEFAULT, + http_task_send = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT, GNUNET_SCHEDULER_NO_TASK, GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 0), grs, @@ -884,7 +888,7 @@ notify_address (void *cls, addrlen); return; } - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, _("Transport plugin notification for address: `%s':%u\n"), address, port); @@ -927,7 +931,6 @@ static void setup_plugin_environment () { env.cfg = cfg; - env.sched = sched; env.stats = stats; env.my_identity = &my_identity; env.cls = &env; @@ -1143,17 +1146,14 @@ static void run_connection_tests( int phase , void * cls) * Runs the test. * * @param cls closure - * @param s scheduler to use * @param c configuration to use */ static void run (void *cls, - struct GNUNET_SCHEDULER_Handle *s, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *c) { char * libname; - sched = s; cfg = c; char *keyfile; unsigned long long tneigh; @@ -1176,6 +1176,10 @@ run (void *cls, addr_head = NULL; count_str_addr = 0; /* parse configuration */ + if (GNUNET_CONFIGURATION_have_value (c,"PATHS", "SERVICEHOME")) + GNUNET_CONFIGURATION_get_value_string (c, "PATHS", "SERVICEHOME", &servicehome); + + if ((GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (c, "TRANSPORT", @@ -1189,7 +1193,7 @@ run (void *cls, GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _ ("Transport service is lacking key configuration settings. Exiting.\n")); - GNUNET_SCHEDULER_shutdown (s); + GNUNET_SCHEDULER_shutdown (); fail = 1; return; } @@ -1217,10 +1221,8 @@ run (void *cls, "KEY_FILE", &key_file); } - else - { + if (key_file == NULL) GNUNET_asprintf(&key_file,"https.key"); - } if (0 == stat (key_file, &sbuf )) { @@ -1239,10 +1241,8 @@ run (void *cls, "CERT_FILE", &cert_file); } - else - { + if (cert_file == NULL) GNUNET_asprintf(&cert_file,"https.cert"); - } if (0 == stat (cert_file, &sbuf )) { @@ -1259,7 +1259,7 @@ run (void *cls, { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Transport service could not access hostkey. Exiting.\n")); - GNUNET_SCHEDULER_shutdown (s); + GNUNET_SCHEDULER_shutdown (); fail = 1; return; } @@ -1269,8 +1269,6 @@ run (void *cls, /* assertions before start */ GNUNET_assert ((port > 0) && (port <= 65535)); - GNUNET_assert(&my_public_key != NULL); - GNUNET_assert(&my_identity.hashPubKey != NULL); /* load plugins... */ setup_plugin_environment (); @@ -1286,7 +1284,7 @@ run (void *cls, return; } - ti_timeout = GNUNET_SCHEDULER_add_delayed (sched, TEST_TIMEOUT, &task_timeout, NULL); + ti_timeout = GNUNET_SCHEDULER_add_delayed (TEST_TIMEOUT, &task_timeout, NULL); /* testing plugin functionality */ GNUNET_assert (0!=fail_notify_address_count); @@ -1313,12 +1311,7 @@ run (void *cls, fail_pretty_printer=GNUNET_NO; fail_addr_to_str=GNUNET_NO; - /* Suggesting addresses with wrong port*/ struct IPv4HttpAddress failing_addr; - failing_addr.ipv4_addr = htonl(INADDR_LOOPBACK); - failing_addr.u_port = htons(0); - suggest_res = api->check_address (api->cls,&failing_addr,sizeof (struct IPv4HttpAddress)); - GNUNET_assert (GNUNET_SYSERR == suggest_res); /* Suggesting addresses with wrong size*/ failing_addr.ipv4_addr = htonl(INADDR_LOOPBACK); @@ -1389,7 +1382,7 @@ main (int argc, char *const *argv) }; int ret; char *const argv_prog[] = { - "test_plugin_transport_https", + "test_gnunet_transport_plugin.https", "-c", "test_plugin_transport_data_http.conf", "-L", @@ -1400,7 +1393,7 @@ main (int argc, char *const *argv) #endif NULL }; - GNUNET_log_setup ("test_plugin_transport_https", + GNUNET_log_setup ("test_gnunet_transport_plugin.https", #if VERBOSE "DEBUG", #else @@ -1408,15 +1401,30 @@ main (int argc, char *const *argv) #endif NULL); + struct GNUNET_CONFIGURATION_Handle *cfg; + cfg = GNUNET_CONFIGURATION_create (); + + GNUNET_assert (GNUNET_OK == GNUNET_CONFIGURATION_load (cfg, "test_plugin_transport_data_http.conf")); + if (GNUNET_CONFIGURATION_have_value (cfg,"PATHS", "SERVICEHOME")) + GNUNET_CONFIGURATION_get_value_string (cfg, "PATHS", "SERVICEHOME", &servicehome); + GNUNET_DISK_directory_remove (servicehome); + GNUNET_CONFIGURATION_destroy (cfg); + ret = (GNUNET_OK == GNUNET_PROGRAM_run (5, argv_prog, - "test_plugin_transport_https", + "test_gnunet_transport_plugin.https", "testcase", options, &run, NULL)) ? GNUNET_NO : GNUNET_YES; - - GNUNET_DISK_directory_remove ("/tmp/test_plugin_transport_https"); - + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("\ndelete\n\n")); + if (servicehome != NULL) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("\ndelete\n\n")); + GNUNET_DISK_directory_remove (servicehome); + GNUNET_free (servicehome); + } + if (GNUNET_OK != ret) + return 1; return fail; } -/* end of test_plugin_transport_http.c */ +/* end of test_plugin_transport_https.c */