#include #include #include #include #ifndef WIN32 #include #endif #include #include configt config; void makepath(const std::string &_path) { char *path, *tptr; std::string checkpath=_path+"."; if(access(checkpath.c_str(), 00)!=0) { path=strdup(_path.c_str()); tptr=strrchr(path, DIRCHAR[0]); if(tptr!=NULL) { if(tptr[1]!=0) tptr[0]=0; } mkdir(path, 0700); free(path); } } bool configt::read(const char *forcedboxname) { strmaxcpy(dboxdir, DKIMAP4DIR, TEXTLEN-1); midcount=0; if(forcedboxname[0]==0) { if(gethostname(boxname, TEXTLEN-1)!=0) boxname[0]=0; } else strmaxcpy(boxname, forcedboxname, TEXTLEN-1); domain[0]=0; boxdir[0]=0; umask(077); std::string path; makepath(config.dboxdir); getdboxsystemdir(path, config.dboxdir); makepath(path); getdboxtempdir(path, config.dboxdir); makepath(path); getdboxboxdir(path, config.dboxdir, config.boxname); makepath(path); strmaxcpy(config.boxdir, path.c_str(), DIRLEN-1); //getboxlogdir(path, config.boxdir); makepath(path); getboxlockdir(path, config.boxdir); makepath(path); getboxuserdir(path, config.boxdir, ""); makepath(path); return FALSE; }