aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/init/miscinit.c
diff options
context:
space:
mode:
authorSimon Riggs <simon@2ndQuadrant.com>2013-03-27 11:45:42 +0000
committerSimon Riggs <simon@2ndQuadrant.com>2013-03-27 11:45:42 +0000
commitbc5334d8679c428a709d150666b288171795bd76 (patch)
treefc964f441b4dd08a483987762771c936bcaf7959 /src/backend/utils/init/miscinit.c
parentf7f210b5c4c9c76e87fffc5abef7dea752d1ac9a (diff)
downloadpostgresql-bc5334d8679c428a709d150666b288171795bd76.tar.gz
postgresql-bc5334d8679c428a709d150666b288171795bd76.zip
Allow external recovery_config_directory
If required, recovery.conf can now be located outside of the data directory. Server needs read/write permissions on this directory.
Diffstat (limited to 'src/backend/utils/init/miscinit.c')
-rw-r--r--src/backend/utils/init/miscinit.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c
index 24ca97d55c7..3d48eb8c9d3 100644
--- a/src/backend/utils/init/miscinit.c
+++ b/src/backend/utils/init/miscinit.c
@@ -100,6 +100,25 @@ SetDataDir(const char *dir)
}
/*
+ * Set recovery config directory, but make sure it's an absolute path. Use this,
+ * never set RecoveryConfDir directly.
+ */
+void
+SetRecoveryConfDir(const char *dir)
+{
+ char *new;
+
+ AssertArg(dir);
+
+ /* If presented path is relative, convert to absolute */
+ new = make_absolute_path(dir);
+
+ if (RecoveryConfDir)
+ free(RecoveryConfDir);
+ RecoveryConfDir = new;
+}
+
+/*
* Change working directory to DataDir. Most of the postmaster and backend
* code assumes that we are in DataDir so it can use relative paths to access
* stuff in and under the data directory. For convenience during path