diff options
author | Peter Åstrand <astrand@cendio.se> | 2005-02-17 09:12:31 +0000 |
---|---|---|
committer | Peter Åstrand <astrand@cendio.se> | 2005-02-17 09:12:31 +0000 |
commit | 4f36ab25aea6ec08b1df452390f3ac729940bfbb (patch) | |
tree | 736a2b88ce74e9974a1dcfff26f7783fa1220dc6 /vncviewer_unix | |
parent | 1e9d32fe263294a77a5b4f0fc6533ed3689e2a4b (diff) | |
download | tigervnc-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.cxx | 21 |
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) |