Ejemplo n.º 1
0
int main()
#endif
{
	/* Startup the network stack. */
	if(tnet_startup()){
		return -1;
	}

#if RUN_TEST_LOOP
	for(;;)
#endif
	{
	
#if RUN_TEST_ALL  || RUN_TEST_SOCKETS
		test_sockets();
#endif

#if RUN_TEST_ALL  || RUN_TEST_TRANSPORT
		test_transport();
#endif

#if RUN_TEST_ALL || RUN_TEST_AUTH
		test_auth();
#endif

#if RUN_TEST_ALL || RUN_TEST_STUN
		test_stun();
#endif

#if RUN_TEST_ALL || RUN_TEST_ICE
		test_ice();
#endif

#if RUN_TEST_ALL || RUN_TEST_NAT
		test_nat();
#endif

#if RUN_TEST_ALL || RUN_TEST_IFACES
		test_ifaces();
#endif

#if RUN_TEST_ALL || RUN_TEST_DNS
		test_dns();
#endif

#if RUN_TEST_ALL || RUN_TEST_DHCP
		test_dhcp();
#endif

#if RUN_TEST_ALL || RUN_TEST_DHCP6
		test_dhcp6();
#endif

#if RUN_TEST_ALL || RUN_TEST_TLS
		test_tls();
#endif

	}

	/* Cleanup the network stack */
	tnet_cleanup();

	return 0;
}
Ejemplo n.º 2
0
/**
 * Run the next phase of the auto test.
 */
static void
next_phase (struct GNUNET_NAT_AutoHandle *ah)
{
  struct GNUNET_CONFIGURATION_Handle *diff;

  ah->phase++;
  switch (ah->phase)
  {
  case AUTO_INIT:
    GNUNET_assert (0);
    break;
  case AUTO_EXTERNAL_IP:
    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Will run AUTO_EXTERNAL_IP\n");
    test_external_ip (ah);
    break;
  case AUTO_STUN:
    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Will run AUTO_STUN\n");
    test_stun (ah);
    break;
  case AUTO_LOCAL_IP:
    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Will run AUTO_LOCAL_IP\n");
    test_local_ip (ah);
    break;
  case AUTO_NAT_PUNCHED:
    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Will run AUTO_NAT_PUNCHED\n");
    test_nat_punched (ah);
    break;
  case AUTO_UPNPC:
    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Will run AUTO_UPNPC\n");
    test_upnpc (ah);
    break;
  case AUTO_ICMP_SERVER:
    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Will run AUTO_ICMP_SERVER\n");
    test_icmp_server (ah);
    break;
  case AUTO_ICMP_CLIENT:
    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Will run AUTO_ICMP_CLIENT\n");
    test_icmp_client (ah);
    break;
  case AUTO_DONE:
    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Done with tests\n");
    if (!ah->internal_ip_is_public)
    {
      GNUNET_CONFIGURATION_set_value_string (ah->cfg, "nat", "BEHIND_NAT", "YES");

      if (ah->connected_back)
      {
        GNUNET_CONFIGURATION_set_value_string (ah->cfg, "nat", "PUNCHED_NAT", "YES");
      }
      else
      {
        GNUNET_CONFIGURATION_set_value_string (ah->cfg, "nat", "PUNCHED_NAT", "NO");
      }

      if (ah->stun_ip)
      {
        GNUNET_CONFIGURATION_set_value_string (ah->cfg, "nat", "EXTERNAL_ADDRESS",
                                               ah->stun_ip);
        if (ah->connected_back)
        {
          ah->type = GNUNET_NAT_TYPE_STUN_PUNCHED_NAT;
          GNUNET_CONFIGURATION_set_value_string (ah->cfg, "nat", "USE_STUN", "YES");
        }
        else
        {
          ah->type = GNUNET_NAT_TYPE_UNREACHABLE_NAT;
          GNUNET_CONFIGURATION_set_value_string (ah->cfg, "nat", "USE_STUN", "NO");
        }

      }
      if (ah->stun_port)
      {
        GNUNET_CONFIGURATION_set_value_number (ah->cfg, "transport-udp",
                                               "ADVERTISED_PORT",
                                               ah->stun_port);
      }

    }
    else
    {
      //The internal IP is the same as public, but we didn't got a incoming connection
      if (ah->connected_back)
      {
        ah->type = GNUNET_NAT_TYPE_NO_NAT;
        GNUNET_CONFIGURATION_set_value_string (ah->cfg, "nat", "BEHIND_NAT", "NO");
      }
      else
      {
        GNUNET_CONFIGURATION_set_value_string (ah->cfg, "nat", "BEHIND_NAT", "YES");
        ah->type = GNUNET_NAT_TYPE_UNREACHABLE_NAT;
        if (ah->stun_ip)
        {
          GNUNET_CONFIGURATION_set_value_string (ah->cfg, "nat", "EXTERNAL_ADDRESS",
                                                 ah->stun_ip);
        }
        if (ah->stun_port)
        {
          GNUNET_CONFIGURATION_set_value_number (ah->cfg, "transport-udp",
                                                 "ADVERTISED_PORT",
                                                 ah->stun_port);

        }
      }
    }

    diff = GNUNET_CONFIGURATION_get_diff (ah->initial_cfg,
                                          ah->cfg);


    ah->fin_cb (ah->fin_cb_cls,
                diff,
                ah->ret,
                ah->type);
    GNUNET_CONFIGURATION_destroy (diff);
    GNUNET_NAT_autoconfig_cancel (ah);
    return;

  }



}