Merge pull request #4305 from billsq/openconnect_7.08

openconnect: Update to version 7.08
This commit is contained in:
Nikos Mavrogiannopoulos 2017-04-29 12:14:16 +02:00 committed by GitHub
commit 69187e794a
2 changed files with 4 additions and 129 deletions

View File

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=openconnect
PKG_VERSION:=7.06
PKG_RELEASE:=5
PKG_VERSION:=7.08
PKG_RELEASE:=1
PKG_USE_MIPS16:=0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/openconnect/
PKG_MD5SUM:=80f397911e1fed43d897d99be3d5f1a1
PKG_HASH:=1c44ec1f37a6a025d1ca726b9555649417f1d31a46f747922b84099ace628a03
PKG_LICENSE:=LGPLv2.1+
PKG_CONFIG_DEPENDS:= \
@ -42,7 +42,7 @@ define Package/openconnect/description
A VPN client compatible with Cisco's AnyConnect SSL VPN and ocserv.
OpenConnect is a client that follows the Cisco's AnyConnect SSL VPN protocol,
which is supported by IOS 12.4(9)T or later on Cisco SR500, 870, 880, 1800,
which is supported by IOS 12.4(9)T or later on Cisco SR500, 870, 880, 1800,
2800, 3800, 7200 Series and Cisco 7301 Routers, as well as the OpenConnect
VPN server.
endef

View File

@ -1,125 +0,0 @@
From 5f2e24fdc9935d049a7e4a5b6e10461e9467597f Mon Sep 17 00:00:00 2001
From: Nikos Mavrogiannopoulos <nmav@gnutls.org>
Date: Thu, 18 Jun 2015 22:38:05 +0200
Subject: [PATCH] Allow processing two passwords from stdin in non-interactive
mode
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
---
main.c | 38 ++++++++++++++++++++++++++------------
1 file changed, 26 insertions(+), 12 deletions(-)
diff --git a/main.c b/main.c
index 3b976d8..f853afe 100644
--- a/main.c
+++ b/main.c
@@ -85,6 +85,7 @@ static int do_passphrase_from_fsid;
static int nocertcheck;
static int non_inter;
static int cookieonly;
+static int allow_stdin_read;
static char *token_filename;
static char *server_cert = NULL;
@@ -358,7 +359,7 @@ static char *convert_arg_to_utf8(char **argv, char *arg)
#define vfprintf vfprintf_utf8
#define is_arg_utf8(str) (0)
-static void read_stdin(char **string, int hidden)
+static void read_stdin(char **string, int hidden, int allow_fail)
{
CONSOLE_READCONSOLE_CONTROL rcc = { sizeof(rcc), 0, 13, 0 };
HANDLE stdinh = GetStdHandle(STD_INPUT_HANDLE);
@@ -375,6 +376,7 @@ static void read_stdin(char **string, int hidden)
char *errstr = openconnect__win32_strerror(GetLastError());
fprintf(stderr, _("ReadConsole() failed: %s\n"), errstr);
free(errstr);
+ *string = NULL;
goto out;
}
@@ -622,7 +624,7 @@ static void print_build_opts(void)
#ifndef _WIN32
static const char default_vpncscript[] = DEFAULT_VPNCSCRIPT;
-static void read_stdin(char **string, int hidden)
+static void read_stdin(char **string, int hidden, int allow_fail)
{
char *c, *buf = malloc(1025);
int fd = fileno(stdin);
@@ -648,8 +650,14 @@ static void read_stdin(char **string, int hidden)
}
if (!buf) {
- perror(_("fgets (stdin)"));
- exit(1);
+ if (allow_fail) {
+ *string = NULL;
+ free(buf);
+ return;
+ } else {
+ perror(_("fgets (stdin)"));
+ exit(1);
+ }
}
c = strchr(buf, '\n');
@@ -1160,13 +1168,14 @@ int main(int argc, char **argv)
cookieonly = 3;
break;
case OPT_COOKIE_ON_STDIN:
- read_stdin(&vpninfo->cookie, 0);
+ read_stdin(&vpninfo->cookie, 0, 0);
/* If the cookie is empty, ignore it */
if (!*vpninfo->cookie)
vpninfo->cookie = NULL;
break;
case OPT_PASSWORD_ON_STDIN:
- read_stdin(&password, 0);
+ read_stdin(&password, 0, 0);
+ allow_stdin_read = 1;
break;
case OPT_NO_PASSWD:
vpninfo->nopasswd = 1;
@@ -1708,7 +1717,7 @@ static int validate_peer_cert(void *_vpninfo, const char *reason)
fprintf(stderr, _("Enter '%s' to accept, '%s' to abort; anything else to view: "),
_("yes"), _("no"));
- read_stdin(&response, 0);
+ read_stdin(&response, 0, 0);
if (!response)
return -EINVAL;
@@ -1779,19 +1788,24 @@ static char *prompt_for_input(const char *prompt,
struct openconnect_info *vpninfo,
int hidden)
{
- char *response;
+ char *response = NULL;
fprintf(stderr, "%s", prompt);
fflush(stderr);
if (non_inter) {
- fprintf(stderr, "***\n");
- vpn_progress(vpninfo, PRG_ERR,
+ if (allow_stdin_read) {
+ read_stdin(&response, hidden, 1);
+ }
+ if (response == NULL) {
+ fprintf(stderr, "***\n");
+ vpn_progress(vpninfo, PRG_ERR,
_("User input required in non-interactive mode\n"));
- return NULL;
+ }
+ return response;
}
- read_stdin(&response, hidden);
+ read_stdin(&response, hidden, 0);
return response;
}
--
2.1.4