]> www.infradead.org Git - users/dwmw2/openconnect.git/commitdiff
Add `openconnect_set_cookie` function to library and jni
authorRandy Moss <kasaxet794@homedepinst.com>
Fri, 15 May 2020 16:04:53 +0000 (16:04 +0000)
committerRandy Moss <kasaxet794@homedepinst.com>
Fri, 15 May 2020 16:04:53 +0000 (16:04 +0000)
Signed-off-by: Randy Moss <kasaxet794@homedepinst.com>
jni.c
libopenconnect.map.in
library.c
openconnect.h

diff --git a/jni.c b/jni.c
index cd50a5386d44aedb60523d1cc7c080d59a7d1d62..d900eea879f480bdaefc0e505a60809ffcddbbcc 100644 (file)
--- a/jni.c
+++ b/jni.c
@@ -1353,6 +1353,14 @@ JNIEXPORT void JNICALL Java_org_infradead_libopenconnect_LibOpenConnect_setUrlpa
        SET_STRING_END();
 }
 
+JNIEXPORT void JNICALL Java_org_infradead_libopenconnect_LibOpenConnect_setCookie(
+       JNIEnv *jenv, jobject jobj, jstring jarg)
+{
+       SET_STRING_START_VOID()
+       openconnect_set_cookie(ctx->vpninfo, arg);
+       SET_STRING_END();
+}
+
 JNIEXPORT void JNICALL Java_org_infradead_libopenconnect_LibOpenConnect_setLocalName(
        JNIEnv *jenv, jobject jobj, jstring jarg)
 {
index 5b4bc5d7e9b464d6a82ed8737546c8fda41b41bd..1f0a27608e41d7fbcf451bf033bbcbb56866392e 100644 (file)
@@ -108,6 +108,11 @@ OPENCONNECT_5_6 {
        openconnect_set_trojan_interval;
 } OPENCONNECT_5_5;
 
+OPENCONNECT_5_7 {
+ global:
+       openconnect_set_cookie;
+} OPENCONNECT_5_6;
+
 OPENCONNECT_PRIVATE {
  global: @SYMVER_TIME@ @SYMVER_GETLINE@ @SYMVER_JAVA@ @SYMVER_ASPRINTF@ @SYMVER_VASPRINTF@ @SYMVER_WIN32_STRERROR@
        openconnect_get_tls_library_version;
index 586c5798a7f03f9a9932a38a138438bbcc44a686..bde20a1ce1794f7e51c4f130083c6af29c030df2 100644 (file)
--- a/library.c
+++ b/library.c
@@ -671,6 +671,15 @@ void openconnect_clear_cookie(struct openconnect_info *vpninfo)
                memset(vpninfo->cookie, 0, strlen(vpninfo->cookie));
 }
 
+int openconnect_set_cookie(struct openconnect_info *vpninfo,
+                           const char *cookie)
+{
+       UTF8CHECK(cookie);
+
+       STRDUP(vpninfo->cookie, cookie);
+       return 0;
+}
+
 void openconnect_reset_ssl(struct openconnect_info *vpninfo)
 {
        vpninfo->got_cancel_cmd = 0;
index d1c3d74a1d691a76f66d0c4078522a53a842b7c9..2dbce891d2734b6c00b7e03053c4c1051b55a7e6 100644 (file)
@@ -33,9 +33,12 @@ extern "C" {
 #endif
 
 #define OPENCONNECT_API_VERSION_MAJOR 5
-#define OPENCONNECT_API_VERSION_MINOR 6
+#define OPENCONNECT_API_VERSION_MINOR 7
 
 /*
+ * API version 5.7:
+ *  - Add openconnect_set_cookie()
+ *
  * API version 5.6 (v8.06; 2020-03-31):
  *  - Add openconnect_set_trojan_interval()
  *
@@ -540,6 +543,7 @@ int openconnect_get_ip_info(struct openconnect_info *,
 
 int openconnect_get_port(struct openconnect_info *);
 const char *openconnect_get_cookie(struct openconnect_info *);
+int openconnect_set_cookie(struct openconnect_info *, const char *);
 void openconnect_clear_cookie(struct openconnect_info *);
 
 void openconnect_disable_ipv6(struct openconnect_info *vpninfo);