From: Arne Schwabe Date: Fri, 3 Jul 2020 09:55:06 +0000 (+0200) Subject: Remove did_open_context, defined and connection_established_flag X-Git-Tag: v2.5_beta1~94 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c252dcc073155567c1982611ec6f065342909287;p=thirdparty%2Fopenvpn.git Remove did_open_context, defined and connection_established_flag multi_instance->defined is not used anywhere. did_open_context is always set to true when a context is created in multi_create_instance, so checking it for true is always true. context_auth is also always set to CAS_PENDING in multi_create_instance. connection_established_flag is only set to true if context_auth is changed from CAS_PENDING to one another state, so we can also check for cas_context != CAS_PENDING. Signed-off-by: Arne Schwabe Acked-by: Antonio Quartulli Message-Id: <20200703095506.28559-1-arne@rfc2549.org> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg20200.html Signed-off-by: Gert Doering --- diff --git a/src/openvpn/multi.c b/src/openvpn/multi.c index e9f021bb2..6923d2ce7 100644 --- a/src/openvpn/multi.c +++ b/src/openvpn/multi.c @@ -574,7 +574,7 @@ multi_client_disconnect_setenv(struct multi_instance *mi) static void multi_client_disconnect_script(struct multi_instance *mi) { - if ((mi->context.c2.context_auth == CAS_SUCCEEDED && mi->connection_established_flag) + if (mi->context.c2.context_auth == CAS_SUCCEEDED || mi->context.c2.context_auth == CAS_PARTIAL) { multi_client_disconnect_setenv(mi); @@ -686,10 +686,7 @@ multi_close_instance(struct multi_context *m, multi_client_disconnect_script(mi); - if (mi->did_open_context) - { - close_context(&mi->context, SIGTERM, CC_GC_FREE); - } + close_context(&mi->context, SIGTERM, CC_GC_FREE); multi_tcp_instance_specific_free(mi); @@ -788,7 +785,6 @@ multi_create_instance(struct multi_context *m, const struct mroute_addr *real) generate_prefix(mi); } - mi->did_open_context = true; inherit_context_child(&mi->context, &m->top); if (IS_SIG(&mi->context)) { @@ -2089,9 +2085,6 @@ script_failed: mi->context.c2.context_auth = cc_succeeded_count ? CAS_PARTIAL : CAS_FAILED; } - /* set flag so we don't get called again */ - mi->connection_established_flag = true; - /* increment number of current authenticated clients */ ++m->n_clients; update_mstat_n_clients(m->n_clients); @@ -2395,7 +2388,8 @@ multi_process_post(struct multi_context *m, struct multi_instance *mi, const uns { /* connection is "established" when SSL/TLS key negotiation succeeds * and (if specified) auth user/pass succeeds */ - if (!mi->connection_established_flag && CONNECTION_ESTABLISHED(&mi->context)) + if (mi->context.c2.context_auth == CAS_PENDING + && CONNECTION_ESTABLISHED(&mi->context)) { multi_connection_established(m, mi); } @@ -3349,7 +3343,7 @@ management_client_auth(void *arg, { if (auth) { - if (!mi->connection_established_flag) + if (mi->context.c2.context_auth == CAS_PENDING) { set_cc_config(mi, cc_config); cc_config_owned = false; @@ -3361,7 +3355,7 @@ management_client_auth(void *arg, { msg(D_MULTI_LOW, "MULTI: connection rejected: %s, CLI:%s", reason, np(client_reason)); } - if (mi->connection_established_flag) + if (mi->context.c2.context_auth != CAS_PENDING) { send_auth_failed(&mi->context, client_reason); /* mid-session reauth failed */ multi_schedule_context_wakeup(m, mi); diff --git a/src/openvpn/multi.h b/src/openvpn/multi.h index 3d949e302..8c9c46097 100644 --- a/src/openvpn/multi.h +++ b/src/openvpn/multi.h @@ -75,7 +75,6 @@ struct deferred_signal_schedule_entry struct multi_instance { struct schedule_entry se; /* this must be the first element of the structure */ struct gc_arena gc; - bool defined; bool halt; int refcount; int route_count; /* number of routes (including cached routes) owned by this instance */ @@ -97,14 +96,12 @@ struct multi_instance { in_addr_t reporting_addr; /* IP address shown in status listing */ struct in6_addr reporting_addr_ipv6; /* IPv6 address in status listing */ - bool did_open_context; bool did_real_hash; bool did_iter; #ifdef MANAGEMENT_DEF_AUTH bool did_cid_hash; struct buffer_list *cc_config; #endif - bool connection_established_flag; bool did_iroutes; int n_clients_delta; /* added to multi_context.n_clients when instance is closed */