Skip to content

GlobalProtect prelogin and preliminary SAML support

These patches overhaul the GlobalProtect form handling: we now query and parse the /{ssl-vpn,global-protect}/prelogin.esp and use it to build the initial auth form, and to give some useful information about when SAML is required, and what URL to visit to initiate the SAML authentication process.

I cleaned up gpst.c's memory handling in the process. In particular, I replaced the old GP-specific xmlnode_get_text(xmlNode *xml_node, const char *name, char **var) (which didn't free the old value of *var) with a globally-available xmlnode_get_val that does free the old value of *var.

I've tested these changes quite a bit with a quick-and-dirty "fake server" and valgrind --leak-check=full.

Merge request reports