diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2011-11-10 02:36:40 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2011-11-10 02:36:40 +0000 |
commit | 52cd682405f7a052d45d83b66cc75f19316ceffe (patch) | |
tree | 6b76eeddb2d4682db61f8e38462413bc40b59a3d /sca-cpp/trunk/components/constdb | |
parent | 629c1f267e5f7a835891e36ebdae8404740f13e2 (diff) |
Enable multiple apps to co-exist under different paths in a single Virtual Host and Internet domain.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1200105 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r-- | sca-cpp/trunk/components/constdb/tinycdb.hpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/sca-cpp/trunk/components/constdb/tinycdb.hpp b/sca-cpp/trunk/components/constdb/tinycdb.hpp index e26001dc59..514133b0e1 100644 --- a/sca-cpp/trunk/components/constdb/tinycdb.hpp +++ b/sca-cpp/trunk/components/constdb/tinycdb.hpp @@ -90,6 +90,18 @@ const bool free(const buffer&b) { } /** + * Convert a database name to an absolute path. + */ +const string absdbname(const string& name) { + if (length(name) == 0 || c_str(name)[0] == '/') + return name; + char cwd[512]; + if (getcwd(cwd, sizeof(cwd)) == NULL) + return name; + return string(cwd) + "/" + name; +} + +/** * Represents a TinyCDB connection. */ class TinyCDB { @@ -99,7 +111,7 @@ public: st.st_ino = 0; } - TinyCDB(const string& name) : owner(true), name(name), fd(-1) { + TinyCDB(const string& name) : owner(true), name(absdbname(name)), fd(-1) { debug(name, "tinycdb::tinycdb::name"); st.st_ino = 0; } |