#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 <curl/curl.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
#define VERBOSE GNUNET_NO
#define DEBUG_CURL GNUNET_NO
*/
struct IPv4HttpAddress
{
+ struct IPv4HttpAddress * next;
+
+ struct IPv4HttpAddress * prev;
+
/**
* IPv4 address, in network byte order.
*/
*/
struct IPv6HttpAddress
{
+ struct IPv6HttpAddress * next;
+
+ struct IPv6HttpAddress * prev;
+
/**
* IPv6 address.
*/
*/
static char * test_addr;
-/**
- * Our scheduler.
- */
-struct GNUNET_SCHEDULER_Handle *sched;
-
/**
* Our statistics handle.
*/
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 */
/* cleaning addresses */
while (addr_head != NULL)
{
- cur = addr_head;
tmp = addr_head->next;
GNUNET_free (addr_head->addr);
GNUNET_free (addr_head);
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 ))
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;
}
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");
* 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);
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,
addrlen);
return;
}
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
_("Transport plugin notification for address: `%s':%u\n"),
address,
port);
setup_plugin_environment ()
{
env.cfg = cfg;
- env.sched = sched;
env.stats = stats;
env.my_identity = &my_identity;
env.cls = &env;
* 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;
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",
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;
}
"KEY_FILE",
&key_file);
}
- else
- {
+ if (key_file == NULL)
GNUNET_asprintf(&key_file,"https.key");
- }
if (0 == stat (key_file, &sbuf ))
{
"CERT_FILE",
&cert_file);
}
- else
- {
+ if (cert_file == NULL)
GNUNET_asprintf(&cert_file,"https.cert");
- }
if (0 == stat (cert_file, &sbuf ))
{
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
_("Transport service could not access hostkey. Exiting.\n"));
- GNUNET_SCHEDULER_shutdown (s);
+ GNUNET_SCHEDULER_shutdown ();
fail = 1;
return;
}
/* 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 ();
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);
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);
};
int ret;
char *const argv_prog[] = {
- "test_plugin_transport_https",
+ "test_gnunet_transport_plugin.https",
"-c",
"test_plugin_transport_data_http.conf",
"-L",
#endif
NULL
};
- GNUNET_log_setup ("test_plugin_transport_https",
+ GNUNET_log_setup ("test_gnunet_transport_plugin.https",
#if VERBOSE
"DEBUG",
#else
#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 */