/* * Things that need to happen immediately after connection initiation should go here. */ void check_connection_established_dowork (struct context *c) { if (event_timeout_trigger (&c->c2.wait_for_connect, &c->c2.timeval, ETT_DEFAULT)) { if (CONNECTION_ESTABLISHED (c)) { #if P2MP /* if --pull was specified, send a push request to server */ if (c->c2.tls_multi && c->options.pull) { #ifdef ENABLE_MANAGEMENT if (management) { management_set_state (management, OPENVPN_STATE_GET_CONFIG, NULL, 0, 0); } #endif /* send push request in 1 sec */ event_timeout_init (&c->c2.push_request_interval, 1, now); reset_coarse_timers (c); } else #endif { do_up (c, false, 0); } event_timeout_clear (&c->c2.wait_for_connect); } } }
void check_send_occ_load_test_dowork (struct context *c) { if (CONNECTION_ESTABLISHED (c)) { const struct mtu_load_test *entry; if (!c->c2.occ_mtu_load_n_tries) msg (M_INFO, "NOTE: Beginning empirical MTU test -- results should be available in 3 to 4 minutes."); entry = &mtu_load_test_sequence[c->c2.occ_mtu_load_n_tries++]; if (entry->op >= 0) { c->c2.occ_op = entry->op; c->c2.occ_mtu_load_size = EXPANDED_SIZE (&c->c2.frame) + entry->delta; } else { msg (M_INFO, "NOTE: failed to empirically measure MTU (requires " PACKAGE_NAME " 1.5 or higher at other end of connection)."); event_timeout_clear (&c->c2.occ_mtu_load_test_interval); c->c2.occ_mtu_load_n_tries = 0; } } }