From bb1031f933fcc7d60358028f0f3e1bdf8ba7aa8f Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Mon, 29 Oct 2007 15:23:19 +0000 Subject: [PATCH] * Reverted the code I checked in last week that created a new directory full of files for POP3 UIDL maps. It was getting ugly and I realized that we could instead extend the S_NETCONFIGS database to perform the same function. * Performed a few minor cleanups to code that was generating compiler warnings --- citadel/chkpw.c | 6 +++-- citadel/citadel_dirs.c | 2 -- citadel/citadel_dirs.h | 1 - citadel/citadel_ipc.c | 3 ++- citadel/modules/pop3client/serv_pop3client.c | 26 +++++++++----------- citadel/setup.c | 4 --- citadel/stress.c | 1 + 7 files changed, 19 insertions(+), 24 deletions(-) diff --git a/citadel/chkpw.c b/citadel/chkpw.c index c2cc5cd65..5bdb571c1 100644 --- a/citadel/chkpw.c +++ b/citadel/chkpw.c @@ -105,7 +105,8 @@ int main(int argc, char **argv) { } while(1) { printf("\n\nUsername: "); - gets(buf); + fgets(buf, sizeof buf, stdin); + buf[strlen(buf)-1] = 0; p = getpwnam(buf); if (p == NULL) { printf("Not found\n"); @@ -114,7 +115,8 @@ int main(int argc, char **argv) { uid = p->pw_uid; printf(" uid: %d\n", uid); printf("Password: "); - gets(buf); + fgets(buf, sizeof buf, stdin); + buf[strlen(buf)-1] = 0; validpw(uid, buf); } } diff --git a/citadel/citadel_dirs.c b/citadel/citadel_dirs.c index 86f2ecc86..29552761e 100644 --- a/citadel/citadel_dirs.c +++ b/citadel/citadel_dirs.c @@ -45,7 +45,6 @@ char ctdl_spool_dir[PATH_MAX]="network"; 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]=""; @@ -113,7 +112,6 @@ void calc_dirs_n_files(int relh, int home, const char *relhome,const char *ctdl basedir=ETC_DIR; #endif COMPUTE_DIRECTORY(ctdl_netcfg_dir); - COMPUTE_DIRECTORY(ctdl_uidlmap_dir); COMPUTE_DIRECTORY(ctdl_etc_dir); #ifndef HAVE_UTILBIN_DIR diff --git a/citadel/citadel_dirs.h b/citadel/citadel_dirs.h index c24e59729..16a4b6297 100644 --- a/citadel/citadel_dirs.h +++ b/citadel/citadel_dirs.h @@ -25,7 +25,6 @@ extern char ctdl_spool_dir[PATH_MAX]; 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]; diff --git a/citadel/citadel_ipc.c b/citadel/citadel_ipc.c index b123a46dd..26751df7b 100644 --- a/citadel/citadel_ipc.c +++ b/citadel/citadel_ipc.c @@ -2858,7 +2858,8 @@ int ReadNetworkChunk(CtdlIPC* ipc) { fd_set read_fd; - int ret, err; + int ret = 0; + int err = 0; struct timeval tv; tv.tv_sec = 1; diff --git a/citadel/modules/pop3client/serv_pop3client.c b/citadel/modules/pop3client/serv_pop3client.c index 037c1118b..8421d175d 100644 --- a/citadel/modules/pop3client/serv_pop3client.c +++ b/citadel/modules/pop3client/serv_pop3client.c @@ -53,7 +53,7 @@ struct uidl { struct pop3aggr *palist = NULL; -void pop3_do_fetching(char *roomname, char *pop3host, char *pop3user, char *pop3pass) +void pop3_do_fetching(char *roomname, char *pop3host, char *pop3user, char *pop3pass, int delete_from_server) { int sock; char buf[SIZ]; @@ -167,13 +167,15 @@ void pop3_do_fetching(char *roomname, char *pop3host, char *pop3user, char *pop3 /* Do Something With It (tm) */ msgnum = CtdlSubmitMsg(msg, NULL, roomname); if (msgnum > 0L) { - /* Message has been committed to the store, so delete it from the remote server */ - snprintf(buf, sizeof buf, "DELE %d\r", msglist[i]); - lprintf(CTDL_DEBUG, "<%s\n", buf); - if (sock_puts(sock, buf) <0) goto bail; - if (sock_getln(sock, buf, sizeof buf) < 0) goto bail; - lprintf(CTDL_DEBUG, ">%s\n", buf); - if (strncasecmp(buf, "+OK", 3)) goto bail; + /* Message has been committed to the store */ + + if (delete_from_server) { + snprintf(buf, sizeof buf, "DELE %d\r", msglist[i]); + lprintf(CTDL_DEBUG, "<%s\n", buf); + if (sock_puts(sock, buf) <0) goto bail; + if (sock_getln(sock, buf, sizeof buf) < 0) goto bail; + lprintf(CTDL_DEBUG, ">%s\n", buf); /* errors here are non-fatal */ + } } CtdlFreeMessage(msg); } @@ -258,16 +260,12 @@ void pop3client_scan(void) { 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); while (palist != NULL) { - pop3_do_fetching(palist->roomname, palist->pop3host, palist->pop3user, palist->pop3pass); + /* FIXME set delete_from_server to 1 if the user wants to */ + pop3_do_fetching(palist->roomname, palist->pop3host, palist->pop3user, palist->pop3pass, 0); pptr = palist; palist = palist->next; free(pptr); diff --git a/citadel/setup.c b/citadel/setup.c index c2d4bf78c..3dff70e1a 100644 --- a/citadel/setup.c +++ b/citadel/setup.c @@ -1229,10 +1229,6 @@ NEW_INST: 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"); diff --git a/citadel/stress.c b/citadel/stress.c index 20c91fcff..038c6feb5 100644 --- a/citadel/stress.c +++ b/citadel/stress.c @@ -78,6 +78,7 @@ char* const message = # include # endif #endif +#include "tools.h" #include "citadel_ipc.h" #ifndef HAVE_PTHREAD_H -- 2.39.2