Go to the source code of this file.
Functions | |
static void | do_disconnect (void *cls) |
Shutdown. More... | |
static void | allocation_cb (void *cls, int af, const void *address) |
Callback invoked from the VPN service once a redirection is available. More... | |
static void | run (void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) |
Main function that will be run by the scheduler. More... | |
int | main (int argc, char *const *argv) |
Variables | |
static struct GNUNET_VPN_Handle * | handle |
Handle to vpn service. More... | |
static struct GNUNET_VPN_RedirectionRequest * | request |
Opaque redirection request handle. More... | |
static char * | peer_id |
Option -p: destination peer identity for service. More... | |
static char * | service_name |
Option -s: service name (hash to get service descriptor) More... | |
static char * | target_ip |
Option -i: target IP. More... | |
static int | ipv4 |
Option -4: IPv4 requested. More... | |
static int | ipv6 |
Option -6: IPv6 requested. More... | |
static int | tcp |
Option -t: TCP requested. More... | |
static int | udp |
Option -u: UDP requested. More... | |
static unsigned int | verbosity |
Selected level of verbosity. More... | |
static int | ret |
Global return value. More... | |
static struct GNUNET_TIME_Relative | duration = { 5 * 60 * 1000 } |
Option '-d': duration of the mapping. More... | |
|
static |
Shutdown.
Definition at line 97 of file gnunet-vpn.c.
References GNUNET_free, GNUNET_VPN_cancel_request(), GNUNET_VPN_disconnect(), handle, peer_id, request, service_name, and target_ip.
Referenced by run().
|
static |
Callback invoked from the VPN service once a redirection is available.
Provides the IP address that can now be used to reach the requested destination.
cls | closure |
af | address family, AF_INET or AF_INET6; AF_UNSPEC on error; will match 'result_af' from the request |
address | IP address (struct in_addr or struct in_addr6, depending on 'af') that the VPN allocated for the redirection; traffic to this IP will now be redirected to the specified target peer; NULL on error |
Definition at line 129 of file gnunet-vpn.c.
References _, address, GNUNET_ERROR_TYPE_ERROR, GNUNET_log, GNUNET_SCHEDULER_shutdown(), request, and ret.
Referenced by run().
|
static |
Main function that will be run by the scheduler.
cls | closure |
args | remaining command-line arguments |
cfgfile | name of the configuration file used (for saving, can be NULL!) |
cfg | configuration |
Definition at line 162 of file gnunet-vpn.c.
References _, allocation_cb(), cfg, do_disconnect(), duration, etime, GNUNET_CRYPTO_eddsa_public_key_from_string(), GNUNET_OK, GNUNET_SCHEDULER_add_shutdown(), GNUNET_SCHEDULER_shutdown(), GNUNET_TIME_relative_to_absolute(), GNUNET_TUN_service_name_to_hash(), GNUNET_VPN_connect(), GNUNET_VPN_redirect_to_ip(), GNUNET_VPN_redirect_to_peer(), handle, ipv4, ipv6, peer_id, GNUNET_PeerIdentity::public_key, request, ret, service_name, target_ip, tcp, and udp.
Referenced by main().
int main | ( | int | argc, |
char *const * | argv | ||
) |
Definition at line 289 of file gnunet-vpn.c.
References duration, gettext_noop, GNUNET_GETOPT_OPTION_END, GNUNET_GETOPT_option_flag(), GNUNET_GETOPT_option_relative_time(), GNUNET_GETOPT_option_string(), GNUNET_GETOPT_option_verbose(), GNUNET_OK, GNUNET_OS_project_data_gnunet(), GNUNET_PROGRAM_run(), ipv4, ipv6, options, peer_id, ret, run(), service_name, target_ip, tcp, udp, and verbosity.
|
static |
Handle to vpn service.
Definition at line 35 of file gnunet-vpn.c.
Referenced by add_attribute_cont(), add_credential_cont(), add_get_request_to_pending(), add_list_handle(), add_service_handle(), attr_collect(), attr_in_claims_request(), attr_in_idtoken_request(), attr_in_userinfo_request(), authorize_endpoint(), build_authz_response(), build_redirect(), bulk_tx_start(), callback_mq_error(), callback_reconnect(), callback_room_message(), change_srv_handle_member_id(), check_authorization(), cleanup_handle(), cleanup_issue_handle(), client_redirect(), close_handle_room(), close_service_room(), close_srv_handle_room(), code_redirect(), collect_finished_cb(), consume_cont(), consume_fail(), consume_ticket(), consume_ticket_cont(), cookie_identity_interpretation(), cr_cont(), create_finished(), create_handle(), create_handle_member_id(), create_room(), create_srv_handle(), create_srv_room(), cred_collect(), del_finished(), delete_attribute_cont(), delete_credential_cont(), delete_finished_cb(), destroy_handle(), destroy_srv_handle(), do_disconnect(), do_error(), do_finished(), do_finished_create(), do_redirect_error(), do_timeout(), do_userinfo_error(), ecdsa_symmetric_decrypt(), ecdsa_symmetric_encrypt(), ego_create(), ego_delete_name(), ego_delete_pubkey(), ego_edit(), ego_edit_name(), ego_edit_pubkey(), ego_get_all(), ego_get_name(), ego_get_pubkey(), ego_get_response(), ego_sign_data(), ego_sign_data_cb(), enter_srv_room_at(), entry_handle_room_at(), entry_service_room(), entry_srv_handle_room(), find_list_handle_by_member(), finished_cont(), force_reconnect(), get_cont(), get_gns_cont(), get_handle_contact(), get_handle_contact_store(), get_handle_key(), get_handle_member_session(), get_handle_name(), get_handle_pubkey(), get_handle_room(), get_oidc_dir_path(), get_srv_handle_data_subdir(), get_srv_handle_key(), get_srv_handle_member_id(), get_url_parameter_copy(), GNUNET_ABD_collect(), GNUNET_ABD_connect(), GNUNET_ABD_disconnect(), GNUNET_ABD_request_cancel(), GNUNET_ABD_verify(), GNUNET_CADET_disconnect(), GNUNET_CORE_disconnect(), GNUNET_CRYPTO_symmetric_decrypt(), GNUNET_CRYPTO_symmetric_encrypt(), GNUNET_DHT_connect(), GNUNET_DHT_disconnect(), GNUNET_DHT_get_start(), GNUNET_DHT_get_stop(), GNUNET_DHT_monitor_start(), GNUNET_DHT_monitor_stop(), GNUNET_DHT_put(), GNUNET_DHT_put_cancel(), GNUNET_GNS_connect(), GNUNET_GNS_disconnect(), GNUNET_GNS_lookup(), GNUNET_GNS_lookup_cancel(), GNUNET_GNS_lookup_limited(), GNUNET_GNS_lookup_with_tld(), GNUNET_MESSENGER_connect(), GNUNET_MESSENGER_disconnect(), GNUNET_MESSENGER_enter_room(), GNUNET_MESSENGER_find_rooms(), GNUNET_MESSENGER_get_key(), GNUNET_MESSENGER_get_name(), GNUNET_MESSENGER_open_room(), GNUNET_MESSENGER_set_key(), GNUNET_MESSENGER_set_name(), GNUNET_STATISTICS_get(), GNUNET_STATISTICS_set(), GNUNET_STATISTICS_update(), GNUNET_STATISTICS_watch(), GNUNET_STATISTICS_watch_cancel(), GNUNET_TRANSPORT_core_get_mq(), handle_client_hello(), handle_client_result(), handle_gns_response(), handle_intermediate(), handle_member_id(), handle_miss_message(), handle_monitor_get(), handle_monitor_get_resp(), handle_monitor_put(), handle_recv_message(), handle_result(), handle_room_close(), handle_room_entry(), handle_room_open(), handle_room_sync(), handle_ticket_result(), header_iterator(), import_next_cb(), initialize_handle_via_key(), initialize_service_handle(), is_srv_handle_routing(), iterate_close_room(), iterate_close_rooms(), iterate_next_member_ids(), iterate_reset_room(), iterate_save_member_session_history_hentries(), iterate_save_peers(), iterate_send_name_to_room(), join_room(), join_room_locally(), jwks_endpoint(), list_attribute_cont(), list_credential_cont(), list_tickets_cont(), load_list_messages(), load_list_tunnels(), load_member_session_history(), load_peer_store(), login_cont(), login_redirect(), lookup_redirect_uri_result(), main_task(), merge_srv_room_last_messages(), mq_error_handler(), namestore_add(), namestore_add_or_update(), namestore_delete(), namestore_get(), namestore_import(), namestore_iteration_error(), namestore_list_finished(), namestore_list_iteration(), namestore_update(), neighbour_delete(), notify_srv_handle_member_id(), notify_srv_handle_message(), ns_get_lookup_cb(), ns_lookup_cb(), ns_lookup_error_cb(), oidc_attr_collect(), oidc_attr_collect_finished_cb(), oidc_config_cors(), oidc_config_endpoint(), oidc_cred_collect(), oidc_cred_collect_finished_cb(), oidc_iteration_error(), oidc_ticket_issue_cb(), on_identity(), open_handle_room(), open_service_room(), open_srv_handle_room(), open_srv_room(), options_cont(), pack_srv_room_message(), parse_credentials_basic_auth(), parse_credentials_post_body(), plugin_callback(), post_data_iter(), process_message_control(), reconnect(), reconnect_task(), remove_list_handle(), remove_service_handle(), REST_config_process_request(), REST_copying_process_request(), REST_gns_process_request(), rest_identity_process_request(), REST_identity_process_request(), REST_namestore_process_request(), REST_openid_process_request(), REST_reclaim_process_request(), return_response(), revoke_ticket_cont(), run(), save_list_messages(), save_list_tunnels(), save_member_session_history(), save_peer_store(), send_close_room(), send_enter_room(), send_message_id(), send_message_join(), send_message_key(), send_open_room(), send_room_info(), send_srv_handle_message(), send_srv_room_message(), send_sync_room(), send_tunnel_message(), set_cont(), set_handle_key(), set_handle_name(), set_srv_handle_key(), setup_cipher_aes(), setup_cipher_twofish(), sign_srv_room_message_by_peer(), store_ticket_issue_cont(), sync_srv_handle_messages(), task_message_control(), task_notify_srv_handle_member_id(), ticket_collect(), tld_iter(), token_endpoint(), transmit_get(), transmit_set(), transmit_watch(), url_iterator(), and userinfo_endpoint().
|
static |
Opaque redirection request handle.
Definition at line 40 of file gnunet-vpn.c.
Referenced by allocation_cb(), cb_intersection_request_alice(), display_request(), dns_post_request_handler(), dns_pre_request_handler(), dns_result_processor(), do_disconnect(), do_timeout(), generate_gns_certificate(), GNUNET_DNSSTUB_resolve(), GNUNET_SET_accept(), GNUNET_SETI_accept(), GNUNET_SETU_accept(), GSF_cadet_start_server(), handle_dns_request(), handle_list(), handle_request(), handle_revocation_union_request(), libgnunet_plugin_rest_reclaim_done(), listen_connect(), modify_request(), reconnect(), REST_gns_done(), REST_namestore_done(), REST_reclaim_done(), result_processor(), run(), send_response(), set_listen_cb(), shuffle_answers(), and vpn_allocation_cb().
|
static |
Option -p: destination peer identity for service.
Definition at line 45 of file gnunet-vpn.c.
Referenced by do_disconnect(), main(), and run().
|
static |
Option -s: service name (hash to get service descriptor)
Definition at line 50 of file gnunet-vpn.c.
Referenced by change_service(), do_disconnect(), get_server_addresses(), GNUNET_ARM_request_service_start(), GNUNET_ARM_request_service_stop(), GNUNET_CLIENT_connect(), GNUNET_CLIENT_test(), GNUNET_SERVICE_register_(), GNUNET_SERVICE_run_(), GNUNET_SERVICE_start(), GNUNET_SOCKS_check_service(), GNUNET_SOCKS_do_connect(), GNUNET_TUN_service_name_to_hash(), main(), run(), test_service_configuration(), and try_unixpath().
|
static |
Option -i: target IP.
Definition at line 55 of file gnunet-vpn.c.
Referenced by do_disconnect(), main(), and run().
|
static |
Option -4: IPv4 requested.
Definition at line 60 of file gnunet-vpn.c.
Referenced by GNUNET_HOSTLIST_server_start(), handle_icmp_back(), handle_tcp_back(), handle_udp_back(), icmp_from_helper(), main(), make_up_icmp_service_payload(), run(), send_icmp_packet_via_tun(), send_tcp_packet_via_tun(), and send_udp_packet_via_tun().
|
static |
Option -6: IPv6 requested.
Definition at line 65 of file gnunet-vpn.c.
Referenced by GNUNET_HOSTLIST_server_start(), GNUNET_REGEX_ipv6toregexsearch(), handle_icmp_back(), handle_tcp_back(), handle_udp_back(), icmp_from_helper(), main(), make_up_icmp_service_payload(), run(), send_icmp_packet_via_tun(), send_tcp_packet_via_tun(), and send_udp_packet_via_tun().
|
static |
Option -t: TCP requested.
Definition at line 70 of file gnunet-vpn.c.
Referenced by GNUNET_TUN_calculate_tcp4_checksum(), GNUNET_TUN_calculate_tcp6_checksum(), handle_tcp_back(), main(), route_packet(), run(), and tcp_from_helper().
|
static |
Option -u: UDP requested.
Definition at line 75 of file gnunet-vpn.c.
Referenced by GNUNET_TUN_calculate_udp4_checksum(), GNUNET_TUN_calculate_udp6_checksum(), handle_icmp_back(), handle_icmp_remote(), handle_udp_back(), icmp_from_helper(), main(), make_up_icmp_service_payload(), make_up_icmpv4_payload(), make_up_icmpv6_payload(), process_helper_messages(), request_done(), route_packet(), run(), and udp_from_helper().
|
static |
|
static |
Global return value.
Definition at line 85 of file gnunet-vpn.c.
Referenced by allocation_cb(), main(), and run().
|
static |
Option '-d': duration of the mapping.
Definition at line 90 of file gnunet-vpn.c.
Referenced by consider_sending_fc(), create_subscription(), GNUNET_CURL_perform2(), GNUNET_TIME_absolute_add(), GNUNET_TIME_absolute_subtract(), handle_message_subscribe(), main(), process_queue(), run(), run_iteration_round(), run_zone_iteration_round(), shutdown_task(), stat_cmd(), and update_subscription().