#define XCAST(x) ((const xmlChar *)(x))
+void fortinet_common_headers(struct openconnect_info *vpninfo,
+ struct oc_text_buf *buf)
+{
+ char *orig_ua = vpninfo->useragent;
+
+ /* XX: This is what openfortivpn uses */
+ vpninfo->useragent = (char *)"Mozilla/5.0 SV1";
+ http_common_headers(vpninfo, buf);
+ vpninfo->useragent = orig_ua;
+}
+
int fortinet_obtain_cookie(struct openconnect_info *vpninfo)
{
return -EINVAL;
goto out;
reqbuf = buf_alloc();
buf_append(reqbuf, "GET /remote/sslvpn-tunnel HTTP/1.1\r\n");
- http_common_headers(vpninfo, reqbuf);
+ fortinet_common_headers(vpninfo, reqbuf);
buf_append(reqbuf, "\r\n");
if (buf_error(reqbuf)) {
.vpn_close_session = fortinet_bye,
.tcp_connect = fortinet_connect,
.tcp_mainloop = ppp_mainloop,
- .add_http_headers = http_common_headers,
+ .add_http_headers = fortinet_common_headers,
.obtain_cookie = fortinet_obtain_cookie,
.secure_cookie = "SVPNCOOKIE",
.udp_protocol = "DTLS",
int f5_bye(struct openconnect_info *vpninfo, const char *reason);
/* fortinet.c */
+void fortinet_common_headers(struct openconnect_info *vpninfo, struct oc_text_buf *buf);
int fortinet_obtain_cookie(struct openconnect_info *vpninfo);
int fortinet_connect(struct openconnect_info *vpninfo);
int fortinet_bye(struct openconnect_info *vpninfo, const char *reason);