Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Move script_config_tun() to script.c
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
  • Loading branch information
David Woodhouse authored and David Woodhouse committed Feb 13, 2014
1 parent 8f2d1a5 commit f90b442
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 43 deletions.
2 changes: 1 addition & 1 deletion openconnect-internal.h
Expand Up @@ -451,11 +451,11 @@ int win32_setup_tun(struct openconnect_info *vpninfo);
/* script.c */
int setenv_int(const char *opt, int value);
void set_script_env(struct openconnect_info *vpninfo);
int script_config_tun(struct openconnect_info *vpninfo, const char *reason);

/* tun.c */
int tun_mainloop(struct openconnect_info *vpninfo, int *timeout);
void shutdown_tun(struct openconnect_info *vpninfo);
int script_config_tun(struct openconnect_info *vpninfo, const char *reason);

/* dtls.c */
unsigned char unhex(const char *data);
Expand Down
42 changes: 42 additions & 0 deletions script.c
Expand Up @@ -304,3 +304,45 @@ void set_script_env(struct openconnect_info *vpninfo)
setenv_cstp_opts(vpninfo);
}

int script_config_tun(struct openconnect_info *vpninfo, const char *reason)
{
int ret;

if (!vpninfo->vpnc_script || vpninfo->script_tun)
return 0;

setenv("reason", reason, 1);
ret = system(vpninfo->vpnc_script);
if (ret == -1) {
int e = errno;
vpn_progress(vpninfo, PRG_ERR,
_("Failed to spawn script '%s' for %s: %s\n"),
vpninfo->vpnc_script, reason, strerror(e));
return -e;
}
#ifdef _WIN32
if (ret == 0x2331) {
/* This is what cmd.exe returns for unrecognised commands */
vpn_progress(vpninfo, PRG_ERR,
_("Failed to spawn script '%s' for %s: %s\n"),
vpninfo->vpnc_script, reason, strerror(ENOENT));
return -ENOENT;
}
#else
if (!WIFEXITED(ret)) {
vpn_progress(vpninfo, PRG_ERR,
_("Script '%s' exited abnormally (%x)\n"),
vpninfo->vpnc_script, ret);
return -EIO;
}

ret = WEXITSTATUS(ret);
#endif
if (ret) {
vpn_progress(vpninfo, PRG_ERR,
_("Script '%s' returned error %d\n"),
vpninfo->vpnc_script, ret);
return -EIO;
}
return 0;
}
42 changes: 0 additions & 42 deletions tun.c
Expand Up @@ -91,48 +91,6 @@ static int set_tun_mtu(struct openconnect_info *vpninfo)
#endif
return 0;
}
int script_config_tun(struct openconnect_info *vpninfo, const char *reason)
{
int ret;

if (!vpninfo->vpnc_script || vpninfo->script_tun)
return 0;

setenv("reason", reason, 1);
ret = system(vpninfo->vpnc_script);
if (ret == -1) {
int e = errno;
vpn_progress(vpninfo, PRG_ERR,
_("Failed to spawn script '%s' for %s: %s\n"),
vpninfo->vpnc_script, reason, strerror(e));
return -e;
}
#ifdef _WIN32
if (ret == 0x2331) {
/* This is what cmd.exe returns for unrecognised commands */
vpn_progress(vpninfo, PRG_ERR,
_("Failed to spawn script '%s' for %s: %s\n"),
vpninfo->vpnc_script, reason, strerror(ENOENT));
return -ENOENT;
}
#else
if (!WIFEXITED(ret)) {
vpn_progress(vpninfo, PRG_ERR,
_("Script '%s' exited abnormally (%x)\n"),
vpninfo->vpnc_script, ret);
return -EIO;
}

ret = WEXITSTATUS(ret);
#endif
if (ret) {
vpn_progress(vpninfo, PRG_ERR,
_("Script '%s' returned error %d\n"),
vpninfo->vpnc_script, ret);
return -EIO;
}
return 0;
}

#ifdef __sun__
static int link_proto(int unit_nr, const char *devname, uint64_t flags)
Expand Down

0 comments on commit f90b442

Please sign in to comment.