[Openvpn-devel] signal --dns support in peer info
Commit Message
Have clients set a bit in IV_PROTO, so that servers can make an informed
decision on whether to push --dns to the client. While unknown options
are ignored by clients when pushed, they generate a warning in the log.
That can be circumvented by server backends by checking if bit 7 is set.
Signed-off-by: Heiko Hund <heiko@ist.eigentlich.net>
---
src/openvpn/ssl.c | 4 ++--
src/openvpn/ssl.h | 3 +++
2 files changed, 5 insertions(+), 2 deletions(-)
Comments
Am 13.05.2022 um 01:11 schrieb Heiko Hund:
> Have clients set a bit in IV_PROTO, so that servers can make an informed
> decision on whether to push --dns to the client. While unknown options
> are ignored by clients when pushed, they generate a warning in the log.
> That can be circumvented by server backends by checking if bit 7 is set.
Acked-By: Arne Schwabe <arne@rfc2549.org>
Am 13.05.2022 um 09:14 schrieb Arne Schwabe:
>
> Am 13.05.2022 um 01:11 schrieb Heiko Hund:
>> Have clients set a bit in IV_PROTO, so that servers can make an informed
>> decision on whether to push --dns to the client. While unknown options
>> are ignored by clients when pushed, they generate a warning in the log.
>> That can be circumvented by server backends by checking if bit 7 is set.
> Acked-By: Arne Schwabe <arne@rfc2549.org>
>
I retract my ACK. David noticed that the & in the patch should be an |
and I didn't look closely enough.
On Freitag, 13. Mai 2022 09:17:49 CEST Arne Schwabe wrote:
> Am 13.05.2022 um 09:14 schrieb Arne Schwabe:
> > Am 13.05.2022 um 01:11 schrieb Heiko Hund:
> >> Have clients set a bit in IV_PROTO, so that servers can make an informed
> >> decision on whether to push --dns to the client. While unknown options
> >> are ignored by clients when pushed, they generate a warning in the log.
> >> That can be circumvented by server backends by checking if bit 7 is set.
> >
> > Acked-By: Arne Schwabe <arne@rfc2549.org>
>
> I retract my ACK. David noticed that the & in the patch should be an |
> and I didn't look closely enough.
Quite stupid, v2 incoming.
@@ -1937,8 +1937,8 @@ push_peer_info(struct buffer *buf, struct tls_session *session)
/* These are the IV variable that are sent to peers in p2p mode */
if (session->opt->push_peer_info_detail > 0)
{
- /* support for P_DATA_V2 */
- int iv_proto = IV_PROTO_DATA_V2;
+ /* support for P_DATA_V2 and the --dns option */
+ int iv_proto = IV_PROTO_DATA_V2 & IV_PROTO_DNS_OPTION;
/* support for receiving push_reply before sending
* push request, also signal that the client wants
@@ -93,6 +93,9 @@
* result. */
#define IV_PROTO_NCP_P2P (1<<5)
+/** Supports the --dns option introduced in version 2.6 */
+#define IV_PROTO_DNS_OPTION (1<<6)
+
/* Default field in X509 to be username */
#define X509_USERNAME_FIELD_DEFAULT "CN"