summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorin2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-05-24 17:37:47 +0800
committerin2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-05-24 17:37:47 +0800
commitf03d0717f20d47251703d880fd6b487abefcef67 (patch)
treeafd734943308ab168137d5d1f1a3965822aa3f8f
parentae18d6ceb1b44fdd6178844eb04ac8816038ea50 (diff)
downloadpttbbs-f03d0717f20d47251703d880fd6b487abefcef67.tar
pttbbs-f03d0717f20d47251703d880fd6b487abefcef67.tar.gz
pttbbs-f03d0717f20d47251703d880fd6b487abefcef67.tar.bz2
pttbbs-f03d0717f20d47251703d880fd6b487abefcef67.tar.lz
pttbbs-f03d0717f20d47251703d880fd6b487abefcef67.tar.xz
pttbbs-f03d0717f20d47251703d880fd6b487abefcef67.tar.zst
pttbbs-f03d0717f20d47251703d880fd6b487abefcef67.zip
discard 1998
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2019 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--include/proto.h1
-rw-r--r--mbbsd/record.c31
-rw-r--r--util/bbsmail.c11
3 files changed, 8 insertions, 35 deletions
diff --git a/include/proto.h b/include/proto.h
index a3e6c557..fb1c75a1 100644
--- a/include/proto.h
+++ b/include/proto.h
@@ -425,7 +425,6 @@ int get_record_keep(char *fpath, void *rptr, int size, int id, int *fd);
void prints(char *fmt, ...) GCC_CHECK_FORMAT(1,2);
int append_record(char *fpath, fileheader_t *record, int size);
int stampfile(char *fpath, fileheader_t *fh);
-int stampfilefd(char *fpath, fileheader_t *fh);
void stampdir(char *fpath, fileheader_t *fh);
int get_num_records(char *fpath, int size);
int get_records(char *fpath, void *rptr, int size, int id, int number);
diff --git a/mbbsd/record.c b/mbbsd/record.c
index d50fb611..c8393f6f 100644
--- a/mbbsd/record.c
+++ b/mbbsd/record.c
@@ -474,37 +474,6 @@ stampfile(char *fpath, fileheader_t * fh)
return 0;
}
-int
-stampfilefd(char *fpath, fileheader_t * fh)
-{
- char *ip = fpath;
- time_t dtime = COMMON_TIME;
- struct tm *ptime;
- int fd;
-
- if (access(fpath, X_OK | R_OK | W_OK))
- mkdir(fpath, 0755);
-
- while (*(++ip))
- ;
- *ip++ = '/';
-
- while( 1 ) {
- sprintf(ip, "M.%d.A.%3.3X", (int)++dtime, rand() & 0xFFF);
- if( (fd = open(fpath, O_CREAT | O_EXCL | O_WRONLY, 0644)) != -1 )
- break;
- if( errno != EEXIST )
- return -1;
- }
-
- memset(fh, 0, sizeof(fileheader_t));
- strlcpy(fh->filename, ip, sizeof(fh->filename));
- ptime = localtime(&dtime);
- snprintf(fh->date, sizeof(fh->date),
- "%2d/%02d", ptime->tm_mon + 1, ptime->tm_mday);
- return fd;
-}
-
void
stampdir(char *fpath, fileheader_t * fh)
{
diff --git a/util/bbsmail.c b/util/bbsmail.c
index 24065ef1..dd015099 100644
--- a/util/bbsmail.c
+++ b/util/bbsmail.c
@@ -78,7 +78,7 @@ void str_decode_M3(unsigned char *str);
int mail2bbs(char *userid)
{
- int uid, fd;
+ int uid;
fileheader_t mymail;
char genbuf[512], title[512], sender[512], filename[512], *ip, *ptr;
time_t tmp_time;
@@ -156,6 +156,9 @@ int mail2bbs(char *userid)
if( strchr(sender, '@') == NULL ) /* ¥Ñ local host ±H«H */
strcat(sender, "@" MYHOSTNAME);
+/* allocate a file for the new mail */
+ stampfile(filename, &mymail);
+
#ifdef HMM_USE_ANTI_SPAM
for (n = 0; notitle[n]; n++)
if (strstr(title, notitle[n]))
@@ -175,9 +178,11 @@ int mail2bbs(char *userid)
}
#endif
- if( (fd = stampfilefd(filename, &mymail)) == -1 ||
- (fout = fdopen(fd, "wt")) == NULL )
+ if ((fout = fopen(filename, "w")) == NULL)
+ {
+ printf("Cannot open %s\n", filename);
return -1;
+ }
if (!title[0])
sprintf(title, "¨Ó¦Û %.64s", sender);