aboutsummaryrefslogtreecommitdiffstats
path: root/vncviewer_unix
diff options
context:
space:
mode:
authorPeter Åstrand <astrand@cendio.se>2005-02-17 09:12:31 +0000
committerPeter Åstrand <astrand@cendio.se>2005-02-17 09:12:31 +0000
commit4f36ab25aea6ec08b1df452390f3ac729940bfbb (patch)
tree736a2b88ce74e9974a1dcfff26f7783fa1220dc6 /vncviewer_unix
parent1e9d32fe263294a77a5b4f0fc6533ed3689e2a4b (diff)
downloadtigervnc-4f36ab25aea6ec08b1df452390f3ac729940bfbb.tar.gz
tigervnc-4f36ab25aea6ec08b1df452390f3ac729940bfbb.zip
Provide a setenv wrapper for platforms that doesn't have setenv, such
as Solaris. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@189 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'vncviewer_unix')
-rw-r--r--vncviewer_unix/vncviewer.cxx21
1 files changed, 21 insertions, 0 deletions
diff --git a/vncviewer_unix/vncviewer.cxx b/vncviewer_unix/vncviewer.cxx
index a3d2fd31..8f2d444c 100644
--- a/vncviewer_unix/vncviewer.cxx
+++ b/vncviewer_unix/vncviewer.cxx
@@ -216,6 +216,27 @@ interpretViaParam (char **gatewayHost, char **remoteHost,
sprintf (*vncServerName, "localhost::%d", localPort);
}
+#ifndef HAVE_SETENV
+int
+setenv(const char *envname, const char * envval, int overwrite)
+{
+ if (envname && envval) {
+ char * envp = NULL;
+ envp = (char*)malloc(strlen(envname) + strlen(envval) + 2);
+ if (envp) {
+ // The putenv API guarantees memory leaks when
+ // changing environment variables repeatedly.
+ sprintf(envp, "%s=%s", envname, envval);
+
+ // Cannot free envp
+ putenv(envp);
+ return(0);
+ }
+ }
+ return(-1);
+}
+#endif
+
static void
createTunnel (const char *gatewayHost, const char *remoteHost,
int remotePort, int localPort)