diff options
Diffstat (limited to 'src/interfaces/libpq++/pgenv.cc')
-rw-r--r-- | src/interfaces/libpq++/pgenv.cc | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/src/interfaces/libpq++/pgenv.cc b/src/interfaces/libpq++/pgenv.cc new file mode 100644 index 00000000000..aab4f213eb2 --- /dev/null +++ b/src/interfaces/libpq++/pgenv.cc @@ -0,0 +1,109 @@ +/*------------------------------------------------------------------------- + * + * FILE + * PGenv.cc + * + * DESCRIPTION + * PGenv is the environment for setting up a connection to a + * postgres backend, captures the host, port, tty, options and + * authentication type. + * + * NOTES + * Currently under construction. + * + * Copyright (c) 1994, Regents of the University of California + * + * IDENTIFICATION + * $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pgenv.cc,v 1.1.1.1 1996/07/09 06:22:18 scrappy Exp $ + * + *------------------------------------------------------------------------- + */ + +#include <stdlib.h> +#include "libpq++.H" + +#define DefaultAuth DEFAULT_CLIENT_AUTHSVC +#define DefaultPort POSTPORT + +// default constructor for PGenv +// checks the environment variables +PGenv::PGenv() +{ + char* temp; + + pgauth = NULL; + pghost = NULL; + pgport = NULL; + pgoption = NULL; + pgtty = NULL; + + setValues(getenv(ENV_DEFAULT_AUTH), getenv(ENV_DEFAULT_HOST), + getenv(ENV_DEFAULT_PORT), getenv(ENV_DEFAULT_OPTION), + getenv(ENV_DEFAULT_TTY)); +} + +// constructor for given environment +PGenv::PGenv(char* auth, char* host, char* port, char* option, char* tty) +{ + pgauth = NULL; + pghost = NULL; + pgport = NULL; + pgoption = NULL; + pgtty = NULL; + + setValues(auth, host, port, option, tty); +} + +// allocate memory and set internal structures to match +// required environment +void +PGenv::setValues(char* auth, char* host, char* port, char* option, char* tty) +{ + char* temp; + + temp = (auth) ? auth : DefaultAuth; + + if (pgauth) + free(pgauth); + pgauth = strdup(temp); + + temp = (host) ? host : DefaultHost; + + if (pghost) + free(pghost); + pghost = strdup(temp); + + temp = (port) ? port : DefaultPort; + + if (pgport) + free(pgport); + pgport = strdup(temp); + + temp = (option) ? option : DefaultOption; + + if (pgoption) + free(pgoption); + pgoption = strdup(temp); + + temp = (tty) ? tty : DefaultTty; + + if (pgtty) + free(pgtty); + pgtty = strdup(temp); +} + +// default destrutor +// frees allocated memory for internal structures +PGenv::~PGenv() +{ + if (pgauth) + free(pgauth); + if (pghost) + free(pghost); + if (pgport) + free(pgport); + if (pgoption) + free(pgoption); + if (pgtty) + free(pgtty); +} |