Fixed group stat counter for user posted messages
This commit is contained in:
parent
76d22550a1
commit
0119dbe0f2
@ -72,6 +72,8 @@ v0.51.4 11-Apr-2004
|
|||||||
used if configured with --enable-experiment.
|
used if configured with --enable-experiment.
|
||||||
The users tag directory wasn't properly cleaned before a new
|
The users tag directory wasn't properly cleaned before a new
|
||||||
download session.
|
download session.
|
||||||
|
The message group stat counters were not updated when a user
|
||||||
|
posted a message at the bbs.
|
||||||
|
|
||||||
mball:
|
mball:
|
||||||
Added new experimental files database code which will only be
|
Added new experimental files database code which will only be
|
||||||
@ -88,6 +90,7 @@ v0.51.4 11-Apr-2004
|
|||||||
without a file header.
|
without a file header.
|
||||||
Added new experimental files database code which will only be
|
Added new experimental files database code which will only be
|
||||||
used if configured with --enable-experiment.
|
used if configured with --enable-experiment.
|
||||||
|
Message group setup now sets mode 660 for ~/etc/mgroups.data.
|
||||||
|
|
||||||
mbtask:
|
mbtask:
|
||||||
Removed debug logging for the disk thread.
|
Removed debug logging for the disk thread.
|
||||||
|
@ -64,7 +64,7 @@ static int removereturnto;
|
|||||||
*/
|
*/
|
||||||
extern char *replyaddr;
|
extern char *replyaddr;
|
||||||
extern int do_mailout;
|
extern int do_mailout;
|
||||||
|
extern int grecno;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -129,6 +129,7 @@ int rfc2ftn(FILE *fp)
|
|||||||
int sot_kludge = FALSE, eot_kludge = FALSE, tinyorigin = FALSE;
|
int sot_kludge = FALSE, eot_kludge = FALSE, tinyorigin = FALSE;
|
||||||
int needsplit, hdrsize, datasize, splitpart, forbidsplit, rfcheaders;
|
int needsplit, hdrsize, datasize, splitpart, forbidsplit, rfcheaders;
|
||||||
time_t Now;
|
time_t Now;
|
||||||
|
struct tm *l_date;
|
||||||
|
|
||||||
temp = calloc(4097, sizeof(char));
|
temp = calloc(4097, sizeof(char));
|
||||||
Syslog('m', "Entering rfc2ftn");
|
Syslog('m', "Entering rfc2ftn");
|
||||||
@ -670,16 +671,52 @@ int rfc2ftn(FILE *fp)
|
|||||||
Syslog('+', "Msg (%ld) to \"%s\", \"%s\"", Msg.Id, Msg.To, Msg.Subject);
|
Syslog('+', "Msg (%ld) to \"%s\", \"%s\"", Msg.Id, Msg.To, Msg.Subject);
|
||||||
do_mailout = TRUE;
|
do_mailout = TRUE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create fast scan index
|
||||||
|
*/
|
||||||
sprintf(temp, "%s/tmp/echomail.jam", getenv("MBSE_ROOT"));
|
sprintf(temp, "%s/tmp/echomail.jam", getenv("MBSE_ROOT"));
|
||||||
if ((qfp = fopen(temp, "a")) != NULL) {
|
if ((qfp = fopen(temp, "a")) != NULL) {
|
||||||
fprintf(qfp, "%s %lu\n", msgs.Base, Msg.Id);
|
fprintf(qfp, "%s %lu\n", msgs.Base, Msg.Id);
|
||||||
fclose(qfp);
|
fclose(qfp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Link messages
|
||||||
|
*/
|
||||||
rc = Msg_Link(msgs.Base, TRUE, CFG.slow_util);
|
rc = Msg_Link(msgs.Base, TRUE, CFG.slow_util);
|
||||||
if (rc != -1)
|
if (rc != -1)
|
||||||
Syslog('+', "Linked %d message%s", rc, (rc != 1) ? "s":"");
|
Syslog('+', "Linked %d message%s", rc, (rc != 1) ? "s":"");
|
||||||
else
|
else
|
||||||
Syslog('+', "Could not link messages");
|
Syslog('+', "Could not link messages");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Update statistical counters
|
||||||
|
*/
|
||||||
|
Now = time(NULL);
|
||||||
|
l_date = localtime(&Now);
|
||||||
|
msgs.LastPosted = time(NULL);
|
||||||
|
msgs.Posted.total++;
|
||||||
|
msgs.Posted.tweek++;
|
||||||
|
msgs.Posted.tdow[l_date->tm_wday]++;
|
||||||
|
msgs.Posted.month[l_date->tm_mon]++;
|
||||||
|
mgroup.LastDate = time(NULL);
|
||||||
|
mgroup.MsgsSent.total++;
|
||||||
|
mgroup.MsgsSent.tweek++;
|
||||||
|
mgroup.MsgsSent.tdow[l_date->tm_wday]++;
|
||||||
|
mgroup.MsgsSent.month[l_date->tm_mon]++;
|
||||||
|
UpdateMsgs();
|
||||||
|
|
||||||
|
sprintf(temp, "%s/etc/users.data", getenv("MBSE_ROOT"));
|
||||||
|
if ((qfp = fopen(temp, "r+"))) {
|
||||||
|
fread(&usrconfighdr, sizeof(usrconfighdr), 1, qfp);
|
||||||
|
fseek(qfp, usrconfighdr.hdrsize + (grecno * usrconfighdr.recsize), SEEK_SET);
|
||||||
|
if (fread(&usrconfig, usrconfighdr.recsize, 1, qfp) == 1) {
|
||||||
|
usrconfig.iPosted++;
|
||||||
|
fseek(qfp, usrconfighdr.hdrsize + (grecno * usrconfighdr.recsize), SEEK_SET);
|
||||||
|
fwrite(&usrconfig, usrconfighdr.recsize, 1, qfp);
|
||||||
|
}
|
||||||
|
fclose(qfp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Msg_Close();
|
Msg_Close();
|
||||||
}
|
}
|
||||||
|
@ -854,6 +854,29 @@ int Save_Msg(int IsReply, faddr *Dest)
|
|||||||
fclose(fp);
|
fclose(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strlen(msgs.Group)) {
|
||||||
|
sprintf(temp, "%s/etc/mgroups.data", getenv("MBSE_ROOT"));
|
||||||
|
if ((fp = fopen(temp, "r+")) != NULL) {
|
||||||
|
fread(&mgrouphdr, sizeof(mgrouphdr), 1, fp);
|
||||||
|
while ((fread(&mgroup, mgrouphdr.recsize, 1, fp)) == 1) {
|
||||||
|
if (!strcmp(msgs.Group, mgroup.Name)) {
|
||||||
|
mgroup.LastDate = time(NULL);
|
||||||
|
mgroup.MsgsSent.total++;
|
||||||
|
mgroup.MsgsSent.tweek++;
|
||||||
|
mgroup.MsgsSent.tdow[l_date->tm_wday]++;
|
||||||
|
mgroup.MsgsSent.month[l_date->tm_mon]++;
|
||||||
|
fseek(fp, - mgrouphdr.recsize, SEEK_CUR);
|
||||||
|
fwrite(&mgroup, mgrouphdr.recsize, 1, fp);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fclose(fp);
|
||||||
|
} else {
|
||||||
|
WriteError("$Save_Msg(): Can't open %s", temp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add quick mailscan info
|
* Add quick mailscan info
|
||||||
*/
|
*/
|
||||||
|
@ -72,7 +72,7 @@ int CountMGroup(void)
|
|||||||
mgroup.Active = TRUE;
|
mgroup.Active = TRUE;
|
||||||
fwrite(&mgroup, sizeof(mgroup), 1, fil);
|
fwrite(&mgroup, sizeof(mgroup), 1, fil);
|
||||||
fclose(fil);
|
fclose(fil);
|
||||||
chmod(ffile, 0640);
|
chmod(ffile, 0660);
|
||||||
return 2;
|
return 2;
|
||||||
} else
|
} else
|
||||||
return -1;
|
return -1;
|
||||||
@ -205,7 +205,7 @@ void CloseMGroup(int force)
|
|||||||
fclose(fi);
|
fclose(fi);
|
||||||
fclose(fo);
|
fclose(fo);
|
||||||
unlink(fout);
|
unlink(fout);
|
||||||
chmod(fin, 0640);
|
chmod(fin, 0660);
|
||||||
disk_reset();
|
disk_reset();
|
||||||
Syslog('+', "Updated \"mgroups.data\"");
|
Syslog('+', "Updated \"mgroups.data\"");
|
||||||
if (!force)
|
if (!force)
|
||||||
@ -213,7 +213,7 @@ void CloseMGroup(int force)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
chmod(fin, 0640);
|
chmod(fin, 0660);
|
||||||
working(1, 0, 0);
|
working(1, 0, 0);
|
||||||
unlink(fout);
|
unlink(fout);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user