[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r21586 - gnunet/src/testing
From: |
gnunet |
Subject: |
[GNUnet-SVN] r21586 - gnunet/src/testing |
Date: |
Sat, 26 May 2012 17:14:54 +0200 |
Author: harsha
Date: 2012-05-26 17:14:54 +0200 (Sat, 26 May 2012)
New Revision: 21586
Modified:
gnunet/src/testing/test_testing_new_portreservation.c
gnunet/src/testing/testing_new.c
Log:
port reservation - release
Modified: gnunet/src/testing/test_testing_new_portreservation.c
===================================================================
--- gnunet/src/testing/test_testing_new_portreservation.c 2012-05-26
14:04:59 UTC (rev 21585)
+++ gnunet/src/testing/test_testing_new_portreservation.c 2012-05-26
15:14:54 UTC (rev 21586)
@@ -39,8 +39,10 @@
run (void *cls, char *const *args, const char *cfgfile,
const struct GNUNET_CONFIGURATION_Handle *cfg)
{
- uint16_t new_port1, new_port2;
struct GNUNET_TESTING_System *system;
+ uint16_t new_port1;
+ uint16_t new_port2;
+ uint16_t old_port1;
system = GNUNET_TESTING_system_create ("/tmp/gnunet-testing-new",
"localhost");
@@ -54,6 +56,17 @@
"Reserved TCP port %u\n", new_port2);
GNUNET_assert (0 != new_port2);
GNUNET_assert (new_port1 != new_port2);
+ release_port (system, GNUNET_YES, new_port1);
+ old_port1 = new_port1;
+ new_port1 = 0;
+ new_port1 = reserve_port (system, GNUNET_YES);
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
+ "Reserved TCP port %u\n", new_port1);
+ GNUNET_assert (0 != new_port1);
+ GNUNET_assert (old_port1 == new_port1);
+ release_port (system, GNUNET_YES, new_port1);
+ release_port (system, GNUNET_YES, new_port2);
+ release_port (system, GNUNET_YES, new_port2 + 1); /* OK to get error :) */
GNUNET_TESTING_system_destroy (system, GNUNET_NO);
}
Modified: gnunet/src/testing/testing_new.c
===================================================================
--- gnunet/src/testing/testing_new.c 2012-05-26 14:04:59 UTC (rev 21585)
+++ gnunet/src/testing/testing_new.c 2012-05-26 15:14:54 UTC (rev 21586)
@@ -34,6 +34,8 @@
#include "gnunet_network_lib.h"
#include "gnunet_testing_lib-new.h"
+#define LOG(kind,...) \
+ GNUNET_log_from (kind, "testing-new-api", __VA_ARGS__)
/**
* Handle for a system on which GNUnet peers are executed;
@@ -137,17 +139,6 @@
/**
- * The lowest port bucket for ports available for GNUnet testing
- */
-#define LOW_PORT_BUCKET (LOW_PORT / 32)
-
-/**
- * The highest port bucket for ports available for GNUNET_testing
- */
-#define HIGH_PORT_BUCKET (HIGH_PORT / 32)
-
-
-/**
* Create a system handle. There must only be one system
* handle per operating system.
*
@@ -226,7 +217,7 @@
hint.ai_flags = AI_PASSIVE | AI_NUMERICSERV; /* Wild card address */
port_buckets = (GNUNET_YES == is_tcp) ?
system->reserved_tcp_ports : system->reserved_udp_ports;
- for (index = LOW_PORT_BUCKET + 1; index < HIGH_PORT_BUCKET; index++)
+ for (index = (LOW_PORT / 32) + 1; index < (HIGH_PORT / 32); index++)
{
xor_image = (UINT32_MAX ^ port_buckets[index]);
if (0 == xor_image) /* Ports in the bucket are full */
@@ -279,7 +270,22 @@
int is_tcp,
uint16_t port)
{
- GNUNET_break (0);
+ uint32_t *port_buckets;
+ uint16_t bucket;
+ uint16_t pos;
+
+ GNUNET_assert (NULL != system);
+ port_buckets = (GNUNET_YES == is_tcp) ?
+ system->reserved_tcp_ports : system->reserved_udp_ports;
+ bucket = port / 32;
+ pos = port % 32;
+ LOG (GNUNET_ERROR_TYPE_DEBUG, "Releasing port %u\n", port);
+ if (0 == (port_buckets[bucket] & (1U << pos)))
+ {
+ GNUNET_break(0); /* Port was not reserved by us using reserve_port() */
+ return;
+ }
+ port_buckets[bucket] &= ~(1U << pos);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r21586 - gnunet/src/testing,
gnunet <=