[PATCH 2/8] add OC_FORM_OPT_FILL_{USERNAME, PASSWORD} flags to hint at purpose of a form field without requiring a specific name
Daniel Lenski
dlenski at gmail.com
Sat May 20 15:43:23 PDT 2017
The current process_auth_form_cb hard-codes the interpretation of these form
fields based on their names. Other protocols (GlobalProtect, possibly other
future protocols) have identical fields but with slightly different names,
so we add flags to hint at the purpose of form fields independent of their
names.
Signed-off-by: Daniel Lenski <dlenski at gmail.com>
---
main.c | 4 ++--
openconnect.h | 2 ++
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/main.c b/main.c
index 7869f72..cc373ac 100644
--- a/main.c
+++ b/main.c
@@ -1967,7 +1967,7 @@ static int process_auth_form_cb(void *_vpninfo,
} else if (opt->type == OC_FORM_OPT_TEXT) {
if (username &&
- !strcmp(opt->name, "username")) {
+ (!strcmp(opt->name, "username") || opt->flags & OC_FORM_OPT_FILL_USERNAME)) {
opt->_value = username;
username = NULL;
} else {
@@ -1980,7 +1980,7 @@ static int process_auth_form_cb(void *_vpninfo,
} else if (opt->type == OC_FORM_OPT_PASSWORD) {
if (password &&
- !strcmp(opt->name, "password")) {
+ (!strcmp(opt->name, "password") || opt->flags & OC_FORM_OPT_FILL_PASSWORD)) {
opt->_value = password;
password = NULL;
} else {
diff --git a/openconnect.h b/openconnect.h
index e97dacb..06bf48e 100644
--- a/openconnect.h
+++ b/openconnect.h
@@ -208,6 +208,8 @@ struct oc_vpn_proto {
#define OC_FORM_OPT_IGNORE 0x0001
#define OC_FORM_OPT_NUMERIC 0x0002
+#define OC_FORM_OPT_FILL_USERNAME 0x0004
+#define OC_FORM_OPT_FILL_PASSWORD 0x0008
/* char * fields are static (owned by XML parser) and don't need to be
freed by the form handling code — except for value, which for TEXT
--
2.7.4
More information about the openconnect-devel
mailing list