]> www.infradead.org Git - users/dwmw2/openconnect.git/commitdiff
add OC_PROTO_HIDDEN and use this to hide nullppp from protocols displayed or shown...
authorDaniel Lenski <dlenski@gmail.com>
Wed, 20 May 2020 03:53:25 +0000 (20:53 -0700)
committerDaniel Lenski <dlenski@gmail.com>
Mon, 29 Mar 2021 02:27:01 +0000 (19:27 -0700)
Signed-off-by: Daniel Lenski <dlenski@gmail.com>
library.c
openconnect.h

index 206949da97ba72da87926b2c5ab253971c30b278..f7eca7d6aa4ce9d4f0be1f626e433e3a5b707770 100644 (file)
--- a/library.c
+++ b/library.c
@@ -190,9 +190,9 @@ static const struct vpn_proto openconnect_protos[] = {
 #endif
        }, {
                .name = "nullppp",
-               .pretty_name = N_("nullppp"),
+               .pretty_name = N_("PPP over TLS"),
                .description = N_("Unauthenticated RFC1661/RFC1662 PPP over TLS, for testing"),
-               .flags = OC_PROTO_PROXY,
+               .flags = OC_PROTO_PROXY | OC_PROTO_HIDDEN,
                .tcp_connect = nullppp_connect,
                .tcp_mainloop = ppp_mainloop,
                .add_http_headers = http_common_headers,
@@ -205,7 +205,7 @@ static const struct vpn_proto openconnect_protos[] = {
 int openconnect_get_supported_protocols(struct oc_vpn_proto **protos)
 {
        struct oc_vpn_proto *pr;
-       int i;
+       int i, j;
 
         /* The original version of this function included an all-zero
          * sentinel value at the end of the array, so we must continue
@@ -217,13 +217,16 @@ int openconnect_get_supported_protocols(struct oc_vpn_proto **protos)
        if (!pr)
                return -ENOMEM;
 
-       for (i = 0; i < NR_PROTOS; i++) {
-               pr[i].name = openconnect_protos[i].name;
-               pr[i].pretty_name = _(openconnect_protos[i].pretty_name);
-               pr[i].description = _(openconnect_protos[i].description);
-               pr[i].flags = openconnect_protos[i].flags;
+       for (i = j = 0; i < NR_PROTOS; i++) {
+               if (!(openconnect_protos[i].flags & OC_PROTO_HIDDEN)) {
+                       pr[j].name = openconnect_protos[i].name;
+                       pr[j].pretty_name = _(openconnect_protos[i].pretty_name);
+                       pr[j].description = _(openconnect_protos[i].description);
+                       pr[j].flags = openconnect_protos[i].flags;
+                       j++;
+               }
        }
-       return i;
+       return j;
 }
 
 void openconnect_free_supported_protocols(struct oc_vpn_proto *protos)
index 5abb7bb81d8b16cb514f6e148269ce871d5595a2..9cc142fa278a590832c33817eb42de87e5835ce4 100644 (file)
@@ -193,6 +193,7 @@ extern "C" {
 #define OC_PROTO_AUTH_OTP      (1<<3)
 #define OC_PROTO_AUTH_STOKEN   (1<<4)
 #define OC_PROTO_PERIODIC_TROJAN       (1<<5)
+#define OC_PROTO_HIDDEN        (1<<6)
 
 struct oc_vpn_proto {
        const char *name;