const char *controller);
+
/**
* Free system resources.
*
struct GNUNET_PeerIdentity *id);
+/**
+ * Reserve a TCP or UDP port for a peer.
+ *
+ * @param system system to use for reservation tracking
+ * @param is_tcp GNUNET_YES for TCP ports, GNUNET_NO for UDP
+ * @return 0 if no free port was available
+ */
+uint16_t
+GNUNET_TESTING_reserve_port (struct GNUNET_TESTING_System *system,
+ int is_tcp);
+
+
+/**
+ * Release reservation of a TCP or UDP port for a peer
+ * (used during GNUNET_TESTING_peer_destroy).
+ *
+ * @param system system to use for reservation tracking
+ * @param is_tcp GNUNET_YES for TCP ports, GNUNET_NO for UDP
+ * @param port reserved port to release
+ */
+void
+GNUNET_TESTING_release_port (struct GNUNET_TESTING_System *system,
+ int is_tcp,
+ uint16_t port);
+
/**
* Create a new configuration using the given configuration
system = GNUNET_TESTING_system_create ("/tmp/gnunet-testing-new",
"localhost");
GNUNET_assert (NULL != system);
- new_port1 = reserve_port (system, GNUNET_YES);
+ new_port1 = GNUNET_TESTING_reserve_port (system, GNUNET_YES);
LOG (GNUNET_ERROR_TYPE_DEBUG,
"Reserved TCP port %u\n", new_port1);
GNUNET_assert (0 != new_port1);
- new_port2 = reserve_port (system, GNUNET_YES);
+ new_port2 = GNUNET_TESTING_reserve_port (system, GNUNET_YES);
LOG (GNUNET_ERROR_TYPE_DEBUG,
"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);
+ GNUNET_TESTING_release_port (system, GNUNET_YES, new_port1);
old_port1 = new_port1;
new_port1 = 0;
- new_port1 = reserve_port (system, GNUNET_YES);
+ new_port1 = GNUNET_TESTING_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_release_port (system, GNUNET_YES, new_port1);
+ GNUNET_TESTING_release_port (system, GNUNET_YES, new_port2);
+ GNUNET_TESTING_release_port (system, GNUNET_YES, new_port2 + 1); /* OK to get error :) */
GNUNET_TESTING_system_destroy (system, GNUNET_NO);
}
* @param is_tcp GNUNET_YES for TCP ports, GNUNET_NO for UDP
* @return 0 if no free port was available
*/
-// static
uint16_t
-reserve_port (struct GNUNET_TESTING_System *system,
- int is_tcp)
+GNUNET_TESTING_reserve_port (struct GNUNET_TESTING_System *system,
+ int is_tcp)
{
struct GNUNET_NETWORK_Handle *socket;
struct addrinfo hint;
* @param is_tcp GNUNET_YES for TCP ports, GNUNET_NO for UDP
* @param port reserved port to release
*/
-// static
void
-release_port (struct GNUNET_TESTING_System *system,
- int is_tcp,
- uint16_t port)
+GNUNET_TESTING_release_port (struct GNUNET_TESTING_System *system,
+ int is_tcp,
+ uint16_t port)
{
uint32_t *port_buckets;
uint16_t bucket;