* This module implementsserver commands related to the display and
* manipulation of user "bio" files.
*
- * Copyright (c) 1987-2020 by the citadel.org team
+ * Copyright (c) 1987-2021 by the citadel.org team
*
* This program is open source software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
syslog(LOG_DEBUG, "Importing old style bio files into the message base");
- filedir = opendir (ctdl_bio_dir);
+ filedir = opendir("bio");
if (filedir == NULL) {
return;
}
(filedir_entry->d_name[1] == '.'))
continue;
- snprintf(path, PATH_MAX, "%s/%s", ctdl_bio_dir, filedir_entry->d_name);
+ snprintf(path, PATH_MAX, "bio/%s", filedir_entry->d_name);
if (d_type == DT_UNKNOWN) {
if (lstat(path, &s) == 0) {
d_type = IFTODT(s.st_mode);
}
}
closedir(filedir);
- rmdir(ctdl_bio_dir);
+ rmdir("bio");
}
syslog(LOG_INFO, " ");
syslog(LOG_INFO, "%s", libcitadel_version_string());
-#ifdef HAVE_RUN_DIR
- /* on some dists rundir gets purged on startup. so we need to recreate it. */
-
- if (stat(ctdl_run_dir, &filestats) == -1) {
-#ifdef HAVE_GETPWUID_R
-#ifdef SOLARIS_GETPWUID
- pwp = getpwuid_r(ctdluid, &pw, pwbuf, sizeof(pwbuf));
-#else // SOLARIS_GETPWUID
- getpwuid_r(ctdluid, &pw, pwbuf, sizeof(pwbuf), &pwp);
-#endif // SOLARIS_GETPWUID
-#else // HAVE_GETPWUID_R
- pwp = NULL;
-#endif // HAVE_GETPWUID_R
-
- if ((mkdir(ctdl_run_dir, 0755) != 0) && (errno != EEXIST)) {
- syslog(LOG_ERR, "main: unable to create run directory [%s]: %m", ctdl_run_dir);
- }
+ if ((mkdir(ctdl_run_dir, 0755) != 0) && (errno != EEXIST)) {
+ syslog(LOG_ERR, "main: unable to create run directory [%s]: %m", ctdl_run_dir);
+ }
- if (chown(ctdl_run_dir, ctdluid, (pwp==NULL)?-1:pw.pw_gid) != 0) {
- syslog(LOG_ERR, "main: unable to set the access rights for [%s]: %m", ctdl_run_dir);
- }
+ if (chown(ctdl_run_dir, ctdluid, (pwp==NULL)?-1:pw.pw_gid) != 0) {
+ syslog(LOG_ERR, "main: unable to set the access rights for [%s]: %m", ctdl_run_dir);
}
-#endif
ctdl_lockfile(1);
init_sysdep(); // Initialize...
/*
* citadel_dirs.c : calculate pathnames for various files used in the Citadel system
*
- * Copyright (c) 1987-2018 by the citadel.org team
+ * Copyright (c) 1987-2021 by the citadel.org team
*
* This program is open source software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3.
/* our directories... */
char ctdl_home_directory[PATH_MAX] = "";
-char ctdl_bio_dir[PATH_MAX]="bio";
char ctdl_data_dir[PATH_MAX]="data";
char ctdl_file_dir[PATH_MAX]="files";
char ctdl_shared_dir[PATH_MAX]="";
char ctdl_message_dir[PATH_MAX]="messages";
char ctdl_usrpic_dir[PATH_MAX]="userpics";
char ctdl_bbsbase_dir[PATH_MAX]="";
-char ctdl_etc_dir[PATH_MAX]="";
char ctdl_autoetc_dir[PATH_MAX]="";
/* attention! this may be non volatile on some oses */
char ctdl_run_dir[PATH_MAX]="";
basedir=ETC_DIR;
#endif
COMPUTE_DIRECTORY(ctdl_netcfg_dir);
- COMPUTE_DIRECTORY(ctdl_etc_dir);
StripSlashes(ctdl_netcfg_dir, 1);
- StripSlashes(ctdl_etc_dir, 1);
#ifndef HAVE_UTILBIN_DIR
basedir=ctdldir;
#else
basedir=DATA_DIR;
#endif
- COMPUTE_DIRECTORY(ctdl_bio_dir);
COMPUTE_DIRECTORY(ctdl_data_dir);
COMPUTE_DIRECTORY(ctdl_file_dir);
COMPUTE_DIRECTORY(ctdl_image_dir);
COMPUTE_DIRECTORY(ctdl_usrpic_dir);
COMPUTE_DIRECTORY(ctdl_bbsbase_dir);
- StripSlashes(ctdl_bio_dir, 1);
StripSlashes(ctdl_data_dir, 1);
StripSlashes(ctdl_file_dir, 1);
StripSlashes(ctdl_image_dir, 1);
snprintf(file_mail_aliases,
sizeof file_mail_aliases,
"%smail.aliases",
-#ifdef HAVE_ETC_DIR
- ctdl_etc_dir
-#else
ctdl_spool_dir
-#endif
);
StripSlashes(file_mail_aliases, 0);
- DBG_PRINT(ctdl_bio_dir);
DBG_PRINT(ctdl_data_dir);
DBG_PRINT(ctdl_file_dir);
DBG_PRINT(ctdl_image_dir);
DBG_PRINT(ctdl_key_dir);
DBG_PRINT(ctdl_message_dir);
DBG_PRINT(ctdl_usrpic_dir);
- DBG_PRINT(ctdl_etc_dir);
DBG_PRINT(ctdl_run_dir);
DBG_PRINT(ctdl_spool_dir);
DBG_PRINT(ctdl_netdigest_dir);
/*
* Generate an associated file name for a room
*/
-size_t assoc_file_name(char *buf, size_t n,
- struct ctdlroom *qrbuf, const char *prefix)
-{
+size_t assoc_file_name(char *buf, size_t n, struct ctdlroom *qrbuf, const char *prefix) {
return snprintf(buf, n, "%s%ld", prefix, qrbuf->QRnumber);
}
-void remove_digest_file(struct ctdlroom *room)
-{
+
+void remove_digest_file(struct ctdlroom *room) {
char buf[PATH_MAX];
- snprintf(buf, PATH_MAX, "%s/%ld.eml",
- ctdl_netdigest_dir,
- room->QRnumber);
+ snprintf(buf, PATH_MAX, "%s/%ld.eml", ctdl_netdigest_dir, room->QRnumber);
StripSlashes(buf, 0);
unlink(buf);
}
-FILE *create_digest_file(struct ctdlroom *room, int forceCreate)
-{
+
+FILE *create_digest_file(struct ctdlroom *room, int forceCreate) {
struct stat stbuf;
char fn[PATH_MAX];
int exists;
FILE *fp;
- snprintf(fn, PATH_MAX, "%s/%ld.eml",
- ctdl_netdigest_dir,
- room->QRnumber);
+ snprintf(fn, PATH_MAX, "%s/%ld.eml", ctdl_netdigest_dir, room->QRnumber);
StripSlashes(fn, 0);
exists = stat(fn, &stbuf);
fp = fopen(fn, "w+");
if (fp == NULL) {
- syslog(LOG_EMERG,
- "failed to create digest file %s: %s",
- fn,
- strerror(errno));
+ syslog(LOG_ERR, "failed to create digest file %s: %s", fn, strerror(errno));
}
return fp;
}
-int create_dir(char *which, long ACCESS, long UID, long GID)
-{
+int create_dir(char *which, long ACCESS, long UID, long GID) {
int rv;
rv = mkdir(which, ACCESS);
if ((rv == -1) && (errno != EEXIST)) {
- syslog(LOG_EMERG,
+ syslog(LOG_ERR,
"failed to create directory %s: %s",
which,
strerror(errno));
}
rv = chmod(which, ACCESS);
if (rv == -1) {
- syslog(LOG_EMERG,
+ syslog(LOG_ERR,
"failed to set permissions for directory %s: %s",
which,
strerror(errno));
}
rv = chown(which, UID, GID);
if (rv == -1) {
- syslog(LOG_EMERG,
+ syslog(LOG_ERR,
"failed to set owner for directory %s: %s",
which,
strerror(errno));
return rv;
}
-int create_run_directories(long UID, long GID)
-{
+
+int create_run_directories(long UID, long GID) {
int rv = 0;
rv += create_dir(ctdl_message_dir , S_IRUSR|S_IWUSR|S_IXUSR, UID, -1);
rv += create_dir(ctdl_file_dir , S_IRUSR|S_IWUSR|S_IXUSR, UID, -1);