Author: pjd
Date: Mon Oct 17 09:54:07 2011
New Revision: 226461
URL: http://svn.freebsd.org/changeset/base/226461

Log:
  When path to the configuration file is relative, obtain full path,
  so we can always find the file, even after daemonizing and changing
  working directory to /.
  
  MFC after:    1 week

Modified:
  head/sbin/hastd/hastd.c

Modified: head/sbin/hastd/hastd.c
==============================================================================
--- head/sbin/hastd/hastd.c     Mon Oct 17 06:10:32 2011        (r226460)
+++ head/sbin/hastd/hastd.c     Mon Oct 17 09:54:07 2011        (r226461)
@@ -1168,6 +1168,22 @@ main(int argc, char *argv[])
                pjdlog_errno(LOG_WARNING, "Unable to open or create pidfile");
        }
 
+       /*
+        * When path to the configuration file is relative, obtain full path,
+        * so we can always find the file, even after daemonizing and changing
+        * working directory to /.
+        */
+       if (cfgpath[0] != '/') {
+               const char *newcfgpath;
+
+               newcfgpath = realpath(cfgpath, NULL);
+               if (newcfgpath == NULL) {
+                       pjdlog_exit(EX_CONFIG,
+                           "Unable to obtain full path of %s", cfgpath);
+               }
+               cfgpath = newcfgpath;
+       }
+
        cfg = yy_config_parse(cfgpath, true);
        PJDLOG_ASSERT(cfg != NULL);
 
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to