On Thu, Feb 09, 2023 at 03:22:48PM +0100, Arne Schwabe wrote:
> This helps debugging what information a client is sending without having to
> use a debugger or to look at the server log.
> 
> Signed-off-by: Arne Schwabe <a...@rfc2549.org>
> ---
>  src/openvpn/ssl.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/src/openvpn/ssl.c b/src/openvpn/ssl.c
> index 016bdc57f..1138dc4e7 100644
> --- a/src/openvpn/ssl.c
> +++ b/src/openvpn/ssl.c
> @@ -1970,6 +1970,20 @@ read_string_alloc(struct buffer *buf)
>      return str;
>  }
>  
> +static void
> +print_client_peer_info(struct buffer *out, struct gc_arena *gc)
> +{
> +    struct buffer buf = alloc_buf_gc(buf_len(out), gc);
> +    buf_copy(&buf, out);
> +
> +    char line[256];
> +
> +    while (buf_parse(&buf, '\n', line, sizeof(line)))
> +    {
> +        chomp(line);
> +        msg(D_PUSH_DEBUG, "sending peer info: %s", line);
> +    }
> +}

While this certainly is the minimal change, actually re-parsing the
whole buffer after we have written it feels backwards.

Wouldn't it be cleaner to actually wrap the buf_printf calls as something
like "add_var" and do the logging as the variables are added? That would
avoid the need for the additional allocations and parsing.

Regards,
-- 
  Frank Lichtenheld


_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to