* add function to create the directory tree citadel needs to run (moved from setup.c)
authorWilfried Göesgens <willi@citadel.org>
Thu, 29 Jul 2010 17:52:52 +0000 (17:52 +0000)
committerWilfried Göesgens <willi@citadel.org>
Thu, 29 Jul 2010 17:52:52 +0000 (17:52 +0000)
citadel/include/citadel_dirs.h
citadel/utillib/citadel_dirs.c

index 19856270a91d532b980823d0293920c0f8118818..05ce0fc37795716b39da88125023900a1265a19d 100644 (file)
@@ -60,7 +60,11 @@ extern char file_funambol_msg[PATH_MAX];
 extern void calc_dirs_n_files(int relh, int home, const char *relhome, char  *ctdldir, int dbg);
 
 
-void assoc_file_name(char *buf, size_t n,
-                    struct ctdlroom *qrbuf, const char *prefix);
+extern void create_run_directories(long UID, long GUID);
+
+extern void assoc_file_name(char *buf, 
+                           size_t n,
+                           struct ctdlroom *qrbuf, 
+                           const char *prefix);
 
 #endif /* __CITADEL_DIRS_H */
index 1aecdcded837b4ed4046fed42ba496169aab899c..a888cf2348467565d08d3527d59a319d3f9c1421 100644 (file)
@@ -379,3 +379,30 @@ void assoc_file_name(char *buf, size_t n,
        snprintf(buf, n, "%s%ld", prefix, qrbuf->QRnumber);
 }
 
+
+int create_dir(char *which, long ACCESS, long UID, long GID)
+{
+       int rv;
+       rv = mkdir(which, ACCESS);
+       rv = chmod(which, ACCESS);
+       rv = chown(which, UID, GID);
+       return rv;
+}
+
+void create_run_directories(long UID, long GID)
+{
+       int rv;
+
+       rv = create_dir(ctdl_info_dir    , 0700, UID, -1);
+       rv = create_dir(ctdl_bio_dir     , 0700, UID, -1);
+       rv = create_dir(ctdl_usrpic_dir  , 0700, UID, -1);
+       rv = create_dir(ctdl_message_dir , 0700, UID, -1);
+       rv = create_dir(ctdl_hlp_dir     , 0700, UID, -1);
+       rv = create_dir(ctdl_image_dir   , 0700, UID, -1);
+       rv = create_dir(ctdl_bb_dir      , 0700, UID, -1);
+       rv = create_dir(ctdl_file_dir    , 0700, UID, -1);
+       rv = create_dir(ctdl_netcfg_dir  , 0700, UID, -1);
+       rv = create_dir(ctdl_key_dir     , 0700, UID, -1);
+       rv = create_dir(ctdl_run_dir     , 0700, UID, GID);
+
+}