diff options
author | Simon Riggs <simon@2ndQuadrant.com> | 2013-03-27 11:45:42 +0000 |
---|---|---|
committer | Simon Riggs <simon@2ndQuadrant.com> | 2013-03-27 11:45:42 +0000 |
commit | bc5334d8679c428a709d150666b288171795bd76 (patch) | |
tree | fc964f441b4dd08a483987762771c936bcaf7959 /src/backend/utils/init/miscinit.c | |
parent | f7f210b5c4c9c76e87fffc5abef7dea752d1ac9a (diff) | |
download | postgresql-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.c | 19 |
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 |