/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure
*
* This program is free software; you can redistribute it and/or modify
*
* ---
*
- * See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
- * related information and legal notices. It is expected that any future
- * projects/authors will amend these files as needed.
+ * See files README, COPYING and CREDITS in the root of the source
+ * tree for related information and legal notices. It is expected
+ * that future projects/authors will amend these files as needed.
*
* ---
*
* Ken Stevens, 1995
* Doug Hay, 1998
* Steve McClure, 2000
+ * Ron Koenderink, 2004
*/
-#include "misc.h"
-#include "tel.h"
-#include <stdio.h>
-#include <fcntl.h>
-#if !defined(_WIN32)
-#include <sys/file.h>
-#include <unistd.h>
+#include <config.h>
+
+#if defined(_WIN32) && defined(__GNUC__)
+#include <io.h>
#endif
+#include <stdio.h>
+#include <time.h>
+#include "tel.h"
#include "update.h"
-#include "optlist.h"
-#include "common.h"
static int copy_and_expire(FILE *annfp, FILE *tmpfp,
char *tmp_filename, time_t expiry_time);
char tmp_filename[1024];
int copy_file;
+ if (anno_keep_days < 0)
+ return;
+
time(&now);
- old = now - days(ANNO_KEEP_DAYS);
+ old = now - days(anno_keep_days);
logerror("Deleting annos older than %s", ctime(&old));
if ((annfp = fopen(annfil, "rb")) == NULL) {
if (rename(tmp_filename, annfil) != 0)
logerror("can't move temporary telegram file %s "
"to telegram file %s", tmp_filename, annfil);
+ } else {
+ if (remove(tmp_filename) < 0)
+ logerror("can't delete telegram file %s", tmp_filename);
}
}
{
struct telstr tgm;
int writeit;
- char message[MAXTELSIZE];
+ char message[MAXTELSIZE]; /* UTF-8 */
int deleted = 0;
int saved = 0;
int first = 1;
- while (fread((void *)&tgm, sizeof(tgm), 1, annfp) == 1) {
+ while (fread(&tgm, sizeof(tgm), 1, annfp) == 1) {
writeit = 1;
if (tgm.tel_length < 0 || tgm.tel_length > MAXTELSIZE) {
logerror("bad telegram file header (length=%ld)",
writeit = 0;
if (writeit) {
- if (fwrite((void *)&tgm, sizeof(tgm), 1, tmpfp) != 1) {
+ if (fwrite(&tgm, sizeof(tgm), 1, tmpfp) != 1) {
logerror("error writing header to temporary "
"telegram file %s", tmp_filename);
return 0;
++saved;
} else
++deleted;
- if (fread(message, sizeof(char), tgm.tel_length, annfp) !=
+ if (fread(message, 1, tgm.tel_length, annfp) !=
(size_t)tgm.tel_length) {
logerror("error reading body from telegram file %s",
annfil);
return 0;
}
if (writeit) {
- if (fwrite(message, sizeof(char), tgm.tel_length, tmpfp) !=
+ if (fwrite(message, 1, tgm.tel_length, tmpfp) !=
(size_t)tgm.tel_length) {
logerror("error writing body to temporary telegram "
"file %s", tmp_filename);