upas/nfs: search for stunnele3 in $PATH

Do not hardcode stunnel directory path, just make sure that is installed
in user '$PATH'. it is required for 'mailfs -t' TLS support, so printout
an error string if it was not found.

Tested with latest stunnel version 5.17 on OpenBSD and macosx.

% mailfs -t imap.gmail.com ; echo $?
0

Change-Id: Icbd507c7efa81ef2aa7aed37bec5f639b37526cb
Reviewed-on: https://plan9port-review.googlesource.com/1280
Reviewed-by: Russ Cox <rsc@swtch.com>
This commit is contained in:
Gleydson Soares 2015-06-04 09:11:06 -03:00 committed by Russ Cox
parent 3f1c876e14
commit 71de840f05

View file

@ -779,6 +779,7 @@ imapdial(char *server, int mode)
int p[2]; int p[2];
int fd[3]; int fd[3];
char *tmp; char *tmp;
char *fpath;
switch(mode){ switch(mode){
default: default:
@ -797,10 +798,12 @@ imapdial(char *server, int mode)
fd[2] = dup(2, -1); fd[2] = dup(2, -1);
#ifdef PLAN9PORT #ifdef PLAN9PORT
tmp = esmprint("%s:993", server); tmp = esmprint("%s:993", server);
if(threadspawnl(fd, "/usr/sbin/stunnel3", "stunnel3", "-c", "-r", tmp, nil) < 0 fpath = searchpath("stunnel3");
&& threadspawnl(fd, "/usr/bin/stunnel3", "stunnel3", "-c", "-r", tmp, nil) < 0 if (!fpath) {
&& threadspawnl(fd, "/usr/sbin/stunnel", "stunnel", "-c", "-r", tmp, nil) < 0 werrstr("stunnel not found. it is required for tls support.");
&& threadspawnl(fd, "/usr/bin/stunnel", "stunnel", "-c", "-r", tmp, nil) < 0){ return -1;
}
if(threadspawnl(fd, fpath, "stunnel", "-c", "-r", tmp, nil) < 0) {
#else #else
tmp = esmprint("tcp!%s!993", server); tmp = esmprint("tcp!%s!993", server);
if(threadspawnl(fd, "/bin/tlsclient", "tlsclient", tmp, nil) < 0){ if(threadspawnl(fd, "/bin/tlsclient", "tlsclient", tmp, nil) < 0){