Hi,

On 25/07/16 20:52, Steffan Karger wrote:
This allows the ncp-disable and ncp-ciphers options to be used in 'client
config dir' files, to disable or change the negotiable crypto parameter
settings for specific clients.

Signed-off-by: Steffan Karger <[email protected]>
---
  src/openvpn/options.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/openvpn/options.c b/src/openvpn/options.c
index 18af179..79dcb79 100644
--- a/src/openvpn/options.c
+++ b/src/openvpn/options.c
@@ -6666,12 +6666,12 @@ add_option (struct options *options,
      }
    else if (streq (p[0], "ncp-ciphers") && p[1] && !p[2])
      {
-      VERIFY_PERMISSION (OPT_P_GENERAL);
+      VERIFY_PERMISSION (OPT_P_GENERAL|OPT_P_INSTANCE);
        options->ncp_ciphers = p[1];
      }
    else if (streq (p[0], "ncp-disable") && !p[1])
      {
-      VERIFY_PERMISSION (OPT_P_GENERAL);
+      VERIFY_PERMISSION (OPT_P_GENERAL|OPT_P_INSTANCE);
        options->ncp_enabled = false;
      }
    else if (streq (p[0], "prng") && p[1] && !p[3])

another remark: making this option CCD-file specific a good idea, but how you do ensure that the server only applies it to this particular client? o->ncp_enabled seems a global at first glance. Consider this scenario:

1) client A connects , for which we want to disable NCP; hence a client-connect script or CCD file with 'ncp-disable' in it;
2) client B connects, no CCD file, it's running v2.4+, so we want NCP.

How does the server handle this? Or did I miss the "per-client options" struct?

JJK

Reply via email to