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; }
/** * 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; } }