/** * This function is called AFTER we got an IP address for a * DNS request. Now, the PT daemon has the chance to substitute * the IP address with one from the VPN range to tunnel requests * destined for this IP address via VPN and MESH. * * @param cls closure * @param rh request handle to user for reply * @param request_length number of bytes in request * @param request udp payload of the DNS request */ static void dns_post_request_handler (void *cls, struct GNUNET_DNS_RequestHandle *rh, size_t request_length, const char *request) { struct GNUNET_DNSPARSER_Packet *dns; struct ReplyContext *rc; int work; GNUNET_STATISTICS_update (stats, gettext_noop ("# DNS replies intercepted"), 1, GNUNET_NO); dns = GNUNET_DNSPARSER_parse (request, request_length); if (NULL == dns) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Failed to parse DNS request. Dropping.\n")); GNUNET_DNS_request_drop (rh); return; } work = GNUNET_NO; work |= work_test (dns->answers, dns->num_answers); work |= work_test (dns->authority_records, dns->num_authority_records); work |= work_test (dns->additional_records, dns->num_additional_records); if (! work) { GNUNET_DNS_request_forward (rh); GNUNET_DNSPARSER_free_packet (dns); return; } rc = GNUNET_malloc (sizeof (struct ReplyContext)); rc->rh = rh; rc->dns = dns; rc->offset = 0; rc->group = ANSWERS; submit_request (rc); }
void test_run(void) { initialize(); #if TEST_CASE == LOGIC_TEST logic_test(); #elif TEST_CASE == TIMER_TEST timer_test(); #elif TEST_CASE == COMPONENT_TEST component_test(); #elif TEST_CASE == PROTOCOL_TEST protocol_test(); #elif TEST_CASE == POWER_TEST power_test(); #elif TEST_CASE == IDLE_TEST idle_test(); #elif TEST_CASE == STATE_TEST state_test(); #elif TEST_CASE == WORK_TEST work_test(); #elif TEST_CASE == FILE_TEST file_test(); #elif TEST_CASE == PICTURE_TEST picture_test(); #elif TEST_CASE == CONSUME_POWER consume_power(); #elif TEST_CASE == INIT_FILE init_file(); #elif TEST_CASE == FACTORY_TEST factory_test(); #elif TEST_CASE == MOBILE_STATE_TEST mobile_state_test(); #elif TEST_CASE == MESSAGE_REPLY_TEST message_reply_test(); #elif TEST_CASE == TF_TEST tf_test(); #elif TEST_CASE == SCREEN_TEST screen_test(); #elif TEST_CASE == UPGRADE_TEST upgrade_test(); #elif TEST_CASE == MOBILE_TEST mobile_test(); #endif }
int main(int argc, char *argv[]) { grpc_error_t result; char *config_file, *program_name; int ch; int ret, exit_code; program_name = argv[0]; while ((ch = getopt(argc, argv, "v")) != -1) { switch (ch) { case 'v' : verbose = 1; break; default : fprintf(stderr, "Usage: %s [-v] config\n", program_name); exit(2); } } argc -= optind; argv += optind; if (argc < 1) { fprintf(stderr, "Usage: %s [-v] config\n", program_name); exit(2); } config_file = argv[0]; exit_code = 0; setbuf(stdout, NULL); result = grpc_initialize(config_file); if (result != GRPC_NO_ERROR) { fprintf(stderr, "grpc_initialize() error. (%s)\n", grpc_error_string(result)); exit(2); } printf("char_testing: "); ret = char_test(); printf(ret ? "\tOK\n" : "\tfailed\n"); exit_code = ((ret && (exit_code == 0)) ? 0 : 1); printf("short_testing: "); ret = short_test(); printf(ret ? "\tOK\n" : "\tfailed\n"); exit_code = ((ret && (exit_code == 0)) ? 0 : 1); printf("int_testing: "); ret = int_test(); printf(ret ? "\tOK\n" : "\tfailed\n"); exit_code = ((ret && (exit_code == 0)) ? 0 : 1); printf("long_testing: "); ret = long_test(); printf(ret ? "\tOK\n" : "\tfailed\n"); exit_code = ((ret && (exit_code == 0)) ? 0 : 1); printf("float_testing: "); ret = float_test(); printf(ret ? "\tOK\n" : "\tfailed\n"); exit_code = ((ret && (exit_code == 0)) ? 0 : 1); printf("double_testing: "); ret = double_test(); printf(ret ? "\tOK\n" : "\tfailed\n"); exit_code = ((ret && (exit_code == 0)) ? 0 : 1); printf("string_testing: "); ret = string_test(); printf(ret ? "\tOK\n" : "\tfailed\n"); exit_code = ((ret && (exit_code == 0)) ? 0 : 1); printf("string_array_testing: "); ret = string_array_test(); printf(ret ? "\tOK\n" : "\tfailed\n"); exit_code = ((ret && (exit_code == 0)) ? 0 : 1); printf("scomplex_testing: "); ret = scomplex_test(); printf(ret ? "\tOK\n" : "\tfailed\n"); exit_code = ((ret && (exit_code == 0)) ? 0 : 1); printf("dcomplex_testing: "); ret = dcomplex_test(); printf(ret ? "\tOK\n" : "\tfailed\n"); exit_code = ((ret && (exit_code == 0)) ? 0 : 1); printf("work_testing: "); ret = work_test(); printf(ret ? "\tOK\n" : "\tfailed\n"); exit_code = ((ret && (exit_code == 0)) ? 0 : 1); result = grpc_finalize(); if (result != GRPC_NO_ERROR) { fprintf(stderr, "grpc_finalize() error. (%s)\n", grpc_error_string(result)); exit(2); } return exit_code; }