summaryrefslogtreecommitdiff
path: root/open-vm-tools/vgauth/common/prefs.h
diff options
context:
space:
mode:
Diffstat (limited to 'open-vm-tools/vgauth/common/prefs.h')
-rw-r--r--open-vm-tools/vgauth/common/prefs.h194
1 files changed, 194 insertions, 0 deletions
diff --git a/open-vm-tools/vgauth/common/prefs.h b/open-vm-tools/vgauth/common/prefs.h
new file mode 100644
index 00000000..5523e5f8
--- /dev/null
+++ b/open-vm-tools/vgauth/common/prefs.h
@@ -0,0 +1,194 @@
+/*********************************************************
+ * Copyright (C) 2011-2015 VMware, Inc. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation version 2.1 and no later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ *********************************************************/
+
+/**
+ * @file prefs.h --
+ *
+ * Service preference definitions.
+ *
+ * @addtogroup vgauth_prefs
+ * @{
+ */
+
+#ifndef _PREFS_H_
+#define _PREFS_H_
+
+#include <glib.h>
+
+
+typedef struct _PrefHandle {
+ GKeyFile *keyFile;
+ char *fileName;
+} *PrefHandle;
+
+PrefHandle Pref_Init(const gchar *configFilename);
+void Pref_Shutdown(PrefHandle ph);
+gchar *Pref_GetString(PrefHandle ph,
+ const gchar *prefName,
+ const gchar *groupName,
+ const char *defaultVal);
+int Pref_GetInt(PrefHandle ph,
+ const gchar *prefName,
+ const gchar *groupName,
+ int defaultVal);
+gboolean Pref_GetBool(PrefHandle ph,
+ const gchar *prefName,
+ const gchar *groupName,
+ gboolean defaultVal);
+
+void Pref_LogAllEntries(const PrefHandle ph);
+
+
+/*
+ * Location of the prefs file. Windows expects to find it in the
+ * registry.
+ */
+#ifdef _WIN32
+#define VGAUTH_REGISTRY_KEY "SOFTWARE\\VMware, Inc.\\VMware VGAuth"
+#define VGAUTH_REGISTRY_PREFFILE "PreferencesFile"
+// fallback value if registry isn't set
+#define VGAUTH_PREF_CONFIG_FILENAME "c:\\Program Files\\VMware\\VMware Tools\\vgauth.conf"
+#else
+#define VGAUTH_PREF_CONFIG_FILENAME "/etc/vmware-tools/vgauth.conf"
+// XXX temp til installer tweaks its location
+#define VGAUTH_PREF_CONFIG_FILENAME_OLD "/etc/vmware/vgauth.conf"
+#endif
+
+/*
+ * Preferences
+ *
+ * Glib configuration is similar to Windows .ini files.
+ *
+ * It uses a simple name=value syntax, with preferences separated by groups.
+ * Groupnames are delineated with '[' and ']'.
+ * Unlike Windows, glib requires at least one group.
+ *
+ * @verbatim
+# Sample configuration
+# Note -- do not use '"'s around strings, they will be treated as part
+# of the string. Also be sure to use a double '\' in Windows filenames,
+# since '\' is the escape character, eg c:\\Program Files\\VMware\\schemas"
+# String values must be in UTF8.
+#
+[service]
+logfile=/tmp/log.out
+samlSchemaDir=/usr/lib/vmware-vgauth/schemas
+aliasStoreDir=/var/lib/vmware/VGAuth/aliasStore
+loglevel=normal
+enableLogging=true
+enableCoreDumps=true
+clockSkewAdjustment = 300
+
+[ticket]
+ticketTTL=3600
+
+[auditing]
+auditSuccessEvents=true
+
+[localization]
+msgCatalog = /etc/vmware-tools/vgauth/messages
+# EOF
+ @endverbatim
+ * See http://developer.gnome.org/glib/2.28/glib-Key-value-file-parser.html#glib-Key-value-file-parser.description
+ */
+
+/** Service group name. */
+#define VGAUTH_PREF_GROUP_NAME_SERVICE "service"
+
+/*
+ * Pref names
+ */
+/** Whether to log to a file. */
+#define VGAUTH_PREF_LOGTOFILE "enableLogging"
+/** Whether to allow core dumps. */
+#define VGAUTH_PREF_ALLOW_CORE "enableCoreDumps"
+/** The location of the logfile. */
+#define VGAUTH_PREF_NAME_LOGFILE "logfile"
+/** The logging level. */
+#define VGAUTH_PREF_NAME_LOGLEVEL "loglevel"
+/** Maxiumum number of old log files to be kept. */
+#define VGAUTH_PREF_NAME_MAX_OLD_LOGFILES "maxOldLogFiles"
+/** Maxiumum size in MB of each log file. */
+#define VGAUTH_PREF_NAME_MAX_LOGSIZE "maxLogSize"
+/** Number of seconds a specific user's listen connection will go unreferenced until it is discarded. */
+#define VGAUTH_PREF_NAME_LISTEN_TTL "listenTTL"
+/** Maximum number of data connections allowed for a non privileged user */
+#define VGAUTH_PREF_NAME_MAX_DATA_CONNECTIONS_PER_USER \
+ "maxDataConnectionsPerUser"
+/** Where the XML schema files used for SAML parsing were installed. */
+#define VGAUTH_PREF_SAML_SCHEMA_DIR "samlSchemaDir"
+/** The location of the idstore */
+#define VGAUTH_PREF_ALIASSTORE_DIR "aliasStoreDir"
+/** The number of seconds slack allowed in either direction in SAML token date checks. */
+#define VGAUTH_PREF_CLOCK_SKEW_SECS "clockSkewAdjustment"
+
+/** Ticket group name. */
+#define VGAUTH_PREF_GROUP_NAME_TICKET "ticket"
+
+/** Number of seconds a ticket will go unreferenced until it is discarded. */
+#define VGAUTH_PREF_NAME_TICKET_TTL "ticketTTL"
+
+/** Auditing group name. */
+#define VGAUTH_PREF_GROUP_NAME_AUDIT "auditing"
+
+/** Whether to generate audit events for successful operations. */
+#define VGAUTH_PREF_AUDIT_SUCCESS "auditSuccessEvents"
+
+/** SSPI group name. */
+#define VGAUTH_PREF_GROUP_NAME_SSPI "sspi"
+
+/**
+ * Number of seconds within which a SSPI authentication handshake must be
+ * completed or it is discarded. Default is ten minutes.
+ */
+#define VGAUTH_PREF_NAME_SSPI_HANDSHAKE_TTL "sspiHandshakeTTL"
+
+
+/** Localization group name. */
+#define VGAUTH_PREF_GROUP_NAME_LOCALIZATION "localization"
+
+/** Where the localized version of the messages were installed. */
+#define VGAUTH_PREF_LOCALIZATION_DIR "msgCatalog"
+
+/*
+ * Pref values
+ */
+
+/** Normal logging level; informational messages and errors. */
+#define SERVICE_LOGLEVEL_NORMAL "normal"
+/** Normal logging level plus debug messages. */
+#define SERVICE_LOGLEVEL_VERBOSE "verbose"
+
+/** @} */
+
+/*
+ * Default values for the preferences. These should be defined next to the
+ * preference name they refer to, but then they would show up in the generated
+ * documentation.
+ */
+
+#define VGAUTH_PREF_DEFAULT_SSPI_HANDSHAKE_TTL (10 * 60)
+
+#define VGAUTH_PREF_DEFAULT_LOCALIZATION_CATALOG "."
+
+#define VGAUTH_PREF_DEFAULT_MAX_DATA_CONNECTIONS_PER_USER 5
+
+#define VGAUTH_PREF_DEFAULT_CLOCK_SKEW_SECS (300)
+
+#endif // _PREFS_H_
+