char ctdl_netout_dir[PATH_MAX]="network/spoolout";
char ctdl_netin_dir[PATH_MAX]="network/spoolin";
char ctdl_netcfg_dir[PATH_MAX]="netconfigs";
+char ctdl_uidlmap_dir[PATH_MAX]="uidlmaps";
char ctdl_utilbin_dir[PATH_MAX]="";
char ctdl_sbin_dir[PATH_MAX]="";
char ctdl_bin_dir[PATH_MAX]="";
basedir=ETC_DIR;
#endif
COMPUTE_DIRECTORY(ctdl_netcfg_dir);
+ COMPUTE_DIRECTORY(ctdl_uidlmap_dir);
COMPUTE_DIRECTORY(ctdl_etc_dir);
#ifndef HAVE_UTILBIN_DIR
extern char ctdl_netout_dir[PATH_MAX];
extern char ctdl_netin_dir[PATH_MAX];
extern char ctdl_netcfg_dir[PATH_MAX];
+extern char ctdl_uidlmap_dir[PATH_MAX];
extern char ctdl_bbsbase_dir[PATH_MAX];
extern char ctdl_sbin_dir[PATH_MAX];
extern char ctdl_bin_dir[PATH_MAX];
#include <ctype.h>
#include <string.h>
#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
#include "citadel.h"
#include "server.h"
#include "citserver.h"
#include "clientsocket.h"
#include "msgbase.h"
#include "internet_addressing.h"
+#include "citadel_dirs.h"
struct pop3aggr {
struct pop3aggr *next;
if (doing_pop3client) return;
doing_pop3client = 1;
+ /* We can silently fail on these if the directory already exists. */
+ mkdir(ctdl_uidlmap_dir, 0700);
+ chmod(ctdl_uidlmap_dir, 0700);
+ chown(ctdl_uidlmap_dir, config.c_ctdluid, -1);
+
lprintf(CTDL_DEBUG, "pop3client started\n");
ForEachRoom(pop3client_scan_room, NULL);
chmod(ctdl_netcfg_dir, 0700);
chown(ctdl_netcfg_dir, config.c_ctdluid, -1);
+ mkdir(ctdl_uidlmap_dir, 0700);
+ chmod(ctdl_uidlmap_dir, 0700);
+ chown(ctdl_uidlmap_dir, config.c_ctdluid, -1);
+
/* Delete files and directories used by older Citadel versions */
system("exec /bin/rm -fr ./rooms ./chatpipes ./expressmsgs ./sessions 2>/dev/null");
unlink("citadel.log");